pure data что это

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

Немного общей информации

PureData — визуальный язык программирования для создания интерактивных программ (в данном случае их чаще называют «патчи»), используемых для исполнения и записи компьютерной музыки, звукового дизайна и визуализаций. Люди, знакомые, например, с Max/MSP, узнают привычный для них графический код, так как PureData — один из языков семейства MAX-подобных.

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

В этой статье я опишу некоторые элементы языка, а так же основные принципы, на которых базируется работа со звуком в PureData.

PureData — кроссплатформенный, есть сборки для Windows, MacOS, Linux и FreeBSD; работает как со стандартными драйверами (ALSA, MMIO), так и с jack, ASIO, так же поддерживается трансфер midi. Все версии доступны для скачивания с официального сайта. Рекомендую качать extended-версию, так как в ней из коробки содержится большой набор внешних библиотек, крайне необходимых в большинстве случаев.

Представление цифрового звука

А вот тут можно вспомнить патефон и пластинку. Каков принцип записи звука на винил? Резак, царапающий виниловый диск, вынужденно колеблется под действием некоего источника (сигнал с микрофона, например), из-за чего на поверхности диска срез становится извилистым, и этот след идеально повторяет колебания резака. Впоследствии, когда игла движется по этой извилистой дорожке, она колеблется, точно повторяя колебания источника. Т.е. игла зазвучит. Так вот, если эту дорожку представить в виде графика, и записать с маленьким шагом координаты точек графика — мы получим звуковой файл. Таким образом WAV — не что иное, как массив чисел, которые являются точками некоей кривой. Данный процесс — разбиения волны на точки, — называется дискретизацией, а частота, с которой берутся точки для записи в файл — частота дискретизации.

Из этого как раз и рождается первый аспект программного синтеза: описывать математически звук как некую линию, которая является графическим представлением нужных нам колебаний. Этот подход универсален и реализуем на любом языке, имеющим библиотеки взаимодействия со звуковыми устройствами. Хотя на самом деле, это не обязательно, так как массив значений можно просто сложить в файл, повесив расширение WAV.

Такое представление логично и универсально, но не всегда удобно. Контролировать работу программного синтезатора гораздо проще и удобней, если взаимодействие элементов интерфейсно напоминает модульный синтезатор. Для тех кто не в курсе: модульный синтезатор — это устройство, состоящее из различных самостоятельных компонентов (т.н модулей: генераторы, фильтры, преобразователи и т.д.), соединенных между собой проводами. В этом случае исполнителю известно, какой модуль за что отвечает, в каком порядке они следуют друг за другом, и, немаловажно, конфигурацию можно изменять «на горячую».

Именно такой подход, с точки зрения построения кода, реализован в MAX-подобных языках:

pure data что это. Смотреть фото pure data что это. Смотреть картинку pure data что это. Картинка про pure data что это. Фото pure data что это

Итак, Второй аспект программного синтеза на PD: взаимодействие элементов языка строится по аналогии с модульным синтезатором.
На практике эти два подхода находятся в симбиозе, взаимодополняя друг друга.

Итак, узнав, с чем мы будем иметь дело, приступим непосредственно к PureData.

Элементы языка PureData

В общем и целом, программирование нa PureData сводится к трем вещам: передача «импульсов», чисел и сигналов. Основных элементов языка тоже немного, четыре: объекты, численные блоки (number box), блоки сообщений (message box) и соединения, похожие на провода. Напишем простейшую программу, заставим PD сложить два числа.

Итак, в окне с новым патчем создадим объект (Сtrl-1), разместим где-нибудь этот прямоугольник и впишем туда [bng] (он же bang). Без этого объекта не обходится практически не один патч. Его задача создать и послать импульс. Сейчас разберемся куда и зачем. Теперь создадим два блока с сообщениями (Сtrl-2) и впишем туда два произвольных числа, соединив bang с каждым из блоков. Итак, теперь эти числа нужно сложить. Для этого снова создаем объект, и вписываем в него «+». Ожидаемо, правда? Соединим численные блоки с объектом «+». Теперь осталось только вывести результат. Это можно сделать либо в консоль, с помощью объекта print, либо оставить внутри патча, отправив его в number box (Ctrl-3).

pure data что это. Смотреть фото pure data что это. Смотреть картинку pure data что это. Картинка про pure data что это. Фото pure data что это

Чтобы проверить патч в действии, его нужно заблокировать (Ctrl-E) и нажать на объект bang. Итак, в консоли или в numbreBox’e, мы видим результат. Если он неверен — не пугайтесь, строкой ниже все разберем. Что произошло, нажав на bang, мы создали импульс, который по соединениям пришел к блокам сообщений и передал их дальше объекту сложения и т.д.

А теперь попытаемся понять, почему у некоторых из нас результат сложения неверен. Просто нажмите bang еще раз. Теперь верно? Дело в том, что на правильность выполнения арифметических операций влияет порядок соединения элементов. При построении патча, схожим с нашим, правильность гарантируется, если объекты были соединены справа-налево. Это чертовски неудобно, невозможно отладить и найти ошибку. Но этого всего можно избежать, если применить другой объект, задача которого разбивать вход на несколько потоков и слать импульсы одновременно.
Это объект trigger.

Создадим объект с этим именем. Теперь рядом запишем, что нужно передать (bang — импульс, float — числовое значение, anything — любой). Так как мы разбиваем импульс на два, содержимое объекта у нас приобретает вид trigger bang bang, сокращенно t b b. Осталось соединить выходы с числами. Вот теперь результат будет верным независимо от порядка соединения.

pure data что это. Смотреть фото pure data что это. Смотреть картинку pure data что это. Картинка про pure data что это. Фото pure data что это

pure data что это. Смотреть фото pure data что это. Смотреть картинку pure data что это. Картинка про pure data что это. Фото pure data что это

Послесловие и F1

Сегодня мы рассмотрели самый возможный минимум и разобрались в разности представлений, в следующей статье я опишу работу условной логики и простейшие объекты, связанные с работой над сигналами. Осталось только рассказать про систему справки. Справкой приходится пользоваться постоянно, и чтобы увидеть информацию по объекту, достаточно кликнуть по нему правой кнопкой мыши и выбрать пункт «help». Там будет содержаться описание и, в большинстве случаев, примеры использования. Полный список объектов и библиотек доступен в пункте Pd help browser или по хоткею Ctrl-b.

pure data что это. Смотреть фото pure data что это. Смотреть картинку pure data что это. Картинка про pure data что это. Фото pure data что это

Следующие статьи и уроки, посвященные PureData я постараюсь выпускать не реже раза в неделю. Всех благ.

Источник

Pd Community Site

Разделы
Персональные инструменты
Pd Webring
Действия с Документом

Pure Data

Welcome to the Pure Data site!

This site is a contribution of the IEM to the Pure Data community. Every Pure Data user who wants to contribute is welcome to join this portal and write/contribute some documentation, reports, news, comments and announcing events. The site is run on a Linux server with Zope / plone and administrated and driven by the Pure Data community.

About Pure Data (aka «Pd» / «Pd Vanilla»)

Pure Data (or just «Pd») is an open source visual programming language for multimedia. Pure Data is developed by Miller Puckette since 1996 and you can find it on his official website along with the official documentation and other related resources. This is the official «Pd» or «main distribution» and it is also known as «Pd Vanilla», but there are other forks or «flavours».

Download Pure Data (Linux/Mac/Windows)

What’s New? Pd keeps evolving! See the Release notes for details.
One of the most prominent new features in last decade has been the inclusion of the Deken library manager for easy access to community-developed external libraries that expand the capabilities of Pd such as Cyclone, zexy, and the computer graphics library Gem.

Main Pd flavours

Pure Data is an Open Source project and embraces derivatives. Notable flavours of Pd include:

Pd-vanilla Miller S. Puckette’s original distribution of Pd. Pd-ceammc Fully compatible with Pd Vanilla, this flavour is enhanced with some UI tweaks, including some from (the now unmaintained and deprecated) Pd-Extended (like visually differentiating control and signal in/outlets). It carries some pre-installed externals (but none from Pd-extended); most notably it has the ceammc library (that you can also install on Pd Vanilla ans use in Vanilla most of what this flavour offers). Pd-L2Ork Pd-L2Ork 1.x started in 2009 as a fork of Pd-extended (but for Linux only), including the same pre-installed externals as Pd-extended and more. A cross platform version was released in 2017 named Purr Data (now an independent project, see below), which also included a port to a new HTML5 front-end GUI (instead of tcl/tk). In the fall of 2021, Pd-L2Ork provided new releases unrelated to Purr Data, but including the same HTML5 GUI port provided in Purr Data. GUI externals made for Pd-Vanilla that use tcl/tk are not compatible to the HTML5 GUI front-end, and some GUI externals from Pd-extended haven’t been ported yet. Note that there are also some incompatibilities/differences between the core of Pd-Vanilla and Pd-L2Ork. Purr Data Started as an updated version of Pd-L2Ork 1.x ported to an HTML5 GUI front-end GUI. This flavour also includes pre-installed externals from Pd-Extended and others more. It has the same caveat that GUI externals made for Pd-Vanilla are not compatible to the HTML5 GUI front-end, and some GUI externals from Pd-extended haven’t been ported yet. Note that there are also some incompatibilities/differences between the core of Pd-Vanilla and Purr Data. Other than that, you must now also consider Pd-L2Ork and Purr Data incompatible to each other as well, meaning that things that work in one may not work in the other.

More about Pure Data

Find other Pd goodies to download at the Downloads page

Pure Data is an open source visual programming environment that runs on anything from personal computers to embedded devices (ie Raspberry Pi) and smartphones (via libpd, DroidParty (Android), and PdParty (iOS). It is a major branch of the family of patcher programming languages known as Max (Max/FTS, ISPW Max, Max/MSP, etc), originally developed by Miller Puckette at IRCAM.

Pd enables musicians, visual artists, performers, researchers, and developers to create software graphically without writing lines of code. Pd can be used to process and generate sound, video, 2D/3D graphics, and interface sensors, input devices, and MIDI. Pd can easily work over local and remote networks to integrate wearable technology, motor systems, lighting rigs, and other equipment. It is suitable for learning basic multimedia processing and visual programming methods as well as for realizing complex systems for large-scale projects.

Algorithmic functions are represented in Pd by visual boxes called objects placed within a patching window called a canvas. Data flow between objects are achieved through visual connections called patch cords. Each object performs a specific task, which can vary in complexity from very low-level mathematical operations to complicated audio or video functions such as reverberation, FFT transformations, or video decoding. Objects include core Pd vanilla objects, external objects or externals (Pd objects compiled from C or C++), and abstractions (Pd patches loaded as objects).

Documentation and resources

Find Pd people on Facebook and Reddit and join us on our mailing list (more on the Community page )

Источник

Pure data что это

Хотите создать свой синтезатор или эффект, но не знаете с чего начать? Не умеете хорошо программировать, или умеете, но нет времени на разработку на C/C++ с нуля? А может, вам нужно просто и быстро создать прототип? Или, вы хотите поиграться со звуком, и возможно, научиться чему-то новому, например, понять синтез с самых его основ? В любом случае, то, что чём я расскажу, может быть вам полезно, интересно, а также стать новым увлечением 🙂

Вступление

Некоторое время назад я начал искать инструмент для быстрого прототипирования синтов и эффектов, удобный и лёгкий в освоении. Пересмотрел множество вариантов (действительно множество, такого многообразия я и не ожидал, когда начинал разбираться в вопросе). В итоге, в финал вышли две среды разработки — SuperCollider и PureData. Оба — бесплатные, кросплатформенные, с активной пользовательской базой. И с совершенно разным подходом к процессу программирования. SuperCollider — объектно-ориентированный язык программирования, в котором патч создаётся как обычная программа, в текстовом виде. Признаться, меня это, как программиста, подкупило. PureData же, напротив, является визуальным языком, где патч задаётся в виде блоков (представляющих объекты, числа и сообщения) и их соединений. На деле же, потыкавшись в SuperCollider’е, я понял, что сделать там что-то сходу, без приличного углубления в документацию, довольно проблематично. Например, в прошлой статье я выкладывал ссылку на патч Hoover для Коллайдера. Попробовал прикрутить к нему MIDI-управление. Это потребовало поисков инфы в сети, я нашёл код, который делал бы примерно то, что мне нужно, но даже прикрутить его так, чтобы всё заработало как я хотел, сходу не получилось. Вывод, который был сделан, — без активного курения мануалов в SuperCollider суваться нет смысла. Да и сам язык, признаться, вовсе не является красивым в моём понимании. В общем, Коллайдер я временно отложил, и взялся за PureData, который оказался на пару порядков интуитивнее и проще. Ну, поехали.

Кратко о главном

Итак, PureData, сокращённо Pd — это среда и язык визуального программирования, изначально созданный для программирования звука (однако, в настоящее время, с помощью дополнительных модулей позволяющий работать и с графикой, и с видео). Пакет кросплатформенный и бесплатный. Разрабатывается он довольно немалым сообществом, а автором ядра языка является Miller S. Puckette (он же автор известного Max/MSP, с которым у Pure Data очень много общего). Pd довольно популярен, его изпользует множество людей, начиная от игровых саунддизайнеров, и заканчивая музыкантами. Патчи, сделанные в PureData, при желании можно использовать как VST в вашем DAW, для этого существуют соответствующие тулзы. Равно как и в самой среде PureData можно использовать VST.

Скачать PureData под вашу платформу можно с официального сайта, например тут. Себе я поставил вариант Pd-extended, включающий в дополнение к ядру некоторое количество дополнительных возможностей.

Установка и настройка

Устанавливаем. Запускаем. Видим перед собой основное окно программы:

Проверьте настройки аудио и MIDI в меню Media->Audio settings… и Media->MIDI settings… Для проверки можно выбрать пункт Media->Test Audio and MIDI, и в открывшемся окошке потыкать тип сигнала в разделе TEST TONES. Звук должен быть включен (пункт меню Media->Audio ON).

Основы патчинга

Будем считать, что всё настроено. Поехали. Тыкаем в пункт меню File->New, и открывается пустое окно нового проекта. Первое, что обычно пишут, встречаясь с новым языком программирования — программу «Hello world!». Что-ж, последуем традиции.

Патч в pd состоит из блоков и их соединений, описывая таким образом поток данных. Блоки можно добавлять через меню Put. Есть несколько видов блоков, как то:
* Object (объект, он что-то делает с данными)
* Message (сообщение)
* Number (число, просто число)
* Сomment (комментарий, на функциональность не влияет)

Сейчас мы хотим просто вывести строку-приветствие. Следовательно, нам нужно иметь две сущности: а) строка (это наши данные) б)объект, который умеет строку выводить.

Тыкаем на пустом месте проекта (а оно сейчас целиком представляет собой чистый белый лист) правой кнопкой мыши, и в контекстном меню выбираем Help. Открывается окошко со списком доступных нам стандартных объектов:

Поищем там то, что нам нужно. Ага, там есть «print«. Отлично!

Добавляем новый Object через меню Put, или прямо с клавиатуры с помощью Ctrl+1. В окошке появляется прямоугольник. Вводим туда имя объекта, который мы хотим создать, в нашем случае это «print«. Теперь кликаем мышкой где-нибудь на пустом месте, и вот, объект создан:

Теперь аналогичным образом добавим следующий блок, только на этот раз не Object, а Message. Вводим в него текст, который хотим напечатать, например «Hello cjclub.ru!»:

Заметим, что форма наших блоков разная. Это сделано специально, чтобы легко различать их типы. Object — простой прямоугольник, Message — с фигурным правым краем, Number — со скошенным уголком (напоминает перфокарту). Также видно, что блоки имеют некоторое количество маленьких прямоугольничков сверху и снизу. Это — входы (те, что сверху) и выходы (которые снизу).

И вот ответственный момент — подключаем одно к другому. Выход сообщения подключим к входу объекта «print» (кликаем на выходе одного блока, и, не отпуская кнопку, тащим ко входу второго, потом отпускаем). Всё, программа готова:

Здесь нужно сказать, что в Pure Data есть два режима работы: режим редактирования, и режим исполнения. Переключаются они через пункт меню Edit->Edit Mode или с клавиатуры по Ctrl+E. Сейчас мы находились в режиме редактирования. Переключимся в режим исполнения. Курсор изменит вид на обычную стрелку, мы потеряем возможность редактировать патч, но получим возможность им управлять. Кликнем мышкой на блоке с сообщениием. Это вызовет посылку сообщения объекту «print«, и наша строчка будет напечатана в консоли:

Работа со звуком

Делаем простой осциллятор

Но начнём же наконец работать со звуком. Сейчас мы в три приёма создадим терменвокс (ну, почти терменвокc 🙂
Откроем новое окошко, и добавим следующие блоки: Number, Object (сюда вписываем «osc

«) и ещё один Object (вписываем «dac

«). Соединяем последовательно выходы со входами, как показано на картинке:

Мы только что создали осциллятор с синусоидальной формой волны (объект «osc

«) и подключили его к выходу саунд-карты (представленному объектом «dac

«, что по-нашему просто ЦАП). Ко входу осциллятора мы подключили число, которое будет задавать рабочую частоту, а выход осциллятора подключили одновременно к двум входам ЦАП (так как у нас по умолчанию 2 стерео канала). Заметим, что имена созданных объектов оканчиваются на тильду, и это неспроста. Объекты с такими именами работают с непрерывными потоками данных, в нашем случае — с аудиосигналом. Объекты же, имена которых не оканчиваются на тильду, работают с единичными командами и параметрами (как, например, «print»). Соответственно, разными бывают и связи — связь по команде или параметру выглядит тонкой линией, а «провод», передающий аудио — толстой.

Теперь проверим, как оно работает. Переходим в режим исполнения, удостоверяемся, что звук включен (Media->Audio ON), кликаем мышкой на блоке с числом, и, не отпуская кнопку, начинаем двигать мышь. Число начинает меняться, его новое значение передаётся осциллятору, который меняет свою рабочую частоту вместе с изменением числа. Двигаем мышью вверх-вниз, и играем на нашем «терменвоксе». Неплохо для начала, да?

Добавляем регулировку громкости

Но вы заметили, что звук слишком громкий? Это потому, что осциллятор генерирует сигнал с максимальной (единичной) амплитудой. Сделаем его потише. Добавим объект с именем «*

» и подключим выход осциллятора через него. Как вы уже наверное догадались по имени этого объекта, он умножает (его имя состоит из звёздочки — знака умножения) аудио сигнал (тильда в конце имени, это признак непрерывных данных). А вот то, на что именно умножает — задаётся или константным параметром (он пишется через пробел после имени объекта), или вторым входом объекта, к которому можно подключить блок Number, чтобы менять громкость в реалтайме. Впишем в первом случае просто число 0.5 (получится деление на два):

Во втором случае громкость будет задаваться мышкой (чтобы задавать дробные значения, при движении мышью удерживайте нажатым Shift):

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

Идём дальше

Ну и, наконец, сделаем совсем круто: будем задавать громкость в децибелах и с ограничением, чтобы не было клиппинга (в Pd единичная громкость эквивалентна 100dB). Создадим Number со значением громкости, кликнем по нему правой кнопкой, выберем Properties, и в настройках укажем минимальное и максимальное значение, например, 10 и 100. Теперь создадим объект «dbtorms», и подадим наше значение ему на вход, а его выход подключим к умножителю. Как следует из его имени, этот объект переводит значение в децибелах в линейное. Не будем слепо доверять ему, и подключим к его выходу ещё один Number — для контроля. Вот такая схема у нас получилась:

Проверяем — работает. Указанные пределы громкости не дают звуку зашкалить за единицу, в контрольном блоке отображается текущее линейное значение громкости.

Level up!

Всё, с синусом наигрались. Сделаем-ка что-то повеселее. Например, попробуем соорудить Supersaw! Ну хорошо, признаемся сразу, что суперпилу с ходу не сделаем. Это будет детюнингованная пила, состоящая из семи разнесённых по частоте пил. Для этого нам будет нужно семь источников пилообразного сигнала. Смотрим в списке объектов, и находим «phasor

» — то, что нужно. Ну а что делать дальше, мы уже знаем. Создаём Number, который будет задавать частоту, к его выходу подключаем шесть объектов, каждый из которых будет сдвигать частоту вниз или вверх на заранее заданное нами значение в Герцах. Создаём семь генераторов пил, и подключаем к ним наше управление частотой. К центральной пиле подключим исходную частоту. Выходы всех семи осцилляторов соединим в один сигнал, сделаем потише, чтобы избежать клиппинга, ну и для полноты картины добавим фильтры низких и высоких частот («lop

» соответственно). Ну а итоговый сигнал — на саунд-карту (к входу объекта «dac

Проверяем… Йэс! Получили детюнингованную пилу, сделанную своими руками. Осталось прикрутить MIDI-управление, блок ADSR, и наш первый синтезатор будет готов. Но это уже за рамками данной статьи.

Источник

Синтез звука в среде Pure Data

Материал из Xgu.ru

Pure Data — это язык визуального программирования, изначально придуманный для программирования звука в реальном времени, а в настоящий момент, с помощью дополнительных модулей, позволяющий решать большое количество других задач.

Основной пакет распространяется по лицензии в стиле BSD.

Как сам язык, pd классифицируется data flow, объектно ориентированный язык программирования. Концепция объектов в pd отличается от объектов в других ОО языках; здесь объекты являются единичными генераторами (англ. ‘unit generator’). Понятие о единичных генераторах в первые появилось в самых первых програмных пакетах семейства ‘MUSIC N’, к которому pd и принадлежит.

На данной странице речь пойдет об основных методах создания звуковых волн при помощи pd с интерактивной переменой параметров. Внизу приведены ссылки на сетевые ресурсы содержащее всё касающееся Pure Data, включая учебные материалы.

Содержание

[править] Установка и запуск

Если вашей операционной системой является Линукс, вы можете установить пакет посредством вашего системного пакетного менеджера (Yum, Synaptic и др.).

Внимание! Пользователям с процессорами x86_64 необходимо устанавливать версию не ранее 0.41-0test6, иначе весьма незаметный баг может повлиять на ваши опыты!

Основной пакет Pure Data распространяется автором по адресу http://www-crca.ucsd.edu/

[править] Сборка

В принципе, единственной зависимостью является Tcl/Tk, которые есть практически во всех дистрибутивах.

[править] Запуск

Запустить программу очень просто: введите `pd &` в терминале. Через пару секунд перед вами возникнет основное окно, вид которого отображен ниже.

pure data что это. Смотреть фото pure data что это. Смотреть картинку pure data что это. Картинка про pure data что это. Фото pure data что это

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

Первым делом, настроим звук. Зайдите в меню «Media->ALSA» и в новом окне выберите частоту дискретизации (sampling rate), если ваша звуковая карта позволяет, выберете 48000 Гц, иначе 44100 Гц будет достаточно. Моя карта позволяет 96 кГц и 8 каналов. Большинство обычных карт дают 44.1 кГц стереозвук, многие из них работают с частотой 48 кГц. От частоты дискретизации зависит общее качество звука. Для многих пользователей настроек по-умолчанию будет достаточно. Выберите карту которую собираетесь использовать для входа/выхода и отметьте кнопкой слева.

pure data что это. Смотреть фото pure data что это. Смотреть картинку pure data что это. Картинка про pure data что это. Фото pure data что это

Pd поддерживает ALSA, PortAudio, OSS, JACK и MMIO (windows), поддержка настраивается при сборке. В данной статье автор использует исключительно ALSA.

Теперь проверим если всё работает. В меню «Media» выберите «Test Audio and MIDI», появиться окно показанное на снимке с экрана ниже.

pure data что это. Смотреть фото pure data что это. Смотреть картинку pure data что это. Картинка про pure data что это. Фото pure data что это

После затянувшегося вступления, перейдем к использованию.

[править] Первый шаг

В меню «File» выберите «New (Ctrl+n)». Перед вами открывается окно в чистым полотном. В первую очередь следует создать объект через меню «Put->Object (Ctrl+1)», в дальнейшем можно просто нажимать «Ctrl+1» на клавиатуре. Под курсором появляется штрихованная рамка, введите название объекта: наш первый объект обозначается «osc

«, щелкните правой кнопкой мыши на поверхности полотна. Должно получится как на этой картинке:

pure data что это. Смотреть фото pure data что это. Смотреть картинку pure data что это. Картинка про pure data что это. Фото pure data что это

Можете создать новый слайдер и подсоединить его к управлению частотой [osc

] (попробуйте так же изменить его параметры чтобы частота была, на пример, между 20 и 200 Гц. Как некоторые из вас наверное уже заметили, при помощи этих разнообразных объектов можно построить музыкальные инструменты!

На данном этапе рекомендую самим заглянуть в список встроенных базовых объектов Pure Data, которые вы увидите если щелкните правой кнопкой на фоне только что созданного патча!

pure data что это. Смотреть фото pure data что это. Смотреть картинку pure data что это. Картинка про pure data что это. Фото pure data что это

Промотайте ниже и вы найдете множество разнообразных объектов. Так же есть очень хорошая подборка примеров в меню «Help->Browser. «. Рекомендую рассмотреть патч показанный в этом примере («Help_>Browser. _>3.audio.examples/A02.amplitude.pd»).

pure data что это. Смотреть фото pure data что это. Смотреть картинку pure data что это. Картинка про pure data что это. Фото pure data что это

[править] Методы создания звука

[править] АМ

В pd присутствуют все основные математические функции, много дополнительных функций особого назначения можно найти в библиотеках (очень популярны expr и zexy). Для первых экспериментов нам потребуются лишь обычные математические действия. Начнем с умножения двух сигналов, которое принято называть амплитудной модуляцией.

Создайте патч как показано на рисунке ниже, с двумя объектами [osc

] (умножение сигналов) и разумеется [dac

]. Так же следует включить [*

0.6] что предотвратить чрезмерную громкость, уменьшаем амплитуду до 60%. Так же необходимы два регулятора частот.

pure data что это. Смотреть фото pure data что это. Смотреть картинку pure data что это. Картинка про pure data что это. Фото pure data что это

] на частоте 5Гц и другой на 220Гц.

[править] ЧМ

Теперь перейдем к более значительному методу. Частотная модуляция со своим появлением внесла огромные изменения в звучание электронных музыкальных инструментов. Ниже указанный патч взят из документации pd (3.audio.examples/A09.frequency.mod.pd). Рекомендуется посмотреть на оригинальный патч (идите в меню «Help->Browser. «). Так же подробная теория ЧМ изложена здесь, с примерами в Snd.

pure data что это. Смотреть фото pure data что это. Смотреть картинку pure data что это. Картинка про pure data что это. Фото pure data что это

Можно заметить что тон генератора стал более разнообразным.

[править] Продолжение следует.

[править] Дополнительная информация

За помощью обращаться к листу почтовой рассылки или IRC:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *