SunVox - мощный модульный синтезатор и трекер. Идеально подходит для музыкальных экспериментов, поиска нового звучания и новых стилей. Кроссплатформенность программы дает возможность писать музыку где угодно и на чем угодно (даже на старых и медленных устройствах).
Официальная страница SunVox: https://warmplace.ru/soft/sunvox/index_ru.php
Первым в мире музыкальным трекером принято считать программу Ultimate SoundTracker, написанную немецким разработчиком и композитором Карстеном Обарски в 1987 году для компьютера Commodore Amiga. Программа была создана в первую очередь для написания музыки к играм. Своим внешним видом она напугала немало музыкантов с классическим образованием. Ее называли сложной и лишенной логики. Выглядел первый трекер примерно так:
Откуда столь странный интерфейс? Где нотный стан с символами нот?
Commodore Amiga обладал революционными аппаратными характеристиками для домашнего компьютера того времени. В частности, на нем был установлен звуковой чип Paula - настоящий цифровой сэмплер. В оперативной памяти лежали фрагменты (сэмплы) записанных звуков в формате PCM 8-бит. Чип Paula мог играть одновременно четыре сэмпла, динамически меняя их громкость и скорость - это давало четыре независимых канала (или трека), на каждом из которых могла играть определенная последовательность из сэмплов. Но четыре канала - не так уж много, при написании сложной музыки нужно очень аккуратно их использовать. Например, при взятии аккорда из трех нот у нас остается ровно один канал, на котором нужно умудриться расположить барабаны и бас. Поэтому интерфейс первых трекеров - ничто иное, как пульт управления звуковым чипом, представление компьютерной музыкальной композиции на самом низком уровне. Мы видим четыре аппаратных канала (колонки), и некую последовательность действий внутри. Все параметры чипа полностью подконтрольны пользователю. Это, кстати, объясняет смысл популярного направления чиптюн - музыки, написанной для аудиочипа (хотя сегодня чаще всего используются эмуляторы известных чипов, или вообще некая стилизация).
Так как трекеры писали программисты, их логика представляется крайне простой. Музыка - последовательность команд для звукового чипа. То есть - нечто, напоминающее программу на ассемблере. Последовательность исполняется сверху вниз. Для наглядности команды группируются по каналам, описанным выше. Команда говорит, например: играй сэмпл под номером 2 с громкостью 20. Или: плавно повышай тональность на этом канале. Команда обычно состоит из таких частей:
Номера из соображений компактности решили записывать в шестнадцатеричной системе счисления. Поэтому кроме цифр на экране мы видим и буквы, что неподготовленных пользователей окончательно сбивает с толку.
А коль скоро трекерная музыка - программа в буквенно-цифровом виде, то и редактировать ее можно, как в текстовом редакторе, при помощи обычной компьютерной клавиатуры. Отсюда вытекает один важный плюс трекеров - ноты и ритмические рисунки можно вбивать очень быстро, по аналогии со скоростным печатанием текста.
Еще один плюс исходит из желания программистов все упрощать. А именно: часто повторяющиеся куски кода нелепо каждый раз переписывать с нуля - достаточно выделить их в отдельные подпрограммы и далее указывать лишь адреса. Так же и в музыкальном коде. Например, припев повторяется два раза. Дублировать его вручную - неудобно и неэкономично. Поэтому припев выделяется в отдельную подпрограмму, которая в среде музыкальных редакторов называется паттерн (кусок партитуры), и далее по ходу композиции в нужных местах выставляется номер паттерна. Кроме того, если в дальнейшем захочется изменить пару нот в припеве, то сделать это нужно лишь в одном паттерне, а не во всей композиции целиком. В классических трекерах имеется список паттернов. Он говорит, в каком порядке их играть и внешне выглядит, например, так: 01, 02, 03, 03, 01, 01. После нажатия PLAY трекер читает список и играет паттерны ровно в том порядке, в котором они указаны.
Завершающая фишка классических трекеров - формат файлов для хранения музыки. Самый распространенный - формат MOD, который пришел с Ultimate SoundTracker и укоренился в трекерном пространстве на года, даже после того, как PC сместил Амигу со сцены. Прелесть такого файла в том, что в нем хранится вся необходимая информация для проигрывания и редактирования: сэмплы, паттерны и некоторые дополнительные параметры. Скачав MOD, вы услышите музыку именно в том виде, в котором задумывал автор, с мельчайшими нюансами. Сегодня огромный архив MOD-музыки вы можете найти на сайте Mod Archive. SunVox без проблем грузит форматы MOD и XM, поэтому обязательно посетите этот ресурс.
Несмотря на критику, у программы SoundTracker появилась армия поклонников, самые продвинутые взломали оригинальный код и на его основе неофициально стали выпускать улучшенные клоны. К примеру, NoiseTracker:
Количество клонов росло. Они обрастали новыми функциями, совершенствовался интерфейс, увеличивалось количество каналов. Трекерная музыка стала частью компьютерной субкультуры Demoscene. Осваивались новые платформы. Самая массовая - PC (с системами DOS и Windows). Появились трекерные форматы 2-го поколения: S3M (Scream Tracker), XM (FastTracker), IT (Impulse Tracker). И пока домашние компьютеры не отличались большой производительностью, а файлы по сети передавались с черепашьей скоростью - MOD-музыка оказалась своеобразной заменой современного MP3, так как файлы с неплохим звуком могли весить считанные килобайты.
В конце 90х мощность компьютеров достигла уровня, пригодного для генерации звука профессионального качества в реальном времени. Пошла волна всевозможных программных синтезаторов, появился формат плагинов VST. Разумеется, это отразилось и на трекерах. Первым представителем трекеров 3-го поколения стал Jeskola Buzz - он позволил вместо сэмплов использовать сложные комбинации модулей-синтезаторов и эффектов. За ним в игру вступили не менее крутые Psycle, Renoise и т.д. По качеству они уже не уступали дорогому студийному ПО, хотя в интерфейсе по-прежнему узнавался родной Ultimate SoundTracker.
Развитие трекеров продолжается по сей день. SunVox - один из ярких представителей. Он ставит перед собой задачу объединить и дополнить лучшее из мира трекерной музыки, охватив при этом максимальное количество платформ, чтобы композитор не ощущал каких-либо ограничений и мог работать на любом железе и в любой системе.
Интересные факты
Большая часть приведенных ниже терминов применима не только к SunVox, но и к другим звуковым и музыкальным приложениям.
Windows:
Linux:
macOS:
Android:
iOS:
Windows CE:
Windows:
Linux:
Инструкция для пользователей Raspberry Pi
macOS:
Важная информация для пользователей macOS 10.12+
Android:
iOS:
Windows CE:
Система | Архитектура | Формат звукового движка | Мультитач | MIDI | GPIO |
---|---|---|---|---|---|
Linux | x86, x86_64, ARM (Maemo-устройства, Raspberry Pi, PocketCHIP и пр.), ARM64 (PINE64 и пр.) | 32-bit floating-point / 4,12 fixed-point | ДА | Полная поддержка | ДА |
Windows | x86, x86_64 | 32-bit floating-point / 4,12 fixed-point | ДА | Полная поддержка | |
Windows CE | ARM | 4,12 fixed-point | Только сохранение и загрузка файлов | ||
macOS | x86_64 | 32-bit floating-point | Полная поддержка | ||
Android | ARM, x86 | 32-bit floating-point / 4,12 fixed-point (на процессорах без FPU) | ДА | Только сохранение и загрузка файлов | ДА |
iOS | ARM | 32-bit floating-point (только на iOS 7 и выше) / 4,12 fixed-point | ДА | Полная поддержка |
Как видно из таблицы, есть два формата звукового движка SunVox. Рассмотрим их.
В одних случаях этот формат выбирается автоматически (в зависимости от типа устройства). В других (например, в Linux) - есть возможность выбрать из нескольких вариантов SunVox с разными движками.
Для того, чтобы узнать, какой формат используется в вашей версии, запустите SunVox, войдите в главное меню и выберите пункт “О программе”. В появившемся окне внизу вы увидите нужную информацию.
Интерфейс SunVox поделен на окна:
У каждого редактора может быть свое меню - кнопка с тремя горизонтальными полосками. Кликнув на одном из окон мы делаем его активным, помещаем в фокус. Далее все нажатия клавиш в виде команд в первую очередь будут посылаться этому активному окну. Если окно не знает, что делать с этими командами, то оно пошлет их редактору паттерна, т.к. это самое приоритетное окно.
Размер окон можно менять. Для этого предусмотрены специальные узкие панели (вертикальные и горизонтальные), захватывая одну из которых можно менять размер сразу нескольких областей. На одной из панелей расположены часы, регулятор громкости и кнопки управления проигрыванием. Стоит отметить одну особенность кнопки Стоп. При первом нажатии она, как и ожидается, останавливает проигрывание. При повторном нажатии состояние всех синтезаторов будет сброшено, а звуковой движок перейдет в режим ожидания.
Действие некоторых клавиш зависит от того, какое окно находится в фокусе в данный момент. Окно попадет в фокус после того, как вы кликнете на нем.
Клавиши можно переназначать, зайдя в Главное меню → Настройки → Интерфейс → Сочетания клавиш. Любое действие (из списка ниже) можно привязать к кнопкам обычной клавиатуры или внешнего MIDI-устройства.
Общие:
Сочетание клавиш | Описание |
---|---|
CTRL + Z | отменить действие (undo) |
CTRL + Y или SHIFT + CTRL + Z | повторить действие (redo) |
CTRL + N | новый проект или объект (модуль/паттерн/…) |
ВЛЕВО,ВПРАВО,ВВЕРХ,ВНИЗ, PAGEUP,PAGEDOWN, HOME,END,TAB | навигация |
SHIFT + одна из стрелок | выделение |
CTRL + ( | начать выделение |
CTRL + ) | закончить выделение |
CTRL + A | выделить все |
CTRL + X или SHIFT + DELETE | вырезать |
CTRL + C | скопировать |
CTRL + V или SHIFT + INSERT | вставить |
CTRL + D | размножить выделенный участок |
INSERT (или Command+I для Mac) | вставить пустую ноту и сдвинуть содержимое трека вниз, или вставить что-то еще |
BACKSPACE | удалить предыдущую ноту со сдвигом содержимого трека вверх, или удалить что-то еще |
DELETE (или Fn+Backspace для Mac) | удалить |
Приложение:
Сочетание клавиш | Описание |
---|---|
ESC | выход |
Проект:
Сочетание клавиш | Описание |
---|---|
CTRL + SHIFT + N | создать новый проект |
CTRL + O | загрузить новый проект |
CTRL + S | сохранить проект |
CTRL + B | сохранить проект в файл BACKUP.sunvox |
Музыкальная клавиатура:
Сочетание клавиш | Описание |
---|---|
Z,S,X,D,C,V,G,B,H,N,J,M,'<',L,'>',';','/', Q,2,W,3,E,R,5,T,6,Y,7,U,I,9,O,0,P,[,=,],ENTER | музыкальная клавиатура (ноты) |
F1…F8 | переключение октавы |
SHIFT + ) | подняться на октаву |
SHIFT + ( | опуститься на октаву |
Редактор паттерна:
Сочетание клавиш | Описание |
---|---|
ПРОБЕЛ | включить/выключить режим редактирования паттерна |
CTRL + '=' | увеличить шаг редактирования в паттерне |
CTRL + '-' | уменьшить шаг редактирования в паттерне |
CAPSLOCK или '~' | вставить команду “Note OFF” (== - выключения ноты) |
K | вставить команду “Set Pitch” (SP - установка высоты тона в колонке XXYY) |
SHIFT + K | вставить команду “Prevous Track” (<< - использовать предыдущий трек для наложения эффектов) |
CTRL + M | вставить с наложением (из буфера обмена берутся только ненулевые элементы) |
CTRL + T | выделить текущий трек в паттерне |
CTRL + I | интерполировать параметр эффекта или значение контроллера |
CTRL + U | интерполировать значение velocity |
SHIFT + '=' | повысить тональность выделенного участка паттерна на полутон |
SHIFT + '-' | понизить тональность выделенного участка паттерна на полутон |
SHIFT + ']' | повысить тональность выделенного участка паттерна на октаву |
SHIFT + '[' | понизить тональность выделенного участка паттерна на октаву |
CTRL + P | распределить выделенные события равномерно |
не назначено | переназначить номера модулей |
Модули (маршрутизация):
Сочетание клавиш | Описание |
---|---|
CTRL + R | установить контроллеры выделенного модуля случайным образом |
SHIFT + кликаем мышкой и тащим | установка/удаление связи между модулями |
SHIFT + изменение значения контроллера | запись значения контроллера в паттерн |
SHIFT + > | выбрать следующий модуль |
SHIFT + < | выбрать предыдущий модуль |
CTRL + > | выбрать следующий синтезатор |
CTRL + < | выбрать предыдущий синтезатор |
CTRL + ВЛЕВО | выбрать следующий модуль по горизонтали |
CTRL + ВПРАВО | выбрать предыдущий модуль по горизонтали |
CTRL + ВНИЗ | выбрать следующий модуль по вертикали |
CTRL + ВВЕРХ | выбрать предыдущий модуль по вертикали |
CTRL + 1 | вкл/выкл mute для выбранного модуля |
CTRL + 2 | вкл/выкл solo для выбранного модуля |
CTRL + 3 | вкл/выкл bypass для выбранного модуля |
CTRL + 4 | сбросить mute и solo для всех модулей |
CTRL + F | найти модуль |
SHIFT + колесо прокрутки | изменить размер всех модулей |
CTRL + колесо прокрутки | изменить размер выделенного модуля |
Таймлиния:
Сочетание клавиш | Описание |
---|---|
F9 | начать/остановить воспроизведение |
F10 | играть с начала |
F11 | играть текущий выделенный паттерн |
F12 | стоп |
SHIFT + F9 | начать/закончить запись |
SHIFT + F10 | играть от курсора в паттерне |
SHIFT + F12 | перейти в начало |
Виртуальный Терменвокс:
Сочетание клавиш | Описание |
---|---|
SHIFT + нажатие в окне Терменвокса | запить нажатой тональности в паттерн |
Музыкальное произведение (проект) в SunVox строится из следующих частей:
Все части хранятся в едином файле проекта. Т.е. если вы грузили какие-то модули или сэмплы с диска, то после сохранения проекта эти модули и сэмплы можно удалять без последствий, т.к. они были сохранены внутри файла проекта. Проект должен открываться и играть одинаково (или очень близко к оригиналу) независимо от устройства и системы.
Паттерн - это кусок партитуры в виде набора треков, поделенных на строки. На каждом треке по порядку идут музыкальные события (команда+параметр): ноты, автоматизация контроллеров, эффекты и пр. Редактор активного паттерна находится в верхней части экрана. Проигрываение паттерна идет сверху вниз. Треки играют одновременно. К примеру, можно сделать два трека: на одном выставить ноты басового синтезатора, а на другом - барабаны. А можно те же самые ноты чередовать на одном треке, если они друг другу не мешают.
У каждого паттерна есть своя маленькая картинка (иконка) 16 на 16 пикселей, которая генерируется автоматически, либо редактируется пользователем. Кроме того, паттерн можно именовать.
Внутри паттерн представляет собой таблицу такого вида:
номер строки | 0 (трек 0) | 1 (трек 1) | 2 (трек 2) | … |
---|---|---|---|---|
000 | event | event | event | … |
001 | event | event | event | … |
xxx | … | … | … | … |
Здесь event - какое-либо событие. Примеры таких событий:
Так выглядит событие в редакторе паттерна | Описание |
---|---|
C5 80 01 0000 0000 | посылка ноты C5 модулю с номером 01 |
A5 80 02 0000 0000 | посылка ноты A5 модулю с номером 02 |
== 00 00 0000 0000 | посылка команды “выключение ноты” (note OFF) |
Событие содержит несколько колонок (полей) с числами и буквами. Все числа в паттерне представлены в шестнадцатиричной форме. Подробнее о шестнадцатиричных числах можно почитать здесь: https://ru.wikipedia.org/wiki/Шестнадцатеричная_система_счисления
В данном документе большая часть чисел приведена в шестнадцатеричной форме. Но для тех случаев, когда надо явно указать, что число десятичное, к нему будет добавлено окончание dec. Например: 256dec.
Общий формат события такой: NN VV MM CCEE XXYY
Ниже приведено подробное описание колонок:
Из паттерна можно управлять внешними MIDI-устройствами. Чтобы изменить значение внешнего MIDI-контроллера (MIDI Controller Number), нужно в колонке CC поставить значение 80+X, где X - номер MIDI-контроллера. При этом XXYY - это посылаемое значение (от 0000 до 8000).
Пример:
NN VV MM CCEE XXYY -- -- 01 8100 0000 - установить MIDI-контроллер Modulation в минимум -- -- 01 8100 8000 - установить MIDI-контроллер Modulation в максимум
Ниже приведен список всех доступных MIDI-контроллеров и соответствующих им номеров, которые нужно вписывать в колонку CC.
Номер MIDI-контроллера (dec) | Номер SunVox-контроллера (MIDI контр. + 80 (hex)); эти значения нужно вписывать в колонку CC | Название |
---|---|---|
0 | 80 | Bank Select (MIDI Controller 32 more commonly used) |
1 | 81 | Modulation Wheel |
2 | 82 | Breath Contoller |
3 | 83 | Undefined |
4 | 84 | Foot Controller |
5 | 85 | Portamento Time |
6 | 86 | Data Entry MSB |
7 | 87 | Main Volume |
8 | 88 | Balance |
9 | 89 | Undefined |
10 | 8A | Pan |
11 | 8B | Expression |
12 | 8C | Effect Control 1 |
13 | 8D | Effect Control 2 |
14-15 | 8E-8F | Undefined |
16-19 | 90-93 | General Purpose Controllers |
20-31 | 94-9F | Undefined |
32-63 | A0-BF | LSB for MIDI Controllers 0 - 31 |
64 | C0 | Damper Pedal (Sustain) |
65 | C1 | Portamento |
66 | C2 | Sostenuto |
67 | C3 | Soft Pedal |
68 | C4 | Legato Footswitch |
69 | C5 | Hold 2 |
70 | C6 | Sound Controller 1 (default: Sound Variation) |
71 | C7 | Sound Controller 2 (default: Timbre/Harmonic Content) |
72 | C8 | Sound Controller 3 (default: Release Time) |
73 | C9 | Sound Controller 4 (default: Attack Time) |
74 | CA | Sound Controller 5 (default: Brightness) |
75-79 | CB-CF | Sound Controller 6-10 (no defaults) |
80-83 | D0-D3 | General Purpose Controllers |
84 | D4 | Portamento Control |
85-90 | D5-DA | Undefined |
91 | DB | Effects 1 Depth (previously External Effects Depth) |
92 | DC | Effects 2 Depth (previously Tremolo Depth) |
93 | DD | Effects 3 Depth (previously Chorus Depth) |
94 | DE | Effects 4 Depth (previously Detune Depth) |
95 | DF | Effects 5 Depth (previously Phaser Depth) |
96 | E0 | Data Increment |
97 | E1 | Data Decrement |
98 | E2 | Non-Registered Parameter Number LSB |
99 | E3 | Non-Registered Parameter Number LSB |
100 | E4 | Registered Parameter Number LSB |
101 | E5 | Registered Parameter Number MSB |
102-120 | E6-F8 | Undefined |
121 | F9 | Reset All Controllers |
122 | FA | Local Control |
123 | FB | All Notes Off |
124 | FC | Omni Off |
125 | FD | Omni On |
126 | FE | Mono On (Poly Off) |
127 | FF | Poly On (Mono Off) |
Интерполятор - инструмент, позволяющий делать плавные переходы между значениями в любых колонках паттерна, настраивая тип кривой перехода, количество шума, количество повторов и т.д. Вызывается через меню редактора паттерна.
Первый ряд кнопок - тип кривой плавного перехода. Предпоследняя кнопка со стрелочками в первом ряду означает дословно “туда-сюда” или “ping-pong”. То есть, переход будет сначала от начального значения до конечного, а потом обратно от конечного до начального. Последняя кнопка с цифрой - это длина шага.
Второй ряд кнопок позволяет выбрать те колонки, на которых будет интерполяция. Можно выбирать несколько колонок за раз - если нажимать их с SHIFT-ом.
Третий ряд - параметры Шум и Повторять. Шум задает количество случайных искажений. А параметр “Повторять” задает количество повторов плавного перехода. Такими повторами можно делать ритмические конструкции, например.
Четвертый ряд - начальное и конечное значения огибающей. Они нужны для кнопки Применить огибающую, которая описана ниже.
Внизу окна самые важные кнопки: Интерполировать и Применить огибающую. Эти две функции похожи, но есть пара отличий.
Модуль - синтезатор, эффект или фильтр. То, из чего строится звук в SunVox. В отдельном окне модули отображаются в виде прямоугольников, соединенных линиями (проводами). Направление движения сигнала по проводу показывается бегущими точками и цветом (яркая часть провода идет от источника; бледная - к приемнику). Схема взаимодействия модулей называется маршрутизацией. По проводам может идти не только звук, но и поток команд (например: включение ноты, выключение ноты, изменение значения контроллера и т.д.).
В SunVox встроен набор базовых модулей. Базовые модули можно объединять в сложные цепочки для получения более сложных звуков и эффектов. Несколько модулей можно объединять в один при помощи MetaModule. Любой модуль можно сохранить или загрузить с диска. В архиве SunVox есть несколько директорий с дополнительными модулями.
Место для размещения нового модуля помечается указателем в форме крестика. Нажмите в нужное вам место, и указатель переместится туда.
Создать или загрузить модуль можно одним из нижеприведенных способов.
При загрузке модуля с диска формат файла не принципиален. SunVox попытается превратить любой файл в модуль. Например, JPG-картинку, которая пиксель за пикселем будет преобразована в сэмпл. Или - текстовый файл, каждая буква которого также будет преобразована в отсчет сэмпла, и в итоге будет создан модуль Sampler. А для файлов в форматах sunvox, mod, xm, midi будет создан модуль MetaModule, внутри которого будет находиться загруженная композиция.
Есть несколько способов соединить/разъединить два модуля:
Повторное соединение действует, как разъединение.
У модуля есть параметры (на “железных” синтезаторах - это ручки, кнопки и прочие элементы управления). В среде SunVox их называют контроллерами:
Существуют контроллеры глобальные и локальные. Возьмем к примеру контроллер “Панорама” в модуле Generator. Это глобальный контроллер. Он задает расположение звука в стерео пространстве “лево-право”. Минимальное значение - левый канал. Максимальное - правый канал. Панорама выставляется для всего модуля целиком.
Но что, если нам нужно выставить разные значения панорамы для разных нот. Например, я нажал две ноты одновременно и хочу, чтобы первая нота звучала в левом канале, а вторая - в правом.
Решение в лоб - использовать два генератора. Один с панорамой 0000. Второй с панорамой 8000.
Но есть решение проще - использовать локальный контроллер “Панорама”, который будет действовать на конкретную ноту на конкретном треке. Выглядит это так:
E3 01 0300 0000 | g3 01 0300 8000
причем эту картинку можно продолжить, если панораму нужно изменять с течением времени:
0300 1000 | 0300 7000 0300 2000 | 0300 6000
Правило здесь простое: как только на треке выбрана какая-то нота - следующие за ней команды автоматизации будут относиться конкретно к этой ноте, а не ко всему модулю. То есть - к локальным контроллерам, а не глобальным.
Не у всех модулей есть локальные контроллеры. Список доступных можно посмотреть в описании модуля. Если локальный контроллер отсутствует, то команда посылается глобальному.
Итак, глобальные - на весь модуль целиком. Локальные - на конкретный звук, канал полифонии.
Двойной клик на контроллере или нажатие правой клавишей мыши приведет к открытию окна со свойствами контроллера. В окне свойств можно более точно управлять контроллером, сбрасывать его, устанавливать в случайное значение, привязывать к MIDI ручкам и MIDI кнопкам на внешних устройствах:
Автоматизация параметров модуля - автоматическое изменение значений контроллеров по ходу воспроизведения. Источниками автоматизации могут быть специальные модули (MultiCtl, Pitch2Ctl, Sound2Ctl, Velocity2Ctl) или паттерны. В последнем случае не важно, какой именно паттерн будет посылать команды контроллеру: в SunVox нет жесткой привязки паттернов к модулям и их параметрам.
Если нажать SHIFT, а потом на контроллер, то его значение запишется в паттерн (в текущую позицию курсора). Если нужно записать более сложную автоматизацию, то есть три дополнительных способа:
Если автоматизация записана в паттерне, то изменение значений происходит не плавно, а ступеньками. Длина шага - либо 1 тик (после живой записи), либо 1 строка. Чтобы сделать изменения более плавными, можно команды автоматизации посылать не напрямую, а сначала в модуль MultiCtl (в котором параметр Отклик отличается от 1000), который будет сглаживать изменения и рассылать команды другим модулям, подключенным к нему.
Видео: Шесть способов автоматизации
Некоторые модули SunVox имеют контроллер “Режим”, которым можно задавать качество и уменьшать нагрузку на процессор. Вот некоторые возможные значения этого параметра:
Если у вас не самый быстрый компьютер, и на некоторых проектах вы замечаете неприятные тормоза и заикания, то старайтесь следовать этим советам при написании музыки:
Таймлиния (Timeline) - окно в нижней части экрана, в котором происходит компоновка паттернов по времени. Здесь мы устанавливаем, в какой момент времени какой паттерн должен играть. Можно расположить несколько паттернов параллельно, чтобы они играли одновременно. Кроме того, любой паттерн можно клонировать: изменения родительского (исходного) паттерна будут мгновенно отражаться на его клонах; это очень удобно, когда композиция строится из множества повторяющихся элементов.
Если нажать на одном из паттернов, то его содержимое отобразится в редакторе сверху. В режиме циклического воспроизведения одного паттерна действует такое правило: вы нажимаете на любом паттерне, и он начинает играть не сразу, а после завершения предыдущего активного паттерна.
Вертикальная черта на таймлинии показывает, какое место композиции играет в данный момент. Скорость воспроизведения композиции задается двумя параметрами: TPL и BPM.
TPL (Ticks Per Line) - количество тиков в строке паттерна. Тик - это квант времени в SunVox. Нельзя делать задержки между нотами меньше одного тика. Длина тика в миллисекундах = 60000 / BPM / 24.
BPM (Beats Per Minute) - количество ударов в минуту. Один удар - это 24 тика. Количество строк в ударе = 24 / TPL.
Если TPL = 6, то один удар - это ровно четыре строки паттерна. Если TPL = 3, то размер удара увеличивается в два раза - до восьми строк. Если TPL равен, например, 5, то размер удара (4.8) не вписывается ровно в сетку паттерна - такой TPL лучше не использовать, если нужно попасть в строго определенный BPM.
32 двойных alias-free осциллятора с 12/24dB фильтрами, экспоненциальными огибающими и плавным изменением параметров. В отличие от модуля Generator дает более мягкое и естественное звучание. Цена качества - требовательность к ресурсам.
Этот модуль звучит лучше на частоте дискретизации 44100Гц.
Видео: Модуль Analog Generator
Синтезатор ударных инструментов. Имеет встроенный набор звуков, сгруппированных по нотам:
Этот модуль звучит лучше на частоте дискретизации 44100Гц.
Видео:
Синтезатор, основанный на алгоритме частотной модуляции (FM).
Количество операторов: 2. Первый оператор (Carrier) - базовая синусоида. Второй оператор (Modulator) - синусоида, изменяющая частоту первого оператора. В именах контроллеров имеются префиксы “C.” и “M.”, показывающие, к какому оператору относится контроллер.
Этот модуль звучит лучше на частоте дискретизации 44100Гц.
Контроллеры:
Видео:
Генератор периодических колебаний с огибающей громкости.
Данный модуль может принимать входящий в него сигнал для частотной модуляции самого себя. Для этого подключите на вход Generator'а любой другой источник звука, и этот источник будет влиять на частоту модуля Generator. Степень влияния изменяется контроллером “Частотная модуляция по входу”.
Контроллеры:
Видео:
Транслирует сигнал с микрофона или line-in входа.
Совместимость: в данный момент доступен только в iOS и Android версиях. Поддержка других систем появится в ближайших обновлениях SunVox.
Генератор барабана “бочка”.
Проигрыватель файлов в формате OGG Vorbis (открытый аналог MP3). Файл сохраняется в памяти модуля, повторная загрузка с диска не производится.
При помощи модуля Sampler можно загружать, записывать и проигрывать аудио-файлы. Поддерживаются следующие форматы: WAV, XI, AIFF, RAW. 8 / 16 / 24 / 32 бит. В версии для Linux также поддерживаются все форматы, которые распознает FFmpeg или AVConv.
Описание кнопок:
Видео:
SpectraVoice выдает звук с заданным спектром. Спектр можно представить так: двухмерный график; ось X - частота от басов к высоким; ось Y - амплитуда (громкость). На этом графике можно расположить 16 гармоник, указав у каждой гармоники ее положение на оси X, амплитуду, форму, ширину. Номер гармоники выбирается параметром Harmonic.
Например, выбираем гармонику с номером 0. Далее выставляем ее параметры.
После того, как все параметры выставлены, жмем кнопку Render и SpectraVoice генерирует новый звук по заданным параметрам. Далее нажимаем клавиши пианино и слушаем, что получилось.
Видео: Модуль SpectraVoice
Усилитель сигнала с дополнительными возможностями.
К примеру, данный модуль можно использовать для разделения стереосигнала на два монофонических. Для этого сначала оставляем нужный нам канал при помощи контроллера “Баланс” (в старых версиях - “Панорама”): -128 для левого или 128 для правого. Далее звук этого канала надо вернуть в центр (чтобы он не звучал только в одном ухе) - уменьшаем значение контроллера “Ширина стерео” до нуля. И все готово - на выходе получаем только выбранный канал из исходного стереосигнала.
Контроллеры:
Side chain компрессор.
Контроллеры:
Видео: Модуль Compressor
Фильтр, убирающий DC-смещение сигнала. Применяйте его, если на осциллографе видите, что центр сигнала явно смещен вверх или вниз.
Задержка стерео-сигнала.
Этот модуль вносит разные типы искажений в звук.
Контроллеры:
Эхо.
3-полосный эквалайзер.
Рекурсивный фильтр - модуль, обрабатывающий сигнал с целью выделения или подавления определённых частот.
В режиме HQ фильтр работает на полную мощность (double-sampled). В режиме LQ фильтр работает в два раза быстрее, но со следующими последствиями:
Контроллеры:
Видео:
Рекурсивный фильтр повышенной точности (64 бита) - модуль, обрабатывающий сигнал с целью выделения или подавления определённых частот. Более медленный, чем модуль Filter.
Контроллеры:
Эффект фланжер.
Контроллеры:
Модуляция входящего сигнала встроенным генератором низкой частоты.
Ниже приведены три варианта использования этого модуля.
Контроллеры:
Эффект многократного повторения входящего в модуль сигнала. Максимальная длина петли = 2 строки паттерна.
Видео: Модуль Loop
Модуль амплитудной или фазовой модуляции. Первый подключенный на вход сигнал считается несущим (Carrier). Все последующие подключенные на вход - модулирующие (Modulator), которые влияют на громкость или частоту первого.
Модуль для изменения тональности любого звука в реальном времени.
Видео: Модуль Pitch Shifter
Ревербератор.
Контроллеры:
Вокальный фильтр. Придает любому звуку окраску человеческого голоса.
Эффект вибрато для периодического изменения высоты тона входящего сигнала.
Контроллеры:
WaveShaper позволяет изменять форму исходного сигнала, используя график, в котором ось X - амплитуда входного сигнала (input), ось Y - амплитуда выходного сигнала (output).
SunVox запрещает подключение модулей в бесконечную петлю (выход идет на вход), но это можно сделать, если пропустить петлю через два последовательных модуля Feedback (как показано на картинке).
Задержка внутри Feedback = 20 мс.
Glide принимает на вход ноты, а на выходе выдает команды плавного перехода между этими нотами. К выходу нужно подключать, например, модули-генераторы.
При помощи этого модуля можно, например, посылать сигналы на внешние светодиоды, или опрашивать кнопки, подключенные к контактам (пинам) GPIO на системной плате.
Для работы модуля нужен Linux со включенным интерфейсом GPIO. Если интерфейс не включен, модуль GPIO все равно будет отображаться в SunVox, но не будет выполнять никаких действий.
Номера контактов зависят от конкретной платформы (читайте документацию по работе с GPIO вашего устройства). Например, для Raspberry Pi контакту GPIO2 (BCM 2) соответствует номер 2, контакту GPIO3 (BCM 3) - 3 и т.д. Т.е. это не просто порядковый номер ножки в разъеме, а ее название. Нумерация для Raspberry Pi подробно описана здесь (GPIO NUMBERING).
Контроллеры:
Пример в папке simple_examples: raspberry_pi_gpio.
Видео: Использование GPIO на одноплатном компьютере Raspberry Pi
MetaModule - это модуль, внутри которого находится отдельная независимая копия SunVox. То есть, можно взять готовую композицию в формате .sunvox, загрузить ее в MetaModule, после чего либо проиграть эту композицию (без изменений или с изменением тона в режиме арпеджиатора), либо играть отдельными ее модулями. MetaModule затем можно сохранить в файл формата .sunsynth, получив тем самым готовый кросс-платформенный SunVox инструмент или эффект - некий аналог VST-плагина.
Есть два способа игры на MetaModule:
Данный модуль позволяет управлять несколькими контроллерами (на разных модулях) одновременно, изменяя значение всего одного базового контроллера.
Контроллеры:
Видео: Модуль MultiCtl
MultiSynth принятые звуковые сообщения (ноты, изменение высоты тона, установка фазы) пересылает всем подключенным на его выход модулям-приемникам. MultiSynth может изменять сообщения перед отправкой, если изменить хотя бы один из описанных ниже параметров.
Контроллеры:
Опции:
Видео:
Этот модуль преобразует ноты в значения контроллера. Например, чем выше нота, тем больше громкость. Ноты подаются на вход модуля. На выход подключается другой модуль, в котором находится интересующий нас контроллер.
Этот модуль конвертирует звук в цифровое значение любого контроллера на подключенном к нему выходном модуле.
На вход Sound2Ctl подается звук. На выходе Sound2Ctl выдает набор периодических команд типа “установить контроллер 1 в значение 2000”. Частота этих выходных команд задается параметром Sampling Rate.
Для временного отключения данного модуля нажмите кнопку Mute (M) или установите контроллер OUT Controller в ноль.
Видео: Модуль Sound2Ctl
Этот модуль преобразует параметр динамики нот в значения контроллера. Например, чем выше динамика, тем больше громкость. Ноты подаются на вход модуля. На выход подключается другой модуль, в котором находится интересующий нас контроллер.
Глобальные настройки SunVox находятся в окне Preferences, вызвать которое можно через главное меню программы.
В большинстве случаев вам не надо менять этот файл вручную, так как большая часть настроек программы доступна через окно Preferences. Но если вы хотите более детально настроить программу, то посмотрите шаблон файла конфигурации с подробным описанием всех доступных опций.
Интерфейс сильно тормозит.
Попробуйте отключить визуализацию модулей в главном меню → Настройки → Модули.
В моей версии SunVox в редакторе паттерна отсутствуют колонки с эффектами и контроллерами
В мобильных версиях эти колонки скрыты по умолчанию. Чтобы показать их, войдите в главное меню SunVox и нажмите “Показать дополнительные колонки”.
Как соединять/разъединять модули?
Соединил модули, но ничего не слышу.
Скорее всего провод от синта подключен в неправильном направлении. Направление движения сигнала по проводу показывается бегущими точками и цветом (яркая часть провода идет от источника; бледная - к приемнику).
Не понимаю, как работают контроллеры типа “Set phase”
В модуле есть некая огибающая (LFO, Vibrato и т.п.), по которой изменяется тот или иной параметр (например, частота фильтра). Форма огибающей в самом распространенном случае - синусоида. По этой огибающей циклически бежит указатель (с выбранной скоростью) - он и является фазой. Бежит он всегда и довольно сложно определить, где он находится в данный момент времени. Но бывает, что определить это все-таки нужно. Например, нужно, чтобы в начале паттерна указатель всегда стоял в начале огибающей. Для этого и нужен контроллер “Set phase” - как только вы меняете его, фаза в тот же момент устанавливается в указанное положение.
Как загрузить сэмпл?
Самый быстрый и простой способ: два раза кликаем на пустом месте в окне с модулями, в появившемся окне выбора нового модуля нажимаем кнопку “Загрузить”, указываем наш сэмпл, жмем OK. Поддерживаются форматы WAV,AIFF,XI. Кроме того, сэмпл можно загрузить из JPEG-картинки. Картинка попиксельно преобразуется в звуковую волну.
Sampler щелкает. Как этого избежать?
Во-первых, включайте огибающую громкости сэмпла, в ней устанавливайте точку удержания (Sustain; это точка, в которой указатель огибающей остановится до тех пор, пока нота не будет отжата), а после удержания добавляйте одну или несколько линий спада (с длиной как минимум в 1 тик) в ноль. Это даст вам гарантию того, что сэмпл не будет обрываться резко (что и дает щелчок), а будет затухать плавно. Во-вторых, проверяйте, что Sampler имеет достаточное количество каналов полифонии. При их нехватке так же возникнут щелчки, так как новая нота будет помещаться в уже активный канал, с удалением старой ноты.
Звук тормозит/заикается/подвисает. Что делать?
Общие советы
Для Linux
Для Windows CE: зайдите в настройки звука SunVox и экспериментально определите наиболее подходящее значение размера буфера между 1024 и 4096; например, для устройств iPAQ лучше всего (меньше заикается) подходит 1536.
Как соединить SunVox с другими приложениями по MIDI?
Как разделять MIDI ноты по каналам и посылать разным модулям?
Заходим в свойства модуля, выставляем MIDI IN = “всегда”, если этот модуль должен играть всегда (даже когда не выделен). Далее меняем значение канала справа от MIDI IN.
SunVox перестал запускаться - падает при каждом старте. Что делать?
Попробуйте очистить все настройки и временные файлы SunVox. Для этого SunVox нужно запустить с параметром clearall. Это можно сделать, например, из командной строки, введя “sunvox clearall”. В Windows версии для этого предусмотрен скрипт reset_sunvox.bat.
Как загружать и выгружать файлы SunVox на iOS-устройствах?
Сам по себе SunVox в iOS работает с файлами точно так же, как в любой другой системе. С одним отличием - для SunVox выделено свое файловое хранилище (что-то типа локального диска), недоступное для других программ. Ниже приведено описание разных способов доступа к этому хранилищу.
Как использовать буфер обмена (copy/paste) между SunVox и другими iOS-приложениями?
Нет сигнала с микрофона
Перейдите в настройки Android → Приложения → SunVox → включите разрешение “запись аудио”.
Copy/Paste не работает, предыдущая сессия не восстанавливается