ChucK は、リアルタイムのサウンド合成と音楽作成のためのプログラミング言語です。これはオープンソースであり、macOS、Windows、Linux で無料で利用できます。 ChucK は、動的な制御レートとオンザフライでコードを追加および変更できる機能を備えた、正確で表現力豊かな独自の時間ベースの同時プログラミング モデル (これをストロングタイミング と呼びます) を提供します。さらに、ChucK は MIDI、OpenSoundControl、HID デバイス、およびマルチチャンネル オーディオをサポートします。楽しく簡単に学ぶことができ、作曲家、研究者、演奏家に、複雑なオーディオ合成/分析プログラムやリアルタイムのインタラクティブ音楽を構築および実験するための強力なプログラミング ツールを提供します。
ChucKへようこそ!
ChucK をダウンロードしてインストールするには、 ChucK の公式リリース ページにアクセスしてください。
ドキュメント、例、研究出版物、コミュニティ リソースなどの詳細については、 ChucK ホームページまたはそのプリンストン ミラーを参照してください。
brew install chuck
最新の ChucK をソースからビルドするには、GitHub からchuck
リポジトリを複製します。
git clone https://github.com/ccrma/chuck.git
chuck/src
ディレクトリに移動し、 make
実行します。
cd chuck/src
make mac
または、ユニバーサル バイナリ (インテル + Apple シリコン) を構築するには:
make mac-ub
これにより、 chuck/src
にchuck
実行可能ファイルが構築されます。
依存関係: gcc、g++、make、bison、flex、libsndfile、ALSA (linux-alsa ビルドの場合)、PulseAudio (linux-pulse ビルドの場合)、JACK (linux-jack ビルドの場合)
Debian または Ubuntu でchuckのビルド環境をセットアップするには:
sudo apt install build-essential bison flex libsndfile1-dev
libasound2-dev libpulse-dev libjack-jackd2-dev
他の Linux ディストリビューションの場合も、パッケージ インストール ツールとパッケージ名が若干異なる場合がありますが、セットアップは同様であるはずです。 (注: JACK または PulseAudio を必要としないセットアップでは、これらのパッケージのいずれかまたは両方を省略できます。Linux での MIDI サポートには ALSA が必要です。 )
chuck (サポートされているすべてのドライバー: ALSA、PulseAudio、JACK を使用) をビルドするには、 chuck/src
ディレクトリに移動し、 make
を実行します。
cd chuck/src
make linux-all
参考までに、 make linux-all
個々のドライバーを組み合わせた場合と同じ結果になります。
make linux-alsa linux-pulse linux-jack
ALSA、PulseAudio、または JACK のサブセットのchuck をビルドするには、目的のドライバーでmake
実行します。たとえば、ALSA と PulseAudio のみをビルドするには:
make linux-alsa linux-pulse
または、ALSA のみをビルドするには:
make linux-alsa
このプロセスでは、 chuck/src
にchuck
実行可能ファイルを構築する必要があります。
Visual Studio (2019 以降を推奨) を使用して chuck をビルドするには、 chucksrcvisual-studio
に移動し、 chuck.sln
開いてビルドします。
ChucK を WebAssembly (WASM) にコンパイルするには:
emsdk
ディレクトリから)。 source ./emsdk_env.sh
chuck/src/
ディレクトリに移動し、 make web
実行します。 cd chuck/src
make web
これによりchuck/src/host-web/webchuck/js
ディレクトリにwebchuck.wasm
とwebchuck.js
作成されます。 (WebChucK も参照)
ChucK チームが管理するソース リポジトリは次のとおりです。開発者募集中!
チャック|コア言語、仮想マシン、合成エンジン
チューギンプラグインでチャックを拡張!貢献を始めるのに最適な場所
ミニオーディクル|チャック用のIDE
ウェブチャック| Web ブラウザで実行されるチャック (デスクトップと携帯電話で動作します!)
ウェブチャックIDE |チャック用のブラウザベースのIDE
チュウニティ| UnityのChuck
チュンリアル|アンリアル エンジンの ChucK (新機能!)
シュグル| ChucK グラフィックス ライブラリ (新機能)
ChucKコア(コンパイラー、仮想マシン、合成エンジン) を他の C++ ソフトウェアホスト内のコンポーネント/ライブラリとして組み込むことができます。これは、ソフトウェア システムに ChucK 機能を追加したり、新しいプラグインを作成したりする場合に役立ちます。参考までに、前のセクションでリストしたさまざまなツールはすべて、コマンドライン、miniAudicle、Unity、Unreal Engine、WebAssembly を含む、このコア/ホスト モデルに ChucK を組み込んでいます。さらに、ChucK は、openFrameworks、iOS/Android アプリ、組み込みシステム、およびハイブリッド言語システムと統合されています。例: FaucK (FAUST + ChucK)、ChucKDesigner (ChucK in TouchDesigner)、chuck~ (ChucK in Pure Data)、chuck~ ( Max/MSP でチャックします)。
この統合がどのように行われるかを示すために、ChucK を任意の C++ ホストに統合する方法を示す一連の例を C++ で作成しました。これらの例の中で最も単純な example-1-minimal.cpp は、約 20 行のコードで C++ で最小限の ChucK ホストを作成します。後続の例では、リアルタイム オーディオの追加、ChucK グローバルを使用した C++/ChucK 通信、および C++ からの ChucK シュレッド制御をそれぞれ示します。これらのホストの例は、このリポジトリの src/host-examples/ フォルダーにあります。より高度な使用法については、前のセクションでリストした ChucK エコシステムのさまざまなツールをチェックしてください。これらのホスト サンプルの構築を開始するには:
cd src/host-examples
make
ホストやプラットフォーム固有のリアルタイム オーディオ I/O を使用せずに、ChucKコア(コンパイラー、仮想マシン、および合成エンジン)のみを構築することもできます。これは、すでにオーディオ I/O を備えている既存のホスト システムに ChucK コアを統合するための開始点として役立ちます。 ChucK コアを「バニラ」モードでビルドするには:
cd src/core
make vanilla
ChucK ソース コードは、MIT ライセンスと GNU General Public License 2.0 (またはそれ以降のバージョン) に基づいて二重ライセンスされています。この作品を使用する場合は、どちらのライセンスを選択しても構いません。
ChucK は、2000 年代初頭にプリンストン大学で Ge Wang と Perry R. Cook によって創設されました。コンピューターサイエンス学科のペリーからアドバイスを受けた学生。 ChucK の最初のバージョンは、2003 年に GPL ライセンスの下でリリースされました。長年にわたり、多くの研究者、教師、アーティストが ChucK の進化に貢献してきました。 Spencer Salazar は、2004 年に ChucK 用の GUI ベースの統合開発環境である miniAudicle を作成しました (この IDE は、ChucK のコマンド ライン バージョンに加えて、今日の ChucK の配布方法と使用方法の大部分を維持しています)。 2005 年に Dan Trueman と Perry Cook によって設立された Princeton Laptop Orchestra (PLOrk) は、楽器やサウンドのデザインだけでなく、教育にも ChucK を使用し始めました。 2006 年、Rebecca Fiebrink と Ge Wang は、ユニット ジェネレーターの分析に相当するユニット アナライザーを通じて表現される ChucK のオーディオ分析フレームワークを作成しました。 Ge 氏は 2007 年にスタンフォード大学 CCRMA の教員に加わり、ChucK の研究開発はプリンストン大学、スタンフォード大学などの開発者と分散して行われるようになりました。 Stanford Laptop Orchestra (SLOrk) は 2008 年に CCRMA で設立され、そこで ChucK は楽器の設計と教育のためのツールとして使われ続けました。同年、モバイル ミュージックのスタートアップ Smule が共同設立されました。同社は、初期のアプリ (Ocarina、Sonic Lighter、Zephyr、Leaf Trombone) のリアルタイム オーディオ エンジンとして iPhone 上の ChucK (コード名「ChiP」) を使用しました。ワールドステージ。一方、ChucK はスタンフォード大学、プリンストン大学、カリフォルニアアーツ大学など、コンピュータ ミュージックのカリキュラムに活路を見出し続けました。 2015 年に、Ajay Kapur、Perry Cook、Spencer Salazar、Ge Wang が執筆した書籍『 Programming for Musicians and Digital Artists: Creation music with ChucK』が出版されました。同じ頃、Kadenze は ChucK でオンライン コース「リアルタイム オーディオ プログラミング入門」を導入しました。 Romain Michon と Ge Wang は FAUST と ChucK を統合して FaucK を作成しました。 2017 年に、Jack Atherton は、Unity ゲーム開発フレームワーク内で ChucK をプログラムできる Chunity を作成しました。 2018年、Geはテクノロジーの形成における文化的認識の重要性についてのフォトコミック本『Artful Design: Technology in Search of the Sublime』でChucKについて書きました。 ChucK は Web ブラウザ (WebChucK) でネイティブに実行できるようになり、WebChucK IDE で直接プログラムできるようになりました。
ChucK については、出版された記事や書籍で広範囲に文書化されています (リストを参照)。概要については、以下をご覧ください。
コミック「ChucK: A Strongly-Timed Music Programming Language」 (Artful Design: Technology in Search of the Sublime)より抜粋
ワン、G.、PR、クック、S. サラザール。 2015.「ChucK: 強力なタイミングのコンピューター ミュージック言語」コンピューター ミュージック ジャーナル39:4。土井:10.1162/COMJ_a_00324
非ソース コード ドキュメント (論文、ロゴ、サウンドバイト、漫画) は chuck-media リポジトリに移行されました。
参加しませんか! ChucK コミュニティ Discord | ChucK-users メーリングリスト
ハッピーチャッキング!