Ao trabalhar com MIDI usando a API do JavaSound é necessário ter um dispositivo MIDI compatível instalado no sistema operacional. Caso contrário, você terá o seguinte erro:
javax.sound.midi.MidiUnavailableException at javax.sound.midi.MidiSystem.getDefaultDeviceWrapper(MidiSystem.java:1078) at javax.sound.midi.MidiSystem.getReceiver(MidiSystem.java:240) at javax.sound.midi.MidiSystem.getSequencer(MidiSystem.java:442) at javax.sound.midi.MidiSystem.getSequencer(MidiSystem.java:348) at JavaSound.main(JavaSound.java:167) Caused by: java.lang.IllegalArgumentException: Requested device not installed at javax.sound.midi.MidiSystem.getDefaultDevice(MidiSystem.java:1130) at javax.sound.midi.MidiSystem.getDefaultDeviceWrapper(MidiSystem.java:1076) ... 4 more
Se sua placa de Som não tem suporte a MIDI, ou se o Linux não reconheceu, instale o Timidity, que é um sequenciador MIDI via software muito bom, utilizando o seguinte comando: sudo apt-get install timidity
Execute o comando: aplaymidi -l
A saída deverá ser algo do tipo:
Port Client name Port name 14:0 Midi Through Midi Through Port-0 128:0 TiMidity TiMidity port 0 128:1 TiMidity TiMidity port 1 128:2 TiMidity TiMidity port 2 128:3 TiMidity TiMidity port 3
Caso não apareça nenhuma linha escrito TiMidity, reinicie o computador. O meu foi necessário, pois não sabia qual serviço iniciar. Após isso instale o alsa-oss: sudo apt-get install alsa-oss
Execute o seu aplicativo com a comando aoss. Por exemplo: aoss java -jar JavaSoundDemo.jar. Pronto! O erro some e o som aparece :).