Пару недель назад мы с моим учителем по фортепиано обменивались идеями относительно программного обеспечения для мета-сочинения музыки. Идея была такая:
Есть система, которая принимает MIDI-вход от множества инструментов и передает выходной сигнал на динамики и источники света. Программное обеспечение, работающее в этой системе, анализирует полученные MIDI-данные и определяет, какие звуки использовать, на основе триггеров, установленных композитором (когда я играю аккорд F7 3 раза в течение 2 секунд, переключитесь со звука клавесина на звук фортепиано. ), педали или анализ музыки в реальном времени. Он будет управлять светом в зависимости от исполнения и звуков инструментов аналогичным образом - музыканту нужно будет лишь смутно указать, что он хочет, - а все остальное сделает анализ его игры в реальном времени. Процедурно сгенерированная музыка «на лету» тоже могла подыгрывать музыканту. По сути, программа будет играть вместе с исполнителем, и один направляет другого. Я полагаю, что потребуется некоторая практика, чтобы привыкнуть к такой системе, но она может дать довольно невероятные результаты.
Я большой поклонник импровизационного джаза. Одной из характеристик импровизации, которой не хватает в других формах искусства, является ее временность. Картина может быть оценена через 10 или 1000 лет после того, как она была написана, но музыка (особенно импровизированная) - это исполнение, поскольку это творение. Я думаю, что программа, которую я описал, значительно повысила бы производительность, поскольку игра одной и той же пьесы каждый раз приводила бы к совершенно разному шоу.
Итак, теперь вопросы.
Я сумасшедший?
Существует ли еще программное обеспечение для выполнения всего этого или всего этого? Я провел небольшое исследование и ничего не нашел. Ключ к этой системе в том, что она работает во время выступления.
Если бы я написал что-то подобное, мог бы язык сценариев, такой как Python, быть достаточно быстрым, чтобы выполнять нужные мне вычисления? Предположительно, он будет работать на довольно быстрой системе и сможет использовать преимущества 2 ^ n ядерных процессоров, которые Intel продолжает выпускать.
Может ли кто-нибудь из вас поделиться своим опытом и советами относительно взаимодействия с музыкальными инструментами, световыми приборами и т.п.?
Есть идеи или предложения? Холодная и резкая критика?
Спасибо за то, что уделили время, прочитав это, и за любые советы! (И извините за шутку в тегах, я не удержался.)
Я думаю, что в глубине души вы правы, хотя визуализаторы - это только один путь: музыка-> графика, где это будет обоими способами - музыка может влиять на освещение и тому подобное, а система может влиять на звуки инструментов .





Я довольно широко использовал PyAudio для работы с необработанными аудиовходами и обнаружил, что он очень непифоничен, действуя больше как тонкая оболочка очень над кодом C. Однако, если вы имеете дело с midi, а не с необработанными сигналами, тогда ваши задачи немного проще, и python должен быть достаточно быстрым, если вы не играете со скоростью 10000 ударов в минуту :)
Некоторые из вопросов: обнаружение одновременности, гармонический (формальный - т.е.аккордовая структура) анализ.
Это также проблема 80/20: если вы ограничите разрешенные последовательности аккордов, то все станет немного проще. В конце концов, что вообще означает «подыгрывать», не так ли?
(Кроме того, на конференции электронной музыки я тоже был, там много людей проводят различные эксперименты с аккомпанементом в реальном времени, основанные на входном звуке и движении). Удачи!
Я думаю, что в качестве первой цели программное обеспечение могло бы обнаруживать триггеры одной ноты и просто воспроизводить окружающие звуки - возможно, угадать ключевую сигнатуру. Как называются эти конференции электронной музыки? Если это делают другие люди, было бы здорово связаться с ними.
Посмотрите на PureData. Он может выполнять обширный анализ midi, и люди используют его для повышения производительности.
Действительно, вот видео, который мигает за экраном чистых данных. Он показывает, как кто-то взаимодействует с довольно сложным инструментом с помощью PD.
Также посмотрите CS звуки.
Люди использовали Макс MSP для такого рода вещей с Midi и создания видео-сопровождения или просто Midi-сопровождения. Это полностью специфичное для предметной области приложение, которое, вероятно, было вдохновлено светской беседой или чем-то в этом роде, что вряд ли может понравиться любому настоящему программисту, но музыканты-программисты любят.
Несмотря на текст на сайте, на который я только что ссылался, и тот факт, что «все» используют коммерческую версию, это не всегда был коммерческий продукт. Ircam в конце концов выпустил свой собственный родословная. Он называется jMax. PureData, упомянутый в другом посте, является еще одной переписыванием той линии передачи.
Также есть CSound; который не предназначался для работы в режиме реального времени, но, вероятно, теперь может работать в режиме реального времени, когда у вас есть приличный компьютер по сравнению с тем, на котором начинался CSound.
Некоторые люди также взломали расширения Macromedia Director, чтобы можно было делать файлы midi в Lingo ... Это очень устарело, и поэтому некоторые из них перешли в среду более современный Adobe.
Вы также можете взглянуть на ChucK и Суперколлайдер, два самых популярных «настоящих» языка программирования музыки в реальном времени.
Кроме того, вы можете быть удивлены, насколько многого можно достичь с помощью стоек Ableton Live.
(и это CSound. Нет в конце)
Вы можете связаться с Гэри Ли Нельсоном в Отдел TIMARA в Оберлине. 20 лет назад я сделал проект, который автоматически сгенерировал ритм-секцию для 12-тактного блюза, и я помню, как он описывал инструмент, который, как он знал, делал по существу то, что вы описываете.
Возможно, вас заинтересует GenJam
Ответ на ваш вопрос - нет - вы не сошли с ума. Подобные системы существуют, но ваше описание красивое расплывчато с самого начала, так что это не та спецификация, против которой можно судить.
Я предлагаю вам начать писать прототип и посмотреть, как он будет работать. Что-то очень маленькое и простое. Будь прокляты существующие системы.
Я использую C++ на win32 api (без mfc). Начал писать свой секвенсор еще на Amiga500. Он не светится, но в музыке есть чем заняться.
Удачи тебе. Это ЧРЕЗВЫЧАЙНО веселый проект. Я бы сказал - не копируйте свой проект на то, как работают другие проекты. Потому что, если вы спросите меня, они не так хорошо работают;) И самое интересное - это возможность делать что-то другое.
это звучит отдаленно похоже на крутящуюся графику, которую большинство медиаплееров будет генерировать на основе MP3 - за исключением добавленного компонента смены инструментов, или я прочитал это неправильно?