Files
quartz-research-note/content/ChucK.md
松浦 知也 Matsuura Tomoya bd79a9b4e6
All checks were successful
Build / build (push) Successful in 10m17s
[obsidian] vault backup: 2025-08-21 12:54:51[
2025-08-21 12:54:51 +09:00

32 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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年ぐらいになって導入された。