Пиксельный синтезатор. Версия 2016-12
Завершив симфонию Переосмысляя прогресс в 2015 году, я обещал, что скоро представлю публике пиксельный синтезатор, на котором писалась её Часть 3. Но мне было лень его допиливать. И как оказалось - совершенно зря. Сегодня я взял себя в руки и за один вечер довёл синтезатор до состояния, в котором на моём оборудовании нормально работают все его функции. Допиливать его можно ещё долго, а в последствии и добавлять функционала, но пока вот вам версия с тем функционалом, который был в Переосмысляя прогресс.
Официально синтезатор называется просто Pixel Synth. Версии будут обозначаться по месяцам. Эта версия - 2016-12.
Эту dll надо скопировать в ваш каталог с другими vst-плагинами, например, Program Files\Steinberg\VstPlugins. У меня синтезатор стабильно работает с разными версиями Cubase под Windows XP. Надеюсь, у вас заработает тоже.
Пример звучания синтезатора известен моим слушателям по третьей части симфонии Переосмысляя прогресс: https://www.youtube.com/watch?v=oOc4nkdS-Zk
Концепция пиксельного звука и новаторство данного синтезатора
В современной культуре музыкальным аналогом пиксельной графики (так называемого пиксел-арта) считается звук примитивных синтезаторов, использовавшихся в 1980-х годах в таких компьютерах и игровых системах как Nintendo (NES), Atari, Commodore 64, ZX-spectrum и т. д. (так называемый chiptune или 8-bit). Ключевая особенность этого звучания - строгая дискретность амплитуды всех музыкальных импульсов (как правило, это не 8-битные, а 4-битные и даже 1-битные импульсы). "Квадратные" формы этих сигналов на осциллографе напоминают пиксельную графику. Но на деле, аналогия между chiptune-музыкой и пиксельной графикой поверхностна, и возможен более строгий музыкальный аналог пиксел-арта, который в качестве эксперимента и был реализован в третьей части электронной симфонии "Переосмысляя прогресс".
Особенности человеческого слуха таковы, что нами непосредственно воспринимается не амплитудно-временная диаграмма сигнала, а его спектр (меняющийся во времени, но медленно в сравнении с самим колебаниями). Поскольку пиксельная графика подразумевает строгую дискретизацию по всем видимым параметрам (крупная сетка пространственных координат, малое количество цветов, хорошо отличимых друг от друга), строгий пиксельный звук должен, аналогично, иметь строго дискретную спектрограмму. Пиксельный звук должен удовлетворять следующим трём принципам.
Принцип 1. Дискретность по частоте. В сигнале присутствуют только компоненты с частотами определённых значений, хорошо различающиеся между собой на слух (частоты должны отличатся хотя бы на несколько процентов).
Принцип 2. Дискретность по амплитудам. Амплитуда каждой из компонент может принимать лишь небольшое количество различных значений. Изменение амплитуды даже на минимальную величину должно быть хорошо заметным на слух (минимальный скачок громкости должен составлять хотя бы порядка децибела).
Принцип 3. Дискретность по времени. Изменения спектра (изменения амплитуд частотных компонент) могут происходить только в определённые моменты времени, интервал между которыми фиксирован и хорошо различим на слух (не менее 1/20 секунды).
В полном музыкальном аналоге пиксельной графики необходимы все три принципа, тогда как большинство chiptune-музыки полноценно реализует только один из них (дискретность по амплитуде). Дискретность по времени в ней выполняется со слишком малым временным шагом порядка 1/50 секунды (на пределе временного разрешения слуха), а дискретность по частоте не выполняется вовсе (звук содержит огромное количество обертонов, большинство из которых в верхней части спектра сливаются в сплошной шум).
Подавляющее большинство существующих музыкальных инструментов неприменимы для полноценной реализации принципов пиксельной музыки. Некоторые аддитивные синтезаторы допускают "сборку" сигнала из отдельных гармоник. Например, можно сгенерировать звук, состоящий из шести гармоник с частотами 55, 110, 165, 220, 275, 330 Гц и амплитудами, кратными 6, 5, 4, 3, 2, 1. Но при попытке изменить громкость такого сигнала принцип дискретности амплитуд (Принцип 2) будет нарушен. Например, если сделать сигнал вдвое тише, то амплитуды 2-й, 4-й и 6-й гармоник станут дробными. Ещё большие проблемы возникнут при попытке наложить на сигнал эхо или иные эффекты.
Ввиду этих сложностей, для реализации пиксельной музыки автор написал специализированный синтезатор. Принципы пиксельной музыки были реализованы в нём в следующей форме.
1. Каждый звук (нота) состоит из набора синусоид с частотами темперированного музыкального звукоряда. Гармоники, выходящие за его рамки (например, гармоники с номерами 7, 14) не допускаются.
2. Каждая из синусиод может иметь амплитуды с дискретными значениями от 0 до 15.
3. Амплитуды синусоид могут меняться только в дискретные моменты времени через 1/32 ноту.
Звуки данного синтезатора определяются 7 настройками (или массивами настроек), некоторые из которых управляются по миди-контроллерам.
1. Volume - общая громкость, может иметь 16 градаций, управляется контроллером 7.
2. Сut - общая яркость, может иметь 16 градаций, управляется контроллером 74
3. Res - резонанс фильтра, может иметь 16 градаций, но реально на практике требуются лишь несколько нижних. По идее, должен управляться контроллером 71, но этого я ещё не допилил.
4. Amplitude Enevelope - кривая изменения громкости со временем.
5. Frequency Enevelope - кривая изменения яркости со временем.
6. Harmonics - главная настройка, которая определяет тембр звучания. В данной версии не допускает редактирование мышью, допускается только выбор из пресетов. Максимальное число гармоник - 24.
7. Formant Filter - фактически, просто многополосный эквалайзер, который, в отличие от внешних обработок, оставляет звук дискретным по всем амплитудам.
Система пресетов в данной версии синтазатора разработана минимально. Есть пресеты только для спектров, а не для целых полноценных патчей. Например, синусоида (sine), симметричный прямоугольник (sqr 1/2), асимметричные прямоугольники (sqr 1/4, sqr 1/8). Прямоугольники хорошо имитируют чиптюновские звуки, но отличаются от них отсутствием гармоник, не укладывающихся в темперированный ряд.
Зато звуки типа клавесина в готовом виде в пресетах отсутствуют, их надо рисовать самим. Впрочем, ничего трудного тут нет: выбираете асимметричный прямоугольник и рисуете в окне Amplitute Enevelope кривую затухания звука. А чтобы сделать орган как в ПП, надо выбрать пресет tri 4 bit (имитация 4-битного треугольника) и на нём дублировать все партии в 2-3 октавы.
Недоработки
Их много, и, наверное, вы поможете мне их ещё найти. Пока назову известные.
1. Эта версия синтезатора заметно щёлкает при переключении нот. Надо разобраться, неужели у меня в ПП это было так же заметно.
2. Она тормозная. С этим пока трудно что-то поделать, хотя как один из вариантов в будущем я рассматриваю появление в нём переключателя максимального числа гармоник между 8 и 24. При 8 гармониках всё работает радикально быстрее, и этого достаточно для некоторых звуков.
3. Спектр рисуется немного не теми цветами, которые я задумывал (сиреневый вместо синего). Мелочь, а хотелось бы исправить.
4. Не работает контроллер 71 для резонанса. Со временем постараюсь сделать.
5. Нет полноценной системы пресетов, кроме как на спектры. Но это немалая работа.
6. При ненулевом резонансе спектр получается не совсем таким, как я изначально задумывал. Где-то что-то не так перемножается.
Дальнейшие планы
Когда-то я продолжу работу над этим синтезатором. Особенно, если будет критика. Но пока главное, что я его выложил хотя бы в таком виде. То, что у меня полтора года не доходили до этого руки - позор. На этой версии по крайней мере можно работать. Но, разумеется, жду от вас отзывов о сбоях и недоработках.