Cyclone memperluas Data Murni dengan objek yang dikloning dari Max/MSP cycling74 dan memberikan tingkat kompatibilitas yang baik antara kedua lingkungan.
Proyek Data Murni (atau hanya "Pd") dapat ditemukan di: https://sourceforge.net/p/pure-data/pure-data/ci/master/tree/ atau di mirror githubnya https://github.com /data-murni/data-murni. Halaman unduhan resmi ada di sini: http://msp.ucsd.edu/software.html
Max ditemukan di: https://cycling74.com/
Hak Cipta © 2003-2024 - Krzysztof Czaja, Hans-Christoph Steiner, Fred Jan Kraan, Alexandre Porres, Derek Kwan, Matt Barber, dan lainnya.
Pekerjaan ini gratis. Anda dapat mendistribusikan ulang dan/atau memodifikasinya berdasarkan ketentuan Klausul BSD-3 (alias Lisensi BSD Revisi). Lihat License.txt https://github.com/porres/pd-cyclone/blob/cyclone0.4/LICENSE.txt dan https://opensource.org/licenses/BSD-3-Clause untuk detail selengkapnya.
Rilis Saat Ini: Cyclone 0.9-1 (rilis ini membutuhkan setidaknya Pd Vanilla 0.55-0)
Dirilis 20 Agustus 2024
Temukan rilis terbaru Cyclone di: https://github.com/porres/pd-cyclone/releases atau langsung melalui manajer eksternal Pd (Bantuan => Temukan Eksternal). Silakan laporkan bug di https://github.com/porres/pd-cyclone/issues.
Versi siklon yang sudah ketinggalan zaman (0,1) tersedia dalam distribusi Pd-extend yang telah lama ditinggalkan (yang tidak boleh digunakan oleh siapa pun sekarang di tahun 2020-an) serta di Pd-l2ork dan Purr Data - keduanya awalnya didasarkan pada Pd-Exended tetapi di-porting ke nw.js (versi 0.1 dari siklon di sini belum sepenuhnya di-porting ke nw.js pada saat penulisan ini). Jika Anda ingin Cyclone versi terbaru, gunakan Pd Vanilla atau PlugData.
Tahukah Anda tentang PlugData, Cyclone juga merupakan bagian dari PlugData oleh Timothy Schoen, yang merupakan fork dari Pd yang dimuat sebagai standalone atau VST dengan GUI yang diperbarui. Lihat: https://github.com/timothyschoen/PlugData
Penulis asli Cyclone (Krzysztof Czaja) meninggalkannya pada tahun 2005 pada versi 0.1-alpha55, ketika Cyclone kompatibel dengan MAX 4.0. Cyclone kemudian dimasukkan dan tersedia dalam Pd-extend, yang hanya memiliki pembaruan kecil di bawah pemeliharaan Hans-Christoph Steiner pada tahun 2013 (0,1-alpha56), tepat sebelum Pd-extend dan Cyclone (sebagai konsekuensinya) ditinggalkan sama sekali ( versi 0.1-alpha56 ini juga diwarisi oleh Pd-l2ork/Purr Data). Di bawah fase pemeliharaan baru oleh Fred Jan Kraan, versi beta 0.1-alpha57 dan Cyclone 0.2 dirilis, masih terkait erat dengan rilis '0.1-alpha' sebelumnya dan sebagian besar sesuai dengan Max 4.0!
Cyclone 0.3-0 merupakan perombakan besar-besaran pada Cyclone, dimana hampir semua objeknya diupdate ke versi terbaru Max 7 (Max 7.3.5). Banyak bug juga diperbaiki, dokumentasi ditulis ulang dari awal dan objek baru disertakan. Periksa file CHANGELOG.txt yang disediakan untuk mengetahui detail semua perubahan versi.
Saat ini, Cyclone masih belum mencapai kompatibilitas penuh dengan "Max 7.3.5". Beberapa fungsi yang bergantung pada "transportasi" atau "kamus" belum diterapkan dan sebenarnya tidak akan pernah diterapkan. Cyclone tidak banyak dikembangkan secara aktif akhir-akhir ini dan tujuan utamanya adalah memelihara perpustakaan, dan memperbaiki bug (karenanya hindari menyertakan hal-hal baru).
Pengelola utama Cyclone (Porres) saat ini lebih sibuk mengembangkan perpustakaan ELSE. Perhatikan bahwa perpustakaan ini memiliki alternatif untuk hampir semua objek siklon dan banyak objek di ELSE sebenarnya terinspirasi oleh objek MAX/MSP yang tidak dikloning di Cyclone. Omong-omong, ELSE juga merupakan bagian dari PlugData, oleh karena itu, dokumentasi Cyclone menunjukkan alternatif di ELSE.
Beberapa objek di Cyclone sekarang dipinjam dari ELSE, seperti [pink~] dan [comment] (yang ini berdasarkan [catatan] ELSE dan sebenarnya sudah tidak digunakan lagi). Objek-objek ini kompatibel ke belakang dan menawarkan lebih banyak hal daripada objek MAX asli, sehingga tidak sepenuhnya kompatibel.
Satu-satunya objek yang belum diperbarui ke MAX 7.3.5 adalah [mtr] dan ini ada di daftar Yang Harus Dilakukan. Cyclone mungkin masih menyertakan fungsionalitas baru pada objek yang sudah ada dari Max 8 (rilis saat ini) dan versi 9+ yang lebih baru di masa mendatang, namun kami tidak dapat menjanjikannya.
Kompatibilitas 'mc' sekarang dapat dilakukan, mulai Pd versi 0.54-0, yang mendukung koneksi multisaluran. Meskipun demikian, tidak ada rencana untuk membuat objek seperti itu untuk Cyclone dan mengejar kompatibilitas ini. Di sisi lain, pengguna saat ini dapat membuat abstraksi seperti "mc" mereka sendiri berdasarkan objek siklon dengan [klon]. Harap dicatat bahwa banyak objek ELSE memiliki dukungan multisaluran!
Anda dapat mengkompilasi Cyclone dari sumber yang disediakan dalam repositori ini untuk status terkini terkini atau mengunduh salah satu rilis terkompilasi yang lebih stabil dari https://github.com/porres/pd-cyclone/releases. Alternatif yang baik adalah dengan menggunakan pengelola unduhan eksternal milik Pd (alias plugin deken): cukup klik opsi "temukan eksternal" di bawah menu Bantuan dan cari "siklon".
Saat menginstal cyclone, pastikan folder Cyclone disertakan dalam folder yang dicari Pd, seperti ~/Documents/Pd/externals
- itulah yang disarankan Pd untuk Anda lakukan untuk beberapa versi sekarang.
Sekarang Anda dapat menginstal Cyclone dengan memuatnya di startup: buka "Preferences => Startup", lalu klik "New", ketik "cyclone" dan tekan OK. Saat berikutnya Anda me-restart Pd, biner perpustakaan Cyclone akan dimuat.
Biner perpustakaan ini memuat objek operator non alfanumerik (yaitu: !-
, !-~
, !/
, !/~
, !=~
, %~
, +=~
, <=~
, <~
, ==~
, >=~
dan >~
) tetapi juga menambahkan jalur Cyclone ke preferensi Pd, sehingga Anda dapat memuat objek lain dari Cyclone (yang merupakan biner dan abstraksi terpisah).
Namun perhatikan bahwa untuk benar-benar memaksakan prioritas pencarian jalur di patch Anda, Anda perlu menggunakan [declare -path cyclone].
Anda juga dapat menggunakan [deklarasikan -lib cyclone] dalam patch untuk memuat perpustakaan jika Anda tidak ingin Cyclone selalu dimuat saat Pd dimulai. Memuat biner Topan sebagai objek ([siklon]) juga memuat perpustakaan, lihat file bantuannya untuk lebih jelasnya.
Sejak "Cyclone 0.1-alpha57", paket Cyclone mengandalkan sistem build baru yang disebut "pd-lib-builder" oleh Katja Vetter (periksa proyeknya di: https://github.com/pure-data/pd-lib -pembangun).
PdLibBuilder mencoba menemukan direktori sumber Pd di beberapa lokasi umum, tetapi jika gagal, Anda harus menentukan sendiri jalurnya menggunakan variabel pdincludepath. Contoh:
make pdincludepath=~/pd-0.54-0/src/ (untuk Windows/MinGW tambahkan 'pdbinpath=~/pd-0.54-0/bin/)
Gunakan "objectsdir" untuk menetapkan jalur relatif untuk bangunan Anda, seperti:
buat instal objekdir=../cyclone-build
Kemudian pindahkan ke folder instalasi pilihan Anda untuk Pd.
Sekarang dimungkinkan untuk membuat Cyclone untuk Pd Vanilla atau libpd menggunakan CMake. CMake adalah sistem pembangunan sumber terbuka lintas platform. CMake digunakan untuk mengontrol proses kompilasi perangkat lunak menggunakan platform sederhana dan file konfigurasi independen compiler, serta menghasilkan makefile dan ruang kerja asli yang dapat digunakan di lingkungan compiler pilihan Anda. Hal ini memungkinkan kompilasi asli melalui Windows (Microsoft Visual Studio), Linux (GCC) dan macOS (XCode).
Ketergantungan:
Jika Anda menggunakan MinGW, Anda dapat menggunakan pthreadGC-3.dll yang disertakan dalam direktori maintenance/windows_dll
di repositori ini. Alternatifnya, Anda juga dapat mendownloadnya atau mengkompilasinya sendiri dari sumber di sini. Ini biasanya akan menghasilkan pthreadGC2.(dll/lib).
Jika Anda menggunakan Visual Studio, Anda perlu menyediakan perpustakaan pthreads
yang dikompilasi untuk Visual Studio dengan mengunduhnya atau mengkompilasinya sendiri. Lihat di sini. Berhati-hatilah saat mengunduh/mengkompilasi versi yang tepat untuk pengaturan Anda. Ini biasanya adalah pthreadVC2.(dll/lib)
.
Salah satu cara untuk mengonfigurasi CMake adalah dengan menggunakan GUI CMake. GUI akan mencantumkan variabel yang dapat disediakan untuk mengonfigurasi build. Variabel juga dapat ditentukan di antarmuka baris perintah (Lihat contoh di bawah).
Pada langkah ini Anda dapat memilih apakah Anda ingin membangun perpustakaan bersama dengan BUILD_SHARED_LIBS
dan jika Anda ingin membangun semua objek Cyclone menjadi satu perpustakaan dengan BUILD_SINGLE_LIBRARY
(lebih lanjut tentang ini di bawah).
Saat menggunakan Microsoft Visual Studio (MSVC), Anda akan diminta untuk menyediakan jalur ke perpustakaan pthreads
dan headernya menggunakan variabel CMAKE_THREAD_LIBS_INIT
dan PTHREADS_INCLUDE_DIR
.
Anda akan diminta untuk memberikan jalur ke sumber data murni dan perpustakaan data murni. Jika membangun Cylone untuk libpd, hal ini juga dapat dipenuhi dengan menyediakan jalur ke folder pure-data
di dalam sumber libpd dan menyediakan jalur ke perpustakaan libpd. Variabelnya adalah: PD_INCLUDE_DIR
dan PD_LIBRARY
.
Di macOS, Anda dapat menentukan target penerapan dan arsitektur yang berbeda dari sistem Anda saat ini menggunakan variabel CMAKE_OSX_DEPLOYMENT_TARGET
dan CMAKE_OSX_ARCHITECTURES
.
Anda dapat menentukan tanda kompilasi tambahan menggunakan variabel CMAKE_C_FLAGS
.
CMake sekarang dapat menghasilkan Makefiles, solusi MSVC, atau proyek XCode.
Setelah pembuatan, bergantung pada platform Anda, Anda dapat menavigasi ke direktori tempat CMake membuat file build dan kemudian:
make
Tentu saja Anda juga dapat menggunakan CMake sendiri untuk membangun siklon dengan menjalankan ini pada baris perintah:
cd
cmake --build .
Secara default, Cyclone akan membangun sebagian besar objeknya sebagai file biner tunggal ( .so
/ .dll
/ .dylib
/ .pd_darwin
). Pengecualiannya adalah objek/biner "siklon" yang memuat objek operator non alfanumerik (yaitu: !-
, !-~
, !/
, !/~
, !=~
, %~
, +=~
, <=~
, <~
, ==~
, >=~
dan >~
).
Jika mau, Anda juga dapat membangun semua objek Cyclone menjadi satu cyclone.so/dll/dylib/pd_darwin
dengan mengaktifkan opsi BUILD_SINGLE_LIBRARY
.
Masing-masing perpustakaan berisi metode
yang akan dipanggil oleh data murni saat memuat perpustakaan. Jika Anda memilih BUILD_SINGLE_LIBRARY
, CMake akan menghasilkan kode yang sesuai sehingga semua metode *_setup()
akan dipanggil di cyclone_setup()
utama.
Berikut adalah beberapa contoh cara mengunduh, mengkonfigurasi, dan membangun Cyclone terbaru pada baris perintah menggunakan CMake dan pure-data atau 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 .
Menggunakan libpd di 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 .
Kutipan dari Readme asli Cyclone (oleh penulis aslinya Krzysztof Czaja):
Penulis asli Cyclone, Krzysztof Czaja, mengerjakannya sebagai bagian dari perpustakaan campurannya dari tahun 2002 hingga 2005 dan kemudian meninggalkan semuanya. Secara paralel, miXed telah dimasukkan ke dalam Pd Extended dan akhirnya berada di bawah pemeliharaan Hans-Christoph Steiner - pengembang dan pengelola utama Pd-Exended. Ketika Pd Extended ditinggalkan setelah rilis terakhirnya (mulai Jan 2013), akibatnya Cyclone dan miXed tidak dikelola. Pada bulan Desember 2014, Fred Jan Kraan mengambil alih pemeliharaan dan pengembangan untuk cyclone (tetapi bukan perpustakaan campuran lainnya) dan merilis versi 0,1-alpha57 dan Cyclone 0,2 beta, tetapi memutuskan untuk meninggalkan pengembangannya pada bulan Februari 2016.
Sejak 21 Februari 2016, pengembangan lebih lanjut untuk Cyclone dimulai pada repositori ini oleh Alexandre Porres, Derek Kwan, Matt Barber dan kolaborator lainnya. Rilisan stabil pertama adalah Cyclone 0.3-0 mulai Februari 2019!
=> Repositori Asli (hingga versi 0.1-Alpha-56): Repositori asli MiXed sebagai bagian dari Pd Extended - berisi Cyclone dan lainnya (seperti 'toxy') - berada di https://svn.code.sf. net/p/pure-data/svn/trunk/externals/miXed/cyclone dan repositori yang dimigrasi: https://git.puredata.info/cgit/svn2git/libraries/miXed.git/. Repositori ini mencakup pekerjaan dari tiga fase pemeliharaan yang berbeda:
=> Repositori Fred Jan Kraan (0,1-Alpha57 dan 0,2-beta):
Fred Jan Kraan mem-fork repositori asli ke https://github.com/electrickery/pd-miXedSon, tetapi hanya berisi perpustakaan Cyclone. Repositori ini memiliki beberapa rilis - lihat https://github.com/electrickery/pd-miXedSon/releases - dimulai dengan Cyclone versi 0.1-alpha-57, mulai Oktober 2015, yang pada dasarnya merupakan pengembangan terakhir yang dilakukan pada repositori asli dalam fase terakhirnya. Kemudian beralih ke versi baru Cyclone 0.2 yang berhenti pada tahap beta pada bulan Februari 2016.
=> Repositori ini (0.3-0 dan seterusnya):
Pada bulan Februari 2016, Porres melakukan fork dari https://github.com/electrickery/pd-miXedSon ke repositori ini yang berada di: https://github.com/porres/pd-cyclone. Percabangan terjadi saat siklon berada pada tahap 0,2 beta. Sejak itu, Alexandre Porres, Derek Kwan, Matt Barber dan kolaborator lainnya telah mengerjakan pengembangan lebih lanjut dari topan. Rilis stabil pertama dari repositori ini adalah siklon 0.3-0 dari Februari 2019. Pada akhir tahun 2021, setelah rilis versi 0.6-0, repositori ini terlepas dari (listrik) Kraan di sini di GitHub, setelah ribuan komitmen sebelumnya dan dengan restrukturisasi sepenuhnya basis kode.
=> Garpu 'nilwind':
Pustaka 'nilwind' adalah cabang dari Topan dan dimulai sebagai cabang dari tahap terakhir https://github.com/electrickery/pd-miXedSon ditinggalkan, artinya ini adalah pengembangan dari siklon 0.2-beta. Repositori nilwind ada di https://github.com/electrickery/pd-nilwind. Rilis pertamanya adalah 'nilwind 0.2.1', mulai November 2019. Fork of cyclone ini tidak bertujuan untuk mengejar pembaruan menurut versi Max yang lebih baru dan perhatian utamanya adalah menjaga kompatibilitas dengan patch lama/lama yang dibuat di Pd-Diperpanjang era (yang membawa siklon 0,1). Meskipun demikian, versi siklon 0.3 dan seterusnya juga kompatibel dengan era Pd-Exended, karena fase pengembangan saat ini tidak memperkenalkan perubahan besar dan hanya menawarkan rilis stabil sejak 0.3!
Repositori ini berada di https://github.com/porres/pd-cyclone dan sesuai dengan tujuan awal Cyclone dalam membuat paket Pd eksternal dengan kumpulan objek yang dikloning dan kompatibel dengan objek Max/MSP. Bug dan masalah harus dilaporkan ke https://github.com/porres/pd-cyclone/issues. Rilis dari repositori ini stabil dan menawarkan banyak perbaikan serta meningkatkan stabilitas dari versi sebelumnya.
Kompatibilitas dengan versi Max yang lebih baru menjadi perhatian, tetapi kompatibilitas Max selalu menjadi tujuan utama siklon dan tidak ada yang benar-benar berubah, karena Max sendiri menjaga kompatibilitas ke belakang. Tidak ada ketidakcocokan yang muncul antara siklon 0,3-0 dan seterusnya dengan tahap warisan perpustakaan (fase siklon 0,1 yang tersedia di Pd Extended). Karena tahap pengembangan Cyclone ini bertujuan untuk menyediakan kompatibilitas untuk patch yang dibuat di era Pd-Extracted, jika masalah tersebut muncul, maka masalah tersebut harus dianggap sebagai bug dan dilaporkan/diperbaiki.
Repositori/proyek ini terbuka untuk kolaborasi bagi siapa saja yang ingin bekerja (ingatlah kunci dan tujuan utama kompatibilitas Max/MSP). Jangan ragu untuk berkolaborasi.
Terima kasih kepada pengelola sebelumnya, Lucas Cordiviola yang telah menangani masalah kompilasi dan kompilasi silang serta menghasilkan binari untuk banyak rilis. Diego Barrios Romero mengerjakan kemungkinan mengkompilasi semua objek dalam siklon sebagai biner tunggal, bukan biner terpisah. Tim Schoen atas bantuannya dalam beberapa masalah, termasuk beberapa objek dan menyertakan Cyclone dalam proyek PlugData miliknya (lihat: https://github.com/timothyschoen/PlugData)