Программирование В Puredata. Часть 1

Несколько дополнений и терминологии В предыдущая статья мы познакомились с основными математическими операторами и освежили в памяти принципы организации цифрового звука.

Также там я указал, что суть соединений в PureData — это передача сообщений, сигналов и импульсов.

Здесь стоит уточнить один момент: на самом деле импульс — это частный случай сообщения.

Передача импульса означает передачу единицы, чтобы убедиться в этом, подключите [bang] и NumberBox и посмотрите, что произойдет. Согласно общепринятой терминологии, используемой в литературе и библиотечных справочниках, числовые сообщения называются скаляры , а сигналы векторы .

Думаю, я тоже буду придерживаться этого.

Давайте начнем.

Сигналы и сигнальные объекты Сигналы — это данные, предназначенные для вывода на аудиоустройства.

Как нетрудно догадаться, объекты сигналов — это инструменты для генерации и обработки сигналов.

В PureData объекты сигналов определяются постфиксом [~], например: [osc~], [фазор~], [+~].

Также в коде выделены входы и выходы, принимающие и отправляющие сигналы, и соответствующие соединения.

Сигнальный выход не может быть подключен к скалярам и, за редким исключением, наоборот. Давайте поближе познакомимся с этими объектами.



Простейший синтезатор и первый графический интерфейс

Объект, который очень часто используется в патчах, и без которого не обходится ни один генератор — [оск~] .

Он принимает значение частоты на левом входе.

Хоть он и подсвечен, но передать номер здесь вполне возможно.

Однако сейчас мы не услышим ни звука; для этого нам нужно послать сигнал на звуковую карту.

Выход задается объектом [дак~] .

Уменьшите громкость, потому что она будет достаточно громкой.

Левый вход — левый канал, правый — правый канал.

У нас получился простой синтезатор.



Программирование в PureData. Часть 1

Теперь давайте добавим сюда немного простой математики.

Во-первых, давайте подключим регулятор громкости.

На основе формулы у=А*грех(х) , можно сделать вывод, что изменения амплитуды можно добиться с помощью операции умножения.

Для этого достаточно умножить сигнал на определенное число.

Для этого мы используем объект [*~] .

Все арифметические действия над волнами можно получить, добавив к символу скалярного оператора постфикс «~».

.

Теперь подключим осциллятор к объекту умножения и добавим числовой блок, ограничив его диапазоном [0, 1], это можно сделать через свойства.

Отправим на выход результат умножения и заблокируем патч.

И, удерживая Shift, перетащите мышкой число в числовом поле.



Программирование в PureData. Часть 1

Это работает, но это неудобно.

Поэтому будем искать альтернативу.

Давайте создадим объекты [vslider] и [knob].

Красота? Красота.

Иметь фейдер и потенциометр гораздо практичнее, чем коробочку с цифрами.

Давайте ограничим их через «свойства» в [0, 1].

А давайте попробуем вместо nuberBox подключить сначала один объект, потом другой.



Программирование в PureData. Часть 1

Как видите, особой разницы нет, а что использовать, зависит только от вашего вкуса и желания.

На следующем уроке мы займемся аддитивным синтезом и манипулируем огибающими.

Теги: #Звук #учимся программировать #учимся программировать #музыка #звуковой дизайн

Вместе с данным постом часто просматривают: