2010-06-07 3 views
10

Po prostu chcę zagrać bardzo prostą, prostą nutę, nadając komputerowi pewną częstotliwość jako liczbę całkowitą, a stamtąd mogę wymyślić, jak sprawić, by gra była dłuższa lub krótsza. To niekoniecznie musi wyjść z rzeczywistej karty dźwiękowej - jeśli jest generowane i wyprowadzane przez głośnik wewnętrzny, to jest w porządku.Prosty sposób na odtwarzanie pojedynczej częstotliwości w java?

Spojrzałem na biblioteki midi, które zawiera java, i są one o wiele bardziej niż to, co chcę zrobić. To musi być bardzo proste.

Odpowiedz

0

O ile wiem, nie ma sposobu, aby to zrobić bez jakiegoś kodu standardowego w Javie. Najprostszy interfejs API zapewniany jest prawdopodobnie przez klasę Applet (może być również używana przez nie-aplety) w postaci statycznego metody newAudioClip (URL url) - metody. Jednakże daje to po prostu możliwość odtwarzania predefiniowanych klipów audio i masz bardzo niewielką kontrolę nad dźwiękiem. Jeśli potrzebujesz tylko odtwarzać dźwięk z małego, predefiniowanego zestawu klipów, może wystarczyć (możesz mieć zestaw plików WAV zawierających notatki i odtwarzać je w ten sposób, AudioClip może być zapętlony, jeśli chcesz).

Poza tym zarówno interfejsy API audio, jak i samplowane są znacznie wydajniejsze, ale elastyczność ma swoją cenę: do ich skonfigurowania potrzeba znacznie więcej kodu.

7

Zajrzyj do JFugue - naprawdę łatwo jest zrobić kilka podstawowych rzeczy, a możliwości są dostępne, jeśli chcesz je później rozwinąć.

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

Ponadto można użyć klasy MicrotoneHelper JFugue, aby przypisać określoną częstotliwość (w hercach) do litery, a następnie użyć tej litery jako notatki do odtworzenia dźwięku. –

+0

Ooh, czy to nowe? Nie grałem jeszcze z tym. (/ ja pobiera nową wersję ...) –