Hi all, I will very soon have to work (professionally ) on a project that includes the writing of an audio/midi USB driver for Mac OS X. I'm looking for hint, tips, caveats etc that could prevent me to run into the wall :)) Some questions: - Where do I need to start from? There's a sample code in the CoreAudio SDK called SampleUSBMidiDriver, it looks like a perfect candidate for the midi part.
Hi all,
Some questions:
Yes.
There are numerous samples in kernel/IOKit/audio and kernel/IOKit/usb. The PhantomAudioDriver looks like a very good candidate for the audio part. Any other sample codes I should have a look at? - Do I need to write a single audio and midi driver or is it better to write two different drivers (if it makes sense as they both apply to the same device)?
- There's a point that comes back frequently on this list: it is kernel land driver versus user land driver. What is the recommended approach for midi, for audio, for a single audio and midi driver?
- There has recently been a discussion about latency added by the drivers (related to the safety offset). Periodic data such as audio are transported using the isochronous mode, while Aperiodic data - such as midi - are transported using the bulk mode. That's nearly all I know - for the moment - about USB protocol :)) Anything to take care of as far as latency is concerned? For instance, what happens when multiple devices send data "at the same time" using the isochronous 125us/1ms modes and the bulk mode?
- I've downloaded the 9MByte+ USB 2 specs. I know that I will have to eat the whole cake someday, but in the meantime, does anyone know pointers to site where I could find something like 'USB for the dummy"?