Алгорейв — другое название алгоритмической музыки, когда композиции создаются и изменяются строками кода. Еще так называются дискотеки, где танцуют под музыку, которую ди-джей написал только что, а творческий процесс, то есть код, проецируется на экран. Такая импровизация в реальном времени называется «лайв-кодинг».
Слово algorave (algorithm + rave) придумал Алекс Маклин (Alex McLean) — британский музыкант и создатель одной из первых программ для лайв-кодинга — TidalCycles. Она позволяет не только создавать композиции, но и объединяться с другими музыкантами. Такие самодельные системы распространены в мире алгоритмической музыки. Алгорейверы используют инструменты из открытых источников, скомпилированный код и библиотеки. Они выкладывают в открытый доступ всё, что создают сами, поэтому все системы и приемы доступны и новичку, и профессионалу. «Такая система, в которой делятся всем, что создают — это почти политический акт», — заметил Алекс Маклин. — «Это как поставить в рамки сам капитализм».
Стиль algorave
При всем сходстве с популярной электроникой алгоритмическая музыка звучит странно. Большую роль в этом сыграл размер. Композиции на алгорейве чаще всего следуют размеру, который Пьер Буле в 1963 году назвал «smooth time», в противоположность «striated time». В «гладкой» музыке алгорейва нет чередования сильных и слабых долей, нет счёта — отсюда хаотичный, монотонный стиль.
Как это работает
Для лайв-кодинга вам понадобится набор музыкальных сэмплов — звуков, партий инструментов (например, SuperDirt из SuperCollider) и программа, собирающая эти звуки в паттерны по заданным правилам и структуре (вроде TidalCycles).
TidalCycles (или Tidal) часто используют как на алгорейвах, так и для сочинения музыки в студиях. Паттерны проигрываются циклами. Длина циклов не меняется, но содержать они могут сколько угодно сэмплов, поэтому чем больше сэмплов в цикле, тем быстрее они будут проигрываться. Так, следующие три строки кода играют музыку с одинаковой длительностью:
d1 $ sound «bd sd»
d1 $ sound «bd sd hh cp mt arpy drum»
d1 $ sound «bd sd hh cp mt arpy drum odx bd arpy bass2 feel future»
Что дальше делать с паттерном — выбор музыканта. Управляющие шаблоны, функции и эффекты дополняют, меняют, усложняют композицию в режиме реального времени. Вот пример строки кода в TidalCycles:
d1 $ every 4 (rev) (sound «bd2 [bd [sn sn2 sn] sn]»)
Эта строка заставляет паттерн играть наоборот (rev) при каждом четвертом цикле (every 4). А паттерн состоит из последовательности сэмплов бас-барабана (bd) и малого барабана (sn).
«Передвигать сэмплы вручную, расставлять их на дорожке — это ужасно нудная работа», — считает Реник Белл, американский музыкант и программист, лайв-кодер. — «Поэтому раньше мне нужно было несколько недель или даже месяцев, чтобы создать трек. А с алгоритмами сам процесс становится перформансом, при этом легко контролировать результат, легко менять структуру всей композиции. Отсюда огромный потенциал алгоритмической музыки».
Научиться лайв-кодингу может любой. Подробную инструкцию со всеми необходимыми программами и туториалами можно найти на сайте TidalCycles.
Источники
- Algorave Generation
- Блог Алекса Маклина
- DJs of the Future Don’t Spin Records — They Write Code
- Bernard Bel. Rationalising Musical TIme