# &arts-builder;

## Описание

Перед запуском &arts-builder; вам нужно запустить звуковой сервер (&artsd;). Обычно, если используется &kde; 2.1, это должно быть уже сделано. Если нет, вы можете настроить автоматический запуск звукового сервера в Центре управления в ЗвукЗвуковой сервер.

Когда вы запускаете &arts;, программа всегда запускает небольшие модули. &arts-builder; - это инструмент для создания новых структур из небольших связанных модулей. Вы просто выбираете модули внутри решётки. Для этого выбирайте их из меню Модули и затем укажите место на серо-зелёном фоне.

Модули обычно имеют порты (куда обычно аудио сигналы входят или выходят).Для связывания двух портов, укажите на первый, который становится оранжевым, и затем укажите на второй. Связывать вы можете только входные порты (верхняя часть модуля) с выходными (нижняя часть модуля). Если вы желаете установить постоянный сигнал в порт (или отключить его), тогда сделайте двойной щелчок мышью над портом.

## Руководство

### 1-й шаг

Запуск &arts-builder;.

Вам нужен модуль Synth&lowbar;AMAN&lowbar;PLAY для прослушивания результата вашего творчества. Для установки модуля Synth&lowbar;AMAN&lowbar;PLAY выберите Модули Синтез Звуковой ввод/вывод Synth&lowbar;AMAN&lowbar;PLAY и указать на свободное место для модуля. Расположите его ниже пятой линии, потому как мы добавим ещё что-нибудь выше.

Модуль имеет параметр `title` (крайний левый порт), и `autoRestoreID` (рядом с крайним левым портом) для поиска. Для заполнения их, сделайте двойной щелчок над этими портами, выберите значение и тип `tutorial` в поле ввода. Нажмите OK для завершения.

Выберите Файл Выполнить структуру . Вы абсолютно ничего не услышите.Модулю воспроизведения нужно что-нибудь ещё передать на вход. Если вы слышали некоторое время тишину, нажмите на Да и переходите ко второму шагу.

### 2-й шаг

Создайте модуль Synth&lowbar;WAVE&lowbar;SIN (из меню Модули Синтез Волновые ) и установите его выше модуля Synth&lowbar;AMAN&lowbar;PLAY. (Оставьте одну строку между ними).

Как вы видите, этот модуль что-то выдаёт, но требует pos в качестве входа. Сначала давайте установим выход на колонки.Нажмите на порт out в модуле Synth&lowbar;WAVE&lowbar;SIN и затем на порт left в модуле Synth&lowbar;AMAN&lowbar;PLAY.Теперь у нас соединены два модуля.

Все осцилляторы в &arts; не требуют частоту на входе, нужна позиция в волне. Позиция должна быть между 0 и 1, которые отображаются для стандартного объекта Synth&lowbar;WAVE&lowbar;SIN на область 0..2*пи. Для получения значений осцилляций из частоты используются модули Synth&lowbar;FREQUENCY.

Установите модуль Synth&lowbar;FREQUENCY (с помощью Модули Синтез Oscillation & Modulation ) и соедините его вывод pos со входом pos вашего Synth&lowbar;WAVE&lowbar;SIN. Выставите частотному генератору значение 440.

Выберите Файл Исполнить структуру. Вы услышите частоту 440 Гц на одной из ваших колонок. Если вы услышали, то нажимайте на кнопку Да и переходите к 3-ему шагу.

### 3-й шаг

Было бы хорошо услышать частоту в обеих колонках. Для этого подключите правый канал Synth&lowbar;PLAY к выходу Synth&lowbar;WAVE&lowbar;SIN.

Создайте объект Synth&lowbar;SEQUENCE (из Модули СинтезMidi & Sequencing). Он должен быть сверху. Если вам нужно больше места вы можете переместить другие модули выделяя их (для выделения нескольких модулей используйте &Shift;), и перетаскивая их в сторону.

Снова соедините выход частоты Synth&lowbar;SEQUENCE ко входу модуля Synth&lowbar;FREQUENCY. Затем установите значение скорости последовательности в 0.13 (скорость крайний левый порт).

Сейчас перейдите крайнему правому порту (последовательности) Synth&lowbar;SEQUENCE и установите последовательность, написав `A-3;C-4;E-4;C-4;`. За дополнительной информацией обращайтесь к описанию модулей.

Synth&lowbar;SEQUENCE в действительности нуждается в установке последовательности и скорости. Без этого вы можете получить сбой программы.

Выберите Файл Исполнить структуру. Вы услышите проигрывание последовательности. Если вам понравилось, то нажимайте Да и переходите к четвёртому шагу.

### 4-й шаг

Создайте модуль Synth&lowbar;PSCALE (из Модули Синтез Оболочки ). Отключите выход синусоидальной волны двойным щелчком и выберите не подключён. Подключите

1. Выход модуля SIN ко входу модуля PSCALE

2. Выход PSCALE ко левому входу модуля AMAN_PLAY

3. Выход PSCALE ко правому входу модуля AMAN_PLAY

4. SEQUENCE pos к PSCALE pos

Наконец, установите параметр top модуля PSCALE в некоторое значение, для примера 0.1

Как это работает: Synth&lowbar;SEQUENCE берёт дополнительную информацию о позиции ноты,которую сейчас проигрывает, пока 0 означает запущен и 1 завершён. Модуль Synth&lowbar;PSCALE усиливает пропускаемый аудио поток от значения громкости 0 (тихо) до 1 (оригинальная громкость) и обратно до 0 (тихо). В соответствии с позицией. Позиция пика может быть получена как значение pos.0.1 означает, что после проигрывания 10&percnt; ноты, громкость увеличивается до максимума и потом начинает уменьшаться.

Выберите Файл Выполнить Структуру. Вы услышите воспроизведение прекрасной последовательности.Если вам понравилось, то нажмите OK и переходите к пятому шагу.

### 5-й шаг: Начало распространения данных вокруг ;)

Запустите ещё одну программу &arts-builder;

Установите там Synth_&lowbar;AMAN&lowbar;PLAY и нормально настройте его. Добавьте туда Synth&lowbar;BUS&lowbar;DOWNLINK и:

1. Установите параметр bus модуля Synth&lowbar;BUS&lowbar;DOWNLINK в audio (это просто название, можно написать fred, если вам так нравится)

2. Свяжите параметр left Synth&lowbar;BUS&lowbar;DOWNLINK с параметром left Synth&lowbar;AMAN&lowbar;PLAY

3. Свяжите параметр right Synth&lowbar;BUS&lowbar;DOWNLINK с параметром right Synth&lowbar;AMAN&lowbar;PLAY

Запустите выполнение структуры. Подождав немного, вы так ничего и не услышите.

Вернёмся назад к структуре с Synth&lowbar;WAVE&lowbar;SIN, заменим Synth&lowbar;AMAN&lowbar;PLAY на Synth&lowbar;BUS&lowbar;UPLINK и настроим его название на audio (или fred, если так удобнее). Удаляем модули, выделяя их и выбирая в меню Правка Удалить (или нажимая клавишу Del).

Запустим ещё раз структуру Файл выполнить структуру. Вы услышите последовательность нот, переданных через шину.

Если вам нужно выяснить, почему что-то подобное этому может быть действительно удобным, нажмите Да (в &arts-builder;, который выполняет Synth&lowbar;SEQUENCE, вы можете всё оставить запущенным) и перейдите к 6-ому шагу.

### 6-й шаг: Обмен данными для опытных пользователей

Выберите Файл Переименовать структуру из меню artsbuilder, который содержит Synth&lowbar;SEQUENCE, и назовите её tutorial. Нажмите Да.

Выберите Файл Сохранить

Запустите ещё один &arts-builder;, выберите Файл Загрузить и загрузите tutorial снова.

Сейчас вы можете выбрать Файл Выполнить структуру в обеих копиях &arts-builder; с этой структурой. Вы можете услышать двойное воспроизведение одного и того же. В зависимости от времени, когда вы запускаете выполнение структуры, звук может изменяться.

Ещё можно сделать следующее: запустите &noatun; и начните проигрывание какого-нибудь `mp3`. Запустите &artscontrol;. Перейдите в Вид Управление звуком.Вы увидите &noatun; и вашу tutorial структуру воспроизводящую что-то. Ещё лучше, если вы сделаете следующее: дважды нажмите на &noatun;, и вы сможете просмотреть список доступных шин. Вы также можете указать &noatun; выводить данные на шину audio, предоставляемую структурой tutorial.

### Шаг 7: Синтез midi

Наконец, сейчас вы сможете сделать из вашей синусоидальной волны настоящий инструмент. Это ощутимо, только если у вас есть что-то передающее события &MIDI; в &arts;. Я хотел бы описать здесь, как вы сможете использовать некоторые внешние клавиатуры, midi-шина подобная &brahms; прекрасно подходит.

Во-первых, очистим рабочий стол от лишнего, вам понадобится только один &arts-builder;, выполняющий структуру с синусоидальной волной. Затем, трижды сделайте Порты Создать входящий сигнал, и три раза Порты Создать выходной сигнал. Разместите порты где-нибудь.

Выберите Порты Изменить позиции и имена и назовите порты frequency (частота), velocity (скорость), pressed (нажато), left (левый), right (правый), done (завершено).

Наконец, вы можете удалить модуль Synth&lowbar;SEQUENCE и соединить входящий порт frequency структуры с портом frequence модуля Synth&lowbar;FREQUENCY. Но как же позиция?

Мы её не имеем, потому как нет алгоритма, по которому вы могли бы предсказать, когда пользователь отпустит ноту, которую он только что нажал на midi клавиатуре. Так что мы имеем параметр pressed, который показывает когда пользователь держит нажатой клавишу. (pressed = 1: клавиша остаётся нажатой, pressed = 0: клавиша отпущена)

Это означает, что объект Synth&lowbar;PSCALE также должен замещён. Установите вместо него Synth&lowbar;ENVELOPE&lowbar;ADSR (из Модули Синтез Оболочки ).Соедините:

1. Вход структуры pressed с параметром active ADSR

2. Выход SIN с invalue ADSR

3. Outvalue ADSR с выходом структуры left

4. Outvalue ADSR с выходом структуры right

Установите параметры attack в 0.1, decay в 0.2, sustain в 0.7, release в 0.1.

Ещё нам нужно обдумать, как структура должна узнать, когда нужно начать и остановить воспроизведение, потому что иначе никогда оно не остановится, если нота была отпущена. Но оболочка ADSR знает, когда уже ничего не должно быть слышно, начиная с уменьшения сигнала к нулю с момента отпускания ноты.

Завершение показывается установкой 1 на выходе порта done. Так что связываем это с выходом done. Структура будет удалена, как только done установится в 1.

Переименуем нашу структуру в instrument_tutorial (из Файл Переименовать структуру. Затем сохраним его, используя сохранить как.

Запустим artscontrol, и перейдём в Вид Управление MIDI, и выберем Добавить Выход MIDI синтеза aRts. Наконец, вы здесь можете выбрать ваш инструмент (tutorial).

Откройте терминал и наберите ``midisend``. Вы можете заметить, что `midisend` и инструмент присутствуют в окне управления &MIDI; &arts;. После выбора обоих элементов и нажатия Соединить, мы всё завершим. Возьмите вашу клавиатуру и начните играть (конечно же она должна быть соединена с вашим компьютером).

### Предложения

Вам снова понадобилось по работать с &arts;. Имеются несколько советов, которые вы могли бы попробовать для улучшения вашей структуры:

- Попробуйте использовать что-нибудь другое, чем синусоидальную волну. Когда вы подключите треугольную волну, вы скорее всего предположите что звук не слишком хорош. Но попробуйте добавить фильтр SHELVE&lowbar;CUTOFF сразу же после модуля треугольной волны для вырезания частот выше основной (попробуйте например 1000 Гц или лучше в два раза выше чем входная частота или входная частота + 200 Гц или что-то похожее на это).

- Попробуйте использовать больше чем один генератор. Synth&lowbar;XFADE может быть использован для смешения двух сигналов, Synth&lowbar;ADD для сложения их.

- Попробуйте установить для генераторов не совпадающие частоты, что даст несколько лучшие характеристики.

- По экспериментируйте с более чем одной оболочкой.

- Попробуйте создать инструменты с различными левым и правым выходом.

- Также попробуйте дополнительно обработать сигнал после того как он попадёт на выходную шину.Вы можете, к примеру, смешать задержанные версии сигнала с оригинальным для создания эффекта эха.

- Попробуйте использовать настройку скорости (это сила, с которой нота будет сжата, вы можете также говорить о громкости). Специальный эффект всегда есть не только когда изменяется громкость результирующего сигнала, но также и звучание инструмента (для примера вырезание частот).

- ...

Если вы создали что-то замечательное, пожалуйста подумайте над возможностью предоставить это для интернет страницы &arts;. Или над включением в следующую версию.

## Примеры

&arts-builder; распространяется с несколькими примерами, которые могут быть открыты из Файл Открыть пример... . Некоторые из них есть в директории, другие, которые по каким-то причинам не работают с данной версией, находятся в директории todo.

Примеры разделяются на несколько категорий:

- Независимые примеры иллюстрируют как нужно использовать каждый из встроенных модулей arts (названы `example_*.arts`). Обычно они выводятся что-то на звуковую карту.

- Инструменты созданные из низкоуровневых модулей arts (названы `instrument_*.arts`).Они удовлетворяют соглашению о входных и выходных портах так что они могут быть использованы менеджером &MIDI; в &artscontrol;.

- Шаблоны для создания новых модулей (названия `template_*.arts`).

- Эффекты, которые могут быть использованы для создания ваших структур. (названы `effect_*.arts`) [все в директории todo ]

- Элементы для смешивания сигналов включая и графические управляющие элементы (названы `mixer_element_*.arts`). [ все в директории todo ]

- Различные модули что не подходят не к одной из выше названных категорий.

### Детальное описание каждого из модулей:

`example_stereo_beep.arts`

  Создаёт 440 Гц синусоидальную волну в левом канале и 880 Гц синусоидальную волну в правом канале, и выдаёт это на звуковую карту. Это описано в документации по &arts;.

`example_sine.arts`

  Создаёт 440 Гц синусоидальную волну.

`example_pulse.arts`

  Создаёт 440 Гц импульсную волну с 20% рабочим сигналом.

`example_softsaw.arts`

  Создаёт 440 Гц пилообразную волну

`example_square.arts`

  Создаёт 440 Гц меандр.

`example_tri.arts`

  Создаёт 440 Гц треугольную волну.

`example_noise.arts`

  Создаёт белый шум.

`example_dtmf1.arts`

  Создаёт двух тоновую волну из 697 Гц и 1209 Гц синусоидальных волн, усиливая их на 0.5 и складывая их вместе. Это DTMF тон для числа "1" на клавиатуре телефона.

`example_atan_saturate.arts`

  Пропускает треугольную волну через фильтр насыщения на функции atan.

`example_autopanner.arts`

  Используя авторазбиение 400 Гц синусной волны между левой и правой колонкой с частотой 2 Гц.

`example_brickwall.arts`

  Увеличивает синусоидальную волну с коэффициентом 5 и затем пропускает через фильтр brickwall.

`example_bus.arts`

  Исходящий канал из шины названной Bus и входящий канал в шину out_soundcard с зарезервированным левым и правым каналом.

`example_cdelay.arts`

  Исходящий канал из шины названной Delay и входящий правый канал через задержку в 0.5 секунд, и левый канал не изменяется.Вы можете использовать &artscontrol; для соединения эффекта с проигрывателем и пронаблюдать результат.

`example_delay.arts`

  Всё тоже самое как и в `example_cdelay.arts`, но используется эффект задержки.

`example_capture_wav.arts`

  Этот пример использует модуль Synth_CAPTURE_WAV для сохранения 400 Гц волну как wav файл. Модуль запускается на несколько секунд и затем проверяет создание файла в `/tmp`. Вы можете воспроизвести файл в таком проигрывателе как kaiman.

`example_data.arts`

  Этот пример использует модуль Data для создания постоянного потока со значением 3 и пересылает его в модуль Debug для периодического показа. Также есть модуль Nil, иллюстрирующий как он может быть использован для ничего не делания.

`example_adsr.arts`

  Показывает как создавать простые инструменты используя модуль Envelope Adsr, переключающийся меандром.

`example_fm.arts`

  Используется модуль FM Source для создания 440 Гц синусоидальной волны с модулируемой частотой 5 Гц.

`example_freeverb.arts`

  Данный пример соединяет эффект Freeverb исходящего канала с выходом. Вы можете использовать Artscontrol для подключения эффекта к проигрывателю и пронаблюдать результат.

`example_flanger.arts`

  Данный пример реализует простой краевой(flanger) эффект (это может ещё не работать).

`example_moog.arts`

  Данная структура комбинирует два канала из шины в один, пропуская через Moog VCF-фильтр и посылает на шину звуковой платы.

`example_pitch_shift.arts`

  Данная структура прогоняет данные левого канала через фильтр-смещения (pitch shift).С помощью установки различной скорости вы можете изменять эффект.

`example_rc.arts`

  Данная структура пропускает белый шум через RC-фильтр и выводит сигнал на звуковую плату.На индикаторе БПФ(FFT) в artscontrol вы можете увидеть как изменяется форма сигнала из не фильтрованного шума.

`example_sequence.arts`

  Демонстрация модуля Sequence с помощью проигрывания последовательности нот.

`example_shelve_cutoff.arts`

  Эта структура пропускает белый шум через фильтр Shelve-Cutoff и выводит на звуковую плату.На индикаторе БПФ(FFT) в artscontrol вы можете увидеть как изменяется форма сигнала из не фильтрованного шума.

`example_equalizer.arts`

  Демонстрация модуля Std_Equalizer. Повышает нижние и высокие частоты на 6 Дб.

`example_tremolo.arts`

  Демонстрация эффекта Тремоло. Левый и правый канал модулируются 10 Гц Тремоло.

`example_xfade.arts`

  В приведенном примере смешиваются частоты 440 Гц и 880 Гц синусоидальных волн с использованием cross fader. Последний может иметь значение от -1 до 1.

`example_pscale.arts`

  Демонстрация работы модуля Pscale (Я не уверен что это подходящий пример).

`example_play_wav.arts`

  Иллюстрирует модуль Play Wave. Вам нужно ввести полный путь до файла `.wav` в параметр имя файла.

example_multi_add.arts

  Модуль Multi Add может обрабатывать любой набор входных каналов. В примере суммируются три выхода Data-модулей и показывает результат 6.