Программное обеспечение 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 тоже.