--- date: 2025-01-15 15:28 --- #programming-language #computermusic Strongly-Timedというコンセプトの音楽プログラミング言語。[[Ge Wang]]が主に開発。 [ChucK =\> A Strongly-Timed Music Programming Language](https://chuck.stanford.edu/) C言語っぽいシンタックスでサンプル単位での正確なスケジューリングができるのが特徴。 命令型+クラスを作ったりのオブジェクト指向(継承もあり)。`=>`でUGenの接続を表したり、代入したりと複数の機能を持つChucK演算子が存在するのがユニーク。 `now`に対してChucK演算子で`1::second => now;`みたいな命令をすることが、1秒スリープするという動作に相当する、独特の時間操作を持つ。 shredという論理時間ベースの計量スレッドみたいなものを言語内からスポーン、もしくはコマンドから立ち上げることができる。1つのファイルをスレッド単位で立ち上げたり殺したりをリアルタイムで切り替えることで、[[ライブコーディング]]を実現している(ただし更新のタイミングでディレイやリバーブのテールは切れる)。 最近も活発に更新が進んでいて、モジュール機能などが導入された。 もともとはオーディオビジュアル的なライブコーディング環境Audicleというのがあり、それを簡略化した[[miniAudicle]]というのがメインのIDEとして使われている。 最近は[[Emscripten]]でWeb経由でも動くようになってきた。 [WebChucK IDE](https://chuck.stanford.edu/ide/) また、Chugin(チャグイン)というC++で書かれたネイティブな拡張を読み込むこともでき、[[Faust]]や[[TouchDesigner]]、[[Unity]]のような他の環境との連携も多く実現しているほか、AI系などのプラグインも開発されている。 Chugenという独自[[Unit Generator|UGen]]をChucK言語上で定義するための機能もある([[Csound]]におけるUser-Defined OpCode)。 パッケージマネージャが2025年ぐらいになって導入された。