Любой музыкальный альбом (или отдельный трек), это всегда запись, эхо однажды сыгранного, синтезированного, прозвучавшего.
Любое живое выступление, это эхо однажды задуманного, отрепетированного, выученного.
Любое живое импровизированное выступление это такое же эхо как и предыдущее, но короткое — уменьшается лишь время от принятия решения до его исполнения.
В любом случае, музыка — это эхо некоторой мысли.
Новый проект от DFAP предлагает теперь слушать как музыку не найденные звуки повседневности, но данные о движении общественного транспорта. Каждая из ссылок ниже ведёт на веб-сайт, подтягивающий “в прямом эфире” данные о скорости и координатах движения транспорта, и запускает алгоритм интерпретирующий (сонифицирующий) эти данные.
Музыкальный альбом здесь представлен как набор гиперссылок, композиции не имеют фиксированной продолжительности, алгоритм дирижирует данными и озвучивает их прямо у вас на глазах на основе информации, возникающей прямо сейчас. Прямо у вас на устройстве звучит не запись, но именно живое импровизированное выступление*.
На момент публикации этого текста администрация МУП КТТУ не поставлена в известность об этом проекте (принудительная коллаборация), в связи с чем водители транспорта не подозревают, что каждый раз давя на педаль своей машины управляют ещё какими-то процессами.
Примерно после 22:00 по московскому времени количество транспорта начинает резко сокращаться, делая звук менее динамичным и более скудным, поэтому ночное время не рекомендуется для прослушивания.
* Случайность это некоторое упрощение, сокрытие череды событий, которые приводят к определённому результату; именно благодаря сокрытию определённый результат превращается в неопределённый.
Истинно случайными считаются квантовые процессы, либо процессы, так или иначе имеющие отношение к микромиру, в которых постулируется принципиальная невозможность "заглянуть под капот" происходящих на этом уровне процессов, и невозможность объять их все сразу (например, принцип неопределённости Гейзенберга, который, проще говоря, гласит, что чем точнее мы вычисляем одни величины, тем больше от нас ускользают другие).
В программировании и криптографии существует термин “псевдослучайность”. Ведь мы понимаем, что машина не может генерировать случайные числа — она генерирует только то, что ей строго предписано. Поэтому компьютер или смартфон могут генерировать только псевдослучайные величины: то есть, берётся некий внешний процесс, с ним проводятся некие математические операции, которые в определённом приближении дают числа, похожие на случайные. Например, в большинстве браузеров псевдослучайные величины генерируются на основе текущего времени (вплоть до миллисекунд), в которое был вызван метод генерирующий эти величины. Теоретически, мы можем предсказать любую такую величину в любой момент времени. Однако, довольно сложно вызвать метод ровно в ту самую, нужную миллисекунду, чтобы получить нужное псевдослучайное число. Да и в целом мы понимаем, что для тех задач, где эти числа генерируются, никто такими вычислениями заниматься попросту не будет.
Из этого следует, что компьютер генерирует весьма конкретные величины, вполне предсказуемые и детерминированные, но случайными мы их называем в рамках некоторого допущения.
Является ли движение общественного транспорта случайным? Когда мы стоим на остановке и видим подъезжающий транспорт, мы думаем, что именно этот транспорт случайно "выпал"; по сути, само ожидание транспорта на остановке есть игра в рулетку, по крайней мере до тех пор, пока не выпадет "выигрышный" номер маршрута, тот, ради которого мы на эту остановку пришли.
Хотя на самом деле мы понимаем, что весь транспорт скорее всего движется по заранее сформированному расписанию и следует в более-менее строгом порядке, а если не следует — то это конкретные обстоятельства на дороге, пробки, аварии, поломки и так далее.
То есть, если разобраться, если промониторить расписание и ситуацию на дороге, то элемент случайности несколько рассеивается.
А если представить, что у нас есть сервис, осуществляющий слежку за транспортом по сигналам GPS/ГЛОНАСС и отображающий движение транспорта на экране, то абсолютно случайное событие может трансформироваться в абсолютно детерминированное при первом же взгляде на экран (при условии, конечно, что сервис работает корректно).
Продолжая эту линию рассуждения, можно дойти до крайности и сказать, что в нашей повседневности случайности в исконном смысле нет, а есть только псевдослучайность, а значит и алеаторика невозможна (по крайней мере, если она не основана на квантовых процессах, используя аппаратные генераторы случайных чисел).
В одной
консерватóрской диссертации
было найдено следующее:
“Я. Ксенакис приравнивал понятия «алеаторики», «случайности» и «импровизации», отдавая предпочтение последнему: «”алеаторика”, по сути “музыкальная импровизация” означает, что исполнителю оставлен выбор». По его мнению, «выражение “алеаторная музыка” в действительности означает
импровизируемая музыка. Использование слова “алеаторика”, в его научном смысле означающее “случайность”, вместо импровизации совершенно неправильно и выражает ложную и сентиментальную позицию». Но термин «импровизация» имеет устоявшееся значение как искусство музицирования,
создания произведения непосредственно в процессе исполнения музыки. Импровизация в народной, джазовой или восточной религиозной музыке может быть обусловлена каким-либо контекстом (художественный вкус и опыт исполнителя, его навыки, техника игры и знания в области музыкальных
жанров, стилей, методов сочинения, наконец, эстетических принципов), но не предопределена никем, кроме самого исполнителя. Импровизация же алеаторной музыки (например, графических или вербальных партитур) представляет особый род исполнительского искусства, который можно скорее
назвать свободной интерпретацией авторского замысла. Сам термин «импровизация» не может служить синонимом «алеаторике».”
Однако, кажется, что сам этот "контекст исполнения", жанр, традиция и культурная ситуация в целом являют собой вкупе "композитора композиторов", который, в определённой степени, предопределяет действия композитора или импровизирующего исполнителя. Или, если ближе технические термины, жанр это некий API, набор свойств, методов и способов обращения к ним, набор готовых алгоритмов, обращаясь к которым мы "получаем доступ" к определённым звукам.
В любом случае, как бы строго или свободно мы не трактовали термины, как бы не рассуждали о природе случайности или предопределённости, мы всегда можем поставить под сомнение случайность случайного и детерминированность детерминированного, а значит можем ставить под сомнение алеаторичность любой композиции. Концерт для оркестра также оказывается в промежуточном положении: с одной стороны мы получаем абсолютно непредсказуемое поведение при первом взгляде на работу алгоритма, с другой стороны порядок его работы строго определён, а движение транспорта не так уж и хаотично. Однако, алгоритм принимает все музыкальные решения в самый последний момент, также как и водители, управляющие своими машинами, принимают решения “прямо сейчас”, ориентируясь на ситуацию на дороге. И хоть эти решения могут быть в целом прогнозируемыми, точно мы их не предскажем, а время от принятого решения до его озвучания довольно короткое, в связи с чем мы можем с некоторой долей вольности называть композиции Концерта импровизациями.
Техническое описание
Алгоритм регулярно получает данные о движении общественного транспорта с сервера в Латвии, предоставляющего эти данные нескольким транспортным сервисам в нескольких городах России и прибалтики, и парсит эти данные в несколько массивов, в которых содержится информация о скорости, типе транспорта, маршруте и координатах. Далее, на основе этих данных отрисовываются маркеры движущегося транспорта на карте.
Параллельно с этим алгоритм генерирует массив частот тонов в рамках равномерно темперированного строя:
- для первой части: от ноты ре малой октавы (146.8324 Гц) вверх в четвертитоновом строе (24 ноты в октаве);
- для второй части: от ноты ля контроктавы (55.0000 Гц) вверх в семиступе́нном строе (7 нот в октаве);
- для третьей части: от ноты ля контроктавы (55.0000 Гц) вверх в восьминатоновом строе (48 нот в октаве);
- для четвёртой части: от ноты си первой октавы (493.8832 Гц) вверх в трёхсотступе́нном строе (300 нот в октаве);
В дальнейшем, алгоритм будет сопоставлять каждому из тонов скорость в км/ч так, что чем выше скорость, тем выше тон.
Первые две части вычисляют среднюю скорость движения трафика и мониторят её изменение. В случае, если средняя скорость движения в городе увеличивается, расстояние между тонами во времени уменьшается (тоны играются чаще). В случае, если средняя скорость движения уменьшается, расстояние между тонами увеличивается (тоны играются реже).
В третьей и четвёртой частях расстояние между тонами фиксированное.
Всеми вопросами, связанными с данными о транспорте занимается сущность (javascript-метод) transportSupervisor, осуществляющий роль диспетчера, наблюдающего за движением каждого салона общественного транспорта в городе.
Все эти данные transportSupervisor передаёт другой сущности — orchestraConductor, выполняющей задачи дирижёра, звукового менеджера, принимающего конечное решение о том, какие звуки, в каком порядке, какой длительности и частоты будут звучать в каждый момент времени в композиции. Определив частоту тона и длительность до следующего, дирижёр передаёт эти данные третьей сущности — toneGenerator, задача которой сгенерировать затухающую синусоиду в рамках заданных параметров.
На карте подсвечиваются салоны, тон которых звучит в данный момент. Подробное описание всех действий дирижёра и отчёт о движении транспорта можно наблюдать в партитуре, формирующейся прямо во время исполнения.
(хотя по поводу партитуры здесь можно поспорить: если исходить из того, что партитура это алгоритм действий по извлечению звуков, то партитурой тогда можно назвать сам код программы, который определяет звучание; с другой стороны, партитуру можно понимать как запись конкретно прозвучавших нот в конкретной последовательности, по сути являясь текстовой документацией композиции)
Использованные технологии: html, sass, js, Web Audio API, Leaflet + OpenStreetMap + Stamen.