T
the asker
Gast
Nein, nicht das Herz zwischen den Rippen.
Es geht aber um folgendes Problem:
Diese Funktion erzeugt einen Ton - passend zur angegebenen Dauer, kHz und Lautstärke:
Nun muss ich aber für meine Zwecke einen Ton von _exakt_ 1100 hz (herz) erzeugen.
Nun kann ich deshalb nicht 1 angeben - weil dies ja nur 1000 hz sind.
Wie löse ich das jetzt?
Bitte um Tips / Antworten!
The asker
Es geht aber um folgendes Problem:
Diese Funktion erzeugt einen Ton - passend zur angegebenen Dauer, kHz und Lautstärke:
Code:
private void generateTone(int kHz, int ms, int vol) throws MidiUnavailableException, InvalidMidiDataException, InterruptedException{
Synthesizer synth = MidiSystem.getSynthesizer();
synth.open();
Receiver rcvr = synth.getReceiver();
ShortMessage msg = new ShortMessage();
msg.setMessage(ShortMessage.NOTE_ON, 0, kHz, vol);
rcvr.send(msg, -1);
Thread.sleep(ms); //"Schlaf-Dauer" des Threads (Länge)
msg.setMessage(ShortMessage.NOTE_OFF, 0, kHz, 0); //Letzter 0, wegen Ton=off
rcvr.send(msg, -1);
synth.close();
}
Nun muss ich aber für meine Zwecke einen Ton von _exakt_ 1100 hz (herz) erzeugen.
Nun kann ich deshalb nicht 1 angeben - weil dies ja nur 1000 hz sind.
Wie löse ich das jetzt?
Bitte um Tips / Antworten!
The asker