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

- 2025年3月26日 (水)
- tsukurun放課後塾
プログラミングで演奏する!?
プログラミングを体験しながらまるで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")