前橋工科大学 – 工学デザイン実習 IIIc 2025
ライブコーディングって何だろう? / Strudelでライブコーディングのはじめの一歩

本日の演習では、音楽とプログラミングが交差する「ライブコーディング」を体験的に学びます。前半は、コードをリアルタイムに書き換えながら音や映像を生成し、その過程を観客と共有する即興表現としてのライブコーディングを取り上げます。Algorave の実例や国内外アーティストの映像・テキストを参照し、歴史的展開、コミュニティ文化、舞台演出の特徴を多角的に解説します。後半はブラウザだけで動作する Strudel を起動し、パターン言語の基本文法、リズム生成、サンプル再生・選択を段階的に体験し、最終的に約 3 分のパフォーマンスを各自で構築して発表します。コードを「演奏可能な思考」として捉え、コードによる構造の構築と音のフィードバックの循環を体感しましょう。
スライド資料
参考映像
サンプルコード
/* -------------------------------
*
* Strudel (https://strudel.cc/)
* ライブコーディングのサンプルコード
* リズム編
* -------------------------------
*/
// 最初の音
$: s("cp")
// 別の音
$: s("bd")
// リズムの基本
$: s("bd hh sd oh")
// 沢山の音を演奏
$: s("bd bd hh bd rim bd hh bd")
// テンポを変化
$: s("bd bd hh bd rim bd hh bd").cpm(40)
// 休符
$: s("bd hh ~ rim")
// サブシーケンス
$: s("bd [hh hh] sd [hh bd]")
// かけ算 (スピードアップ)
$: s("bd hh*2 rim hh*3")
// サブシーケンスのかけ算
$: s("bd [hh rim]*2")
// 高速かけ算
$: s("bd hh*16 rim hh*8")
// パラレルに演奏
$: s("hh hh hh, bd cp")
// パラレルに演奏2
$: s("hh hh hh, bd bd, ~ cp")
// パラレルに演奏3
$: s("hh hh hh, bd [bd,cp]")
// ドラムセットを切り替える
$: s("bd hh sd oh").bank("tr909")
$: s("bd hh sd oh").bank("tr808")
// ポリリズム
$: s("rim*4, hh*5")
$: s("bd ~ rim ~, bd hh*2 hh ~ hh*2")
$: s("bd*5, rim hh hh ~ rim hh <hh*2 hh> ~")
// ポリミーター
$: s("{bd sd bd hh, bd rim cp hh hh}")
$: s("{lt*5, ht*4}")
// ユークリッドリズム
$: s("bd(3, 8), hh(9, 16)")
$: s("bd(3, 7), hh(9, 14, 5), cp(5, 7, 2)")
// 複数のシーケンスを同時に演奏
$: s("bd cp [~ bd] <hh*4 cp*2 [~ sd]*2>")
$: s("bd(4, 8), hh(5, 8, 1)")
.bank("RolandTR909")
$: s("supersaw(11, 16)")
.note("{c3 f3 g3 c2}%22, <c4 b4>".add("[0, 12]"))
アンケート
本日のアンケート
