yoppa.org


演奏するプログラミング 「ライブコーディング・ワークショップ」

Photo: @hiro_shirato

プログラミングで演奏する!?
プログラミングを体験しながらまるでDJのようにパフォーマンスするワークショップを開催します! ゲームを作るプログラミングとは、また違った面白さをぜひ体験してみてください。

スライド資料

リンク

サンプルコード

/* -------------------------------
 *
 * Strudel (https://strudel.cc/)
 * ライブコーディングのサンプルコード
 * 
 * -------------------------------
 */
 
/* 
 * 1. リズム編
 * ドラムのおとでリズムをつくる
 */

// さいしょのおと
$: 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("RolandTR909")

// ポリリズム
$: 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]"))

/*
 * 2. シンセサイザー編
 * 音程 (おんてい) のあるおと
 */
 
// おんていのあるおと
$: note("60").sound("piano")

// かずをかえる
$: note("61").sound("piano")

// おんていのシーケンス
$: note("48 55 59 60").sound("piano")

// もじによるおんていのシーケンス
$: note("c e g b").sound("piano")

// はんおんさげる(フラット)
$: note("db eb gb ab bb").sound("piano")

// はんおんあげる (シャープ)
$: note("cs ds fs gs as").sound("piano")

// オクターブのしてい
$: note("c2 e3 g4 b5").sound("piano")

// ふくすうのおんていをいっしょにえんそう
$: note("c2 g2, c4 f4 g4 b4").sound("piano")

// ねいろをかえる
$: note("c2 g2, c4 f4 g4 b4").sound("sine")

// ねいろのシーケンス
$: note("c2 g2, c4 f4 g4 b4").sound("piano sawtooth")

// ねいろをかさねる
$: note("c2 g2, c4 f4 g4 b4").sound("piano, sawtooth")

// ゆっくりえんそう
$: note("[c4 f4 g4 b4]/4").sound("piano")

// 1サイクルにいちどえんそう
$: note("<c4 f4 g4 b4>").sound("piano")

// 1シーケンスをサイクルごとに
$: note("<[c2 g2]*2 [c3 f3]*4 [c4 f4 g4 b4]*2 [c2]>")
    .sound("piano")

// こうごにえんそう
$: note("[c2 g2]*2 <c4 f4 g4 b4>").sound("piano")