Несколько дополнений и терминологии В предыдущая статья мы познакомились с основными математическими операторами и освежили в памяти принципы организации цифрового звука.
Также там я указал, что суть соединений в PureData — это передача сообщений, сигналов и импульсов.
Здесь стоит уточнить один момент: на самом деле импульс — это частный случай сообщения.
Передача импульса означает передачу единицы, чтобы убедиться в этом, подключите [bang] и NumberBox и посмотрите, что произойдет. Согласно общепринятой терминологии, используемой в литературе и библиотечных справочниках, числовые сообщения называются скаляры , а сигналы векторы .
Думаю, я тоже буду придерживаться этого.
Давайте начнем.
Сигналы и сигнальные объекты Сигналы — это данные, предназначенные для вывода на аудиоустройства.
Как нетрудно догадаться, объекты сигналов — это инструменты для генерации и обработки сигналов.
В PureData объекты сигналов определяются постфиксом [~], например: [osc~], [фазор~], [+~].
Также в коде выделены входы и выходы, принимающие и отправляющие сигналы, и соответствующие соединения.
Сигнальный выход не может быть подключен к скалярам и, за редким исключением, наоборот. Давайте поближе познакомимся с этими объектами.
Простейший синтезатор и первый графический интерфейс
Объект, который очень часто используется в патчах, и без которого не обходится ни один генератор — [оск~] .Он принимает значение частоты на левом входе.
Хоть он и подсвечен, но передать номер здесь вполне возможно.
Однако сейчас мы не услышим ни звука; для этого нам нужно послать сигнал на звуковую карту.
Выход задается объектом [дак~] .
Уменьшите громкость, потому что она будет достаточно громкой.
Левый вход — левый канал, правый — правый канал.
У нас получился простой синтезатор.
Теперь давайте добавим сюда немного простой математики.
Во-первых, давайте подключим регулятор громкости.
На основе формулы у=А*грех(х) , можно сделать вывод, что изменения амплитуды можно добиться с помощью операции умножения.
Для этого достаточно умножить сигнал на определенное число.
Для этого мы используем объект [*~] .
Все арифметические действия над волнами можно получить, добавив к символу скалярного оператора постфикс «~».
.
Теперь подключим осциллятор к объекту умножения и добавим числовой блок, ограничив его диапазоном [0, 1], это можно сделать через свойства.
Отправим на выход результат умножения и заблокируем патч.
И, удерживая Shift, перетащите мышкой число в числовом поле.
Это работает, но это неудобно.
Поэтому будем искать альтернативу.
Давайте создадим объекты [vslider] и [knob].
Красота? Красота.
Иметь фейдер и потенциометр гораздо практичнее, чем коробочку с цифрами.
Давайте ограничим их через «свойства» в [0, 1].
А давайте попробуем вместо nuberBox подключить сначала один объект, потом другой.
Как видите, особой разницы нет, а что использовать, зависит только от вашего вкуса и желания.
На следующем уроке мы займемся аддитивным синтезом и манипулируем огибающими.
Теги: #Звук #учимся программировать #учимся программировать #музыка #звуковой дизайн
-
О Клиентах Малобюджетных Сайтов
19 Oct, 24