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

Я начал работу над новым проектом аудио программного обеспечения!

Рабочее название — просто Genome. Это инструмент для секвенирования музыки, вдохновленный эволюционными процессами мутации и отбора. В этом проекте я буду вести журнал разработки в надежде выделить концепции, мотивы, проблемы и технические детали на протяжении всего процесса, от концепций до кодирования и, в конечном итоге, релиза. Я надеюсь, что эти записи обеспечат полезную информацию для будущих пользователей и, возможно, даже для соавторов. Давайте приступим к этому…

Итак, что такое Genome Audio Sequencer?

По своей сути Genome похож на традиционный пошаговый секвенсор, который можно найти в таких программах, как Ableton Live или Logic. Однако геном отличается. Общая концепция заключается в том, что с помощью Genome вы можете создавать последовательности музыки или звука, которые переходят из одной последовательности в другую.

В настоящее время я планирую, что это будет отдельное настольное приложение, используемое для создания фоновых звуковых ландшафтов для концентрации внимания и творчества. Не планируется, что это будет плагин VST, у него не будет MIDI, и он не обязательно предназначен для интеграции с другими продуктами. Хотя это может измениться в будущем.

Выше показан первоначальный набросок Генома, над которым я работал последние несколько дней. Основная цель этого занятия по наброску — объединить все основные функции и идеи в один дизайн, чтобы начать думать о том, как каждый компонент будет взаимодействовать. Концепция этого инструмента пришла мне в голову сразу, так что это был хороший способ изложить все «на бумаге». Это всего лишь каркас, фактический дизайн будет продолжать меняться по мере того, как я буду кодировать пользовательский интерфейс. Вполне вероятно, что каждая секция на приведенном выше эскизе будет отображаться в своем собственном виде, а не в одном и том же пространстве. Далее я разберу каждый «модуль» инструмента.

Генные последовательности, гены и нуклеотиды

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

Полный геном

В нижней части скетча находится редактор генома. Геном представляет собой набор последовательностей. Длина генома изменчива, и, поскольку последовательности генов также изменчивы, последовательность будет повторяться, если длина всего генома больше, чем последовательность. Заметьте также, что последовательности могут быть смещены в начале. Я думаю, что это создаст интересные ритмические возможности. Также в этом разделе пользователь может выбрать темп и музыкальную гамму или группу аккордов для воспроизведения генома. Я пока не уверен, как будут расположены гаммы. Это концепция, требующая дальнейшего изучения.

Эвольвер

В правом верхнем углу эскиза вы можете увидеть раздел под названием Evolver. По сути, это раздел «плеер», который запускает звук и со временем изменяет последовательности. После того, как пользователь создал библиотеку геномов, он может изменить их порядок, нажать кнопку воспроизведения, и эволюция начнется с верхней части списка и будет развиваться по всей коллекции.

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

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

Да начнется кодирование!

В этих набросках многое происходит, и предстоит проделать большую работу, чтобы реализовать эту идею. Я начинаю с создания модели данных и выясняю, как будет работать процесс эволюции. Я планирую написать еще одну статью, как только хорошо разберусь с этим. Следите за обновлениями!