Booklog - 演奏するプログラミング、ライブコーディングの思想と実践

数年本棚に鎮座されてたので読む。 F# で次何やるか考えるとき参考になるかな。 ライブコーディングは即興プログラミングによるパフォーミングアート。 個人的にライブコーディングは楽器の演奏で、 OSS なんかは推敲を重ねるような執筆活動のようなイメージ。 インタープリタ言語を使うことで、コードの即時実行が可能。 compile が必要な場合も hot reload ができれば同じことができそうやな。 ライブコーディングはコードとプログラマとの緊密なフィードバックループが生まれる。 demo のやつはインテンショナルプログラミングみたいな話か。 今日の OSS のように、コードが公開されてても量が膨大で認知負荷的に black box というのもママあるので、自分が制御可能な範囲にコードを取り戻すみたいな感じの理解でいいかな。

2025-06-23, read count: 1, page: 1 ~ 15, pages read: 15

ライブコーディングが生まれるまで。古来音楽が即興演奏の流れを汲んでいる。 コンピュータ音楽は 1950 年代から始まったが、一般的なコンピュータでリアルタイム音響合成が可能になったのが 1990 年代、 laptop PC でのライブパフォーマンス Laptoronica (Laptop computer + Electronica) が生まれ、 laptop による演奏の観客に見えない構造的問題を解決する手段としてライブコーディングが生まれた。 2000 年の Slub に始まるライブコーディングの発展。 ライブコーディングのためのソフトウェアの等。 TOPLAP の GitHub repo "All things livecoding" に膨大なリストがまとめられている。 知らないことばかり。プログラミングが呼吸のように生活に溶け込んでくる。これは自分の方向性とも通じてていいな。 ライブコーディングには音響合成とグラフィクスの 2 要素があって、音響合成には SuperCollider がよく使われてるのか。

2025-06-24, read count: 1, page: 16 ~ 35, pages read: 20

Chapter 2 初級編 ライブコーディングにふれる Sonic Pi 。 Sonic Pi は Ruby を基にした教育用途の言語で平易で理解しやすい。利用環境毎に言語が違うのでそこそこに読んで概念を掴むつもり。 Synth と Sample がある。 Synth は音階を奏でる。音色毎に独自の parameter を持ち音色を調整できる。 Sample は音階がないが再生速度で音程を変化させられる。他にはエフェクトを掛けたり。ランダムに音程音色を変化させたり。 ランダムな条件分岐。 1/2 はコイントスというのか。コード演奏やスケールの指定。ルートを変数化した転調ができたり。やっぱ音楽理論が必要と。 live loop で途切れることなく演奏できる。 live loop は複数実行できて全部同期してる。 複数の live loop が同時並行して実行される概念は新鮮やな。記述は手続き的やけど live loop と全体は宣言的なんだ。

2025-06-25, read count: 1, page: 36 ~ 77, pages read: 42

Chapter 3 中級編 ライブコーディングをマスターする TidalCycles 。 インストール周りは古めなので調べながら見た。 TidalCycles は Haskell のライブラリ。要はライブコーディングの DSL か。 SuperCollider に SuperDirt 経由で OSC(Open Sound Control) 通信して音を鳴らす。 SuperDirt は Dirt Sampler の SuperCollider 実装らしい。 SuperCollider がサウンドエンジン。 GUI でサウンドエンジンを起動して SuperDirt を起動するってのがちょっとな。 CLI でできないのか。 ライブコーディングはエディタからやるみたい。 VS Code も使える様子。楽曲をコードで管理できていいな。 関わる software が多いし TidalCycles は package manager での install が推奨みたい。 ただ全部入りなのがちょっとなー。 今だと Pulsar(Atom の後継)が入るし自分でやるなら個々にやったほうがいい。 d1 ~ d0 までのコネクション(トラックのようなもの)がある。演奏のパターンは文字列の中に書く。 パターン文字列が 1 小節。 Haskell なので関数適用演算子が使えるし、 TidalCycles の独自の演算子もパターン構築に使えるっぽい。

2025-06-26, read count: 1, page: 78 ~ 98, pages read: 21