&arts-builder;
Описание
Перед запуском &arts-builder; вам нужно запустить звуковой сервер (&artsd;). Обычно, если используется &kde; 2.1, это должно быть уже сделано. Если нет, вы можете настроить автоматический запуск звукового сервера в Центре управления в ЗвукЗвуковой сервер.
Когда вы запускаете &arts;, программа всегда запускает небольшие модули. &arts-builder; - это инструмент для создания новых структур из небольших связанных модулей. Вы просто выбираете модули внутри решётки. Для этого выбирайте их из меню Модули и затем укажите место на серо-зелёном фоне.
Модули обычно имеют порты (куда обычно аудио сигналы входят или выходят).Для связывания двух портов, укажите на первый, который становится оранжевым, и затем укажите на второй. Связывать вы можете только входные порты (верхняя часть модуля) с выходными (нижняя часть модуля). Если вы желаете установить постоянный сигнал в порт (или отключить его), тогда сделайте двойной щелчок мышью над портом.
Руководство
1-й шаг
Запуск &arts-builder;.
Вам нужен модуль Synth_AMAN_PLAY для прослушивания результата вашего творчества. Для установки модуля Synth_AMAN_PLAY выберите Модули Синтез Звуковой ввод/вывод Synth_AMAN_PLAY и указать на свободное место для модуля. Расположите его ниже пятой линии, потому как мы добавим ещё что-нибудь выше.
Модуль имеет параметр title (крайний левый порт), и autoRestoreID (рядом с крайним левым портом) для поиска. Для заполнения их, сделайте двойной щелчок над этими портами, выберите значение и тип tutorial в поле ввода. Нажмите OK для завершения.
Выберите ФайлВыполнить структуру . Вы абсолютно ничего не услышите.Модулю воспроизведения нужно что-нибудь ещё передать на вход. Если вы слышали некоторое время тишину, нажмите на Да и переходите ко второму шагу.
2-й шаг
Создайте модуль Synth_WAVE_SIN (из меню Модули Синтез Волновые ) и установите его выше модуля Synth_AMAN_PLAY. (Оставьте одну строку между ними).
Как вы видите, этот модуль что-то выдаёт, но требует pos в качестве входа. Сначала давайте установим выход на колонки.Нажмите на порт out в модуле Synth_WAVE_SIN и затем на порт left в модуле Synth_AMAN_PLAY.Теперь у нас соединены два модуля.
Все осцилляторы в &arts; не требуют частоту на входе, нужна позиция в волне. Позиция должна быть между 0 и 1, которые отображаются для стандартного объекта Synth_WAVE_SIN на область 0..2*пи. Для получения значений осцилляций из частоты используются модули Synth_FREQUENCY.
Установите модуль Synth_FREQUENCY (с помощью Модули Синтез Oscillation & Modulation ) и соедините его вывод pos
со входом pos
вашего Synth_WAVE_SIN. Выставите частотному генератору значение 440.
Выберите ФайлИсполнить структуру. Вы услышите частоту 440 Гц на одной из ваших колонок. Если вы услышали, то нажимайте на кнопку Да и переходите к 3-ему шагу.
3-й шаг
Было бы хорошо услышать частоту в обеих колонках. Для этого подключите правый канал Synth_PLAY к выходу Synth_WAVE_SIN.
Создайте объект Synth_SEQUENCE (из МодулиСинтезMidi & Sequencing). Он должен быть сверху. Если вам нужно больше места вы можете переместить другие модули выделяя их (для выделения нескольких модулей используйте &Shift;), и перетаскивая их в сторону.
Снова соедините выход частоты Synth_SEQUENCE ко входу модуля Synth_FREQUENCY. Затем установите значение скорости последовательности в 0.13 (скорость крайний левый порт).
Сейчас перейдите крайнему правому порту (последовательности) Synth_SEQUENCE и установите последовательность, написав A-3;C-4;E-4;C-4;. За дополнительной информацией обращайтесь к описанию модулей.
Synth_SEQUENCE в действительности нуждается в установке последовательности и скорости. Без этого вы можете получить сбой программы.
Выберите ФайлИсполнить структуру. Вы услышите проигрывание последовательности. Если вам понравилось, то нажимайте Да и переходите к четвёртому шагу.
4-й шаг
Создайте модуль Synth_PSCALE (из Модули Синтез Оболочки ). Отключите выход синусоидальной волны двойным щелчком и выберите не подключён. Подключите
Выход модуля SIN ко входу модуля PSCALE
Выход PSCALE ко левому входу модуля AMAN_PLAY
Выход PSCALE ко правому входу модуля AMAN_PLAY
SEQUENCE pos к PSCALE pos
Наконец, установите параметр top модуля PSCALE в некоторое значение, для примера 0.1
Как это работает: Synth_SEQUENCE берёт дополнительную информацию о позиции ноты,которую сейчас проигрывает, пока 0 означает запущен и 1 завершён. Модуль Synth_PSCALE усиливает пропускаемый аудио поток от значения громкости 0 (тихо) до 1 (оригинальная громкость) и обратно до 0 (тихо). В соответствии с позицией. Позиция пика может быть получена как значение pos.0.1 означает, что после проигрывания 10% ноты, громкость увеличивается до максимума и потом начинает уменьшаться.
Выберите ФайлВыполнить Структуру. Вы услышите воспроизведение прекрасной последовательности.Если вам понравилось, то нажмите OK и переходите к пятому шагу.
5-й шаг: Начало распространения данных вокруг ;)
Запустите ещё одну программу &arts-builder;
Установите там Synth__AMAN_PLAY и нормально настройте его. Добавьте туда Synth_BUS_DOWNLINK и:
Установите параметр bus модуля Synth_BUS_DOWNLINK в audio (это просто название, можно написать fred, если вам так нравится)
Свяжите параметр left Synth_BUS_DOWNLINK с параметром left Synth_AMAN_PLAY
Свяжите параметр right Synth_BUS_DOWNLINK с параметром right Synth_AMAN_PLAY
Запустите выполнение структуры. Подождав немного, вы так ничего и не услышите.
Вернёмся назад к структуре с Synth_WAVE_SIN, заменим Synth_AMAN_PLAY на Synth_BUS_UPLINK и настроим его название на audio (или fred, если так удобнее). Удаляем модули, выделяя их и выбирая в меню ПравкаУдалить (или нажимая клавишу Del).
Запустим ещё раз структуру Файл выполнить структуру. Вы услышите последовательность нот, переданных через шину.
Если вам нужно выяснить, почему что-то подобное этому может быть действительно удобным, нажмите Да (в &arts-builder;, который выполняет Synth_SEQUENCE, вы можете всё оставить запущенным) и перейдите к 6-ому шагу.
6-й шаг: Обмен данными для опытных пользователей
Выберите ФайлПереименовать структуру из меню artsbuilder, который содержит Synth_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_SEQUENCE и соединить входящий порт frequency структуры с портом frequence модуля Synth_FREQUENCY. Но как же позиция? Мы её не имеем, потому как нет алгоритма, по которому вы могли бы предсказать, когда пользователь отпустит ноту, которую он только что нажал на midi клавиатуре. Так что мы имеем параметр pressed, который показывает когда пользователь держит нажатой клавишу. (pressed = 1: клавиша остаётся нажатой, pressed = 0: клавиша отпущена)
Это означает, что объект Synth_PSCALE также должен замещён. Установите вместо него Synth_ENVELOPE_ADSR (из МодулиСинтез Оболочки ).Соедините:
Вход структуры pressed с параметром active ADSR
Выход SIN с invalue ADSR
Outvalue ADSR с выходом структуры left
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_CUTOFF сразу же после модуля треугольной волны для вырезания частот выше основной (попробуйте например 1000 Гц или лучше в два раза выше чем входная частота или входная частота + 200 Гц или что-то похожее на это).
Попробуйте использовать больше чем один генератор. Synth_XFADE может быть использован для смешения двух сигналов, Synth_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.