[jmsl] Midi and Audio Units

jmsl at music.columbia.edu jmsl at music.columbia.edu
Sat Feb 3 03:02:27 EST 2007

Le 3 févr. 07 à 04:04, jmsl at music.columbia.edu a écrit :

> Hello all,
> I'm a JMSL newb asking what may be a very basic question.  I'm  
> running Mac OS X on a PowerBook G4 with JMSL, JSyn, and MidiShare  
> all up and running.  (As an aside, I also tried running the  
> MidiShare tests provided in JMSL on my new Intel Mac, and it  
> failed.).  I have an application in which music data is generated  
> in real time based on user input through a GUI.  I'd like to have  
> this data make sound.  Therefore my first question is, how should I  
> do this?

MidiShare 1.91 *published* version  is still PPC only... but we have  
a beta Universal Binanry package available here:  http://www.grame.fr/ 
~letz/MidiShare-1.92.dmg. You should use this one to run the tests.

> I realize there are many answers to this question, and I've  
> narrowed it down some.  I could build a custom instrument that  
> would play my sound on the fly using JSyn through JMSL.  I could  
> send MIDI data to a hardware controller of some kind.  Or I could  
> send MIDI to the OS X default QT synth.  The first takes expertise  
> and time, the second takes money.  I have neither of those, and the  
> third sounds bad/cheesy.  So I've opted for a third, less well- 
> documented approach: sending MIDI data to a software controller/ 
> Audio Unit host and having it be represented by an AU instrument.   
> I've chosen to use Rax by plasq software as my AU host, and have a  
> drum kit and a synth
> My first question still stands: how should I make this data into  
> noise?  Is there an approach I haven't considered that would meet  
> my needs?
> And my second question is: how would I send data from Java to an AU  
> host app like Rax?  Is there some Core Audio wrapper I need to  
> use?  Is support for this built into Apple's J2SE?  Stephane Letz,  
> Nick referred me to you as the expert on MidiShare and related  
> questions.  Any help or suggestions will be very much appreciated.

If you are using MidiShare to output Midi events, then you can send  
them to other running Midi application using the CoreMidi layer (and  
in particular the IAC driver)

JMSL/MidiShare  <==> CoreMIDI <==> IAC Driver <==>  CoreMIDI <===> Rax

You would have to activate the IAC driver using the  Audio/Midi setup  
tools, then send events from JMSL/MidiShare to an IAC Midi bus and  
receive from this bus inside the destination application (like Rax)

Stephae Letz

More information about the jmsl mailing list