Чистые данные - Pure Data
Чистые данные с множеством открытых патчей (проект netpd) | |
Оригинальный автор (ы) | Миллер Пакетт |
---|---|
Стабильный выпуск | |
Репозиторий | |
Тип | Язык визуального программирования |
Лицензия | Модифицированная BSD |
Интернет сайт | чистые |
Парадигма | Поток данных |
---|---|
Разработано | Миллер С. Пакетт |
Впервые появился | 1996 |
Стабильный выпуск | 0.51-2 / 15 августа 2020 г. |
Операционные системы | Кроссплатформенность |
Лицензия | Модифицированная BSD |
Интернет сайт | чистые |
Под влиянием | |
Патчер |
Чистые данные (Pd) это язык визуального программирования разработан Миллер Пакетт в 1990-е годы для создания интерактивный компьютерная музыка и мультимедиа работает. В то время как Пакетт является основным автором программы, Pd - Открытый исходный код проект с большой базой разработчиков, работающих над новыми расширениями. Выпускается под лицензией, аналогичной Лицензия BSD. Он работает на GNU /Linux, Mac OS X, iOS, Android и Windows. Порты существуют для FreeBSD и IRIX.
Pd очень похож по объему и конструкции на оригинал Пакетта. Максимум программа, разработанная, когда он был в IRCAM, и до некоторой степени совместим с Max / MSP, коммерческим предшественником языка Max. Их можно коллективно обсуждать как членов Patcher.[2] семья языков.
С добавлением Графическая среда для мультимедиа (GEM) external и внешние, предназначенные для работы с ним (например, Чистый пакет данных / ПиДиП для Linux, Mac OS X), Frametein для Windows, GridFlow (как обработка n-мерных матриц, для Linux, Mac OS X, Windows), можно создавать и управлять видео, OpenGL графика, изображения и т. д. в реальном времени с широкими возможностями для взаимодействия со звуком, внешними датчиками и т. д.
Pd изначально разработан для обеспечения совместной работы в реальном времени через сети или Интернет, позволяя музыкантам, подключенным через локальную сеть или даже в разных частях земного шара, создавать музыку вместе в реальном времени. Pd использует FUDI как сетевой протокол.
Сходства с Максом
Чистые данные и Максимум оба примера программирование потока данных языков. В таких языках функции или «объекты» связаны или «исправлены» вместе в графической среде, которая моделирует поток управления и звука. Однако, в отличие от оригинальной версии Max, Pd всегда разрабатывался для управления скоростью и обработки звука на хосте. центральное процессорное устройство (CPU), а не выгружать синтез звука и обработка сигналов к цифровой сигнальный процессор (DSP) плата (например, Ариэль ISPW который использовался для Max / FTS). Код Pd составляет основу Дэвид Зикарелли MSP расширения языка Max для программной обработки звука.[3]
Как и Макс, у Pd есть модульный кодовая база внешние или объекты, которые используются в качестве строительных блоков для программ, написанных в программном обеспечении. Это делает программу произвольно расширяемой через общедоступную API, и призывает разработчиков добавлять свои собственные контрольные и звуковые подпрограммы в C язык программирования или с помощью других внешних Python, Схема, Lua, Tcl, и много других. Однако Pd также является языком программирования. Модульные многоразовые блоки кода, написанные изначально на Pd, называемые «патчами» или «абстракциями», используются как отдельные программы и свободно распространяются среди сообщества пользователей Pd, и никаких других навыков программирования не требуется для эффективного использования Pd.
Особенности языка
Как и Max, Pd - это язык программирования потока данных. Как и большинство DSP программного обеспечения, есть две основные скорости передачи данных: частота дискретизации (аудио), обычно с частотой 44 100 выборок в секунду и скоростью управления, равной 1 блоку на 64 выборки. Управляющие сообщения и аудиосигналы обычно проходят сверху вниз между «объектами», подключенными через входы и выходы.
Pd поддерживает четыре основных типа текстовых сущностей: сообщения, объекты, атомы и комментарии. Атомы - это самая основная единица данных в Pd, и они состоят либо из плавать, символ или указатель на структуру данных (в Pd все числа хранятся как 32-битные числа с плавающей запятой). Сообщения состоят из одного или нескольких атомов и содержат инструкции для объектов. Особый тип сообщения с нулевым содержанием, называемый хлопнуть используется для инициирования событий и передачи данных в поток, подобно нажатию кнопки.
Родные объекты Pd варьируются от базовых математический, логичный, и побитовый операторы, присутствующие в каждом языке программирования, для общих и специализированных функций DSP для определения скорости звука (обозначенных символом тильды (~)), таких как таблица волн генераторы, Быстрое преобразование Фурье (fft ~), а также ряд стандартных фильтры. Данные могут быть загружены из файла, считаны с аудиоплаты, MIDI, через Открыть управление звуком (OSC) через FireWire, USB, или сетевое соединение, или генерируется «на лету» и сохраняется в таблицах, которые затем можно считывать и использовать в качестве аудиосигналов или управляющих данных.
Структуры данных
Одним из ключевых нововведений в Pd по сравнению с его предшественниками стало введение графического интерфейса. структуры данных. Их можно использовать самыми разными способами, от составления музыкальных партитур, упорядочивания событий до создания визуальных эффектов для сопровождения патчей Pd или даже расширения файлов Pd. GUI.
В соответствии с названием Pd, структуры данных позволяют пользователям Pd создавать произвольно сложные статические, а также динамические или анимированные графические представления музыкальных данных. Так же, как Структуры C, Структуры Pd состоят из любой комбинации чисел с плавающей запятой, символов и данных массива, которые могут использоваться в качестве параметров для описания внешнего вида структуры данных или, наоборот, для управления сообщениями и аудиосигналами в патче Pd. По словам Пакетта:
Pd разработан, чтобы предложить чрезвычайно неструктурированную среду для описания структур данных и их графического вида. Основная идея состоит в том, чтобы позволить пользователю отображать любые данные, которые он или она хочет, связывая их любым способом с дисплеем. Для достижения этой цели Pd вводит графическую структуру данных, чем-то напоминающую структуру данных из языка программирования C, но с возможностью прикрепления форм и цветов к данным, чтобы пользователь мог их визуализировать и / или редактировать. Сами данные можно редактировать с нуля или импортировать из файлов, генерировать алгоритмически или извлекать из анализа входящих звуков или других потоков данных.
— Миллер Пакетт, [4]
Языковые ограничения
Несмотря на то, что Pd является мощным языком, он имеет определенные ограничения в реализации объектно-ориентированных концепций.[5] Например, очень сложно создавать массово параллельные процессы, потому что создание экземпляров и управление большими списками объектов (создание и т. Д.) Невозможно из-за отсутствия функции конструктора. Кроме того, массивы Pd и другие объекты восприимчивы к конфликтам пространств имен, потому что передача идентификатора экземпляра исправления является дополнительным шагом и иногда его трудно выполнить.
Проекты с использованием Pure Data
Pure Data использовался в качестве основы для ряда проектов, в качестве языка прототипирования и звукового движка. Интерфейс таблицы называется Реагируемый[6] и заброшенное приложение для iPhone RjDj оба встраивают Pd как звуковой движок.
Pd использовался для создания прототипов аудио для видеоигр рядом звукорежиссеров. Например, EAPd - это внутренняя версия Pd, которая используется в Electronic Arts (EA). Он также был встроен в EA. Споры.[7]
Pd также использовался для сетевого исполнения в библиотеке сетевых ресурсов для совместной импровизации (NRCI).[8]
Примеры кода
Патч 1: Привет, мир программа в Pd.
Патч 2: Реверберация в Pd.
Патч 3: Фильтры и поток данных в Pd.
- Первый патч выводит на дисплей «привет, мир».
- Второй патч применяет реверберацию к входящему сигналу из канала 1, а затем излучает его на каналы 1 и 2.
- Последний, более сложный патч фильтрует белый шум на 9000Гц (Q = 20), затем постепенно усиливается и затухает каждую секунду в течение полсекунды. В Pd время измеряется в миллисекундах, поэтому «1000» - это одна секунда, а «500» - полсекунды.
Смотрите также
- Графическая среда для мультимедиа
- Макс / Msp
- reacTable
- Puredyne
- Сравнение сред синтеза звука
- Список музыкального программного обеспечения
Примечания
- ^ а б "Программное обеспечение Миллера Пакетта". Миллер Пакетт. Получено 12 ноября 2020.
- ^ Пакетт, М. (1988). Патчер. В материалах Международной компьютерной музыкальной конференции.
- ^ "FAQ: Max 4 - Cycling '74". Получено 5 января 2017.
- ^ Документация PD Глава 2 - 2.9. Структуры данных
- ^ «Возможности №2: Аудиослой». 2 марта 2010 г.. Получено 5 января 2017.
- ^ Жорда, Серги; Кальтенбруннер, Мартин; Гейгер, Гюнтер; Бенцина, Росс (2005). «ICMC2005: ReacTable» (PDF). Группа музыкальных технологий / IUA, Universitat Pompeu Fabra.
- ^ Косак, Дэйв (20 февраля 2008 г.). "Gamespy: The Beat Goes on: динамичная музыка в Spore". GameSpy. IGN Entertainment, Inc.
- ^ «Сетевые ресурсы для совместной импровизации (NRCI)». Центр компьютерных исследований в области музыки и акустики. Музыкальный факультет Стэнфордского университета.
Рекомендации
- Дэнкс, М. (1996). Графическая среда для макс. В: Материалы Международной компьютерной музыкальной конференции, стр. 67–70. Международная ассоциация компьютерной музыки.
- Дэнкс, М. (1997). Обработка изображений и видео в реальном времени в Gem. В: Материалы Международной компьютерной музыкальной конференции, стр. 220–223. Международная ассоциация компьютерной музыки.
- Пакетт, М. С. (1996) Чистые данные. Труды Международной компьютерной музыкальной конференции. Сан-Франциско: Международная ассоциация компьютерной музыки, стр. 269–272.
- Пакетт, М. С. (1997). Чистые данные. В: Материалы Международной компьютерной музыкальной конференции, стр. 224–227. Международная ассоциация компьютерной музыки.
дальнейшее чтение
- Пакетт, Миллер Смит (2007). Теория и техника электронной музыки. Всемирный научный, Сингапур. ISBN 978-981-270-541-9.
- Крейдлер, Йоханнес (2009). Loadbang: программирование электронной музыки в чистых данных. Вольке Верлаг, Hofheim. ISBN 978-3-936000-57-3.
- Pd ~ graz, ed. (2006). Bang Pure Data. Вольке Верлаг, Hofheim. ISBN 978-3-936000-37-5.
- Фарнелл, Энди Дж (2010). Создание звука. MIT Press. ISBN 978-0-262-01441-0.
- Бринкманн, Питер (2012). Создание музыкальных приложений - синтез звука в реальном времени на Android и iOS. O'Reilly Media. ISBN 978-1-4493-1490-3.
- Баркл, Майкл (2012). Композиция: чистые данные как мета-композиционный инструмент. ISBN 3-8383-1647-9.
- Баркл, Майкл (2018). Чистые данные как мета-композиционный инструмент: сочинения, том 1. ISBN 978-3-659-88634-8.
- Баркл, Майкл (2018). Чистые данные как мета-композиционный инструмент: сочинения, том 2. ISBN 978-3-659-96899-0.
- Мацумура, Сэй (2012). Книга рецептов Pd ―Pure Data で は じ め る サ ウ ン ド プ ロ グ ラ ミ ン グ. ISBN 978-4-86100-780-4.
- Хабибдуст, Мансур (2013). Элементарный метод Pd (на фарси) - PDF и патчи (مبانی بنیادین نرم افزار پی دی نوشته منصور حبیب دوست).