Code Monkey home page Code Monkey logo

genericusbmidi's Introduction

GenericUSBMIDI

This is an OS X driver for MIDI devices connected via USB. It has been tested with a Roland (Ed) PC-300 MIDI Keyboard connected via USB to an Apple MacBook Pro running Mac OS X v10.8.2 (Mountain Lion) as well as v10.9.1 (Mavericks).

I started this project since at the time of writing Roland corp. does not provide drivers for the PC-300 that work with OS X versions greater than v10.5 (Leopard).

At the present stage it consists of sample code from Apple Inc. which was obtained from the casiousbmididriver project (http://code.google.com/p/casiousbmididriver/).

The only change to the sample code that was necessary to get the driver to work with the Roland PC-300, was to set the USB interface number, vendor ID and product ID in the file GenericUSBMidi.cp:

#define kTheInterfaceToUse	2	// The third one
#define kMyVendorID		0x0582	// Roland Corporation
#define kMyProductID	0x0008

The idea of the present project would be to provide a generic open source OS X driver for several other USB MIDI devices. Contributions are welcome!

After compiling the source with Xcode simply copy the resulting bundle GenericUSBMidi.plugin to the Folder /Library/Audio/MIDI Drivers/. This is most simply done with the following bash (Terminal) commands:

cd $HOME/Library/Developer/Xcode/DerivedData/GenericUSBMidi*/Build/Products/Debug
sudo cp -r GenericUSBMidi.plugin /Library/Audio/MIDI\ Drivers/

Note: to find out where the "GenericUSBMidi.plugin" file has been created, right-click onto Products->GenericUSBMidi.plugin in Xcode and then click "Show in Finder". This is illustrated in the file ShowInFinder.png:

screenshot to illustrate what to do in Xcode to find the compiled plugin in Finder

After that it is necessary to reboot the MIDIServer process (or the entire OS).

For debugging (e.g. using break points) attach your debugger to the MIDIServer process. In Xcode this is done via the Menu Product -> Attach to Process -> MIDIServer.

Have fun!

December 30, 2012

Yves Salathe

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.