SunVox - это компактная, быстрая и мощная программа для создания музыки. Работает на платформах Windows, Win Mobile, Linux, Maemo, MacOS X, PalmOS, iPhone, iPad. В основе - модульный синтез и трекерный интерфейс. Последний подразумевает представление партитуры в виде нескольких вертикальных дорожек (треков), на которых распологаются ноты, значения громкости, эффекты и прочее. Тем, кто плохо знаком с трекерами, рекомендуется почитать соответстующую статью на Википедии: http://ru.wikipedia.org/wiki/Трекер_(программа)
Основные возможности:
Официальная страница SunVox: http://www.warmplace.ru/soft/sunvox
Windows: нет специальных требований.
Linux: архитектура x86/x86_64; библиотеки SDL, ALSA.
MacOSX: архитектура x86_64; версия ОС - не ниже 10.6.
Android: версия ОС - не ниже 2.3.
iOS: версия ОС - не ниже 3.0.
Maemo: на данный момент тестировалось только на Nokia N900; возможно, будет работать и на более ранних моделях.
Windows Mobile: ARM-совместимый процессор.
PalmOS: ARM-совместимый процессор; версия ОС - не ниже 5.0.
Музыкальное произведение в SunVox строится из следующих частей:
Паттерн - это кусок партитуры. Мы видим его, как набор вертикальных дорожек (в старых трекерах дорожки называли каналами). На каждой дорожке по порядку идут звуковые события: ноты, выключение нот (note OFF), значения контроллеров, стандартные эффекты в цифровой форме. Редактор паттернов находится в верхней части экрана. Проигрываение паттерна идет сверху вниз. Дорожки играют одновременно. К примеру, можно сделать две дорожки - на одной выставить ноты басового синтезатора, а на другой - барабаны.
Паттерны не имеют имен и номеров, в отличие от большинства подобных программ. Но у каждого паттерна есть своя маленькая картинка (иконка) 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) |
Событие содержит несколько полей с числами и буквами. Числа представлены в шестнадцатиричной форме. Подробнее о шестнадцатиричных числах можно почитать здесь: http://ru.wikipedia.org/wiki/Шестнадцатеричная_система_счисления
Общий формат события такой: NN VV SS CCEE PPPP
Ниже приведено подробное описание полей:
Из паттерна можно управлять внешними MIDI-устройствами. Чтобы изменить значение внешнего MIDI-контроллера (MIDI Controller Number), нужно в поле CC поставить значение 80+X, где X - номер MIDI-контроллера. При этом PPPP - это посылаемое значение (от 0000 до 8000).
Модуль - синтезатор, эффект или фильтр. Мы видим модули в виде прямоугольников, соединенных между собой линиями-проводами. Направление движения сигнала по проводу показывается бегущими точками и цветом (яркая часть провода идет от источника; бледная - к приемнику). Окно, в котором расположены модули, называется “звуковой сетью” (sound network).
У модуля есть параметры (на “железных” синтезаторах - это ручки, кнопки и прочие элементы управления). Чаще всего их называют контроллерами.
Компоновка паттернов происходит на таймлинии (timeline), которая расположена в нижней части экрана.
Иногда таймлинию называют плейлистом.
Скорость воспроизведения композиции задается двумя параметрами: BPM и TPL.
BPM - количество ударов в минуту. Один удар - это четыре линии паттерна при условии, что TPL = 6. Если TPL отличен от 6, то сказать точное количество линий в ударе не всегда возможно. Хотя, если, например, TPL = 3, то удар будет состоять из 8 линий.
TPL - количество тиков в линии. Тик - это квант времени в SunVox. Нельзя делать задержки между нотами меньше одного тика.
Экран SunVox поделен на прямоугольные области (фреймы или, проще говоря, окна). В каждой области свой редактор. Редактор паттерна, редактор звуковой сети, редактор таймлинии. У каждого редактора есть свое собственное меню - кнопочка с гаечным ключем. Кликнув на одном из окон мы делаем его активным, помещаем в фокус. Далее все нажатия клавиш в виде команд в первую очередь будут посылаться этому активному окну. Если окно не знает, что делать с этими командами, то оно пошлет их редактору паттерна, т.к. редактор паттерна - самое приоритетное окно.
Несколько слов о кнопке Stop. При первом нажатии она, как и ожидается, останавливет проигрывание. При повторном нажатии состояние всех синтезаторов будет сброшено, а звуковой движок перейдет в режим ожидания.
Действие некоторых клавиш зависит от того, какое окно находится в фокусе в данный момент. Окно попадет в фокус после того, как вы кликнете на нем.
| Сочетание клавиш | Описание |
|---|---|
| ПРОБЕЛ | включить/выключить режим редактирования паттерна |
| Q,W,E,R,T и т.д. | ноты |
| CAPSLOCK или '~' | note OFF - событие выключения ноты |
| F1…F8 | переключение октавы |
| TAB | переход на следующую дорожку в паттерне |
| SHIFT + TAB | переход на предыдущую дорожку в паттерне |
| CTRL + Z | отменить действие (UNDO) |
| CTRL + Y или SHIFT + CTRL + Z | повторить действие (REDO) |
| CTRL + X | вырезать |
| CTRL + C | скопировать |
| CTRL + V | вставить |
| CTRL + A | выделить все |
| CTRL + T | выделить текущую дорожку в паттерне |
| CTRL + D | размножить выделенный участок |
| CTRL + I | интерполировать параметр эффекта или значение контроллера |
| CTRL + U | интерполировать значение velocity |
| CTRL + N | добавить новый модуль/паттерн |
| CTRL + R | установить контроллеры выделенного модуля случайным образом |
| SHIFT + DELETE | вырезать (только для редактора паттернов) |
| SHIFT + INSERT | вставить (только для редактора паттернов) |
| SHIFT + '+' | повысить тональность выделенного участка паттерна |
| SHIFT + '-' | понизить тональность выделенного участка паттерна |
| SHIFT + одна из стрелок | выделение участка паттерна |
| SHIFT + кликаем мышкой и тащим | установка/удаление связи между модулями |
| CTRL + O | загрузить новый проект |
| CTRL + S | сохранить проект |
| CTRL + B | сделать бэкап; проект сохраняется в файл BACKUP.sunvox, который лежит в папке с SunVox |
| CTRL + '+' | увеличить шаг редактирования в паттерне |
| CTRL + '-' | уменьшить шаг редактирования в паттерне |
| F9 | начать воспроизведение |
| F11 | воспроизведение текущего выделенного паттерна |
| F12 | стоп |
Некоторые модули имеют параметр “Mode” (режим работы). Ниже приведено описание самых распространенных режимов.
Если у вас слабый компьютер или КПК, то переключение на низкое качество и монофонический звук может избавить от неприятных тормозов и щелчков.
Барабанный синтезатор. Имеет встроенный набор звуков, сгруппированных по нотам:
Синтезатор, основанный на алгоритме частотной модуляции (FM).
Количество операторов: 2. Первый оператор (carrier) - базовая синусоида. Второй оператор (modulation) - синусоида, изменяющая частоту первого оператора. В именах контроллеров имеются префиксы “C.” и “M.”, показывающие, что контроллер относится к первому или второму оператору соответственно.
Генератор различных форм волны.
Контроллеры:
Транслирует сигнал с микрофона или line-in.
MultiSynth принятые звуковые сообщения (ноты, изменения контроллеров и пр.) транслирует всем подключенным к нему модулям.
SpectraVoice выдает звук с заданным спектром. Спектр можно представить так: двухмерный график; ось X - частота от басов к высоким; ось Y - амплитуда (громкость). На этом графике можно расположить 16 гармоник, указав у каждой гармоники ее положение на оси X, амплитуду, форму, ширину. Номер гармоники выбирается параметром Harmonic.
Например, выбираем гармонику с номером 0. Далее выставляем ее параметры.
После того, как все параметры выставлены, жмем кнопку Render и SpectraVoice генерирует новый звук по заданным параметрам. Далее нажимаем клавиши пианино и слушаем, что получилось.
Усилитель сигнала.
SunVox берет свои настройки из файла sunvox_config.ini или sunvox_config.txt. Директория, в которой должен лежать этот файл, зависит от операционной системы.
Пользователи PalmOS могут сконвертировать файл конфигурации в PDB-формат при помощи этих утилит:
Внутри sunvox_config представляет собой обычный текстовый документ, который можно создавать и редактировать в простейших текстовых редакторах (например, блокнот в Windows). Кодировка документа - UTF8 (желательно), KOI8 или Win1251. Формат документа представлен ниже.
// Комментарии. // Размер рабочей области окна программы (ширина и высота в пикселях): width 800 height 600 // Максимальный FPS (кол-во кадров в секунду): // ( меньшее число - меньшая загрузка процессора ) //maxfps 30 // Выключение анимации модулей: //no_scopes //no_levels // Поворот интерфейса (в градусах, против часовой стрелки): // ( работает не на всех платформах ) //rotate 90 // Включение полноэкранного режима: // ( работает не на всех платформах ) //fullscreen // Раскомментируйте этот параметр, если у вас сенсорный экран, // или если просто хотите большие кнопки: //touchcontrol // Размер аудио-буфера (в фреймах): // ( меньший рамер - меньшая задержка звука ) // ( если частота дискретизации = 44100, то размер аудио-буфера из 44100 фреймов эквивалентен одной секунде ) buffer 4096 // Имя айдио-устройства: // * примеры имен для ALSA (Linux): "hw:0,0", "hw:1,0"; // * примеры имен для всех остальных систем: "0" - первое устройство; "1" - второе устройство; audiodevice hw:0,0 // Имя аудио-драйвера (alsa, oss, sdl, dsound, mmsound, asio): // * alsa - ALSA (Linux); // * oss - OSS (Linux); // * sdl - SDL (Linux); // * dsound - DirectSound (Windows); // * mmsound - самая старая звуковая система, медленная, но совместимая со всеми Windows и Windows Mobile устройствами; // * asio - ASIO (Windows); //audiodriver alsa // Частота дискретизации (кол-во фреймов в секунду; минимум - 44100): frequency 44100 // Имя видео-драйвера для Windows Mobile: // * gapi - по умолчанию; требуется библиотека gx.dll, установленная в системе; // * raw - прямой доступ к видеопамяти; не поддерживается некоторыми устройствами; // * gdi - режим совместимости; медленный, но работает везде; videodriver gapi // Увеличение размера пикселя: // ( для SDL и WinCE raw framebuffer ) //zoom 2 // Раскомментируйте опцию theme // для включения пользовательских цветовых тем: // ( далее четыре основных цвета задаются опциями c_0, c_1, c_2, c_3 ) //theme c_0 #000000 c_1 #101010 c_2 #808080 c_3 #FFFF00
Как загрузить сэмпл?
Создаем модуль Sampler. Выделяем его. Слева видим контроллеры (параметры) этого модуля. Под контроллерами две кнопки: LOAD и EDIT. Жмем LOAD, выбираем нужный инструмент. Поддерживаются форматы WAV,AIFF,XI,RAW. Кроме того, сэмпл можно загрузить из JPEG-картинки. Картинка попиксельно преобразуется в звуковую волну.
Соединил модули, но ничего не слышу.
Скорее всего провод от синта подключен в неправильном направлении. Направление движения сигнала по проводу показывается бегущими точками и цветом (яркая часть провода идет от источника; бледная - к приемнику).
Как соединять/разъединять модули?
Есть несколько вариантов.
Повторное соединение действует, как разъединение.