Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Pure Data ( Pd ) - это язык визуального программирования, разработанный Миллером Пакеттом в 1990-х годах для создания интерактивной компьютерной музыки и мультимедийных произведений. В то время как Пакетт является основным автором программы, Pd - это проект с открытым исходным кодом с большой базой разработчиков, работающих над новыми расширениями. Он выпущен под лицензией, аналогичной лицензии BSD . Он работает на Linux , Mac OS X , iOS , Android и Windows . Существуют порты для FreeBSD и IRIX .

Pd очень похож по объему и конструкции на оригинальную программу Max Пакетта , разработанную, когда он работал в IRCAM , и до некоторой степени совместим с Max / MSP, коммерческим предшественником языка Max. Их можно коллективно обсуждать как членов семейства языков Patcher [2] .

С добавлением внешней графической среды для мультимедиа (GEM) и внешних компонентов, предназначенных для работы с ней (например, Pure Data Packet / PiDiP для Linux, Mac OS X ), frametein для Windows, GridFlow (как обработка n-мерной матрицы, для Linux, Mac OS X , Windows), можно создавать и управлять видео, графикой OpenGL , изображениями и т. Д. В реальном времени с широкими возможностями взаимодействия с аудио, внешними датчиками и т. Д.

Pd изначально разработан для обеспечения совместной работы в реальном времени через сети или Интернет, позволяя музыкантам, подключенным через локальную сеть или даже в разных частях земного шара, создавать музыку вместе в реальном времени. Pd использует FUDI в качестве сетевого протокола.

Сходства с Максом [ править ]

Pure Data и Max являются примерами языков программирования потоков данных . В таких языках функции или «объекты» связаны или «исправлены» вместе в графической среде, которая моделирует поток управления и звука. В отличие от оригинальной версии Макса, однако, Pd , всегда разработан , чтобы сделать управление-скорость и обработку звука на хост центрального процессора (CPU), а не Разгрузка синтеза звука и обработки сигналов к цифровой сигнальный процессор (DSP) платы ( например, Ariel ISPW, который использовался для Max / FTS). Код Pd составляет основу Дэвида ЗикареллиMSP расширения языка Max для программной обработки звука. [3]

Как и 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 для измерения скорости звука (обозначенных символом тильды (~)), таких как генераторы волновых таблиц , быстрое преобразование Фурье (fft ~) и ряд стандартных фильтров . Данные могут быть загружены из файла, считаны с аудиоплаты, MIDI , через Open Sound Control (OSC) через FireWire , USB или сетевое соединение, либо сгенерированы на лету и сохранены в таблицах, которые затем могут быть считаны обратно и используется в качестве аудиосигналов или управляющих данных.

Структуры данных [ править ]

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

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

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

-  Миллер Пакетт, [4]
Оценка для Одиночества Ганса-Кристофа Штайнера , созданная с использованием структур данных Pd.

Языковые ограничения [ править ]

Несмотря на то, что Pd является мощным языком, он имеет определенные ограничения в реализации объектно-ориентированных концепций. [5] Например, очень сложно создавать массово-параллельные процессы, потому что создание экземпляров и управление большими списками объектов (создание и т. Д.) Невозможно из-за отсутствия функции конструктора. Кроме того, массивы Pd и другие объекты восприимчивы к конфликтам пространств имен, потому что передача идентификатора экземпляра исправления является дополнительным шагом и иногда его трудно выполнить.

Проекты с использованием Pure Data [ править ]

Pure Data использовался в качестве основы для ряда проектов, в качестве языка прототипирования и звукового движка. Интерфейс таблицы под названием Reactable [6] и заброшенное приложение для iPhone RjDj встраивают Pd в качестве звукового движка.

Pd использовался для создания прототипов аудио для видеоигр рядом звукорежиссеров. Например, EAPd - это внутренняя версия Pd, которая используется в Electronic Arts (EA). Он также был встроен в EA Spore . [7]

Pd также использовался для сетевого исполнения в библиотеке сетевых ресурсов для совместной импровизации (NRCI). [8]

Примеры кода [ править ]

  • Патчи с образцами визуального кода Pure Data
  • Патч 1: программа Hello world в Pd.

  • Патч 2: Реверберация в Pd.

  • Патч 3: Фильтры и поток данных в Pd.

  1. Первый патч выводит на дисплей «привет, мир».
  2. Второй патч применяет реверберацию к входящему сигналу из канала 1, а затем излучает его на каналы 1 и 2.
  3. Последний, более сложный патч фильтрует белый шум на частоте 9000  Гц (с добротностью 20), а затем постепенно усиливает и затухает каждую секунду в течение полсекунды. В Pd время измеряется в миллисекундах, поэтому «1000» - это одна секунда, а «500» - полсекунды.

См. Также [ править ]

  • Графическая среда для мультимедиа
  • Макс / Msp
  • reacTable
  • Puredyne
  • Сравнение сред синтеза звука
  • Список музыкального программного обеспечения

Примечания [ править ]

  1. ^ a b "Программное обеспечение Миллера Пакетта" . Миллер Пакетт . Проверено 12 ноября 2020 .
  2. ^ Puckette, М. (1988). Патчер. В материалах Международной компьютерной музыкальной конференции.
  3. ^ "FAQ: Макс 4 - Велоспорт '74" . Проверено 5 января 2017 года .
  4. ^ Документация Pd Глава 2 - 2.9. Структуры данных
  5. ^ «Возможности # 2: Аудиослой» . 2 марта 2010 . Проверено 5 января 2017 года .
  6. ^ Жорда, Серги; Кальтенбруннер, Мартин; Гейгер, Гюнтер; Бенцина, Росс (2005). «ICMC2005: ReacTable» (PDF) . Группа музыкальных технологий / IUA, Universitat Pompeu Fabra.
  7. ^ Kosak, Дейв (20 февраля 2008). «Gamespy: The Beat Goes on: динамичная музыка в Spore» . GameSpy . IGN Entertainment, Inc.
  8. ^ "Сетевые ресурсы для совместной импровизации (NRCI)" . Центр компьютерных исследований в области музыки и акустики . Музыкальный факультет Стэнфордского университета.

Ссылки [ править ]

  • Дэнкс, М. (1996). Графическая среда для макс. В: Материалы Международной компьютерной музыкальной конференции, стр. 67–70. Международная ассоциация компьютерной музыки.
  • Дэнкс, М. (1997). Обработка изображений и видео в реальном времени в Gem. В: Материалы Международной компьютерной музыкальной конференции, стр. 220–223. Международная ассоциация компьютерной музыки.
  • Пакетт, М.С. (1996) Чистые данные . Труды Международной компьютерной музыкальной конференции. Сан-Франциско: Международная ассоциация компьютерной музыки, стр. 269–272.
  • Пакетт, MS (1997). Чистые данные. В: Материалы Международной компьютерной музыкальной конференции, стр. 224–227. Международная ассоциация компьютерной музыки.

Дальнейшее чтение [ править ]

  • Пакетт, Миллер Смит (2007). Теория и техника электронной музыки . World Scientific , Сингапур. ISBN 978-981-270-541-9.
  • Крейдлер, Йоханнес (2009). Loadbang: программирование электронной музыки в чистых данных . Wolke Verlag, Хофхайм . ISBN 978-3-936000-57-3.
  • Pd ~ graz, ed. (2006). Bang Pure Data . Wolke Verlag, Хофхайм . 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 и патчи (مبانی بنیادین نرم افزار پی دی نوشته منصور حبیب دوست) .

Внешние ссылки [ править ]

  • Официальный веб-сайт