Ответ 1
Для фактической стороны музыки проверьте Chuck. Он позволяет программно синтезировать звуки. Вот видеоролик YouTube, показывающий пример Чака на работе. Другое видео, в котором показано, как работает Чак и как создавать основные звуки.
Примечание: это НЕ вопрос "музыка для программирования".
Мой вопрос:
Я хочу написать компьютерную программу, которая может синтезировать повторяющиеся биты (которые я могу контролировать через командную строку), чтобы передать музыку в уши.
Мне любопытно, есть ли существующие инструменты для этого (а если нет, какие библиотеки использовать).
Общая идея:
1) компьютер знает, что я делаю (с помощью команд, которые я запускаю, будь то в Vim, компилируются ли мои программы и т.д.)
2) компьютер знает мое общее настроение (количество подсчетов компилятора из-за "make", количество segfaults, ненулевые коды выхода, число git совершает)
3) компьютер знает мое состояние мозга (в зависимости от скорости набора, я либо кодирую, либо думаю)
Я хотел бы использовать их для получения какой-либо био-обратной связи для управления музыкой.
Именно поэтому музыка должна быть программно синтезирована (а не только некоторые существующие треки).
Для фактической стороны музыки проверьте Chuck. Он позволяет программно синтезировать звуки. Вот видеоролик YouTube, показывающий пример Чака на работе. Другое видео, в котором показано, как работает Чак и как создавать основные звуки.
Вы должны:
собирайте входные данные, на которых вы будете основывать свою музыку.
решить, как эти входные переменные повлияют на музыку
придумать алгоритмы для создания мелодий и ритмов
закодируйте все это в пакете синтезатора музыки
Ваши предметы "знают ваше настроение" и "знают ваше состояние мозга", вероятно, являются открытыми исследовательскими проблемами, стоящими на докторантуре, если вы достигли значительного прогресса в них!
Как только вы дойдете до последнего шага, я предлагаю Csound.
Csound - это звуковой дизайн, музыкальный синтез и система обработки сигналов, обеспечивающая возможности для композиции и производительности на широком спектре платформ. Это не ограничивается никаким стилем музыки, который уже много лет используется в создании классической, поп-музыки, техно, эмбиента, экспериментальной и (конечно) компьютерной музыки, а также музыки для кино и телевидения.
В стороне, у меня когда-то было видение, что серверная комната должна окружать окружающий мир статусом серверов. Таким образом, я настраиваю крикетные крипы с частотой, основанной на средней нагрузке, волк воет для событий входа в систему, которые видят хвост системного журнала, и сова кричит для (в то время относительно редких) веб-страниц...
В этом случае он просто удалился вместе на Python с некоторым базовым скреблем журнала....
archaeopteryx, вероятно, очень близок к части генерации бит.
Музыка как данные - очень интересный проект - по-видимому, вдохновленный SuperCollider и Chuck.
Он специально разработан так, что легко взломать/экспериментировать с живым - в основном, инструментарий для создания музыкальных DSL.
Отметьте Boodler, "инструмент звуковых эффектов с открытым исходным кодом".
JFugue - это библиотека с открытым исходным кодом (Java/JVM) для "программирования музыки без сложностей MIDI". см. статью
Легко начать и может послужить базой для вашей программы, как для ритмов, так и для мелодии.
Я не знаю, как бы я это сделал, но я мог бы взглянуть на Bootchart, что делает связку мониторинга процесса. Возможно, это может помочь в выяснении того, что происходит прямо сейчас.