Cyclone расширяет Pure Data объектами, клонированными из Max/MSP Cyclone74, и обеспечивает хороший уровень совместимости между двумя средами.
Проект Pure Data (или просто «Pd») находится по адресу: https://sourceforge.net/p/pure-data/pure-data/ci/master/tree/ или в его зеркале GitHub https://github.com. /чистые-данные/чистые-данные. Официальная страница загрузки находится здесь: http://msp.ucsd.edu/software.html.
Макса можно найти по адресу: https://cycling74.com/
Copyright © 2003-2024 - Кшиштоф Чая, Ханс-Кристоф Штайнер, Фред Ян Краан, Александр Поррес, Дерек Кван, Мэтт Барбер и другие.
Эта работа бесплатна. Вы можете распространять его и/или изменять в соответствии с условиями пункта BSD-3 (также известного как пересмотренная лицензия BSD). Дополнительные сведения см. в License.txt https://github.com/porres/pd-cyclone/blob/cyclone0.4/LICENSE.txt и https://opensource.org/licenses/BSD-3-Clause.
Текущая версия: Cyclone 0.9-1 (для этой версии требуется как минимум Pd Vanilla 0.55-0)
Выпущено 20 августа 2024 г.
Последние выпуски Cyclone можно найти по адресу: https://github.com/porres/pd-cyclone/releases или напрямую через внешний менеджер Pd (Справка => Найти внешние компоненты). Сообщайте об ошибках по адресу https://github.com/porres/pd-cyclone/issues.
Устаревшие версии cyclone (0.1) доступны в давно заброшенном расширенном дистрибутиве Pd (который сейчас никто не должен использовать в 2020-х годах), а также в Pd-l2ork и Purr Data — оба изначально основаны на Pd-Extended, но перенесены на nw.js (версии Cyclone 0.1 не были полностью портированы на nw.js на момент написания этой статьи). Если вам нужна актуальная версия Cyclone, используйте Pd Vanilla или PlugData.
Знаете ли вы о PlugData? Cyclone также является частью PlugData Тимоти Шона, который представляет собой форк Pd, который загружается как автономный или VST с обновленным графическим интерфейсом. См.: https://github.com/timothyschoen/PlugData.
Первоначальный автор Cyclone (Кшиштоф Чая) отказался от него в 2005 году в версии 0.1-alpha55, когда Cyclone был совместим с MAX 4.0. Затем Cyclone был включен и доступен в Pd-extended, где он претерпел лишь незначительное обновление под руководством Ганса-Кристофа Штайнера в 2013 году (0.1-alpha56), как раз перед тем, как Pd-extended и Cyclone (как следствие) были полностью заброшены ( эта версия 0.1-alpha56 также была унаследована Pd-l2ork/Purr Data). В рамках нового этапа поддержки Фреда Яна Краана были выпущены бета-версии 0.1-alpha57 и Cyclone 0.2, которые по-прежнему тесно связаны с предыдущими выпусками «0.1-альфа» и в основном совместимы с Max 4.0!
Cyclone 0.3-0 — это капитальный ремонт Cyclone, в котором почти все его объекты были обновлены до последней версии Max 7 (Max 7.3.5). Также было исправлено множество ошибок, документация была переписана с нуля и включены новые объекты. Проверьте предоставленный файл CHANGELOG.txt для получения подробной информации обо всех изменениях версий.
В настоящее время Cyclone еще не достиг полной совместимости с «Max 7.3.5». Некоторые функции, зависящие от «транспорта» или «словарей», не реализованы и никогда не будут реализованы. В настоящее время Cyclone не находится в активной разработке, и основная цель — поддерживать библиотеку и исправлять ошибки (следовательно, избегать включения новых вещей).
Главный нынешний сопровождающий Cyclone (Поррес) гораздо больше занят разработкой библиотеки ELSE. Обратите внимание, что в этой библиотеке есть альтернативы почти для всех объектов Cyclone, и многие объекты в ELSE на самом деле созданы на основе объектов MAX/MSP, которые не были клонированы в Cyclone. Кстати, ELSE тоже является частью PlugData, поэтому в документации Cyclone указаны альтернативы в ELSE.
Несколько объектов в Cyclone теперь заимствованы из ELSE, например [pink~] и [comment] (этот объект основан на [примечании] ELSE и фактически устарел). Эти объекты обратно совместимы и предлагают больше возможностей, чем исходный объект MAX, поэтому на самом деле они не полностью совместимы.
Единственный объект, который еще не обновлен до MAX 7.3.5, — это [mtr], и он находится в списке дел. Cyclone все еще может включать новые функциональные возможности в существующие объекты из Max 8 (текущая версия) и более новых версий 9+ в будущем, но мы не можем этого обещать.
Совместимость с mc теперь возможна, начиная с версии Pd 0.54-0, которая поддерживает многоканальные соединения. Тем не менее, нет никаких планов создавать такие объекты для Cyclone и добиваться такой совместимости. С другой стороны, пользователи в настоящее время могут создавать свои собственные «mc»-подобные абстракции на основе объектов-циклонов с помощью [clone]. Обратите внимание, что многие объекты ELSE поддерживают многоканальность!
Вы можете скомпилировать Cyclone из исходного кода, представленного в этом репозитории, для текущего последнего состояния или загрузить один из наиболее стабильных скомпилированных выпусков с https://github.com/porres/pd-cyclone/releases. Хорошей альтернативой является просто использование собственного внешнего менеджера загрузок Pd (он же плагин deken): просто нажмите на опцию «найти внешние файлы» в меню «Справка» и найдите «циклон».
При установке Cyclone убедитесь, что папка Cyclone включена в папку, которую ищет Pd, например ~/Documents/Pd/externals
— именно это Pd предлагает вам сделать сейчас для нескольких версий.
Теперь вы можете установить Cyclone, загрузив его в автозагрузку: перейдите в «Настройки => Автозагрузка», затем нажмите «Новый», введите «циклон» и нажмите «ОК». При следующем перезапуске Pd будет загружен двоичный файл библиотеки Cyclone.
Этот двоичный файл библиотеки загружает объекты небуквенно-цифровых операторов (а именно: !-
, !-~
, !/
, !/~
, !=~
, %~
, +=~
, <=~
, <~
, ==~
, >=~
и >~
), но он также добавляет путь Cyclone к настройкам Pd, поэтому вы можете загружать другие объекты из Cyclone (которые представляют собой отдельные двоичные файлы и абстракции).
Но учтите, что для того, чтобы действительно установить приоритет поиска пути в вашем патче, вам нужно использовать [declare -path cyclone].
Вы также можете использовать [declare -lib cyclone] в патче для загрузки библиотеки, если вы не хотите, чтобы Cyclone всегда загружался при запуске Pd. Загрузка двоичного файла Cyclone как объекта ([cyclone]) также загружает библиотеку; более подробную информацию см. в ее справочном файле.
Начиная с «Cyclone 0.1-alpha57», пакет Cyclone опирается на новую систему сборки под названием «pd-lib-builder» Кати Веттер (проверьте проект: https://github.com/pure-data/pd-lib). -строитель).
PdLibBuilder пытается найти исходный каталог Pd в нескольких общих местах, но если это не удается, вам придется указать путь самостоятельно, используя переменную pdincludepath. Пример:
make pdincludepath=~/pd-0.54-0/src/ (для Windows/MinGW добавьте 'pdbinpath=~/pd-0.54-0/bin/)
Используйте «objectsdir», чтобы установить относительный путь для вашей сборки, например:
make installobjectsdir=../cyclone-build
Затем переместите его в предпочтительную папку установки Pd.
Теперь можно собрать Cyclone для Pd Vanilla или libpd с помощью CMake. CMake — это кроссплатформенная система сборки с открытым исходным кодом. CMake используется для управления процессом компиляции программного обеспечения с использованием простых файлов конфигурации, независимых от платформы и компилятора, а также для создания собственных make-файлов и рабочих пространств, которые можно использовать в среде компилятора по вашему выбору. Это позволяет выполнять собственную компиляцию через Windows (Microsoft Visual Studio), Linux (GCC) и macOS (XCode).
Зависимости:
Если вы используете MinGW, вы можете использовать pthreadGC-3.dll, включенный в каталог maintenance/windows_dll
в этом репозитории. Кроме того, вы также можете скачать его или скомпилировать самостоятельно из источников здесь. Обычно это приводит к созданию pthreadGC2.(dll/lib).
Если вы используете Visual Studio, вам необходимо предоставить библиотеку pthreads
скомпилированную для Visual Studio, загрузив ее или скомпилировав самостоятельно. Смотрите здесь. Будьте осторожны при загрузке/компиляции версии, подходящей для вашей установки. Обычно это pthreadVC2.(dll/lib)
.
Один из способов настройки CMake — использовать графический интерфейс CMake. В графическом интерфейсе будут перечислены переменные, которые можно предоставить для настройки сборки. Переменные также можно указать в интерфейсе командной строки (пример см. ниже).
На этом этапе вы можете выбрать, хотите ли вы создавать общие библиотеки с помощью BUILD_SHARED_LIBS
и хотите ли вы собрать все объекты Cyclone в одну единую библиотеку с помощью BUILD_SINGLE_LIBRARY
(подробнее об этом ниже).
При использовании Microsoft Visual Studio (MSVC) вам будет предложено указать путь к библиотеке pthreads
и ее заголовкам, используя переменные CMAKE_THREAD_LIBS_INIT
и PTHREADS_INCLUDE_DIR
.
Вам будет предложено указать путь к источникам чистых данных и к библиотеке чистых данных. При сборке Cylone для libpd это также можно выполнить, указав путь к папке pure-data
внутри исходных текстов libpd и указав путь к библиотеке libpd. Переменные: PD_INCLUDE_DIR
и PD_LIBRARY
.
В macOS вы можете определить другую цель развертывания и архитектуру вашей текущей системы, используя переменные CMAKE_OSX_DEPLOYMENT_TARGET
и CMAKE_OSX_ARCHITECTURES
.
Вы можете указать дополнительные флаги компиляции, используя переменную CMAKE_C_FLAGS
.
CMake теперь может создавать файлы Makefile, решение MSVC или проект XCode.
После генерации, в зависимости от вашей платформы, вы можете перейти в каталог, в котором CMake сгенерировал файлы сборки, а затем:
make
Конечно, вы также можете использовать сам CMake для создания циклона, запустив это в командной строке:
cd
cmake --build .
По умолчанию Cyclone собирает большинство своих объектов в виде одного двоичного файла ( .so
/ .dll
/ .dylib
/ .pd_darwin
). Исключением является объект/двоичный файл «циклон», который загружает объекты небуквенно-цифровых операторов (а именно: !-
, !-~
, !/
, !/~
, !=~
, %~
, +=~
, <=~
, <~
, ==~
, >=~
и >~
).
Если вы хотите, вы также можете собрать все объекты Cyclone в один cyclone.so/dll/dylib/pd_darwin
, активировав опцию BUILD_SINGLE_LIBRARY
.
Каждая из отдельных библиотек содержит метод
, который будет вызываться чистыми данными при загрузке библиотеки. Если вы выберете BUILD_SINGLE_LIBRARY
, CMake сгенерирует соответствующий код, чтобы все методы *_setup()
были вызваны в основном cyclone_setup()
.
Вот несколько примеров того, как загрузить, настроить и собрать последнюю версию Cyclone из командной строки с помощью CMake и pure-data или libpd.
Линукс:
git clone https://github.com/pure-data/pure-data
git clone https://github.com/porres/pd-cyclone
cd pd-cyclone
mkdir build && cd build
cmake .. -DPD_INCLUDE_DIR:PATH=pure-data/src -DPD_LIBRARY:PATH=
cmake --build .
Windows/МСВК:
git clone https://github.com/pure-data/pure-data
#Clone the Cyclone repository from GitHub:
git clone https://github.com/porres/pd-cyclone
cd pd-cyclone
mkdir build && cd build
cmake .. -DCMAKE_THREAD_LIBS_INIT:PATH= -DPTHREADS_INCLUDE_DIR:PATH= -DPD_INCLUDE_DIR:PATH=pure-data/src -DPD_LIBRARY:PATH=
cmake --build .
Использование libpd в Linux:
# Here we compile libpd ourselves, you can skip the building steps if you download the libpd binaries
git clone https://github.com/libpd/libpd
cd libpd
git submodule init
git submodule update
# libpd build steps:
mkdir build && cd build
cmake ..
cmake --build .
cd ../..
# Now clone the Cyclone repository
git clone https://github.com/porres/pd-cyclone
cd pd-cyclone
mkdir build && cd build
cmake .. -DPD_INCLUDE_DIR:PATH=../libpd/pure-data/src -DPD_LIBRARY:PATH=../libpd/libs/libpd.so
cmake --build .
Отрывок из оригинального Readme Cyclone (автора Кшиштофа Чаи):
Первоначальный автор Cyclone Кшиштоф Чая работал над ним как частью своей смешанной библиотеки с 2002 по 2005 год, а затем отказался от всего этого. Параллельно с этим miXed был включен в Pd Extended и в конечном итоге оказался под управлением Ханса-Кристофа Штайнера — главного разработчика и сопровождающего Pd-Extended. Когда Pd Extended был закрыт после его последнего выпуска (с января 2013 года), Cyclone и miXed в результате остались без поддержки. В декабре 2014 года Фред Ян Краан взял на себя обслуживание и разработку Cyclone (но не остальной части смешанной библиотеки) и выпустил бета-версии 0.1-alpha57 и Cyclone 0.2, но решил отказаться от разработки для него в феврале 2016 года.
С 21 февраля 2016 года Александр Поррес, Дерек Кван, Мэтт Барбер и другие соавторы начали дальнейшую разработку Cyclone в этом репозитории. Первым стабильным релизом стал Cyclone 0.3-0 от февраля 2019 года!
=> Исходный репозиторий (до версии 0.1-Alpha-56): Исходный репозиторий MiXed как часть Pd Extended, содержащий Cyclone и многое другое (например, «toxy»), находится по адресу https://svn.code.sf. net/p/pure-data/svn/trunk/externals/miXed/cyclone и перенесенный репозиторий: https://git.puredata.info/cgit/svn2git/libraries/miXed.git/. Этот репозиторий включает в себя работу на трех различных этапах обслуживания:
=> Репозиторий Фреда Яна Краана (0.1-Alpha57 и 0.2-beta):
Фред Ян Краан разветвил исходный репозиторий на https://github.com/electrickery/pd-miXedSon, но содержащий только библиотеку Cyclone. В этом репозитории есть несколько выпусков — см. https://github.com/electrickery/pd-miXedSon/releases — он начинается с версии Cyclone 0.1-alpha-57 от октября 2015 года, которая, по сути, является последней разработкой, сделанной в исходном репозитории. в своей последней фазе. Затем он переходит к новой версии Cyclone 0.2, бета-версия которой остановилась в феврале 2016 года.
=> Этот репозиторий (0.3-0 и далее):
В феврале 2016 года Porres разделил https://github.com/electrickery/pd-miXedSon на этот репозиторий, который находится по адресу: https://github.com/porres/pd-cyclone. Развилка произошла, когда циклон находился на стадии 0,2-бета. С тех пор Александр Поррес, Дерек Кван, Мэтт Барбер и другие сотрудники работали над дальнейшими разработками циклона. Первым стабильным выпуском из этого репозитория была Cyclone 0.3-0 от февраля 2019 года. В конце 2021 года, после выпуска версии 0.6-0, этот репозиторий был отделен от Kraan's (электрика) здесь, на GitHub, после того, как впереди были тысячи коммитов и с полная реструктуризация кодовой базы.
=> Форк 'nilwind':
Библиотека nilwind является ответвлением Cyclone и начинается как ответвление последней стадии https://github.com/electrickery/pd-miXedSon, оставленной на, что означает, что это развитие по сравнению с Cyclone 0.2-beta. Репозиторий nilwind находится по адресу https://github.com/electrickery/pd-nilwind. Его первый выпуск — «nilwind 0.2.1», выпущенный в ноябре 2019 года. Этот форк Cyclone не преследует цели обновления в соответствии с более новыми версиями Max, и его основная задача — сохранить совместимость со старыми/устаревшими патчами, сделанными в Pd-Extended. эпоха (которая принесла циклон 0,1). Тем не менее, версии Cyclone 0.3 и выше также совместимы с эпохой Pd-Extended, поскольку текущий этап разработки не вносит критических изменений и предлагает только стабильные выпуски, начиная с 0.3!
Этот репозиторий находится по адресу https://github.com/porres/pd-cyclone и соответствует первоначальной цели Cyclone по созданию внешнего пакета Pd с коллекцией объектов, клонированных и совместимых с объектами Max/MSP. Об ошибках и проблемах следует сообщать по адресу https://github.com/porres/pd-cyclone/issues. Выпуски из этого репозитория стабильны и содержат множество исправлений и повышают стабильность по сравнению с более ранними версиями.
Совместимость с более новыми версиями Max вызывает беспокойство, но совместимость с Max всегда была главной целью Cyclone, и ничего особо не изменилось, поскольку сам Max сохраняет обратную совместимость. Не должно возникать несовместимости между циклоном 0,3-0 и более поздними версиями с устаревшей стадией библиотеки (фазой циклона 0,1, которая была доступна в Pd Extended). Поскольку этот этап разработки Cyclone направлен на обеспечение совместимости с патчами, созданными в эпоху Pd-Extended, в случае возникновения таких проблем их следует рассматривать как ошибки и сообщать о них/исправлять.
Этот репозиторий/проект открыт для сотрудничества для всех, кто желает работать (имея в виду ключевую и центральную цель совместимости Max/MSP). Смело сотрудничайте.
Спасибо предыдущим сопровождающим, Лукасу Кордивиоле, за работу над проблемами компиляции и кросс-компиляции, а также за создание двоичных файлов для многих выпусков. Диего Барриос Ромеро работал над возможностью компилировать все объекты в циклоне в один двоичный файл вместо отдельных двоичных файлов. Тиму Шону за помощь в решении некоторых проблем, включая пару объектов и включение Cyclone в его проект PlugData (см.: https://github.com/timothyschoen/PlugData).