Cyclone は、cycling74 の Max/MSP から複製されたオブジェクトを使用して Pure Data を拡張し、2 つの環境間にある程度の互換性を提供します。
Pure Data (または単に「Pd」) プロジェクトは、https://sourceforge.net/p/pure-data/pure-data/ci/master/tree/ またはその github ミラー https://github.com にあります。 /純粋なデータ/純粋なデータ。公式ダウンロード ページはこちらです: http://msp.ucsd.edu/software.html
Max は次の場所にあります: https://cycling74.com/
著作権 © 2003-2024 - クシシュトフ・チャヤ、ハンス・クリストフ・シュタイナー、フレッド・ヤン・クラーン、アレクサンドル・ポレス、デレク・クワン、マット・バーバー、その他。
この作品は無料です。 BSD-3-Clause (別名、改訂 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 が必要です)
2024 年 8 月 20 日発売
Cyclone の最新リリースは https://github.com/porres/pd-cyclone/releases で、または Pd の外部マネージャー (ヘルプ => 外部を検索) から直接検索できます。バグは https://github.com/porres/pd-cyclone/issues で報告してください。
サイクロン (0.1) の古いバージョンは、長い間放棄されていた Pd-extended ディストリビューション (2020 年代の現在では誰も使用していないはずです) および Pd-l2ork および Purr Data で入手可能です。どちらも元々は Pd-Extended に基づいていましたが、Pd-Extended に移植されました。 nw.js (この記事の執筆時点では、cyclone の 0.1 バージョンは nw.js に完全には移植されていませんでした)。 Cyclone の最新バージョンが必要な場合は、Pd Vanilla または PlugData を使用してください。
PlugData についてご存知ですか。Cyclone は、Timothy Schoen による PlugData の一部でもあります。これは、スタンドアロンまたは改良された GUI を備えた VST としてロードされる Pd のフォークです。参照: https://github.com/timothyschoen/PlugData
Cyclone のオリジナルの作者 (Krzysztof Czaja) は、Cyclone が MAX 4.0 と互換性があった 2005 年のバージョン 0.1-alpha55 でそれを放棄しました。その後、Cyclone は Pd-extended に組み込まれて利用可能になりましたが、2013 年に Hans-Christoph Steiner のメンテナンスのもとでマイナーなアップデート (0.1-alpha56) が行われただけで、その直前に Pd-extended と Cyclone (結果として) が完全に放棄されました (この 0.1-alpha56 バージョンは Pd-l2ork/Purr Data にも継承されました)。 Fred Jan Kraan による新しいメンテナンス フェーズの下で、0.1-alpha57 および Cyclone 0.2 ベータ バージョンがリリースされました。これらは以前の「0.1-alpha」リリースと密接な関係があり、ほとんどが Max 4.0 に準拠しています。
Cyclone 0.3-0 は Cyclone の大規模な見直しであり、ほぼすべてのオブジェクトが最新の Max 7 バージョン (Max 7.3.5) に更新されました。多くのバグも修正され、ドキュメントが最初から書き直され、新しいオブジェクトが追加されました。すべてのバージョン変更の詳細については、提供されているCHANGELOG.txtファイルを確認してください。
現時点では、Cyclone はまだ「Max 7.3.5」への完全な互換性を実現していません。 「トランスポート」または「辞書」に依存する一部の機能はまだ実装されておらず、実際には実装されることはありません。 Cyclone は最近あまり活発に開発されておらず、主な目的はライブラリを保守し、バグを修正することです (したがって、新しいものを含めることは避けてください)。
Cyclone の現在のメインメンテナ (Porres) は、ELSE ライブラリの開発で非常に忙しいです。このライブラリにはほぼすべての Cyclone オブジェクトの代替があり、ELSE の多くのオブジェクトは実際には Cyclone でクローン化されなかった MAX/MSP オブジェクトからインスピレーションを得ていることに注意してください。ちなみに、ELSE も PlugData の一部であるため、Cyclone のドキュメントでは ELSE の代替手段が示されています。
Cyclone のいくつかのオブジェクトは、[pink~] や [comment] など、ELSE から借用されています (これは ELSE の [note] に基づいており、実際には非推奨になりました)。これらのオブジェクトは下位互換性があり、元の MAX オブジェクトよりも多くの機能を提供するため、実際には完全な互換性はありません。
MAX 7.3.5 にまだ更新されていない唯一のオブジェクトは [mtr] で、これは To Do リストにあります。 Cyclone は、将来的にも Max 8 (現在のリリース) および新しい 9 以降のバージョンの既存のオブジェクトに新しい機能を組み込む可能性がありますが、それをお約束することはできません。
マルチチャネル接続をサポートする Pd バージョン 0.54-0 以降、「mc」互換性が可能になります。それにもかかわらず、Cyclone 用にそのようなオブジェクトを作成し、この互換性を追求する計画はありません。一方、ユーザーは現在、[clone] を使用してサイクロン オブジェクトに基づいた抽象化のような独自の「MC」を構築できます。多くの ELSE オブジェクトはマルチチャネルをサポートしていることに注意してください。
現在の最先端の最後の状態に合わせてこのリポジトリで提供されているソースから Cyclone をコンパイルすることも、https://github.com/porres/pd-cyclone/releases からより安定したコンパイル済みリリースの 1 つをダウンロードすることもできます。良い代替案は、単純に Pd 独自の外部ダウンロード マネージャー (別名 deken プラグイン) を使用することです。ヘルプ メニューの [外部の検索] オプションをクリックして、「cyclone」を検索するだけです。
Cyclone をインストールするときは、Pd が検索するフォルダー ( ~/Documents/Pd/externals
など) に Cyclone フォルダーが含まれていることを確認してください。Pd は現在、いくつかのバージョンに対してこれを行うよう提案しています。
これで、スタートアップにロードして Cyclone をインストールできます。「設定 => スタートアップ」に移動し、「新規」をクリックして「cyclone」と入力し、「OK」を押します。次回 Pd を再起動すると、Cyclone ライブラリのバイナリがロードされます。
このライブラリ バイナリは、英数字以外の演算子オブジェクト ( !-
、 !-~
、 !/
、 !/~
、 !=~
、 %~
、 +=~
、 <=~
、 <~
、 ==~
、 >=~
をロードします。 >=~
と>~
) だけでなく、Pd の設定に Cyclone のパスも追加されるため、Cyclone から他のオブジェクト (別個のバイナリと抽象化)。
ただし、実際にパッチでパス検索の優先順位を強制するには、[declare -path cyclone] を使用する必要があることに注意してください。
Pd の起動時に常に Cyclone をロードしたくない場合は、パッチで [declare -lib cyclone] を使用してライブラリをロードすることもできます。 Cyclone バイナリをオブジェクト ([cyclone]) としてロードすると、ライブラリもロードされます。詳細については、ヘルプ ファイルを参照してください。
「Cyclone 0.1-alpha57」以降、Cyclone パッケージは Katja Vetter による「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 install objectsdir=../cyclone-build
次に、それを Pd の優先インストール フォルダーに移動します。
CMake を使用して Pd Vanilla または libpd 用の Cyclone をビルドできるようになりました。 CMake は、クロスプラットフォームのオープンソース ビルド システムです。 CMake は、シンプルなプラットフォームとコンパイラに依存しない構成ファイルを使用してソフトウェアのコンパイル プロセスを制御し、選択したコンパイラ環境で使用できるネイティブの Makefile とワークスペースを生成するために使用されます。これにより、Windows (Microsoft Visual Studio)、Linux (GCC)、macOS (XCode) を介したネイティブ コンパイルが可能になります。
依存関係:
MinGW を使用している場合は、このリポジトリのmaintenance/windows_dll
ディレクトリに含まれる pthreadGC-3.dll を使用できます。あるいは、ここのソースからダウンロードしたり、自分でコンパイルしたりすることもできます。通常、これは pthreadGC2.(dll/lib) になります。
Visual Studio を使用している場合は、Visual Studio 用にコンパイルされたpthreads
ライブラリをダウンロードするか、自分でコンパイルして提供する必要があります。ここを参照してください。セットアップに適したバージョンをダウンロード/コンパイルするように注意してください。通常、これはpthreadVC2.(dll/lib)
になります。
CMake を構成する 1 つの方法は、CMake GUI を使用することです。 GUI には、ビルドを構成するために提供できる変数がリストされます。変数はコマンドライン インターフェイスでも指定できます (例については以下を参照)。
このステップでは、 BUILD_SHARED_LIBS
を使用して共有ライブラリをビルドするか、 BUILD_SINGLE_LIBRARY
を使用してすべての Cyclone オブジェクトを 1 つの単一ライブラリにビルドするかを選択できます (詳細は後述)。
Microsoft Visual Studio (MSVC) を使用する場合、変数CMAKE_THREAD_LIBS_INIT
およびPTHREADS_INCLUDE_DIR
を使用して、 pthreads
ライブラリとそのヘッダーへのパスを指定するように要求されます。
純粋なデータ ソースと純粋なデータ ライブラリへのパスを指定するように求められます。 libpd 用に Cylone をビルドする場合、libpd ソース内のpure-data
フォルダーへのパスを指定し、libpd ライブラリへのパスを指定することによってもこれらを満たすことができます。変数はPD_INCLUDE_DIR
およびPD_LIBRARY
です。
macOS では、変数CMAKE_OSX_DEPLOYMENT_TARGET
およびCMAKE_OSX_ARCHITECTURES
を使用して、現在のシステムから異なるデプロイメント ターゲットとアーキテクチャを定義できます。
変数CMAKE_C_FLAGS
を使用して、追加のコンパイル フラグを指定できます。
CMake は、Makefile、MSVC ソリューション、または XCode プロジェクトを生成できるようになりました。
生成後、プラットフォームに応じて、CMake がビルド ファイルを生成したディレクトリに移動して、次の操作を行うことができます。
make
実行します。もちろん、コマンドラインでこれを実行することで、CMake 自体を使用して cyclone を構築することもできます。
cd
cmake --build .
デフォルトでは、Cyclone はほとんどのオブジェクトを単一のバイナリ ファイル ( .so
/ .dll
/ .dylib
/ .pd_darwin
) として構築します。例外は、英数字以外の演算子オブジェクト ( !-
、 !-~
、 !/
、 !/~
、 !=~
、 %~
、 +=~
、 <=~
、 <~
、 ==~
、 >=~
および>~
)。
必要に応じて、 BUILD_SINGLE_LIBRARY
オプションを有効にして、すべての Cyclone オブジェクトを 1 つのcyclone.so/dll/dylib/pd_darwin
にビルドすることもできます。
個々のライブラリには、ライブラリのロード時に純粋なデータによって呼び出される
メソッドが含まれています。 BUILD_SINGLE_LIBRARY
選択すると、CMake は適切なコードを生成し、すべての*_setup()
メソッドがメインのcyclone_setup()
で呼び出されるようにします。
ここでは、CMake と pure-data または libpd を使用して、コマンド ラインで最新の Cyclone をダウンロード、構成、ビルドする方法の例をいくつか示します。
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 .
Linux での libpd の使用:
# 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 .
Cyclone のオリジナル Readme (原作者 Krzysztof Czaja による) からの抜粋:
Cyclone の原作者 Krzysztof Czaja は、2002 年から 2005 年にかけて混合ライブラリの一部としてこれに取り組みましたが、後にすべてを放棄しました。並行して、mixed は Pd Extended に組み込まれ、最終的には Pd-Extended の主な開発者および保守者である Hans-Christoph Steiner の保守下に置かれることになりました。 Pd Extended が最後のリリース (2013 年 1 月以降) 後に放棄されたとき、結果として Cyclone と mixed はメンテナンスされないまま残されました。 2014 年 12 月に、Fred Jan Kraan が Cyclone のメンテナンスと開発を引き継ぎ (MiXed ライブラリの残りの部分は引き継ぎません)、0.1-alpha57 と Cyclone 0.2 ベータ版をリリースしましたが、2016 年 2 月に開発を中止することを決定しました。
2016 年 2 月 21 日以降、Alexandre Porres、Derek Kwan、Matt Barber およびその他の協力者によって、このリポジトリで Cyclone のさらなる開発が開始されました。最初の安定版リリースは、2019 年 2 月の Cyclone 0.3-0 でした。
=> 元のリポジトリ (バージョン 0.1-Alpha-56 まで): Pd Extended の一部としての MiXed の元のリポジトリ - Cyclone など (「toxy」など) が含まれています - は https://svn.code.sf にあります。 net/p/pure-data/svn/trunk/externals/miXed/cyclone および移行されたリポジトリ: https://git.puredata.info/cgit/svn2git/libraries/miXed.git/。このリポジトリには、次の 3 つの異なるメンテナンス フェーズの作業が含まれています。
=> Fred Jan Kraan のリポジトリ (0.1-Alpha57 および 0.2-beta):
Fred Jan Kraan は元のリポジトリを https://github.com/electrickery/pd-miXedSon にフォークしましたが、含まれているのは Cyclone ライブラリのみです。このリポジトリにはいくつかのリリースがあります - https://github.com/electrickery/pd-miXedSon/releases を参照してください - 2015 年 10 月の Cyclone バージョン 0.1-alpha-57 から始まります。これは基本的に元のリポジトリで行われた最後の開発です。最終段階にあります。その後、新しい Cyclone 0.2 バージョンに移行しますが、2016 年 2 月にベータ段階で停止しました。
=> このリポジトリ (0.3-0 以降):
2016 年 2 月に、Porres は https://github.com/electrickery/pd-miXedSon から https://github.com/porres/pd-cyclone にあるこのリポジトリにフォークしました。フォークはサイクロンが 0.2 ベータ段階にあったときに発生しました。それ以来、Alexandre Porres、Derek Kwan、Matt Barber および他の協力者は、サイクロンのさらなる開発に取り組んできました。このリポジトリからの最初の安定リリースは、2019 年 2 月の cyclone 0.3-0 でした。バージョン 0.6-0 のリリース後の 2021 年後半、このリポジトリは、何千ものコミットが行われた後、GitHub 上の Kraan (electrickery) から切り離されました。コードベースを完全に再構築します。
=> 「nilwind」フォーク:
「nilwind」ライブラリは Cyclone のフォークであり、https://github.com/electrickery/pd-miXedSon が残された最後のステージのフォークとして開始されます。つまり、cyclone 0.2-beta の開発です。 nilwind のリポジトリは https://github.com/electrickery/pd-nilwind にあります。最初のリリースは、2019 年 11 月の「nilwind 0.2.1」です。サイクロンのこのフォークは、Max の新しいバージョンに応じた更新を追求することを目的としていません。その主な関心は、Pd-Extended で作成された古い/レガシー パッチとの互換性を維持することです。時代(サイクロン0.1を運んだ)。それにもかかわらず、現在の開発段階では重大な変更が導入されておらず、0.3 以降は安定したリリースのみが提供されているため、cyclone 0.3 以降のバージョンも Pd-Extended 時代と互換性があります。
このリポジトリは https://github.com/porres/pd-cyclone にあり、クローン化され Max/MSP オブジェクトと互換性のあるオブジェクトのコレクションを含む外部 Pd パッケージを作成するという Cyclone の本来の目的に忠実です。バグと問題は https://github.com/porres/pd-cyclone/issues に報告する必要があります。このリポジトリからのリリースは安定しており、多くの修正が提供され、以前のバージョンからの安定性が向上しています。
Max の新しいバージョンとの互換性が懸念されますが、Max 自体は下位互換性を保持しているため、Max の互換性は常に Cyclone の主な目標であり、実際には何も変わりませんでした。サイクロン 0.3-0 以降とライブラリのレガシー ステージ (Pd Extended で利用可能なサイクロン 0.1 フェーズ) との間で非互換性が発生することはありません。 Cyclone のこの開発段階では、Pd-Extended 時代に作成されたパッチとの互換性を提供することが考慮されているため、そのような問題が発生した場合はバグとして扱い、報告/修正する必要があります。
このリポジトリ/プロジェクトは、作業を希望する人なら誰でも共同作業に参加できます (Max/MSP 互換性という重要かつ中心的な目標を念頭に置きます)。ぜひご協力ください。
以前のメンテナである Lucas Cordiviola がコンパイルとクロスコンパイルの問題に取り組み、多くのリリースのバイナリを生成してくれたことに感謝します。 Diego Barrios Romero は、cyclone 内のすべてのオブジェクトを個別のバイナリではなく単一のバイナリとしてコンパイルする可能性に取り組みました。 Tim Schoen は、いくつかの問題 (いくつかのオブジェクトや、PlugData プロジェクトに Cyclone を含めるなど) を支援してくれました (https://github.com/timothyschoen/PlugData を参照)。