msg.setMessage(ShortMessage.NOTE_ON,. mit HERZ ?

Status
Nicht offen für weitere Antworten.
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:

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
 

Tobias

Top Contributor
Tja, mit int kHz wird das nichts... Brauchste schon nen float oder double als Parameter-Typ... Es heißt übrigens Hertz.

mpG
Tobias
 

Saxony

Top Contributor
Hiho,

yep ich hätte jetzt auch spontan gesagt dann nimm doch 1.1 um 1100Hz zu erzeugen. :)

Im übrigen wieso brauchst du genau 1100Hz - ich kann mich da an so Geschichten erinnern wo bestimmte Töne in der Telefonie mal ne Rolle gespielt haben. Stichwort Phreaking
Also sauber bleiben. :D

bye Saxony
 

moormaster

Top Contributor
... auch Wähltöne genannt... gibts in jedem Elektronikhandel zu kaufen, diese kleine Wählton-Fernbedienungen... Die gibt es (oder gab es :D) hauptsächlich, um damit seinen Anrufbeantworter fernbedienen zu können auch von Telefonen aus, die noch das Pulswahl-Verfahren nutzen.

Ich sehe da den Zusammenhang nicht zwischen Erzeugung eines Tons und illegalen Aktivitäten... Selbst wenn... dann würde man eben mit den Tönen aus den Lautsprechern eine Nummer anwählen anstelle der Töne, die das Telefon selbst erzeugt. In beiden Fällen kommt eine Verbindung zu stande und wird auch auf den gleichen Anschluss abgerechnet.
 
T

the asker

Gast
OMG, 1100 hz - das Fax signalisiert damit einen Handshake.
Nichts anderes.
Phreaking? - Ich habe ne gute Flatrate.

@moormaster: Vielen Dank für Deinen Ratschlag: wenn die Fernbedienung powered by Java ist
würde ich
a) Java verehren und
b) Den Sourcecode sehen wollen!

Vielen Dank!

MfG
the Asker
 

moormaster

Top Contributor
Der Sourcecode is ganz einfach... ne Sinuskurve mit Frqeuenz f zu erzeugen und als Sample auszugeben dürfte kein Problem sein... welche Frequenzen die einzelnen Wähltasten haben, kann man im Internet nachlesen... aber was hätte man davon?
 
T

theasker

Gast
Ich will nicht wählen!!
Ich will einfach nur nen einfachen Ton mit x hertz und y sec. länge mit Java erzeugen.
Mehr nicht


:(

the asker
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Javax.Sound Problem (setMessage-Methode) Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben