2010-06-07 13 views
10

Ich möchte einfach eine sehr einfache, direkte Note spielen, indem ich meinem Computer eine bestimmte Frequenz als Integer gebe, und von dort aus kann ich herausfinden, wie man die Note länger oder kürzer spielen lässt. Es muss nicht unbedingt aus der Soundkarte kommen - wenn es vom internen Lautsprecher erzeugt und ausgegeben wird, ist das okay.Einfache Möglichkeit, eine einzige Frequenz in Java zu spielen?

Ich schaute auf die Midi-Bibliotheken, die Java enthalten hat, und sie sind viel mehr als das, was ich tun möchte. Dies muss nur sehr einfach sein.

Antwort

2

Diese example erstellt und spielt eine equal tempered scale.

+0

Das ist viel mehr Code, als ich erhofft hatte, aber sehr solide, und das kürzeste aus allem, was ich suchte. Vielen Dank! – nathas

0

Soweit ich weiß, gibt es keine Möglichkeit, dies ohne einige Standardcode in Java zu tun. Die einfachste API wird wahrscheinlich von der Applet-Klasse (kann auch von Nicht-Applets verwendet werden) in Form der statischen newAudioClip (URL-URL) -Methode bereitgestellt. Dies gibt Ihnen jedoch nur die Möglichkeit, vordefinierte Audioclips abzuspielen und Sie haben sehr wenig Kontrolle über das Audio. Wenn Sie nur Audio aus einem kleinen, vordefinierten Satz von Clips abspielen möchten, könnte es ausreichen (Sie könnten eine Reihe von WAV-Dateien haben, die Ihre Notizen enthalten und auf diese Weise abspielen, AudioClip kann bei Bedarf geloopt werden).

Darüber hinaus sind sowohl MIDI- als auch Sample-Audio-APIs viel leistungsfähiger, aber die Flexibilität hat ihren Preis: Sie benötigen wesentlich mehr Code, um sie einzurichten.

7

Schauen Sie in JFugue - es ist wirklich einfach, einige grundlegende Sachen zu tun, und die Fähigkeiten sind da, wenn Sie später erweitern möchten.

Player player = new Player(); 
player.play("A C# E"); 
+2

Darüber hinaus können Sie die MicrotoneHelper-Klasse von JFugue verwenden, um einem Buchstaben eine bestimmte Frequenz (in Hertz) zuzuordnen, und diesen Buchstaben dann als Note für die Tonwiedergabe verwenden. –

+0

Ooh, ist das neu? Ich habe noch nicht damit gespielt. (/ me lädt die neue Version herunter ...) –

Verwandte Themen