Чистые данные
![]() | |
![]() Pure Data со множеством открытых патчей (проект netpd) | |
Оригинальный автор(ы) | Миллер Пакетт |
---|---|
Стабильная версия | |
Репозиторий | |
Тип | Язык визуального программирования |
Лицензия | Пункт BSD-3 |
Веб-сайт | сломаться |
Парадигма | Поток данных |
---|---|
Разработано | Миллер С. Пакетт |
Впервые появился | 1996 |
Стабильная версия | 0,53-2
/ 15 марта 2022 г |
ТЫ | Кроссплатформенность ( macOS , Windows , Linux ) |
Лицензия | Пункт BSD-3 |
Веб-сайт | сломаться |
Под влиянием | |
Патчер |
Pure Data ( Pd ) — язык визуального программирования, разработанный Миллером Пакеттом в 1990-х годах для создания интерактивной компьютерной музыки и мультимедийных произведений. Пакетт является основным автором программы, а Pd — проект с открытым исходным кодом и большой базой разработчиков, работающих над новыми расширениями. Он выпущен в соответствии с пунктом BSD-3 . Он работает на Linux , MacOS , iOS , Android и Windows . Существуют порты для FreeBSD и IRIX .
Пакетта Max Pd очень похож по объему и дизайну на оригинальную программу , разработанную, когда он работал в IRCAM , и в некоторой степени совместим с Max/MSP, коммерческим предшественником языка Max. Их можно коллективно обсуждать как членов Patcher. [ 2 ] семья языков.
С добавлением внешнего графического окружения для мультимедиа (GEM) и внешних устройств, предназначенных для работы с ним (таких как Pure Data Packet / PiDiP для Linux, Mac OS X ), фреймштайна для Windows, GridFlow (в качестве n-мерной матричной обработки, для Linux, Mac OS X , Windows), можно создавать и манипулировать видео, графикой OpenGL , изображениями и т. д. в реальном времени с широкими возможностями интерактивности со звуком, внешними датчиками и т. д.
Pd изначально разработан для обеспечения живого сотрудничества через сети или Интернет, позволяя музыкантам, подключенным через локальную сеть или даже в разных частях земного шара, вместе создавать музыку в режиме реального времени. Pd использует FUDI в качестве сетевого протокола.
Сходство с Максом
[ редактировать ]Pure Data и Max являются примерами языков программирования потоков данных . Языки потоков данных моделируют программу как ориентированный граф данных, передаваемых между операциями. В Pure Data и Max функции или «объекты» связаны или «соединены» вместе в графической среде, которая моделирует поток управления и звука. Однако, в отличие от оригинальной версии Max, Pd всегда разрабатывался для управления скоростью и обработки звука на главном центральном процессоре (ЦП), а не перегрузки синтеза звука и обработки сигналов на плату цифрового сигнального процессора (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-битные числа с плавающей запятой). Сообщения состоят из одного или нескольких атомов и предоставляют инструкции объектам. Особый тип сообщения с нулевым содержимым, называемый взрывом, используется для инициирования событий и передачи данных в поток, подобно нажатию кнопки.
Собственные объекты Pd варьируются от основных математических , логических и побитовых операторов, встречающихся в каждом языке программирования, до общих и специализированных функций DSP со скоростью звука (обозначаемых символом тильды (~)), таких как таблично-волновые генераторы, быстрое преобразование Фурье (fft ~), а также ряд стандартных фильтров . Данные могут быть загружены из файла, считаны с аудиоплаты, MIDI , через Open Sound Control (OSC) через FireWire , USB или сетевое соединение, или сгенерированы на лету и сохранены в таблицах, которые затем можно прочитать обратно. и используются в качестве аудиосигналов или управляющих данных.
Структуры данных
[ редактировать ]Одним из ключевых нововведений в Pd по сравнению с его предшественниками стало введение графических структур данных . Их можно использовать самыми разными способами: от создания музыкальных партитур, упорядочения событий до создания визуальных эффектов для сопровождения патчей Pd или даже расширения графического интерфейса Pd .
В соответствии с названием Pd, структуры данных позволяют пользователям Pd создавать произвольно сложные статические, а также динамические или анимированные графические представления музыкальных данных. Подобно структурам C , структуры Pd состоят из любой комбинации чисел с плавающей запятой, символов и данных массива, которые можно использовать в качестве параметров для описания визуального вида структуры данных или, наоборот, для управления сообщениями и звуковыми сигналами в патче Pd. По словам Пакетта:
Pd разработан, чтобы предложить крайне неструктурированную среду для описания структур данных и их графического внешнего вида. Основная идея состоит в том, чтобы позволить пользователю отображать любые данные, которые он или она хочет, любым образом связывая их с отображением. Для этого Pd вводит графическую структуру данных, что-то вроде структуры данных из языка программирования C, но с возможностью присоединения к данным форм и цветов, чтобы пользователь мог визуализировать и/или редактировать их. Сами данные можно редактировать с нуля или импортировать из файлов, генерировать алгоритмически или получить в результате анализа входящих звуков или других потоков данных.
— Миллер Пакетт, [ 4 ]

Языковые ограничения
[ редактировать ]Несмотря на то, что Pd является мощным языком, он имеет определенные ограничения в реализации объектно-ориентированных концепций. [ 5 ] Например, очень сложно создавать массово параллельные процессы, поскольку создание экземпляров и манипулирование большими списками объектов (порождение и т. д.) невозможно из-за отсутствия функции-конструктора. Кроме того, массивы Pd и другие объекты подвержены конфликтам пространств имен, поскольку передача идентификатора экземпляра исправления является дополнительным шагом, и иногда его трудно выполнить.
Проекты с использованием чистых данных
[ редактировать ]Pure Data использовался в качестве основы ряда проектов, в качестве языка прототипирования и звукового движка. Табличный интерфейс под названием Reactable [ 6 ] и заброшенное приложение для iPhone RjDj используют Pd в качестве звукового движка.
Ряд аудиодизайнеров использовал Pd для создания прототипов звука для видеоигр. Например, EAPd — это внутренняя версия Pd, которая используется в Electronic Arts (EA). Он также был встроен в EA Spore . [ 7 ]
Pd также использовался для сетевого исполнения в библиотеке сетевых ресурсов для совместной импровизации (NRCI). [ 8 ]
Примеры кода
[ редактировать ]- Примеры исправлений визуального кода Pure Data
-
Патч 1: Программа «Привет, мир» в Pd.
-
Патч 2: Реверберация в Pd.
-
Патч 3: Фильтры и поток данных в Pd.
- Первый патч выводит на дисплей «привет, мир».
- Второй патч применяет реверберацию к входящему сигналу из канала 1, а затем излучает его на каналы 1 и 2.
- Последний, более сложный патч фильтрует белый шум на частоте 9000 Гц (с добротностью 20), а затем постепенно усиливает и ослабляет его каждую секунду в течение полсекунды. В Pd время измеряется в миллисекундах, поэтому «1000» — это одна секунда, а «500» — полсекунды.
См. также
[ редактировать ]- Графическая среда для мультимедиа
- Макс/MSP
- РеакТабле
- Пуредайн
- Сравнение сред синтеза звука
- Список музыкального программного обеспечения
Примечания
[ редактировать ]- ^ Jump up to: а б «Программное обеспечение Миллера Пакетта» . Миллер Пакетт . Проверено 14 января 2022 г.
- ^ Пакетт, М. (1988). Патчер. В материалах Международной компьютерной музыкальной конференции.
- ^ «Часто задаваемые вопросы: Макс 4 — Велоспорт '74» . Проверено 5 января 2017 г.
- ^ Документация Pd, глава 2 — 2.9. Структуры данных
- ^ «Возможности №2: Аудиослой» . 2 марта 2010 г. Проверено 5 января 2017 г.
- ^ Жорда, Сержи; Кальтенбруннер, Мартин; Гейгер, Гюнтер; Бензина, Росс (2005). «ICMC2005: Таблица реакций» (PDF) . Группа музыкальных технологий/IUA, Университет Помпеу Фабра.
- ^ Косак, Дэйв (20 февраля 2008 г.). «Gamespy: The Beat Goes On: Динамическая музыка в Spore» . GameSpy . ИГН Интертеймент, Инк.
- ^ «Сетевые ресурсы для совместной импровизации (NRCI)» . Центр компьютерных исследований в области музыки и акустики . Кафедра музыки Стэнфордского университета.
Ссылки
[ редактировать ]- Дэнкс, М. (1996). Графическая среда для макс. В: Материалы Международной компьютерной музыкальной конференции, стр. 67–70. Международная ассоциация компьютерной музыки.
- Дэнкс, М. (1997). Обработка изображений и видео в реальном времени в Gem. В: Материалы Международной компьютерной музыкальной конференции, стр. 220–223. Международная ассоциация компьютерной музыки.
- Пакетт, М.С. (1996) Чистые данные . Материалы Международной конференции по компьютерной музыке. Сан-Франциско: Международная ассоциация компьютерной музыки, стр. 269–272.
- Пакетт, М.С. (1997). Чистые данные. В: Материалы Международной компьютерной музыкальной конференции, стр. 224–227. Международная ассоциация компьютерной музыки.
Дальнейшее чтение
[ редактировать ]- Пакетт, Миллер Смит (2007). Теория и техника электронной музыки . World Scientific , Сингапур. ISBN 978-981-270-541-9 .
- Крейдлер, Йоханнес (2009). Loadbang: программирование электронной музыки в чистых данных . Вольке Верлаг, Хофхайм . ISBN 978-3-936000-57-3 .
- Пд~грац, изд. Взрыв Чистые данные . Вольке Верлаг, Хофхайм . ISBN 978-3-936000-37-5 .
- Фарнелл, Энди Дж (2010). Проектирование звука . Массачусетский технологический институт Пресс . ISBN 978-0-262-01441-0 .
- Бринкманн, Питер (2012). Создание музыкальных приложений — синтез звука в реальном времени на Android и iOS . О'Рейли Медиа . 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 978-4-86100-780-4 .
- Хабибдуст, Мансур (2013). Pd Elementary Method (на фарси) — PDF и исправления
Внешние ссылки
[ редактировать ]- Языки аудио программирования
- Программное обеспечение для электронной музыки
- Бесплатное аудио-программное обеспечение
- Программные синтезаторы
- Языки визуального программирования
- Программное обеспечение, использующее лицензию BSD
- Бесплатное программное обеспечение, написанное на C.
- Программное обеспечение, использующее Tk (программное обеспечение)