Мета-композиция во время музыкальных выступлений
Пару недель назад мы с моим учителем игры на фортепиано обменивались идеями, касающимися программного обеспечения для мета-сочинения музыки. Идея была такова:
Есть система, принимающая midi-вход от группы инструментов, и толкает выход к динамикам и огням. Программное обеспечение, работающее на этой системе, анализирует получаемые midi-данные и определяет, какие звуки использовать, основываясь на триггерах, настроенных композитором (когда я играю аккорд F7 3 раза в течение 2 секунд, переключитесь с клавесин звук к звуку фортепиано), педали или фактический анализ музыки в реальном времени. Он будет управлять светом на основе исполнения и звуков инструментов аналогичным образом - музыкант должен будет только неопределенно указать, что они хотят, - а анализ их игры в реальном времени сделает все остальное. На лету процедурно сгенерированная музыка также могла играть вместе с музыкантом. По существу, программное обеспечение будет играть вместе с исполнителем, причем один будет направлять другого. Я представьте себе, что потребуется некоторая практика, чтобы привыкнуть к такой системе, но что это может иметь совершенно невероятные результаты.
Я большой поклонник импровизационного джаза. Одной из характерных черт импровизации, отсутствующей в других видах искусства, является ее временность. Картина может быть оценена через 10 или 1000 лет после того, как она была написана, но музыка (особенно импровизированная музыка) - это представление, как и создание. Я думаю, что программное обеспечение, которое я описал, добавило бы очень много к представление, как и с ним, поскольку воспроизведение одной и той же пьесы каждый раз приводило бы к совершенно другому шоу.Итак, перейдем к вопросам.
Я сошел с ума?
Существует ли программное обеспечение для выполнения любого или всего этого? Я провел кое-какие исследования и ничего не нашел. Ключ к этой системе заключается в том, что она работает во время выполнения.
Если бы я написал что-то подобное, был бы скриптовый язык, такой как Python, достаточно быстрым для выполнения вычислений, которые я нужно? Предположительно, он будет работать на довольно быстрой системе и сможет воспользоваться преимуществами 2^n-ядерных процессоров, которые Intel продолжает выпускать.
Может ли кто-нибудь из вас поделиться своим опытом и советами относительно взаимодействия с музыкальными инструментами, светом и тому подобным?Есть какие-нибудь идеи или предложения? Холодная и жесткая критика?
Спасибо за ваше время в чтении этого, и за любой и все советы! (И извините за шутку в тегах, я не смог удержаться.)
8 ответов:
Люди использовали Max MSP , чтобы делать такие вещи с Midi и создавать видео-сопровождение, или просто Midi-сопровождение. Это полностью доменное приложение, которое, вероятно, было вдохновлено светской беседой или чем-то еще, что вряд ли мог бы полюбить любой настоящий программист, но музыкант-программист любит.
Несмотря на текст на сайте, на который я только что ссылался, и тот факт, что " все " используют коммерческую версию, это не всегда был коммерческий продукт. Ircam в конечном итоге выпущен это собственная родословная . Он называется jMax. PureData , упомянутый в другом посте, является еще одним переписыванием этой линии.Есть также CSound; который не должен был быть в реальном времени, но, вероятно, может быть довольно реальным теперь, когда у вас есть приличный компьютер по сравнению с тем, где начинался CSound.
Некоторые люди также взломали расширения Macromedia Director, чтобы позволить делать midi-вещи на жаргоне... Это очень устарело, и поэтому некоторые из них переехали в более современные среды Adobe.
Я довольно широко использовал PyAudio для работы с необработанными аудиовходами и обнаружил, что он очень неэфирен, действуя гораздо больше как Очень тонкая оболочка над кодом C. Однако, если вы имеете дело с midi, а не с raw-формами сигналов, то ваши задачи намного проще, и python должен быть достаточно быстрым, если вы не играете со скоростью 10000 ударов в минуту:)
Некоторые вопросы: обнаружение одновременности, гармонический (формальный - т. е., структура аккорда) анализ.
Это также проблема 80/20, что если вы ограничите допустимые прогрессии аккордов, то она станет совсем немного проще. В конце концов, что значит "подыгрывать", верно?
(кроме того, в electronic music conf я тоже был, есть много людей, делающих различные эксперименты с аккомпанементом в реальном времени, основанные на входном звуке и движении). Удачи вам!
Вы также можете посмотреть на ChucK и SuperCollider, два самых популярных "реальных" музыкальных языка программирования реального времени.
Кроме того, вы можете быть удивлены, как много вы можете сделать с Ableton Live стойки.
(и это CSound. Нет 's' в конце)
Вы можете связаться с Гэри ли Нельсоном в отделе тимара в Оберлине. 20 лет назад я сделал проект, который автоматически сгенерировал ритм-секцию для 12-барного блюза, и я помню, как он описывал инструмент, который он знал, который делал в основном то, что вы описываете.
Вас может заинтересовать GenJam
Ответ на ваш вопрос-нет, вы не сумасшедший. Подобные системы существуют, но ваше описание довольно расплывчато для начала, так что это не так уж много спекуляций, чтобы судить против.
Я предлагаю вам начать писать прототип и посмотреть, как это делается. Что-то очень маленькое и простое. К черту существующие системы.Я использую c++ на win32 api (без mfc). Начал писать свой секвенсор обратно на Amiga500. Он не делает свет, но есть много, чтобы сделать просто музыку.
Хорошо удачи тебе. Это очень интересный проект. Я бы сказал-не моделируйте свой проект на том, как работают другие проекты. Потому что, если вы спросите меня, они не так уж хорошо работают. ;) И самое интересное-это возможность делать что-то другое.