Pure Data

Pure Data, Pd («чистые данные») — визуальный язык программирования, работающий в парадигме программирования потоков данных, разработанный Miller Puckette в 1990-е годы для создания интерактивных компьютерных музыкальных и мультимедийных произведений. Является свободным аналогом MSP.

Основным приложением Pd является обработка звука, однако со временем «чистые данные» нашли применение в более обширной области цифровой обработки сигналов, например, обработке изображений и видео.

В основе языка, который является полным по Тьюрингу, лежат потоки данных (англ. dataflow), проходящие через объекты (англ. object) и соединения (англ. connection) между объектами. Выход (англ. outlet) одного объекта поставляет данные для входов (англ. inlet) других объектов, а сам поток может состоять из многих шагов. Программа на Pd — набор соединённых объектов — называется патчем (англ. patch) по аналогии с модульными синтезаторами, в которых для соединений используются патч-корды.

Pure Data является событийно-ориентированной системой, в которой объекты, обрабатывающие сообщения (англ. message), ничего не делают, пока не получат данные. Объекты для обработки сигнала всегда в работе, если не отключены явным образом.


Pd vanilla

Каноничный вариант Pure Data от автора.

PlugData

Определённо, это мой любимый вариант. Пока ещё местами сырой и случались у меня вылеты, но это наверное самый приятный интерфейс из всех вариантов Pd, что я видел. Да, он похож на Max. Я не могу сказать, что так уж часто пользуюсь Pure Data вообще, но наиболее комфортно мне было именно здесь и именно здесь я сделал больше, чем в каком-либо другом окружении для этого языка.

Более того, он позволяет делать то, для чего изначально существует Camomile — использование в DAW в качестве плагина (поддерживаютсяVST,LV2,CLAP иAU), притом оставаясь полноценным вариантом Pure Data. На официальном сайте в документации есть раздел о встраивании в Ableton Live, Bitwig Studio, Reaper, Ardour, FL Studio, Studio One и Logic.

Purr Data

Purr Data в основном отличается сменой графического тулкита, что с одной стороны выглядит приличнее, но с другой не так стабильно.

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

CEAMMC PureData distribution

Если хочется чего-то относительно свежего и поддерживаемого, но не хочется рисковать с Purr Data, попробуйте сборку Pd от Центра Электроакустической Музыки Московской Консерватории и Z-studio, экспериментальной студии аудио-видео технологий КЦ ЗИЛ. Насчёт обратной совместимости мне также сложно сказать (собственные компоненты CEAMMC точно мимо), но она вроде как есть и это точно неплохой вариант чего-то близкого к ванильному оригиналу, притом он не создаёт впечатление какого-то безнадёжно устаревшего продукта.

Pd-L2Ork

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

Camomile

Camomile позволяет не просто создавать патчи на Pd, но и использовать их как VST-плагины. В последние годы разрабатывается не очень активно, вероятно из-за появления PlugData.

WebPd

WebPd, как и понятно из названия, создан для запуска патчей Pure Data в браузере. Насколько хорошо у него это получается на данный момент, мне сказать сложно, так как какой-то мой простенький патч он употребить наотрез отказался из-за каких-то там не самых редких компонентов. Тем не менее, он есть и разработчики предлагают попробовать.

Дистрибутивы Pure Data для мобильных платформ

Pure Data на мобильных платформах определённо работает, иначе всех этих вариантов бы не было, а было их и того больше. К сожалению, вечно с ними что-то не так и все они забрасываются, перестают разрабатываться и в целом полагаться нелегко.

И вот они. Какие-то ещё живы, какие-то уже нет:

  • Libpd — это не столько дистрибутив Pd, сколько средство для сборки чего бы то ни было на основе Pd. На сайте в разделе Showcase можно ознакомиться с примерами приложений на основе libpd.
  • MobMuPlat (Android, iOS)
  • PdDroidParty (Android)
  • PdParty (iOS)
  • mPD (Android)
  • Kortholt (Android)