Программное обеспечение Synth Library для Java

В последнее время я много думал о музыкально-ориентированном проекте, над которым я хотел бы работать. Вид вроде игры... вроде как студийная рабочая станция (FL Studio, Reason).

Думаю, лучший способ описать это будет: например, "Guitar Hero", но без консервов. Вся оригинальная музыка - составленная вами, на лету - но программное обеспечение будет использовать свои знания теории музыки (а также некоторые контролируемые алгоритмы обучения), чтобы убедиться, что ваш вход превращается в нечто, что звучит отлично.

Это звучит немного глупо, объясняя это так, но я пойду. Это то, что я думаю, создало бы интересный побочный проект.

Во всяком случае, я ищу библиотеку Java для генерации фактического звука. Просмотр на Sourceforge, Есть бесчисленные программные синтезаторы, и я понятия не имею, что выбрать.

Мой главный приоритет в том, что он должен звучать невероятно... На самом деле богатые, слоистые, текстурированные синтезаторы, с настройками настраиваемых параметров. Эмуляция акустических инструментов для меня не важна.

Моим вторым приоритетом является то, что его следует прямо использовать как библиотеку, без какого-либо графического интерфейса. (Если есть синтезатор с действительно захватывающим выходом, но он тесно связан с графическим интерфейсом, то я мог бы рассмотреть возможность копирования аудио-части из приложения, но я бы предпочел начать с хорошо сложенной библиотеки).

Я знаю, что могу отправить MIDI на автономный синтезатор, но я думаю, было бы здорово прочитать фактический код синтезатора и узнать немного DSP, пока я нахожусь на нем.

Любые предложения?

О да, я нахожусь в Windows, так что ничего не стоит.

Спасибо!

Ответы

Ответ 1

Вы проверили JFugue? Это "Java-API с открытым исходным кодом для программирования музыки без сложностей MIDI".

Дополнительная информация: Найден пару других ресурсов, на которые ссылается Документация JFugue (pdf):

  • Проект создания аудиосинтеза: версия синтезатора Javas MIDI с открытым исходным кодом

  • Gervill: программный синтезатор с открытым исходным кодом, созданный в качестве предложения для проекта Engine Synthesis Engine

Ответ 2

Да, я заметил JFugue несколько лет назад. Это в моем списке интересных компьютерных/музыкальных закладок:

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

Но JFugue - это все о структуре самой музыки... мелодии, гармонии, ритмы и т.д.

То, что я ищу сейчас, - это просто синтезатор. Что-то вроде этого...

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

И затем я отправлю свои события в поток MIDI (или в любой управляющий API, предоставляемый библиотекой synth).

Ответ 3

Если Clojure является приемлемым вариантом (работает на JVM, легко интегрируется с Java), то определенно стоит проверить Overtone.

Он использует SuperCollider в качестве механизма синтеза, но обертывает все это в приятной DSL и интерактивной среде программирования.

Ответ 4

minim - это не совсем java-синтезатор, но это библиотека обработки, и я полагаю, что она должна быть довольно проста в использовании с ванильной java тоже.