Чистые данные с множеством открытых патчей (проект netpd) | |
Автор (ы) | Миллер Puckette |
---|---|
Стабильный выпуск | 0.50-2 / 6 октября 2019 г.; 12 месяцев назад (2019-10-06) |
Репозиторий | |
Тип | Язык визуального программирования |
Лицензия | Модифицированная BSD |
Веб-сайт | puredata.info |
Парадигма | Поток данных |
---|---|
Разработан | Миллер С. Пакетт |
Впервые появился | 1996 |
Стабильный выпуск | 0.50-2 / 6 октября 2019 г.; 12 месяцев назад (2019-10-06) |
OS | Кросс-платформенная |
Лицензия | Модифицированная BSD |
Веб-сайт | puredata.info |
Под влиянием | |
Patcher |
Pure Data (Pd) - это язык визуального программирования, разработанный Миллер Пакетт в 1990-х годах для создания интерактивной компьютерной музыки и мультимедиа работает. В то время как Пакетт является основным автором программы, Pd - это проект с открытым исходным кодом с большой базой разработчиков, работающих над новыми расширениями. Он выпущен под лицензией, аналогичной лицензии BSD. Он работает в GNU / Linux, Mac OS X, iOS, Android и Windows. Существуют порты для FreeBSD и IRIX.
Pd, очень похожи по объему и конструкции на оригинальную программу Пакета Max, разработанную, когда он работал в IRCAM, и до некоторой степени совместим с Max / MSP, коммерческим предшественником языка Max. Их можно коллективно обсуждать как членов семейства языков Patcher.
С добавлением внешней графической среды для мультимедиа (GEM) и внешних, предназначенных для работы с ней (например, / для Linux, Mac OS X), для Windows (как n -мерная матричная обработка, для Linux, Mac OS X, Windows), можно создавать и манипулировать видео, OpenGL графикой, изображениями и т. д. в реальном времени с широкими возможностями для взаимодействия с аудио, внешними датчиками и т. д.
Pd изначально разработан для обеспечения совместной работы в реальном времени через сети или Интернет, позволяя музыкантам, подключенным через локальную сеть или даже в разных частях земного шара, создавать музыку вместе в реальном времени. Pd использует FUDI в качестве сетевого протокола.
Pure Data и Max являются примерами программирование потока данных языков. В таких языках функции или «объекты» связаны или «исправлены» вместе в графической среде, которая моделирует поток управления и звука. Однако, в отличие от исходной версии Max, Pd всегда разрабатывался для управления скоростью и обработки звука на главном блоке центрального процессора (CPU), а не для разгрузки синтеза звука и обработка сигналов на плату процессора цифровых сигналов (DSP) (например, ISPW, которая использовалась для Max / FTS). Код Pd составляет основу расширений MSP Дэвида Зикарелли для языка Max для программной обработки звука.
Как и Max, Pd имеет модульную кодовую базу внешние элементы или объекты, которые используются в качестве строительных блоков для программ, написанных в программном обеспечении. Это делает программу произвольно расширяемой с помощью общедоступного API и поощряет разработчиков добавлять свои собственные управляющие и звуковые подпрограммы на языке программирования C или с помощью других внешних компонентов в Python, Scheme, Lua, Tcl и многие другие. Однако Pd также является языком программирования. Модульные многоразовые блоки кода, написанные изначально на Pd, называемые «патчами» или «абстракциями», используются как отдельные программы и свободно распространяются среди сообщества пользователей Pd, и никаких других навыков программирования не требуется для эффективного использования Pd.
Как и Max, Pd является языком программирования потока данных. Как и в большинстве программ DSP , существует две основные скорости передачи данных: частота дискретизации (аудио), обычно 44 100 выборок в секунду, и контрольная. скорость, 1 блок на 64 выборки. Управляющие сообщения и аудиосигналы обычно проходят сверху вниз между «объектами», подключенными через входы и выходы.
Pd поддерживает четыре основных типа текстовых сущностей: сообщения, объекты, атомы и комментарии. Атомы - это самая основная единица данных в Pd, и они состоят либо из с плавающей запятой, либо из символа, либо из указателя на структуру данных (в Pd все числа хранятся как 32-битные числа с плавающей запятой). Сообщения состоят из одного или нескольких атомов и содержат инструкции для объектов. Для инициирования событий и передачи данных в поток используется специальный тип сообщения с нулевым содержимым, называемый bang, подобно нажатию кнопки.
Собственные объекты Pd варьируются от базовых математических, логических и побитовых операторов, имеющихся в каждом языке программирования, до общих и специализированных звуковых скоростей. Функции DSP (обозначены символом тильды (~)), такие как генераторы wavetable, быстрое преобразование Фурье (fft ~) и ряд стандартных фильтров. Данные могут быть загружены из файла, считаны с аудиоплаты, MIDI, через Open Sound Control (OSC) через FireWire, USB, или сетевое соединение, или генерируется «на лету» и сохраняется в таблицах, которые затем могут быть считаны и использованы в качестве аудиосигналов или управляющих данных.
Одним из ключевых нововведений в Pd по сравнению с его предшественниками было введение графических структур данных. Их можно использовать самыми разными способами: от составления музыкальных партитур, упорядочивания событий до создания визуальных эффектов для сопровождения патчей Pd или даже расширения GUI.
Pd. В соответствии с именем Pd, структуры данных позволяют пользователям Pd создавать произвольно сложные статические, а также динамические или анимированные графические представления музыкальных данных. Подобно C-структурам, Pd-структуры состоят из любой комбинации поплавков, символов и данных массива, которые можно использовать в качестве параметров для описания внешнего вида структуры данных или, наоборот, для управления сообщениями и звуком. сигналы в патче Pd. По словам Пакетта:
Pd разработан, чтобы предложить чрезвычайно неструктурированную среду для описания структур данных и их графического вида. Основная идея заключается в том, чтобы позволить пользователю отображать любые данные, которые он или она хочет, связывая их любым способом с отображением. Для достижения этой цели Pd вводит графическую структуру данных, чем-то напоминающую структуру данных из языка программирования C, но с возможностью прикрепления форм и цветов к данным, чтобы пользователь мог их визуализировать и / или редактировать. Сами данные можно редактировать с нуля или импортировать из файлов, генерировать алгоритмически или извлекать из анализа входящих звуков или других потоков данных.
— Миллер Пакетт, Оценка Ганса-Кристофа Штайнера Одиночество, созданный с использованием структур данных Pd.Несмотря на то, что Pd является мощным языком, он имеет определенные ограничения в реализации объектно-ориентированных концепций. Например, очень сложно создавать массово параллельные процессы, потому что создание экземпляров и управление большими списками объектов (создание и т. Д.) Невозможно из-за отсутствия функции конструктора. Кроме того, массивы Pd и другие объекты восприимчивы к конфликтам пространств имен, поскольку передача идентификатора экземпляра исправления является дополнительным шагом и иногда его трудно выполнить.
Чистые данные использовались в качестве основы для ряда проектов, как язык прототипирования и звуковой движок. Интерфейс таблицы под названием Reactable и заброшенное приложение iPhone RjDj встраивают Pd в качестве звукового движка.
Pd использовался для создания прототипов звука для видеоигр рядом звукорежиссеров. Например, EAPd - это внутренняя версия Pd, которая используется в Electronic Arts (EA). Он также был встроен в EA Spore.
Pd, также использовался для сетевой производительности в библиотеке сетевых ресурсов для совместной импровизации (NRCI).
Патч 1: Программа Hello World в Pd.
Патч 2: Реверберация в Pd.
Патч 3: Фильтры и поток данных в Pd.