Cyclone amplía Pure Data con objetos clonados de Max/MSP de Cycling74 y proporciona un buen nivel de compatibilidad entre los dos entornos.
El proyecto Pure Data (o simplemente "Pd") se encuentra en: https://sourceforge.net/p/pure-data/pure-data/ci/master/tree/ o en su espejo de github https://github.com /datos-puros/datos-puros. La página de descarga oficial está aquí: http://msp.ucsd.edu/software.html
Max se encuentra en: https://cycling74.com/
Copyright © 2003-2024 - Krzysztof Czaja, Hans-Christoph Steiner, Fred Jan Kraan, Alexandre Porres, Derek Kwan, Matt Barber y otros.
Este trabajo es gratuito. Puede redistribuirlo y/o modificarlo según los términos de la Cláusula BSD-3 (también conocida como Licencia BSD revisada). Consulte License.txt https://github.com/porres/pd-cyclone/blob/cyclone0.4/LICENSE.txt y https://opensource.org/licenses/BSD-3-Clause para obtener más detalles.
Versión actual: Cyclone 0.9-1 (esta versión necesita al menos Pd Vanilla 0.55-0)
Publicado el 20 de agosto de 2024
Encuentre los últimos lanzamientos de Cyclone en: https://github.com/porres/pd-cyclone/releases o directamente a través del administrador externo de Pd (Ayuda => Buscar externos). Informe los errores en https://github.com/porres/pd-cyclone/issues.
Las versiones obsoletas de cyclone (0.1) están disponibles en la distribución Pd-extended abandonada hace mucho tiempo (que nadie debería usar ahora en la década de 2020), así como en Pd-l2ork y Purr Data, ambos originalmente basados en Pd-Extended pero adaptados a nw.js (las versiones 0.1 de cyclone aquí no fueron trasladadas completamente a nw.js al momento de escribir este artículo). Si desea una versión actualizada de Cyclone, utilice Pd Vanilla o PlugData.
¿Conoce PlugData? Cyclone también es parte de PlugData de Timothy Schoen, que es una bifurcación de Pd que se carga de forma independiente o VST con una GUI renovada. Ver: https://github.com/timothyschoen/PlugData
El autor original de Cyclone (Krzysztof Czaja) lo abandonó en 2005 en la versión 0.1-alpha55, cuando Cyclone era compatible con MAX 4.0. Luego, Cyclone se incorporó y estuvo disponible en Pd-extended, donde solo tuvo una actualización menor bajo el mantenimiento de Hans-Christoph Steiner en 2013 (0.1-alpha56), justo antes de que Pd-extended y Cyclone (por consecuencia) fueran abandonados por completo ( esta versión 0.1-alpha56 también fue heredada por Pd-l2ork/Purr Data). Bajo una nueva fase de mantenimiento realizada por Fred Jan Kraan, se lanzaron las versiones beta 0.1-alpha57 y Cyclone 0.2, todavía estrechamente relacionadas con las versiones anteriores '0.1-alpha' y en su mayoría compatibles con Max 4.0.
Cyclone 0.3-0 fue la revisión principal de Cyclone, donde casi todos sus objetos se actualizaron a la última versión Max 7 (Max 7.3.5). También se corrigieron muchos errores, se reescribió la documentación desde cero y se incluyeron nuevos objetos. Consulte el archivo CHANGELOG.txt proporcionado para obtener detalles sobre todos los cambios de versión.
Actualmente, Cyclone aún no ha alcanzado la compatibilidad total con "Max 7.3.5". Algunas funcionalidades que dependen del "transporte" o "diccionarios" no se han implementado y de hecho nunca lo serán. Cyclone no está en mucho desarrollo activo estos días y el objetivo principal es mantener la biblioteca y corregir errores (por lo tanto, evite incluir cosas nuevas).
El principal mantenedor actual de Cyclone (Porres) está mucho más ocupado desarrollando la biblioteca ELSE. Tenga en cuenta que esta biblioteca tiene alternativas para casi todos los objetos de ciclón y muchos objetos en ELSE en realidad están inspirados en objetos MAX/MSP que no fueron clonados en Cyclone. Por cierto, ELSE también forma parte de PlugData, por lo que la documentación de Cyclone apunta a alternativas en ELSE.
Un par de objetos en Cyclone ahora están tomados prestados de ELSE, como [pink~] y [comentario] (este está basado en la [nota] de ELSE y en realidad quedó obsoleto). Estos objetos son compatibles con versiones anteriores y ofrecen más cosas que el objeto MAX original, por lo que no son totalmente compatibles.
El único objeto que aún no se ha actualizado a MAX 7.3.5 es [mtr] y está en la lista de tareas pendientes. Es posible que Cyclone aún incorpore nuevas funcionalidades en objetos existentes de Max 8 (versión actual) y versiones más recientes de 9+ en el futuro, pero no podemos prometerlo.
Una compatibilidad 'mc' sería posible ahora, a partir de la versión 0.54-0 de Pd, que admite conexiones multicanal. Sin embargo, no hay ningún plan para crear tales objetos para Cyclone y buscar esta compatibilidad. Por otro lado, los usuarios actualmente pueden construir sus propias abstracciones tipo "mc" basadas en objetos ciclónicos con [clon]. ¡Tenga en cuenta que muchos objetos ELSE tienen soporte multicanal!
Puede compilar Cyclone desde la fuente proporcionada en este repositorio para el último estado actual o descargar una de las versiones compiladas más estables desde https://github.com/porres/pd-cyclone/releases. Una buena alternativa es simplemente usar el administrador de descargas externo de Pd (también conocido como complemento deken): simplemente haga clic en la opción "buscar externos" en el menú Ayuda y busque "ciclón".
Al instalar cyclone, asegúrese de que la carpeta Cyclone esté incluida en una carpeta que Pd busca, como ~/Documents/Pd/externals
, que es lo que Pd le sugiere hacer para varias versiones ahora.
Ahora puede instalar Cyclone cargándolo en el inicio: vaya a "Preferencias => Inicio", luego haga clic en "Nuevo", escriba "ciclón" y presione Aceptar. La próxima vez que reinicie Pd, se cargará el binario de la biblioteca Cyclone.
Este binario de biblioteca carga los objetos de operadores no alfanuméricos (que son: !-
, !-~
, !/
, !/~
, !=~
, %~
, +=~
, <=~
, <~
, ==~
, >=~
y >~
) pero también agrega la ruta de Cyclone a las preferencias de Pd, para que puedas cargar los otros objetos desde Cyclone (que son binarios y abstracciones separados).
Pero tenga en cuenta que para forzar una prioridad de búsqueda de ruta en su parche, debe usar [declare -path cyclone].
También puedes usar [declare -lib cyclone] en un parche para cargar la biblioteca si no quieres tener Cyclone siempre cargado cuando se inicia Pd. Al cargar el binario de Cyclone como objeto ([cyclone]) también se carga la biblioteca; consulte su archivo de ayuda para obtener más detalles.
Desde "Cyclone 0.1-alpha57", el paquete Cyclone se ha basado en el nuevo sistema de compilación llamado "pd-lib-builder" de Katja Vetter (consulte el proyecto en: https://github.com/pure-data/pd-lib -constructor).
PdLibBuilder intenta encontrar el directorio fuente de Pd en varias ubicaciones comunes, pero cuando esto falla, debe especificar la ruta usted mismo utilizando la variable pdincludepath. Ejemplo:
haga pdincludepath=~/pd-0.54-0/src/ (para Windows/MinGW agregue 'pdbinpath=~/pd-0.54-0/bin/)
Utilice "objectsdir" para establecer una ruta relativa para su compilación, algo como:
hacer instalar objetosdir=../cyclone-build
Luego muévalo a su carpeta de instalación preferida para Pd.
Ahora es posible construir Cyclone para Pd Vanilla o libpd usando CMake. CMake es un sistema de compilación de código abierto multiplataforma. CMake se utiliza para controlar el proceso de compilación de software utilizando archivos de configuración independientes del compilador y de la plataforma simple, y generar espacios de trabajo y archivos MAKE nativos que se pueden usar en el entorno del compilador de su elección. Esto permite la compilación nativa a través de Windows (Microsoft Visual Studio), Linux (GCC) y macOS (XCode).
Dependencias:
Si está utilizando MinGW, puede utilizar pthreadGC-3.dll incluido en el directorio maintenance/windows_dll
de este repositorio. Alternativamente, también puedes descargarlo o compilarlo tú mismo desde las fuentes aquí. Esto normalmente dará como resultado pthreadGC2.(dll/lib).
Si está utilizando Visual Studio, debe proporcionar una biblioteca pthreads
compilada para Visual Studio, ya sea descargándola o compilándola usted mismo. Ver aquí. Tenga cuidado de descargar/compilar la versión correcta para su configuración. Normalmente sería pthreadVC2.(dll/lib)
.
Una forma de configurar CMake es utilizar la GUI de CMake. La GUI enumerará las variables que se pueden proporcionar para configurar la compilación. Las variables también se pueden especificar en la interfaz de línea de comandos (consulte un ejemplo a continuación).
En este paso, puede seleccionar si desea crear bibliotecas compartidas con BUILD_SHARED_LIBS
y si desea crear todos los objetos Cyclone en una sola biblioteca con BUILD_SINGLE_LIBRARY
(más sobre esto a continuación).
Cuando utilice Microsoft Visual Studio (MSVC), se le solicitará que proporcione una ruta a la biblioteca pthreads
y sus encabezados utilizando las variables CMAKE_THREAD_LIBS_INIT
y PTHREADS_INCLUDE_DIR
.
Se le solicitará que proporcione una ruta a las fuentes de datos puros y a la biblioteca de datos puros. Si construye Cylone para libpd, estos también pueden satisfacerse proporcionando la ruta a la carpeta pure-data
dentro de las fuentes de libpd y proporcionando la ruta a la biblioteca libpd. Las variables son: PD_INCLUDE_DIR
y PD_LIBRARY
.
En macOS, puede definir diferentes arquitecturas y objetivos de implementación de su sistema actual utilizando las variables CMAKE_OSX_DEPLOYMENT_TARGET
y CMAKE_OSX_ARCHITECTURES
.
Puede especificar indicadores de compilación adicionales utilizando la variable CMAKE_C_FLAGS
.
CMake ahora puede generar Makefiles, una solución MSVC o un proyecto XCode.
Después de la generación, dependiendo de su plataforma, puede navegar hasta el directorio donde CMake generó los archivos de compilación y luego:
make
Por supuesto, también puedes usar CMake para construir un ciclón ejecutando esto en la línea de comando:
cd
cmake --build .
Por defecto, Cyclone construirá la mayoría de sus objetos como un único archivo binario ( .so
/ .dll
/ .dylib
/ .pd_darwin
). La excepción es el objeto/binario "ciclón" que carga los objetos de operadores no alfanuméricos (que son: !-
, !-~
, !/
, !/~
, !=~
, %~
, +=~
, <=~
, <~
, ==~
, >=~
y >~
).
Si lo desea, también puede crear todos los objetos Cyclone en un solo cyclone.so/dll/dylib/pd_darwin
activando la opción BUILD_SINGLE_LIBRARY
.
Cada una de las bibliotecas individuales contiene un método
que será invocado por datos puros al cargar la biblioteca. Si selecciona BUILD_SINGLE_LIBRARY
, CMake generará el código apropiado para que todos los métodos *_setup()
se invoquen en el cyclone_setup()
principal.
A continuación se muestran algunos ejemplos de cómo descargar, configurar y compilar el último Cyclone en la línea de comandos usando CMake y pure-data o libpd.
Linux:
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/MSVC:
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 .
Usando libpd en 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 .
Extracto del archivo Léame original de Cyclone (por su autor original, Krzysztof Czaja):
El autor original de Cyclone, Krzysztof Czaja, trabajó en él como parte de su biblioteca mixta de 2002 a 2005 y luego lo abandonó por completo. Paralelamente, mixed se incorporó a Pd Extended y finalmente terminó bajo el mantenimiento de Hans-Christoph Steiner, el principal desarrollador y mantenedor de Pd-Extended. Cuando Pd Extended fue abandonado después de su último lanzamiento (desde enero de 2013), Cyclone y mixed quedaron sin mantenimiento. En diciembre de 2014, Fred Jan Kraan se hizo cargo del mantenimiento y desarrollo de cyclone (pero no del resto de la biblioteca mixta) y lanzó las versiones beta 0.1-alpha57 y Cyclone 0.2, pero decidió abandonar el desarrollo en febrero de 2016.
Desde el 21 de febrero de 2016, Alexandre Porres, Derek Kwan, Matt Barber y otros colaboradores comenzaron a desarrollar más Cyclone en este repositorio. ¡La primera versión estable fue Cyclone 0.3-0 de febrero de 2019!
=> Repositorio original (hasta la versión 0.1-Alpha-56): El repositorio original de MiXed como parte de Pd Extended, que contiene Cyclone y más (como 'toxy'), reside en https://svn.code.sf. net/p/pure-data/svn/trunk/externals/miXed/cyclone y el repositorio migrado: https://git.puredata.info/cgit/svn2git/libraries/miXed.git/. Este repositorio abarca el trabajo de tres fases de mantenimiento diferentes:
=> Repositorio de Fred Jan Kraan (0.1-Alpha57 y 0.2-beta):
Fred Jan Kraan bifurcó el repositorio original a https://github.com/electrickery/pd-miXedSon, pero solo contiene la biblioteca Cyclone. Este repositorio tiene algunas versiones (consulte https://github.com/electrickery/pd-miXedSon/releases). Comienza con la versión 0.1-alpha-57 de Cyclone, de octubre de 2015, que son básicamente los últimos desarrollos realizados en el repositorio original. en su última fase. Luego pasa a una nueva versión Cyclone 0.2 que se detuvo en una etapa beta en febrero de 2016.
=> Este Repositorio (0.3-0 y posteriores):
En febrero de 2016, Porres se bifurcó desde https://github.com/electrickery/pd-miXedSon a este repositorio que se encuentra en: https://github.com/porres/pd-cyclone. La bifurcación ocurrió mientras el ciclón estaba en la etapa 0.2-beta. Desde entonces, Alexandre Porres, Derek Kwan, Matt Barber y otros colaboradores han trabajado en nuevos desarrollos del ciclón. La primera versión estable de este repositorio fue el ciclón 0.3-0 de febrero de 2019. A finales de 2021, después del lanzamiento de la versión 0.6-0, este repositorio se separó de Kraan's (electrickery) aquí en GitHub, después de haber miles de confirmaciones por delante y con una reestructuración completa de la base del código.
=> La bifurcación 'nilwind':
La biblioteca 'nilwind' es una bifurcación de Cyclone y comienza como una bifurcación de la última etapa en la que se dejó https://github.com/electrickery/pd-miXedSon, lo que significa que es un desarrollo sobre cyclone 0.2-beta. El repositorio de nilwind está en https://github.com/electrickery/pd-nilwind. Su primera versión es 'nilwind 0.2.1', de noviembre de 2019. Esta bifurcación de cyclone no tiene como objetivo realizar actualizaciones de acuerdo con las versiones más recientes de Max y su principal preocupación es mantener la compatibilidad con los parches antiguos/heredados creados en Pd-Extended. era (que llevó al ciclón 0.1). No obstante, las versiones de cyclone 0.3 en adelante también son compatibles con la era Pd-Extended, ya que la fase de desarrollo actual no introduce cambios importantes y solo ha ofrecido versiones estables desde 0.3.
Este repositorio reside en https://github.com/porres/pd-cyclone y es fiel al objetivo original de Cyclone de crear un paquete Pd externo con una colección de objetos clonados y compatibles con objetos Max/MSP. Los errores y problemas deben informarse a https://github.com/porres/pd-cyclone/issues. Las versiones de este repositorio son estables y ofrecen muchas correcciones y mejoran la estabilidad de versiones anteriores.
La compatibilidad con las versiones más nuevas de Max es una preocupación, pero la compatibilidad con Max siempre fue el objetivo principal de cyclone y nada cambió realmente, ya que Max mantiene compatibilidades con versiones anteriores. No deberían surgir incompatibilidades entre el ciclón 0.3-0 en adelante con la etapa heredada de la biblioteca (la fase del ciclón 0.1 que estaba disponible en Pd Extended). Dado que esta etapa de desarrollo de Cyclone se ocupa de brindar compatibilidad para los parches creados en la era Pd-Extended, si surgen tales problemas, deben tratarse como errores y reportarse/solucionarse.
Este repositorio/proyecto está abierto a la colaboración de cualquiera que desee trabajar (teniendo en cuenta el objetivo clave y central de la compatibilidad Max/MSP). Siéntete libre de colaborar.
Gracias a los mantenedores anteriores, Lucas Cordiviola, por trabajar en problemas de compilación y compilación cruzada y generar binarios para muchas versiones. Diego Barrios Romero trabajó en la posibilidad de compilar todos los objetos de cyclone como un único binario en lugar de binarios separados. Tim Schoen por ayudar con algunos problemas, incluidos un par de objetos y la inclusión de Cyclone en su proyecto PlugData (ver: https://github.com/timothyschoen/PlugData)