yoppa.org


前橋工科大学 – 工学デザイン実習 IIIc 2025

ライブコーディングって何だろう? / Strudelでライブコーディングのはじめの一歩

Photo: @hiro_shirato

本日の演習では、音楽とプログラミングが交差する「ライブコーディング」を体験的に学びます。前半は、コードをリアルタイムに書き換えながら音や映像を生成し、その過程を観客と共有する即興表現としてのライブコーディングを取り上げます。Algorave の実例や国内外アーティストの映像・テキストを参照し、歴史的展開、コミュニティ文化、舞台演出の特徴を多角的に解説します。後半はブラウザだけで動作する Strudel を起動し、パターン言語の基本文法、リズム生成、サンプル再生・選択を段階的に体験し、最終的に約 3 分のパフォーマンスを各自で構築して発表します。コードを「演奏可能な思考」として捉え、コードによる構造の構築と音のフィードバックの循環を体感しましょう。

スライド資料

参考映像

Algorave Generation | Resident Advisor
16 Legendary Beats – A short history of the 808 Drum Patterns Explained
A short history of the 909 in 16 songs from TECHNO and HOUSE to POP | Drum Patterns Explained
Jeff Mills Exhibitionist 2 Mix 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]"))

アンケート

本日のアンケート