Чистые данные
Pure Data (или Pd) — визуальный язык программирования, разработанный Миллером Пакеттом в 1990-х годах для создания интерактивной компьютерной музыки и мультимедийных произведений . Хотя Puckette является основным автором программного обеспечения, Pd является проектом с открытым исходным кодом и имеет большую базу разработчиков, работающих над новыми расширениями программы. Он выпущен под лицензией, аналогичной лицензии BSD .
Pd очень похож по объему и дизайну на исходную программу Max Пакетта (разработанную, когда он работал в IRCAM ), и до некоторой степени совместим с Max/MSP ., коммерческий преемник языка Max. И Pd, и Max являются спорными примерами языков программирования «поток данных». В этом типе языка функции или «объекты» связаны или «исправлены» друг с другом в графической среде, которая моделирует поток управления и аудио. Однако, в отличие от исходной версии Max, Pd всегда был предназначен для обработки сигналов и управления скоростью на собственном ЦП, а не для переноса синтеза и обработки сигналов на плату PDS (например, Ariel ISPW, которая использовалась для Max / FTS). . Код Pd является основой для расширений MSP Дэвида Зикарелли для языка Max для обработки звука в программном обеспечении.
Как и Max, Pd имеет модульную кодовую базу с внешними элементами или объектами, которые используются в качестве строительных блоков для программ, написанных в программном обеспечении. Это делает программу произвольно расширяемой через общедоступный API и побуждает разработчиков добавлять свои собственные аудио и управляющие подпрограммы либо на языке программирования C , либо с помощью сторонних разработчиков на Python , Javascript , Ruby и, возможно, на других языках . также. Однако Pd сам по себе является языком программирования. Модульные и повторно используемые блоки кода, изначально написанные на Pd, называемые «заплатками» или «абстракциями», используются как автономные программы и свободно распространяются среди сообщества пользователей Pd, и для использования Pd не требуется никаких других навыков программирования, но это помогает . . .
С добавлением внешнего графического окружения для мультимедиа ( GEM ) и других внешних устройств, предназначенных для работы с ним (таких как Pure Data Packet, PiDiP для Linux , framestein для Windows , GridFlow для обработки n-матриц, который интегрирует Pure Data с язык программирования Ruby и т. д.), можно создавать и манипулировать видео, графикой OpenGL , изображениями и т. д. в режиме реального времени с кажущимися бесконечными возможностями интерактивности со звуком, внешними датчиками и т. д.
Кроме того, Pd изначально разработан для совместной работы в реальном времени по сети или через Интернет , что позволяет музыкантам, подключенным через локальную сеть или даже из разных частей мира, вместе создавать музыку в режиме реального времени.
Блоки, в которых запрограммирован код, называются «патчами» или абстракциями, они используются как независимые программы и свободно распространяются среди сообщества пользователей Pd. Патчи состоят из разных объектов, взаимосвязанных друг с другом. В его верхней части мы найдем входы, куда будут отправляться числовые значения или другие типы данных, а в нижней части их вывод.
Существует также возможность создания вторичных исправлений, известных как субпатчи. Они находятся внутри основного патча. Они создаются путем написания в объекте букв «pd», за которыми следует пробел и имя, которое вы хотите дать этому подпатчу, как показано на рисунке. При нажатии на нее открывается окно, где мы находим код нашего подпатча.
Программа имеет два состояния, в которых может находиться пользователь. В режиме редактирования или в режиме выполнения. Для перехода из одного состояния в другое мы будем набирать Ctrl+E. Когда мы находимся в режиме редактирования, мы можем изменить содержимое блоков или связь между ними. В режиме выполнения у нас есть возможность запустить весь патч и изменить значения во время его воспроизведения или при его остановке. Мы можем отправлять удары, изменять значение переменных в объектах «число» или активировать и деактивировать участки кода с помощью объекта [toggle], который активируется, когда на нем есть крест, и деактивируется, когда его нет.
Типы объектов
Объект : его поведение будет зависеть от текста, который он вставил в него. В программе есть несколько предопределенных объектов, запрограммированных третьими сторонами на разных языках, таких как C. Pd распознает тип объекта, и эта коробка уже ведет себя как таковая.
Числа : Их использование может быть разнообразным, от управления значением сигнала в разных точках патча, до инициализации значений, которые передаются объектам, управляющим, например, уровнем непрозрачности изображения.
Сообщения : они снабжены информацией, которая передается объектам.
Символ : этот объект хранит символ до тех пор, пока не получит [челку] или другой символ. Вот когда этот символ выходит из объекта через дно коробки. Эти объекты предлагаются в Pd только в том случае, если у вас загружена и правильно установлена соответствующая библиотека . Они не обязательно должны присутствовать в простых библиотеках, хотя обычно включаются в установочные файлы.
Комментарий : мы будем использовать его для включения пояснений в различные шаги, которым следует наш код.
Самые важные объекты
Объект [osc~] генерирует синусоидальный сигнал. Частота колебаний будет зависеть от значения, которое вводится на вход, которое имеет объект в левом верхнем углу. Всякий раз, когда мы размещаем осциллятор, мы также должны размещать умножитель и цифро-аналоговый преобразователь (ЦАП~). Это сделано потому, что по умолчанию «osc~» имеет максимальную амплитуду 1, поэтому мы умножаем его на 0,1, чтобы уменьшить его амплитуду, а затем отправляем его на «dac~». Объект "dac~" имеет два входа, которые относятся к двум выходным каналам звуковой карты вашей машины.
[ Удар ] имеет функцию активации действия, которое сразу после него подключается.
Метро : Периодически отправляйте серию [бах]. Мы создадим его, написав слово «метр» внутри объекта. Этот объект имеет два входа, тот, что слева, принимает [удары]. Это заставляет метро работать; также принимает сообщения с текстом «остановки», останавливающие работу метро. Мы также можем отправить вам любой номер, кроме нуля, чтобы активировать его. Если на него отправлен ноль, счетчик перестает посылать [удары]. В запись справа мы вводим число, которое регулирует периодичность отправки челки, единицей этого значения являются миллисекунды. В том же поле [метр] после слова «метр» и пробела вводится число, которое объект уже понимает как период.
Start : запускает объекты патча, которые он соединил сам с собой. Мы создадим объект [start], написав слово «start» внутри сообщения.
Stop : останавливает выполнение текущего патча. Мы создадим его, набрав слово «стоп» внутри сообщения.
Выбор : мы действуем как селектор в соответствии с изначально заданным числовым условием. Мы создаем его, введя слово «выбрать (пробел) условие». Таким образом, когда входное значение равно условию, через левый выход будет отправлен банг. Если они не совпадают, хлоп будет отправлен на правильный выход. Можно ввести несколько одновременных условий, разделенных пробелами. Будет создано столько стартов, сколько условий плюс финал. Когда значение соответствует одному из условий, bang будет отправлен выходом, соответствующим этому значению. Если он не совпадает, [bang] всегда будет отправляться последним, крайним правым выходом.
Моисей : Мы напишем слово «Моисей» внутри объекта, чтобы он работал. Он содержит два входа и два выхода. На вход слева мы подключаем значение, которое находится в процессе, а справа значение, которое мы хотим использовать в качестве границы. Если значение процесса меньше границы, он берет входное значение из вывода слева. С другой стороны, если значение равно или больше значения, которое выступает в качестве границы, будет выведено число из вывода справа. Мы могли бы сравнить [moses] с одновременным фильтром нижних и верхних частот.
Возможные проблемы и решения при установке GNU
Чтобы установить Pd в GNU, мы должны распаковать пакет, загруженный с программой, и запустить файл с расширением «.deb». Первая возможная проблема, которую мы можем обнаружить, заключается в том, что в дистрибутиве Ubuntu Studio уже есть стандартная установка Pure Data. Поскольку рекомендуется использовать версию Pd_extended (хотя это очень часто меняется), нам придется удалить Pure Data из GNU/linux Ubuntu, чтобы при установке новой у нас не было проблем с фактом обмена папками. Другим очень распространенным и важным фактором при установке программ GNU являются зависимости от вторичных библиотек, которые могут существовать. Их необходимо установить для корректной работы программы. В случае с Pure Data и некоторыми внешними библиотеками некоторые зависимости необходимо устанавливать с помощью менеджера пакетов Synaptic. Там мы можем найти те, которые нам нужны.
После того, как корректная работа Pd была проверена, для оптимизации ресурсов программы мы загружаем при запуске наиболее распространенные библиотеки, которые будут использоваться, чтобы избежать необходимости импортировать их каждый раз, когда вы хотите их использовать. Таким образом, когда вы запускаете Pd на своей машине, они загружаются автоматически.
линукс
Краткое введение
Как только у нас есть стабильный Pd на нашей машине, мы приступаем к первому тесту программы, чтобы убедиться, что соединение с нашей звуковой картой правильное. Мы найдем это в Media > test audio и MIDI. Там мы можем сгенерировать тестовый сигнал (тон, розовый шум,...), прослушивая его через наши динамики, таким образом проверяя, что все работает правильно.
Чтобы познакомиться со средой Pd, мы можем начать с открытия примеров, которые мы найдем в файлах документации внутри папки Pd. Там есть аудио и видео патчи, которые помогут вам ознакомиться с программой. Когда мы хотим создать наш собственный патч, в окне Pd мы идем в File>New и открывается окно, где мы будем вводить наши объекты, которые мы будем соединять между собой, таким образом создавая наше приложение.
библиотеки pdp, pidip и opencv
Библиотека PDP представляет собой набор объектов, используемых для обработки многочисленных данных. Он работает в Linux, и большинство объектов также работают в Mac OSX. После загрузки установка в Linux выполняется через терминал, компилируя и выполняя прилагаемый установочный файл следующим образом:
./настроить
судо сделать
судо сделать установить
Когда данные уже представлены в виде пакета внутри Pd, можно начинать манипулировать ими. Библиотека PiDiP — это видеообъекты, дополняющие коллекцию объектов PDP. Установка идентична установке PDP, с терминала выполняем те же команды, таким образом готово к использованию.
Существует также еще одна библиотека, относящаяся к видеовызову OpenCV. Это открытая библиотека, разработанная Intel. Эта библиотека обеспечивает высокий уровень функций обработки изображений. Это позволяет программисту создавать приложения в области цифрового зрения. OpenCV является открытым исходным кодом, что позволяет ему работать на многих платформах. Эта библиотека позволяет нам выполнять основные операции, обработку изображений, анализ распознавания моделей, структурный анализ, 3D-реконструкцию, калибровку камеры, анализ движения, графический интерфейс и сбор данных и т. д. Он реализует широкий спектр инструментов для интерпретации изображений, таких как обнаружение признаков или анализ формы (геометрия, контур, обрабатываемый в данный момент), среди прочего.
Шаблоны патчей
Хорошим первым контактом с Pd может быть генерация синусоидального тона. Для этого мы будем использовать объект [osc~]. На левый вход мы подключим сообщение с числом внутри, которое будет выступать в качестве частоты колебаний. Мы отправим его выход на умножитель, который преобразует эту частоту в слышимую, и, наконец, мы отправим его на цифро-аналоговый преобразователь [dac~], чтобы иметь возможность воспроизводить его через динамики нашей машины. После того, как мы создали этот патч, мы можем изменить частоту, щелкнув и удерживая мышь над числовым сообщением и перемещая курсор вверх и вниз, тем самым увеличивая и уменьшая значение частоты.
Чтобы открыть внешнее устройство, такое как веб- камера , мы должны написать слово «открыть», а затем пробел и путь, по которому это устройство находится в сообщении. Это мы подключим его к объекту, который позволяет нам просматривать изображение в соответствии с нашей операционной системой, в Linux это будет pdp_v4l (видео для Linux). Также к этому объекту подключаем еще одно сообщение, где указываем канал, по которому хотим отправить информацию. Наконец, мы подключим [метр] к [pdp_v4l], предоставив ему информацию о частоте, с которой мы хотим, чтобы он показывал нам изображения, которые захватывает камера. Чтобы обеспечить непрерывность движения, мы присвоим ему стандартное значение 100 мс. По желанию пользователя мы также можем поворачивать изображение по горизонтали, чтобы эффект, создаваемый при просмотре изображения, был подобен зеркалу. Для этого мы соединим вывод [pdp_v4l] с объектом [pdp_flip_lr]. При этом у нас уже есть в отдельном окне изображение, которое снимает камера.
Смотрите также
Материал на испанском языке
- Интерактивные музыкальные системы Документы курса интерактивных музыкальных систем Серджи Жорда
- Электронная музыкальная мастерская Электронная музыкальная мастерская Серхи Жорда
- Введение в курс GEM ( неработающая ссылка доступна в Интернет-архиве ; см. историю , первую и последнюю версии ). Введение в GEM и живое кино от Карлеса Сора
Внешние ссылки
- puredata.info Официальный портал о PureData.
- puredata-ru Сообщество Puredata на испанском языке
- IEM Institute of Electronic Music and Acoustics, Грац, много полезных ссылок
- Домашняя страница Миллера С. Пакетта с биографической справкой и текущими занятиями.
- Pure DataBase, pdb Здесь вы можете искать объекты чистых данных
- Footils.org Очень полный сайт с практическими абстракциями (на английском языке)
- 3 Pd Международная конвенция (на португальском языке)
