Por que java midi synth no mac para de tocar notas

Estou tentando criar um aplicativo simples que leia de uma porta midi (hardware) e encaminhe eventos para o sintetizador de software. Geralmente funciona, exceto que o sintetizador suave para de tocar de tempos em tempos. Posso ver as mensagens midi sendo encaminhadas nos logs, posso rastrear na depuração e ver que o evento alcança o código nativo no receptor de sintetizador, mas por alguma razão, o sintetizador não toca a nota. Se você esperar, o som será reproduzido novamente, depois pare e reproduza novamente ...

Aqui é um aplicativo de demonstração que mostra o problema. Se você pressionar o botão Enter no console, ouvirá uma nota repetidamente. Depois de algum tempo (provavelmente menos de um minuto), o som será interrompido (se você mantiver o botão pressionado) e depois voltar

import java.io.BufferedReader;
import java.io.InputStreamReader;

import javax.sound.midi.MidiSystem;
import javax.sound.midi.Synthesizer;

public class TestMidi2 {

    public static void main( String[] args ) throws Exception {
        Synthesizer synth = MidiSystem.getSynthesizer();
        synth.open();

        BufferedReader in = new BufferedReader( new InputStreamReader( System.in ) );
        boolean on = true;
        while ( in.readLine() != null ) {
            if ( on ) {
                synth.getChannels()[0].noteOn( 45, 127 );
            } else {
                synth.getChannels()[0].noteOff( 45 );
            }
            on = !on;
        }
    }

}

Estou no MacOS X lion se isso faz alguma diferença (o que acho que faz

Qualquer ideia? Gambiarra? Gostaria de tentar outro sintetizador de software, mas não consegui encontrar nenhum. Também estou disposto a experimentar o hardware midi synth, desde que eles possam tocar piano, flauta e guitarra básicos (não preciso de nada profissional, apenas um som decente

Obrigado

questionAnswers(2)

yourAnswerToTheQuestion