[jmsl] Playing Through An External Midi Device
jmsl at music.columbia.edu
jmsl at music.columbia.edu
Tue Apr 14 22:04:17 EDT 2009
Also, see if this helps.
http://java.sun.com/j2se/1.5.0/docs/guide/sound/programmer_guide/contents.html
Thanks,
Chi
----- Original Message -----
From: <jmsl at music.columbia.edu>
To: <jmsl at music.columbia.edu>
Sent: Tuesday, April 14, 2009 11:50 AM
Subject: Re: [jmsl] Playing Through An External Midi Device
> Hi Chi
>
> Please help me out here, I don't have a lot of resources currently to work
> on this. If you can do the following in a few lines of pure Java (no JMSL
> at all), then I will implement it in JMSL's JavaSound support
>
> If someone already knows how to do this, please share it here.
>
> You already know how to enumerate through midi device info.
>
> You can create a MidiDevice using minfo like this:
> MidiDevice mdev = MidiSystem.getMidiDevice(infos[i]);
>
> Your challenge is to open the mdev you want, get the transmitter or
> receiver or whatever it is one needs to do to send a midi message out to
> it, and send it a simple MidiMessage like a noteon.
> I've tried it but cannot get a receiver or a transmitter for these midi
> devices, I just get nulls or exceptions. Something's missing and I don't
> know what it is.
>
> My code follows...
> MidiDevice.Info[] minfo= MidiSystem.getMidiDeviceInfo();
> for (int i = 0; i < minfo.length; i++) {
> MidiDevice mdev = MidiSystem.getMidiDevice(minfo[i]);
> String info = minfo[i].getDescription() + ", " +
> minfo[i].getName() + ", " +
> minfo[i].getVendor() + ", " +
> minfo[i].getVersion();
> System.out.println("\nDevice " + i + " = " + minfo[i] + "
> ... " + mdev.toString());
> System.out.println("CLASS: " + mdev.getClass());
> mdev.open();
> try {
> System.out.println("transmitter for this: " +
> mdev.getTransmitter());
> System.out.println("receiver for this : " +
> mdev.getReceiver());
> } catch (MidiUnavailableException e) {
> System.out.println("can't get transmitter or receiver
> for this");
> } mdev.close();
> }
>
> Thanks
> Nick
>
> jmsl at music.columbia.edu wrote:
>> How can I hookup JavaSound ports to JMSL? If I do this I can see all the
>> external midi devices I have on my computer.
>>
>> MidiDevice.Info[] infos = MidiSystem.getMidiDeviceInfo();
>> for (int i = 0; i < infos.length; i++) {
>> System.out.println(infos[i]);
>> }
>>
>> /*
>> Result:
>> USB Audio Device
>> Microsoft MIDI Mapper
>> USB Audio Device
>> SB X-Fi Synth A [BC00]
>> SB X-Fi Synth B [BC00]
>> Microsoft GS Wavetable SW Synth
>> Real Time Sequencer
>> Java Sound Synthesizer
>> */
>>
>> If I do this, I get an error.
>> JMSL.midi = MidiIO_JavaSound.instance();
>> String[] deviceNames = JMSL.midi.getOutputDeviceNames();
>> System.out.println("There are " + deviceNames.length + "midi devices.");
>> for (int i=0; i<deviceNames.length; i++) {
>> System.out.println(deviceNames[i]);
>> }
>>
>> /*
>> Result:
>> There are 1midi devices.
>> Unimplemented
>> */
>>
>> _______________________________________________
>> jmsl mailing list
>> jmsl at music.columbia.edu
>> http://music.columbia.edu/mailman/listinfo/jmsl
> _______________________________________________
> jmsl mailing list
> jmsl at music.columbia.edu
> http://music.columbia.edu/mailman/listinfo/jmsl
>
More information about the jmsl
mailing list