Мета-композиция во время музыкальных выступлений


Пару недель назад мы с моим учителем игры на фортепиано обменивались идеями, касающимися программного обеспечения для мета-сочинения музыки. Идея была такова:

Есть система, принимающая midi-вход от группы инструментов, и толкает выход к динамикам и огням. Программное обеспечение, работающее на этой системе, анализирует получаемые midi-данные и определяет, какие звуки использовать, основываясь на триггерах, настроенных композитором (когда я играю аккорд F7 3 раза в течение 2 секунд, переключитесь с клавесин звук к звуку фортепиано), педали или фактический анализ музыки в реальном времени. Он будет управлять светом на основе исполнения и звуков инструментов аналогичным образом - музыкант должен будет только неопределенно указать, что они хотят, - а анализ их игры в реальном времени сделает все остальное. На лету процедурно сгенерированная музыка также могла играть вместе с музыкантом. По существу, программное обеспечение будет играть вместе с исполнителем, причем один будет направлять другого. Я представьте себе, что потребуется некоторая практика, чтобы привыкнуть к такой системе, но что это может иметь совершенно невероятные результаты.

Я большой поклонник импровизационного джаза. Одной из характерных черт импровизации, отсутствующей в других видах искусства, является ее временность. Картина может быть оценена через 10 или 1000 лет после того, как она была написана, но музыка (особенно импровизированная музыка) - это представление, как и создание. Я думаю, что программное обеспечение, которое я описал, добавило бы очень много к представление, как и с ним, поскольку воспроизведение одной и той же пьесы каждый раз приводило бы к совершенно другому шоу.

Итак, перейдем к вопросам.

Я сошел с ума?

Существует ли программное обеспечение для выполнения любого или всего этого? Я провел кое-какие исследования и ничего не нашел. Ключ к этой системе заключается в том, что она работает во время выполнения.

Если бы я написал что-то подобное, был бы скриптовый язык, такой как Python, достаточно быстрым для выполнения вычислений, которые я нужно? Предположительно, он будет работать на довольно быстрой системе и сможет воспользоваться преимуществами 2^n-ядерных процессоров, которые Intel продолжает выпускать.

Может ли кто-нибудь из вас поделиться своим опытом и советами относительно взаимодействия с музыкальными инструментами, светом и тому подобным?

Есть какие-нибудь идеи или предложения? Холодная и жесткая критика?

Спасибо за ваше время в чтении этого, и за любой и все советы! (И извините за шутку в тегах, я не смог удержаться.)

8 12

8 ответов:

Люди использовали Max MSP , чтобы делать такие вещи с Midi и создавать видео-сопровождение, или просто Midi-сопровождение. Это полностью доменное приложение, которое, вероятно, было вдохновлено светской беседой или чем-то еще, что вряд ли мог бы полюбить любой настоящий программист, но музыкант-программист любит.

Несмотря на текст на сайте, на который я только что ссылался, и тот факт, что " все " используют коммерческую версию, это не всегда был коммерческий продукт. Ircam в конечном итоге выпущен это собственная родословная . Он называется jMax. PureData , упомянутый в другом посте, является еще одним переписыванием этой линии.

Есть также CSound; который не должен был быть в реальном времени, но, вероятно, может быть довольно реальным теперь, когда у вас есть приличный компьютер по сравнению с тем, где начинался CSound.

Некоторые люди также взломали расширения Macromedia Director, чтобы позволить делать midi-вещи на жаргоне... Это очень устарело, и поэтому некоторые из них переехали в более современные среды Adobe.

Посмотрите на PureData . Он может делать обширный анализ midi, и люди используют его для производительности.

Действительно, вот видео , которое мелькает мимо экрана puredata. Это показывает, что кто-то взаимодействует с довольно сложным инструментом, использующим PD.

Также посмотрите на CSounds.

Я довольно широко использовал PyAudio для работы с необработанными аудиовходами и обнаружил, что он очень неэфирен, действуя гораздо больше как Очень тонкая оболочка над кодом C. Однако, если вы имеете дело с midi, а не с raw-формами сигналов, то ваши задачи намного проще, и python должен быть достаточно быстрым, если вы не играете со скоростью 10000 ударов в минуту:)

Некоторые вопросы: обнаружение одновременности, гармонический (формальный - т. е., структура аккорда) анализ.

Это также проблема 80/20, что если вы ограничите допустимые прогрессии аккордов, то она станет совсем немного проще. В конце концов, что значит "подыгрывать", верно?

(кроме того, в electronic music conf я тоже был, есть много людей, делающих различные эксперименты с аккомпанементом в реальном времени, основанные на входном звуке и движении). Удачи вам!

Вы также можете посмотреть на ChucK и SuperCollider, два самых популярных "реальных" музыкальных языка программирования реального времени.

Кроме того, вы можете быть удивлены, как много вы можете сделать с Ableton Live стойки.

(и это CSound. Нет 's' в конце)

См. также:

Я понятия не имею, является ли второй на самом деле реальным или стоит посмотреть. Однако Keykit, это.

Вы можете связаться с Гэри ли Нельсоном в отделе тимара в Оберлине. 20 лет назад я сделал проект, который автоматически сгенерировал ритм-секцию для 12-барного блюза, и я помню, как он описывал инструмент, который он знал, который делал в основном то, что вы описываете.

Вас может заинтересовать GenJam

Ответ на ваш вопрос-нет, вы не сумасшедший. Подобные системы существуют, но ваше описание довольно расплывчато для начала, так что это не так уж много спекуляций, чтобы судить против.

Я предлагаю вам начать писать прототип и посмотреть, как это делается. Что-то очень маленькое и простое. К черту существующие системы.

Я использую c++ на win32 api (без mfc). Начал писать свой секвенсор обратно на Amiga500. Он не делает свет, но есть много, чтобы сделать просто музыку.

Хорошо удачи тебе. Это очень интересный проект. Я бы сказал-не моделируйте свой проект на том, как работают другие проекты. Потому что, если вы спросите меня, они не так уж хорошо работают. ;) И самое интересное-это возможность делать что-то другое.