United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-6806019 38 JCK api/javax_sound/midi/ tests fails starting from jdk7 b46
JDK-6806019 : 38 JCK api/javax_sound/midi/ tests fails starting from jdk7 b46

Details
Type:
Bug
Submit Date:
2009-02-16
Status:
Closed
Updated Date:
2012-03-22
Project Name:
JDK
Resolved Date:
2009-11-19
Component:
client-libs
OS:
solaris_10,windows_xp
Sub-Component:
javax.sound
CPU:
x86
Priority:
P2
Resolution:
Fixed
Affected Versions:
7
Fixed Versions:

Related Reports
Backport:

Sub Tasks

Description
#!/bin/bash

export JAVA=/export/jdk/jdk1.7.0/bin/java
export CLASSPATH="/export/JCK/JCK-runtime-7/classes"

OPTS="-d64" 
TESTS[0]="javasoft.sqe.tests.api.javax.sound.midi.ControllerEventListener.ListenerTests -TestURL file:/export/JCK/JCK-runtime-7/tests/api/javax_sound/midi/ControllerEventListener/index.html#Listener" TESTS[1]="javasoft.sqe.tests.api.javax.sound.midi.Instrument.getCtorTests"
TESTS[2]="javasoft.sqe.tests.api.javax.sound.midi.MetaEventListener.ListenerTests -TestURL file:/export/JCK/JCK-runtime-7/tests/api/javax_sound/midi/MetaEventListener/index.html#Listener"
TESTS[3]="javasoft.sqe.tests.api.javax.sound.midi.MidiChannel.MidiChannelTests"
TESTS[4]="javasoft.sqe.tests.api.javax.sound.midi.MidiChannel.MonoTests"
TESTS[5]="javasoft.sqe.tests.api.javax.sound.midi.MidiChannel.MuteOmniTests"
TESTS[6]="javasoft.sqe.tests.api.javax.sound.midi.MidiChannel.PitchBendTests"
TESTS[7]="javasoft.sqe.tests.api.javax.sound.midi.MidiChannel.PressureTests"
TESTS[8]="javasoft.sqe.tests.api.javax.sound.midi.MidiChannel.ProgramTests"
TESTS[9]="javasoft.sqe.tests.api.javax.sound.midi.MidiChannel.SoloTests"
TESTS[10]="javasoft.sqe.tests.api.javax.sound.midi.MidiChannel.controlTests"
TESTS[11]="javasoft.sqe.tests.api.javax.sound.midi.MidiChannel.localControlTests"
TESTS[12]="javasoft.sqe.tests.api.javax.sound.midi.MidiDevice.getTests"
TESTS[13]="javasoft.sqe.tests.api.javax.sound.midi.MidiDevice.openCloseTests"
TESTS[14]="javasoft.sqe.tests.api.javax.sound.midi.MidiDevice.recvTransmTests"
TESTS[15]="javasoft.sqe.tests.api.javax.sound.midi.MidiSystem.getTests"
TESTS[16]="javasoft.sqe.tests.api.javax.sound.midi.Receiver.ReceiverTests"
TESTS[17]="javasoft.sqe.tests.api.javax.sound.midi.Sequencer.ListenerTests -TestURL file:/export/JCK/JCK-runtime-7/tests/api/javax_sound/midi/Sequencer/index.html#Listener -TestURL file:/export/JCK/JCK-runtime-7/tests/api/javax_sound/midi/Sequencer/index.html#Listener"
TESTS[18]="javasoft.sqe.tests.api.javax.sound.midi.Sequencer.LoopTests -TestURL file:/export/JCK/JCK-runtime-7/tests/api/javax_sound/midi/Sequencer/index.html#Loop -TestURL file:/export/JCK/JCK-runtime-7/tests/api/javax_sound/midi/Sequencer/index.html#Loop"
TESTS[19]="javasoft.sqe.tests.api.javax.sound.midi.Sequencer.MuteSoloTests -TestURL file:/export/JCK/JCK-runtime-7/tests/api/javax_sound/midi/Sequencer/index.html#Loop -TestURL file:/export/JCK/JCK-runtime-7/tests/api/javax_sound/midi/Sequencer/index.html#Loop"
TESTS[20]="javasoft.sqe.tests.api.javax.sound.midi.Sequencer.PlayTests -TestURL file:/export/JCK/JCK-runtime-7/tests/api/javax_sound/midi/Sequencer/index.html#Play -TestURL file:/export/JCK/JCK-runtime-7/tests/api/javax_sound/midi/Sequencer/index.html#Play"
TESTS[21]="javasoft.sqe.tests.api.javax.sound.midi.Sequencer.RecordTests -TestURL file:/export/JCK/JCK-runtime-7/tests/api/javax_sound/midi/Sequencer/index.html#Record -TestURL file:/export/JCK/JCK-runtime-7/tests/api/javax_sound/midi/Sequencer/index.html#Record"
TESTS[22]="javasoft.sqe.tests.api.javax.sound.midi.Sequencer.SequencerTests -TestURL file:/export/JCK/JCK-runtime-7/tests/api/javax_sound/midi/Sequencer/index.html#Sequencer -TestURL file:/export/JCK/JCK-runtime-7/tests/api/javax_sound/midi/Sequencer/index.html#Sequencer"
TESTS[23]="javasoft.sqe.tests.api.javax.sound.midi.Sequencer.SyncTests -TestURL file:/export/JCK/JCK-runtime-7/tests/api/javax_sound/midi/Sequencer/index.html#Sync -TestURL file:/export/JCK/JCK-runtime-7/tests/api/javax_sound/midi/Sequencer/index.html#Sync"
TESTS[24]="javasoft.sqe.tests.api.javax.sound.midi.Sequencer.TempoTests -TestURL file:/export/JCK/JCK-runtime-7/tests/api/javax_sound/midi/Sequencer/index.html#Tempo -TestURL file:/export/JCK/JCK-runtime-7/tests/api/javax_sound/midi/Sequencer/index.html#Tempo"
TESTS[25]="javasoft.sqe.tests.api.javax.sound.midi.Soundbank.InstrumentTests -TestURL file:/export/JCK/JCK-runtime-7/tests/api/javax_sound/midi/Soundbank/index.html#Instrument -TestURL file:/export/JCK/JCK-runtime-7/tests/api/javax_sound/midi/Soundbank/index.html#Instrument"
TESTS[26]="javasoft.sqe.tests.api.javax.sound.midi.Soundbank.ResourceTests -TestURL file:/export/JCK/JCK-runtime-7/tests/api/javax_sound/midi/Soundbank/index.html#Resource -TestURL file:/export/JCK/JCK-runtime-7/tests/api/javax_sound/midi/Soundbank/index.html#Resource"
TESTS[27]="javasoft.sqe.tests.api.javax.sound.midi.Soundbank.SoundbankTests -TestURL file:/export/JCK/JCK-runtime-7/tests/api/javax_sound/midi/Soundbank/index.html#Soundbank -TestURL file:/export/JCK/JCK-runtime-7/tests/api/javax_sound/midi/Soundbank/index.html#Soundbank"
TESTS[28]="javasoft.sqe.tests.api.javax.sound.midi.Soundbank.getTests -TestURL file:/export/JCK/JCK-runtime-7/tests/api/javax_sound/midi/Soundbank/index.html#get -TestURL file:/export/JCK/JCK-runtime-7/tests/api/javax_sound/midi/Soundbank/index.html#get"
TESTS[29]="javasoft.sqe.tests.api.javax.sound.midi.SoundbankResource.getCtorTests"
TESTS[20]="javasoft.sqe.tests.api.javax.sound.midi.SoundbankResource.getDataTests"
TESTS[31]="javasoft.sqe.tests.api.javax.sound.midi.SoundbankResource.getNameTests"
TESTS[32]="javasoft.sqe.tests.api.javax.sound.midi.Synthesizer.SynthesizerTests"
TESTS[33]="javasoft.sqe.tests.api.javax.sound.midi.Synthesizer.VoiceTests"
TESTS[34]="javasoft.sqe.tests.api.javax.sound.midi.Synthesizer.getInstrumentsTests"
TESTS[35]="javasoft.sqe.tests.api.javax.sound.midi.Synthesizer.loadTests"
TESTS[36]="javasoft.sqe.tests.api.javax.sound.midi.Synthesizer.remapTests"
TESTS[37]="javasoft.sqe.tests.api.javax.sound.midi.Synthesizer.unloadTests"
for ((i=0;i<38;i++)); do
echo ${TESTS[${i}]}
$JAVA $OPTS -version 1>$i 2>&1
$JAVA $OPTS ${TESTS[${i}]} 1>>$i 2>&1
done
JCK            : JCK runtime 7 b10
J2SE           : FAIL - since jdk 7 build 46 
Platform[s]    : FAIL - Solaris 10 x64 (pass on Solaris 10 sparc) 
Java options   : FAIL - -d64 (pass -d32)

JCK            : JCK runtime 7 b10
J2SE           : FAIL - since jdk 7 build 46 
Platform[s]    : FAIL - Win XP x86 
Java options   : FAIL - default

Starting form jdk7 b46 following tests fails on x64 Solaris 10 (64 bit bundles). Same failures were also seen in Win XP home 32 bit jvm.

api/javax_sound/midi/ControllerEventListener/index.html#Listener[ControllerEventListener2001]
api/javax_sound/midi/Instrument/index.html#getCtor[getCtor001]
api/javax_sound/midi/MetaEventListener/index.html#Listener[MetaEventListener2001]
api/javax_sound/midi/MidiChannel/index.html#MidiChannel[MidiChannel2001]
api/javax_sound/midi/MidiChannel/index.html#MidiChannel[MidiChannel2002]
api/javax_sound/midi/MidiChannel/index.html#Mono[Mono001]
api/javax_sound/midi/MidiChannel/index.html#Mono[Mono002]
api/javax_sound/midi/MidiChannel/index.html#MuteOmni[MuteOmni001]
api/javax_sound/midi/MidiChannel/index.html#MuteOmni[MuteOmni002]
api/javax_sound/midi/MidiChannel/index.html#MuteOmni[MuteOmni003]
api/javax_sound/midi/MidiChannel/index.html#PitchBend[PitchBend001]
api/javax_sound/midi/MidiChannel/index.html#Pressure[Pressure001]
api/javax_sound/midi/MidiChannel/index.html#Pressure[Pressure002]
api/javax_sound/midi/MidiChannel/index.html#Pressure[Pressure003]
api/javax_sound/midi/MidiChannel/index.html#Program[Program001]
api/javax_sound/midi/MidiChannel/index.html#Program[Program002]
api/javax_sound/midi/MidiChannel/index.html#Solo[Solo001]
api/javax_sound/midi/MidiChannel/index.html#control[control001]
api/javax_sound/midi/MidiChannel/index.html#control[control002]
api/javax_sound/midi/MidiChannel/index.html#control[control003]
api/javax_sound/midi/MidiChannel/index.html#control[control004]
api/javax_sound/midi/MidiChannel/index.html#localControl[localControl001]
api/javax_sound/midi/MidiDevice/index.html#get[get002]
api/javax_sound/midi/MidiDevice/index.html#get[get003]
api/javax_sound/midi/MidiDevice/index.html#openClose[openClose001]
api/javax_sound/midi/MidiDevice/index.html#openClose[openClose002]
api/javax_sound/midi/MidiDevice/index.html#openClose[openClose003]
api/javax_sound/midi/MidiDevice/index.html#openClose[openClose004]
api/javax_sound/midi/MidiDevice/index.html#openClose[openClose005]
api/javax_sound/midi/MidiDevice/index.html#openClose[openClose006]
api/javax_sound/midi/MidiDevice/index.html#openClose[openClose007]
api/javax_sound/midi/MidiDevice/index.html#recvTransm[recvTransm001]
api/javax_sound/midi/MidiDevice/index.html#recvTransm[recvTransm002]
api/javax_sound/midi/MidiDevice/index.html#recvTransm[recvTransm003]
api/javax_sound/midi/MidiDevice/index.html#recvTransm[recvTransm004]
api/javax_sound/midi/MidiDevice/index.html#recvTransm[recvTransm005]
api/javax_sound/midi/MidiDevice/index.html#recvTransm[recvTransm006]
api/javax_sound/midi/MidiDevice/index.html#recvTransm[recvTransm007]
api/javax_sound/midi/MidiDevice/index.html#recvTransm[recvTransm008]
api/javax_sound/midi/MidiSystem/index.html#get[get002]
api/javax_sound/midi/MidiSystem/index.html#get[get005]
api/javax_sound/midi/MidiSystem/index.html#get[get006]
api/javax_sound/midi/MidiSystem/index.html#get[get007]
api/javax_sound/midi/MidiSystem/index.html#get[get008]
api/javax_sound/midi/MidiSystem/index.html#get[get009]
api/javax_sound/midi/MidiSystem/index.html#get[get010]
api/javax_sound/midi/MidiSystem/index.html#get[get012]
api/javax_sound/midi/MidiSystem/index.html#get[get013]
api/javax_sound/midi/Receiver/index.html#Receiver[Receiver001]
api/javax_sound/midi/Receiver/index.html#Receiver[Receiver002]
api/javax_sound/midi/Receiver/index.html#Receiver[Receiver003]
api/javax_sound/midi/Receiver/index.html#Receiver[Receiver004]
api/javax_sound/midi/Sequencer/index.html#Listener[Listener001]
api/javax_sound/midi/Sequencer/index.html#Listener[Listener002]
api/javax_sound/midi/Sequencer/index.html#Listener[Listener003]
api/javax_sound/midi/Sequencer/index.html#Listener[Listener004]
api/javax_sound/midi/Sequencer/index.html#Listener[Listener005]
api/javax_sound/midi/Sequencer/index.html#Listener[Listener006]
api/javax_sound/midi/Sequencer/index.html#Listener[Listener007]
api/javax_sound/midi/Sequencer/index.html#Listener[Listener008]
api/javax_sound/midi/Sequencer/index.html#Loop[Loop001]
api/javax_sound/midi/Sequencer/index.html#Loop[Loop002]
api/javax_sound/midi/Sequencer/index.html#Loop[Loop003]
api/javax_sound/midi/Sequencer/index.html#Loop[Loop004]
api/javax_sound/midi/Sequencer/index.html#Loop[Loop005]
api/javax_sound/midi/Sequencer/index.html#Loop[Loop006]
api/javax_sound/midi/Sequencer/index.html#Loop[Loop009]
api/javax_sound/midi/Sequencer/index.html#Loop[Loop010]
api/javax_sound/midi/Sequencer/index.html#Loop[Loop014]
api/javax_sound/midi/Sequencer/index.html#Loop[Loop015]
api/javax_sound/midi/Sequencer/index.html#Loop[Loop016]
api/javax_sound/midi/Sequencer/index.html#Loop[Loop017]
api/javax_sound/midi/Sequencer/index.html#Loop[Loop018]
api/javax_sound/midi/Sequencer/index.html#Loop[Loop019]
api/javax_sound/midi/Sequencer/index.html#Loop[Loop020]
api/javax_sound/midi/Sequencer/index.html#Loop[Loop021]
api/javax_sound/midi/Sequencer/index.html#MuteSolo[MuteSolo001]
api/javax_sound/midi/Sequencer/index.html#MuteSolo[MuteSolo002]
api/javax_sound/midi/Sequencer/index.html#MuteSolo[MuteSolo003]
api/javax_sound/midi/Sequencer/index.html#MuteSolo[MuteSolo004]
api/javax_sound/midi/Sequencer/index.html#MuteSolo[MuteSolo009]
api/javax_sound/midi/Sequencer/index.html#Play[Play001]
api/javax_sound/midi/Sequencer/index.html#Play[Play002]
api/javax_sound/midi/Sequencer/index.html#Play[Play003]
api/javax_sound/midi/Sequencer/index.html#Record[Record001]
api/javax_sound/midi/Sequencer/index.html#Record[Record002]
api/javax_sound/midi/Sequencer/index.html#Record[Record003]
api/javax_sound/midi/Sequencer/index.html#Record[Record004]
api/javax_sound/midi/Sequencer/index.html#Record[Record005]
api/javax_sound/midi/Sequencer/index.html#Record[Record007]
api/javax_sound/midi/Sequencer/index.html#Sequencer[Sequencer001]
api/javax_sound/midi/Sequencer/index.html#Sequencer[Sequencer002]
api/javax_sound/midi/Sequencer/index.html#Sequencer[Sequencer003]
api/javax_sound/midi/Sequencer/index.html#Sequencer[Sequencer004]
api/javax_sound/midi/Sequencer/index.html#Sequencer[Sequencer005]
api/javax_sound/midi/Sequencer/index.html#Sequencer[Sequencer006]
api/javax_sound/midi/Sequencer/index.html#Sequencer[Sequencer007]
api/javax_sound/midi/Sequencer/index.html#Sequencer[Sequencer008]
api/javax_sound/midi/Sequencer/index.html#Sequencer[Sequencer009]
api/javax_sound/midi/Sequencer/index.html#Sequencer[Sequencer010]
api/javax_sound/midi/Sequencer/index.html#Sequencer[Sequencer011]
api/javax_sound/midi/Sequencer/index.html#Sequencer[Sequencer012]
api/javax_sound/midi/Sequencer/index.html#Sequencer[Sequencer013]
api/javax_sound/midi/Sequencer/index.html#Sequencer[Sequencer1001]
api/javax_sound/midi/Sequencer/index.html#Sequencer[Sequencer2001]
api/javax_sound/midi/Sequencer/index.html#Sequencer[Sequencer2002]
api/javax_sound/midi/Sequencer/index.html#Sequencer[Sequencer2003]
api/javax_sound/midi/Sequencer/index.html#Sequencer[Sequencer2004]
api/javax_sound/midi/Sequencer/index.html#Sequencer[Sequencer2005]
api/javax_sound/midi/Sequencer/index.html#Sync[Sync001]
api/javax_sound/midi/Sequencer/index.html#Sync[Sync002]
api/javax_sound/midi/Sequencer/index.html#Tempo[Tempo001]
api/javax_sound/midi/Sequencer/index.html#Tempo[Tempo002]
api/javax_sound/midi/Sequencer/index.html#Tempo[Tempo003]
api/javax_sound/midi/Sequencer/index.html#Tempo[Tempo004]
api/javax_sound/midi/Sequencer/index.html#Tempo[Tempo005]
api/javax_sound/midi/Sequencer/index.html#Tempo[Tempo006]
api/javax_sound/midi/Sequencer/index.html#Tempo[Tempo007]
api/javax_sound/midi/Sequencer/index.html#Tempo[Tempo008]
api/javax_sound/midi/Soundbank/index.html#Instrument[Instrument001]
api/javax_sound/midi/Soundbank/index.html#Instrument[Instrument002]
api/javax_sound/midi/Soundbank/index.html#Instrument[Instrument003]
api/javax_sound/midi/Soundbank/index.html#Resource[Resource001]
api/javax_sound/midi/Soundbank/index.html#Resource[Resource002]
api/javax_sound/midi/Soundbank/index.html#Soundbank[Soundbank2002]
api/javax_sound/midi/Soundbank/index.html#get[get001]
api/javax_sound/midi/SoundbankResource/index.html#getCtor[getCtor001]
api/javax_sound/midi/SoundbankResource/index.html#getData[getCtor006]
api/javax_sound/midi/SoundbankResource/index.html#getData[getCtor007]
api/javax_sound/midi/SoundbankResource/index.html#getName[getName001]
api/javax_sound/midi/SoundbankResource/index.html#getName[getName002]
api/javax_sound/midi/SoundbankResource/index.html#getName[getName003]
api/javax_sound/midi/Synthesizer/index.html#Synthesizer[Synthesizer001]
api/javax_sound/midi/Synthesizer/index.html#Synthesizer[Synthesizer002]
api/javax_sound/midi/Synthesizer/index.html#Synthesizer[Synthesizer2001]
api/javax_sound/midi/Synthesizer/index.html#Voice[Voice001]
api/javax_sound/midi/Synthesizer/index.html#getInstruments[getInstruments001]
api/javax_sound/midi/Synthesizer/index.html#getInstruments[getInstruments002]
api/javax_sound/midi/Synthesizer/index.html#getInstruments[getInstruments003]
api/javax_sound/midi/Synthesizer/index.html#load[load001]
api/javax_sound/midi/Synthesizer/index.html#load[load002]
api/javax_sound/midi/Synthesizer/index.html#load[load003]
api/javax_sound/midi/Synthesizer/index.html#load[load005]
api/javax_sound/midi/Synthesizer/index.html#load[load007]
api/javax_sound/midi/Synthesizer/index.html#load[load008]
api/javax_sound/midi/Synthesizer/index.html#load[load010]
api/javax_sound/midi/Synthesizer/index.html#load[load011]
api/javax_sound/midi/Synthesizer/index.html#load[load012]
api/javax_sound/midi/Synthesizer/index.html#remap[remap001]
api/javax_sound/midi/Synthesizer/index.html#unload[unload002]
api/javax_sound/midi/Synthesizer/index.html#unload[unload003]
api/javax_sound/midi/Synthesizer/index.html#unload[unload005]
api/javax_sound/midi/Synthesizer/index.html#unload[unload07]

All these tests fails with the exception like this:
java.lang.IllegalArgumentException: No line matching interface SourceDataLine supporting format PCM_SIGNED 44100.0 Hz, 16 bit, stereo, 4 bytes/frame, little-endian is supported.
        at javax.sound.sampled.AudioSystem.getLine(AudioSystem.java:476)
        at javax.sound.sampled.AudioSystem.getSourceDataLine(AudioSystem.java:604)
        at com.sun.media.sound.SoftSynthesizer.open(SoftSynthesizer.java:906)
        at com.sun.media.sound.SoftSynthesizer.open(SoftSynthesizer.java:881)
        at com.sun.media.sound.SoftSynthesizer.getReceiverReferenceCounting(SoftSynthesizer.java:1165)
        at javax.sound.midi.MidiSystem.getSequencer(MidiSystem.java:431)
        at javax.sound.midi.MidiSystem.getSequencer(MidiSystem.java:365)
        at javasoft.sqe.tests.api.javax.sound.midi.ControllerEventListener.ListenerTests.ControllerEventListener2001(L
istenerTests.java:69)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:623)
        at javasoft.sqe.javatest.lib.MultiTest.invokeTestCase(MultiTest.java:406)
        at javasoft.sqe.javatest.lib.MultiTest.run(MultiTest.java:195)
        at javasoft.sqe.javatest.lib.MultiTest.run(MultiTest.java:127)
        at javasoft.sqe.tests.api.javax.sound.midi.ControllerEventListener.ListenerTests.main(ListenerTests.java:26)

Steps to reproduce:
1. Install jdk (for ex. to /export/jdk/jdk1.7.0)
2. Install JCK7 (for ex. to /export/JCK/JCK-runtime-7)
3. Prepare a simple script to run a tests. (See below)

All these tests passes on the same machine with b45 of jdk7.

Installed jck could be found at /java/re/jck/7/promoted/latest/binaries/JCK-runtime-7/
Test sources is at /java/re/jck/7/promoted/latest/binaries/JCK-runtime-7/tests
Further investigation shows that sound card was not properly installed on Win XP test machine. 
Still there is a regression. For previous versions jck tests pass because they expect javax.sound.midi.MidiUnavailableException in case midi is not availible. From b46 not MidiUnavailableException but java.lang.IllegalArgumentException thrown.

Java docs (http://download.java.net/jdk7/docs/api/javax/sound/midi/package-summary.html) says abount 2 exception:
InvalidMidiDataException 	An InvalidMidiDataException indicates that inappropriate MIDI data was encountered.
MidiUnavailableException 	A MidiUnavailableException is thrown when a requested MIDI component cannot be opened or created because it is unavailable.

For example documentaion about javax.sound.midi.MidiSystem.getSequencer says

public static Sequencer getSequencer()
                              throws MidiUnavailableException

    Obtains the default Sequencer, connected to a default device. The returned Sequencer instance is connected to the default Synthesizer, as returned by getSynthesizer(). If there is no Synthesizer available, or the default Synthesizer cannot be opened, the sequencer is connected to the default Receiver, as returned by getReceiver(). The connection is made by retrieving a Transmitter instance from the Sequencer and setting its Receiver. Closing and re-opening the sequencer will restore the connection to the default device.

    This method is equivalent to calling getSequencer(true).

    If the system property javax.sound.midi.Sequencer is defined or it is defined in the file "sound.properties", it is used to identify the default sequencer. For details, refer to the class description.

    Returns:
        the default sequencer, connected to a default Receiver 
    Throws:
        MidiUnavailableException - if the sequencer is not available due to resource restrictions, or there is no Receiver available by any installed MidiDevice, or no sequencer is installed in the system.

                                    

Comments
EVALUATION

trying open SourceDataLine for synthesys output new Synthesizer implementation doesn't catch IllegalArgumentException and SecurityException.
                                     
2009-02-24



Hardware and Software, Engineered to Work Together