quartz-research-note/content/SuperCollider.md

14 lines
1.2 KiB
Markdown
Raw Normal View History

---
2024-02-08 11:06:45 +00:00
date: "2024-02-06T02:00:06+0900"
---
#programming-language #software #tools
James McCartneyが開発、その後OSS化された音楽プログラミング言語。
[index | SuperCollider](https://supercollider.github.io/)
もともとMax上で動くPyriteというスクリプティング言語と、Synth-O-Maticというソフトウェアシンセサイザーがあって、それを合体させる形で作られた。
Smalltalkベースのシンタックスを持つオブジェクト指向言語で、演算子の優先順位がなく全てが左結合だったりと文法が独特。バージョン3からは言語インタプリタ部分(sclang)とシンセサイザー部分(scsynth)が別プロセスとして動いており、[[OSC]]フォーマットで通信して動いている。[[TidalCycles]]や[[Sonic Pi]]、[[FoxDot]]や[[Overtone]]などは、音声合成エンジンとしてscsynthを利用している。
言語はコンカレントGCが走っていたりとかなり複雑な内部実装。実装している中の人にBoostの開発者の中の人が混ざってたりするのでめっちゃ高度なことをやっている。その分Webに移植とかは今後もハードルが高そう。