I just found this forum after searching for MacOS support for Prodikeys PC-MIDI on Google. I've been using Prodikeys keyboards for a few years (first the original Prodikeys and more recently the PC-MIDI) on my PCs and I recently bought a Mac Mini after resisting to move into the Mac world for a long time, so I was curious whether or not somebody had already had the great idea of writing drivers for MacOSX.
Have you guys already got any results (drivers) that I can use?
I'm an experienced programmer in the Windows world (C#, VB basically) with some incursion in the Unix world but have no experience at all programming in a Mac environment, though I'm aware MacOSX has a Unix core. I mention that because I'm willing to put my skills to work on this project if you think you can use my help and can provide some initial guidance.
Hello all, Welcome to the Prodikeys MAC-MIDI Project.
im tring to bring together programers for the purpose of reverse engineering an OS X driver for this very cool composite class device.
the Prodikeys PC-MIDI
many of the people who bought this device have a problem, the problem is creative, the creators of this hardware.
costumer satisfaction and retention must not be a high priority with these guys 'cause they sincerely don't try to keep their costumers happy
this device has driver support for windows 98 an XP but no os x, gnu/linux, XP64 or Vista support. the drivers are also not downloadable from their web site and registered customers must pay to have a driver c.d. shipped to them via snail mail.
thats right, if you bought this device and found that your computer died for some reason and you had to buy a new p.c. (it is very difficult to buy a p.c. without vista nowadays.) or a mac or would like to make music on a linux box then your out of luck, this device is now only a qwerty keyboard, all midi functionality has been lost.
Now while i find that the cover for the midi keys functions nicely as a palm rest, thats not why i bought it. I bought it so that i would have a midi controller keyboard that wouldn't up take to much space on my desk. I'm willing to bet thats why many of you bought it too.
i was amazed at how well the prodikeys worked as a midi controller and i was equally amazed at how such a great product could be hampered by lackluster support. creative has a community forum filled with unsatisfied customer angry about the lack of driver support.
i mean page after page of unsatisfied customers openly cursing creative. for not supporting the device adequately.
well then its up to us. the plan is to use OS X as the initial platform as it should be easier to design for, after a workable bata has been achieved the source code will be released to the linux community for linux development and fine tuning.
the prodikeys p.c.-midi is the model that will be initially designed for, since it use usb and many macs do not have PS2, which is what the two previous models (the prodikeys and prodikeysDM) use.
I'm assured the The easiest way to develop is to create a simple console app using the example code here ( http://developer.app....html#doclist ) to just init the device and read what gets sent when you press a key. Once you know how to convert all the data coming in, it's simply a matter of plugging those functions into the default template code for USB MIDI and USB HID drivers.
Worst case scenario is the device uses it's own special codes for input Then, we have to sniff the data using a USB sniffer or just print out the bytes using the Apple USBPrivateDataSample example and changing it around.
A MIDI keyboard is a very basic device though luckily, usually only sending data except maybe to change the status of a few of the LEDs like Numlock etc, so advanced sniffing would probably be over kill. I'd recommend using the example console app, changing the Device and Manufacture ID's in the code to match what USB prober tells us for the keyboard, and simply reading what gets printed out to the console.
If it turns out the MIDI part is sending standard MIDI data, there is an Apple driver that has almost everything written for us already. It's called SampleUSBDriver and it gets installed under /Developer/Examples/CoreAudio/MIDI/SampleUSBDriver/ when you install XCode.
We pretty much have write our own code in the files SampleUSBMIDI.cpp and .h. The driver is split into two parts, one that handles the USB device and receiving data, and then it forwards that data to code that breaks it into MIDI note data and gets sent to the MIDI system. Since this is a composite device it may require an extra step to separate data from the HID device and the MIDI device.
please post any concerns, comments, observations here or in my blog.