2008-09-27 21 views
13

Ostatnio dużo myślałem o projekcie muzycznym, nad którym chciałbym pracować. Trochę jak gra ... coś w rodzaju stacji roboczej studio (FL Studio, Reason).Software Synth Library for Java

Myślę, że najlepszym sposobem opisania byłoby: "Guitar Hero", ale bez ścieżek w puszkach. Cała oryginalna muzyka - skomponowana przez ciebie, w locie - ale oprogramowanie wykorzystywałoby swoją wiedzę z teorii muzyki (a także niektóre nadzorowane algorytmy uczenia się), aby upewnić się, że twoje wejście zostanie przekształcone w coś, co brzmi świetnie.

To brzmi trochę głupio, tłumacząc to w ten sposób, ale gotowe. To jest coś, co według mnie może stanowić interesujący projekt poboczny.

W każdym razie szukam biblioteki Java do generowania rzeczywistego dźwięku. Przeglądając na sourceforge, istnieje niezliczona ilość syntezatorów oprogramowania i nie mam pojęcia, które wybrać.

Moim priorytetem jest to, że powinien brzmieć niesamowicie ... Naprawdę bogaty, warstwowy, teksturowany syntezator, z porcjami konfigurowalnych parametrów. Emulacja instrumentów akustycznych nie jest dla mnie ważna.

Moim drugim priorytetem jest to, że powinno być proste, aby używać go wyłącznie jako biblioteki, bez żadnego GUI. (Jeśli jest syntezator z naprawdę zapierającym dech w piersiach wyjściem, ale jest ściśle powiązany z GUI, to mógłbym rozważyć zgrywanie części audio z aplikacji, ale wolałbym zacząć od ładnie zawartej biblioteki).

Wiem, że mógłbym wysłać MIDI do samodzielnego syntezatora, ale myślę, że byłoby fajnie czytać aktualny kod syntezatora i nauczyć się trochę DSP, gdy jestem w tym.

Wszelkie sugestie?

O tak, pracuję w systemie Windows, więc rzeczy posixowe nie mają szans.

Dzięki!

Odpowiedz

7

Czy wymeldowałeś się JFugue? Jest to "open-source Java API do programowania muzyki bez zawiłości MIDI".

Dodatkowe informacje: Znaleziono kilka innych zasobów przywołanych w JFugue documentation (pdf):

+0

Hej, napisałem tę dokumentację! Gdybym widział to pytanie wczoraj, zasugerowałbym również pożyczanie kodu z projektu Audio Synthesis Engine. –

3

Tak, zauważyłem JFugue kilka lat temu. Jest na mojej liście interesujących zakładek komputer/muzyka:

http://delicious.com/BenjiSmith/computermusic http://delicious.com/BenjiSmith/programming.java.libraries.music

Ale JFugue jest o strukturze samej muzyki ... melodie, harmonie, rytmy, etc ....

To, czego teraz szukam, to po prostu syntezator. Coś takiego...

Synth s = new Synth(); 
Instrument i = s.getInstrument("Robot Bass"); 
i.makeAwesome(true); 

A potem wyślę moje zdarzenia w strumieniu MIDI (lub cokolwiek do sterowania API biblioteki zapewnia synth).

+0

Dzięki za linki. Mam pomysł na zrobienie programu java-tracker, a te z pewnością przydadzą się. – Oddmund

0

minim nie jest dokładnie syntezatorem java, ale jest to przetwarzająca lib i wyobrażam sobie, że powinno to być całkiem łatwe w użyciu również z java vanilla.

1

Jeśli Clojure jest dopuszczalną opcją (działa na JVM, łatwa integracja z Javą), to zdecydowanie warto sprawdzić Overtone.

Wykorzystuje SuperCollider jako silnik syntezy, ale owija wszystko w ładne DSL i interaktywne środowisko programistyczne.