Midi-Abspiel-Probleme

Hallo!

Ich benutze die Eclipse Platform (Version: 3.4.1) für das Programmieren und habe da versucht ein kleines Midi-Abspiel-Programm zu schreiben. Hat soweit auch funktioniert, aber egal, wie ich den Sequencer verändere, um andere Instrumente zu bekommen, ich höre immer nur den selben Ton (eine Art „Fehlersound“ , ist zu vergleichen, wie wenn man ein Plastiklineal nur zur Hälfte auf einen Tisch legt und diesen dann schwingen lässt)…
Habe dann natürlich gegoogelt, und mir die neueste Soundbank gezogen und in den entsprechenden Ordner kopiert. Leider hat das überhaupt nichts genützt…

Bis hier die Anfrage. Ich habe mal den Code dazugeschrieben, vllt sitzt der Fehler ja auch vor dem Monitor :wink:

import javax.sound.midi.*;
import javax.sound.midi.Soundbank;
public class MiniMiniMusikProg {

public static void main (String[] args){
MiniMiniMusikProg mini = new MiniMiniMusikProg();
Oberflaeche ober = new Oberflaeche();
ober.los();

}
public void spielen(){
try{

Sequencer player = MidiSystem.getSequencer();
player.open();

Sequence seq = new Sequence(Sequence.PPQ, 4);

Track track = seq.createTrack();

ShortMessage a = new ShortMessage();
a.setMessage(192, 1, 72, 100);
a.setMessage(144, 1, 20, 100);
MidiEvent noteOn = new MidiEvent(a, 1);
track.add(noteOn);

player.setSequence(seq);

player.start();
Thread.sleep(5000);
player.close();
}catch (Exception ex){
ex.printStackTrace();
}
}

}
import javax.swing.*;

import java.awt.*;
import java.awt.event.*;

public class Oberflaeche implements ActionListener{
JFrame frame;
JLabel label;
public void los(){
frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
label = new JLabel(„Button klicken, um einen Sound zu erhalten!“);

JButton button = new JButton(„Klick mich“);

button.addActionListener(this);

frame.getContentPane().add(BorderLayout.SOUTH, button);
frame.getContentPane().add(BorderLayout.CENTER, label);

frame.setSize(300,300);

frame.setVisible(true);
}
public void actionPerformed(ActionEvent arg0) {
MiniMiniMusikProg mini2 = new MiniMiniMusikProg();
mini2.spielen();

}

}