Strudelでリレーコーディング

1名無しサンプリング@48kHz
垢版 |
2025/09/23(火) 15:35:01.93ID:JQ+MZy/Y
このスレッドではコードを改変を続けていく事をするアクティビティーをします

https://strudel.cc/
2025/09/23(火) 16:18:53.18ID:SMOo+6+x
👍リバーヴとLPFにスライドスイッチ追加
マウスで操作できるようにしたよ

【strudel REPL】
https://strudel.cc/

setcpm(130/4)
$: sound("bd bd [bd*4] [bd*4]").gain(1.5) .bank("linnlm1")._pianoroll()._scope().room(slider(0.95, 0, 2, 0.05))
$: note("[f1 f2]*2 [c1 c2]*2 [d1 d2]*4@2 [g1 g2]*2 [c1 c2]*2 [d1 d2]*4@2").slow(4).gain(.8) .sound("gm_synth_bass_1").pianoroll({ labels: 1 })._scope().cutoff(slider(6550, 100, 8000,50))
3名無しサンプリング@48kHz
垢版 |
2025/09/23(火) 16:59:53.02ID:/oDECDsw
よくわからないが面白そう
2025/09/23(火) 17:28:56.61ID:S4UajpI+
// 関係ない部分はコメントの形にしておくと
// いいと思う
// 適当にメロディライン
setcpm(130/4)
$: sound("bd bd [bd*4] [bd*4]").gain(.4) .bank("9000").room(slider(0.95, 0, 2, 0.05))
$: note("[f1 f2]*2 [c1 c2]*2 [d1 d2]*4@2 [g1 g2]*2 [c1 c2]*2 [d1 d2]*4@2")
.slow(4).gain(.8) .sound("gm_electric_bass_pick")
$: note("c3 d3 f3 a3 a3 d3 d3 c3").gain(.8).sound("gm_epiano2")
5名無しサンプリング@48kHz
垢版 |
2025/09/23(火) 17:50:38.66ID:JQ+MZy/Y
// !をつかて更に短くしてみた
setcpm(130/4)
$: sound("bd bd [bd*4] [bd*4]").gain(.4) .bank("9000").room(slider(0.95, 0, 2, 0.05))
$: note("[f1 f2]!2 [c1 c2]!2 [d1 d2]!4 [g1 g2]!2 [c1 c2]!2 [d1 d2]!4").slow(4).gain(.8).sound("gm_electric_bass_pick")
$: note("c3 d3 f3 a3 a3 d3 d3 c3").gain(.8).sound("gm_epiano2")
2025/09/23(火) 21:36:52.81ID:SMOo+6+x
//EDMぽいの作ってみた
$: seq([
chord("F").voicing().s("piano").slow(0.25), // Aセクション
chord("G").voicing().s("piano").slow(0.25), // Bセクション
chord("Am").voicing().s("piano").slow(0.25), // Cセクション
chord("C").voicing().s("piano").slow(1), // Dセクション
]).cpm(50/4)._pianoroll()
2025/09/23(火) 21:43:04.74ID:/oDECDsw
コードも指定できるのかー、おもすれー
2025/09/23(火) 22:51:09.83ID:SMOo+6+x
// Panを使って左右に振ってみた!
setcpm(130/4)
$: sound("bd bd [bd*4] [bd*4]").gain(.4) .bank("9000").room(slider(0.95, 0, 2, 0.05))
$: note("[f1 f2]!2 [c1 c2]!2 [d1 d2]!4 [g1 g2]!2 [c1 c2]!2 [d1 d2]!4").slow(4).gain(.8).sound("gm_electric_bass_pick")
$: note("c3 d3 f3 a3 a3 d3 d3 c3").gain(.8).sound("gm_epiano2").pan("0 1")
2025/09/23(火) 23:57:04.89ID:SMOo+6+x
//偶然シンコペ曲できたw
const A = chord("C F G C").voicing().s("piano").slow(4)._pianoroll().room(0.25)
const B = note("c").s("piano").slow(1)
const C = note("f f").s("piano").slow(2)
const D = note("g g g").s("piano").slow(3)
const E = note("c c c c").s("piano").slow(4)
$: seq([A,B,C,D,E,A])._pianoroll()
2025/09/24(水) 10:12:11.06ID:aFz2Wzw6
urswilke.github.io/strudel/
こっちも公式サイトかな?
2025/09/24(水) 22:02:41.33ID:aUNeu+Pj
//残骸を置いておきますw
https://strudel.cc/#Y29uc3QgQSA9IGNob3JkKCJDIEYgRyBDIikudm9pY2luZygpLnMoInBpYW5vIikuc2xvdyg0KS5fcGlhbm9yb2xsKCkucm9vbSgwLjI1KQpjb25zdCBCID0gbm90ZSgiYyIpLnMoInBpYW5vIikuc2xvdygxKQpjb25zdCBDID0gbm90ZSgiZiBmIikucygicGlhbm8iKS5zbG93KDIpCmNvbnN0IEQgPSBub3RlKCJnIGcgZyIpLnMoInBpYW5vIikuc2xvdygzKQpjb25zdCBFID0gbm90ZSgiYyBjIGMgYyIpLnMoInBpYW5vIikuc2xvdyg0KQogICQ6IHNlcShbQSxCLEMsRCxFLEFdKS5fcGlhbm9yb2xsKCk%3D
2025/09/24(水) 22:29:01.15ID:vxg4K8O/
ピアノの残響がいい感じのドローンになってる
2025/09/24(水) 22:36:14.10ID:s4m3wH+A
webサービスの難点は導入の手間が無い代わりに
ネットワークの帯域の影響がモロな所だよなあ
14名無しサンプリング@48kHz
垢版 |
2025/09/25(木) 09:01:21.70ID:5KKBh+Pw
>>13
オフラインでも出来るってマニュアルに書いてある
2025/09/25(木) 15:05:14.74ID:afgtu9B/
コードが短いからjsonでローカル保存するも良し、5ch の掲示板にクラウド保存できるから気楽でいいよねー
2025/09/25(木) 15:45:35.29ID:afgtu9B/
//strudel repl の1行目にawait initHydra()
//つけるとhydra 召喚できるみたいだね
2025/09/26(金) 13:55:03.35ID:6bblaR7O
//Hydra召喚テスト
//カレイドスコープっぽいものを左回転させてみた
await initHydra()
osc(20,0.2,2)
.kaleid(5)
.rotate(2,-0.2)
. out(o0)
2025/09/26(金) 14:09:14.21ID:6bblaR7O
//コードの種類をピッチベンドサークルで
//表現してみた
chord(`<
C2 C5 C6 C7 C9 C11 C13 C69
Cadd9 Co Ch Csus C^ C- C^7
C-7 C7sus Ch7 Co7 C^9 C^13
C^7#11 C^9#11 C^7#5 C-6 C-69
C-^7 C-^9 C-9 C-add9 C-11
C-7b5 Ch9 C-b6 C-#5 C7b9
C7#9 C7#11 C7b5 C7#5 C9#11
C9b5 C9#5 C7b13 C7#9#5 C7#9b5
C7#9#11 C7b9#11 C7b9b5 C7b9#5
C7b9#9 C7b9b13 C7alt C13#11
C13b9 C13#9 C7b9sus C7susadd3
C9sus C13sus C7b13sus C Caug
CM Cm CM7 Cm7 CM9 CM13 CM7#11
CM9#11 CM7#5 Cm6 Cm69 Cm^7
C-M7 Cm^9 C-M9 Cm9 Cmadd9
Cm11 Cm7b5 Cmb6 Cm#5
>`).voicing().room(.5).piano()._pitchwheel()
2025/09/26(金) 18:25:27.43ID:6bblaR7O
//丁寧にダッキングを説明する人
// バスドラ
setcpm(120/4) // 50bpm 4/4拍子(全体に適用)
$: s("bd bd bd bd") //ドラムパターン
.bank("tr909") //ドラムマシン

// ダッキングを適用
$: note(" c3,f3,g3 ") // Cmajコード
 .slow(0.25) // 1拍
 .s("supersaw") // シンセ
.att(0.3) // ボリューム0から0.3秒で戻る
._pianoroll()
2025/09/26(金) 18:33:44.70ID:6bblaR7O
説明間違ってたw
訂正 // 120bpm 4/4拍子(全体に適用)
2025/09/26(金) 20:38:00.06ID:RT82HZcZ
hydraはビジュアルの方のWebサービスだね
2025/09/26(金) 21:00:57.05ID:6bblaR7O
ですね
あとoscの括弧内0.2になってますけど
おすすめは0.1〜0.3の範囲がおすすめだそうです 4:53くらいからその説明されてます

Antonio Roberts – Learn how to make visuals on Hydra Video Synth
https://www.youtube.com/watch?v=2eP0cKM8Jmg
2025/09/27(土) 16:54:15.71ID:J5YoC72j
ショートカット

Ctrl + Enter : Start/Update
Ctrl + . (ピリオド) : Stop
Ctrl + / : コメントOn/Off
24名無しサンプリング@48kHz
垢版 |
2025/09/28(日) 12:13:52.76ID:09wAdl6b
チートシート(早見表)こいつを片手に打ち込みしてみよう
https://www.scribd.com/document/659073261/strudel-cheatsheet

プリンタがない?コンビニプリントって手もあるよ
2025/09/28(日) 12:25:09.46ID:09wAdl6b
ダウンロードするのに課金が必要なサイトなのか
あんまりよくないな…
26名無しサンプリング@48kHz
垢版 |
2025/09/28(日) 12:37:05.99ID:xb3q5P18
俺には森林を守るという哲学があるからなぁ
2025/09/28(日) 12:40:20.97ID:TyrCc+Fn
>>24
これ便利ですね
2025/09/28(日) 12:51:34.54ID:09wAdl6b
よく見たら説明の英語が微妙だ
自力で翻訳を頑張るか
2025/09/28(日) 16:25:01.15ID:09wAdl6b
なるほどドイツ語なんだな
ストリューデルもドイツのお菓子なんだな
2025/09/28(日) 18:13:00.70ID:09wAdl6b
なんだここの内容だったのか
https://strudel.cc/de/workshop/recap/

AsciiDocで自分用にメモを作成中
2025/09/29(月) 01:31:35.88ID:FyMu43xz
//丁寧にシンコペーションを説明する人
// バスドラ
setcpm(120/4)// 120bpm 4/4拍子(全体に適用)
$: s("bd bd bd bd") //ドラムパターン
.bank("tr707") //ドラムマシン
.gain(0.4)
// コード進行
$: note("[C#3,a3,C#4,e4] [d3,a3,d4,f#4]~@1 [e3,b3,e4,g#4]~@1 [f#3,db4,e4,a4]~@2") // シンコペーション
.slow(2) // 8拍
.s("supersaw") // シンセ
//.att(0) // ボリューム0から0.03秒で戻る
.gain(0.4)
.pianoroll()
.room(slider(0.4, 0, 2, 0.05)) //リバーヴ
2025/09/29(月) 01:50:14.66ID:FyMu43xz
//丁寧にシンコペーションを説明する人(修正版)
// バスドラ
setcpm(120/4)// 120bpm 4/4拍子(全体に適用)
$: s("bd bd bd bd") //ドラムパターン
.bank("tr707") //ドラムマシン
.gain(0.4)
// コード進行
$: note("[C#3,a3,C#4,e4] [d3,a3,d4,f#4]~@0.5 [e3,b3,e4,g#4] [f#3,db4,e4,a4]~@0.5") // シンコペーション
.slow(2) // 8拍
.s("supersaw") // シンセ
//.att(0) // ボリューム0から0.03秒で戻る
.gain(0.4)
.pianoroll()
.room(slider(0, 0, 2, 0.05)) //リバーヴ
2025/09/29(月) 02:02:44.87ID:FyMu43xz
//丁寧にシンコペーションを説明する人(さらに修正版)
// バスドラ
setcpm(120/4)// 120bpm 4/4拍子(全体に適用)
$: s("bd bd bd bd") //ドラムパターン
.bank("tr707") //ドラムマシン
.gain(0.4)
// コード進行
$: note("[C#3,a3,C#4,e4] [d3,a3,d4,f#4]~@0.6 [e3,b3,e4,g#4] [f#3,db4,e4,a4]~@0.6") // シンコペーション
.slow(2) // 8拍
.s("supersaw") // シンセ
//.att(0) // ボリューム0から0.03秒で戻る
.gain(0.4)
.pianoroll()
.room(slider(0, 0, 2, 0.05)) //リバーヴ
2025/10/02(木) 00:03:28.03ID:7ae7BgOE
//丁寧にシンコペーションを説明する人(さらにさらに修正版)
// バスドラ
setcpm(120/4)// 120bpm 4/4拍子(全体に適用)
//$: sound("bd bd bd bd") //ドラムパターン
.bank("tr707") //ドラムマシン
.gain(0.4)
// コード進行
$: note("[C#3,a3,C#4,e4]*3 [d3,a3,d4,f#4]~@0.625 [e3,b3,e4,g#4]*3 [f#3,c#4,e4,a4]~@0.625") // シンコペーション
.slow(2) // 8拍
.s("piano") // シンセ
//.att(0) // ボリューム0から0.03秒で戻る
.gain(0.4)
._pianoroll()
.room(slider(1.25, 1.25, 2, 0.05)) //リバーヴ
//.delay(0.2)
2025/10/03(金) 13:29:28.92ID:TH5EeJir
音程はCDEFGABだけど長さの指定はどうするんだっけ?
2025/10/03(金) 22:12:29.29ID:t9/QyVEL
// サブシーケンスや@nで調整する感じなのか
// 一般的なMMLと勝手がかなり違うなあ
note("~ c@2 [c c c ~] d e c@2").sound("piano").pianoroll()
2025/10/04(土) 07:20:39.54ID:LVvEIQwk
きのう鯖落ちてて書き込めなかったけど
音符を
*で刻む
!で複製
@は伸ばす
@-は縮ませる
ていうのがわかりましたよ
2025/10/04(土) 07:35:07.23ID:LVvEIQwk
~ 休符で音符縮ませて
~@ で前方に移動
でした
2025/10/06(月) 16:17:08.65ID:scPHfrPG
ドキュメントのどこを見てもその記述が見つからなかったのだが
どこに書いてあるのだろう?
2025/10/06(月) 17:38:50.77ID:scPHfrPG
https://i.imgur.com/rHGQdqQ.png
https://i.imgur.com/ZqG7BHL.png

あとチートシートを自分なりのメモのつもりで作ってみたけど
概念的なの簡潔な言葉で訳すの難しい
2025/10/07(火) 17:40:15.19ID:Go/xsgbm
本家サイトにアクセスするとアドレスバー右側にinstallボタン表示されるね
uninstallも簡単でいいね
42名無しサンプリング@48kHz
垢版 |
2025/10/08(水) 11:14:31.89ID:6/9Vi3dW
// 規制が厳しくてなかなか書き込めない…
$: sound("bd sd bd*2 sd, hh*4").gain(.4).room(.3)._pianoroll()
$: n("0 0 1 3 ~ 4 2 1").scale("E:minor").sound("gm_electric_guitar_clean").room(.5).gain(.6)
$: note("C C2 C C2 E E2 D D2").scale("D:minor").sound("gm_electric_bass_pick").gain(.4)
43名無しサンプリング@48kHz
垢版 |
2025/10/08(水) 11:23:48.09ID:6/9Vi3dW
// 音色変えてみる
$: sound("bd sd bd*2 sd, hh*4").bank("rolandtr909").gain(.4).room(.3)._pianoroll()
$: n("0 0 1 3 ~ 4 2 1").scale("E:minor").sound("gm_electric_guitar_clean:2").room(.5).gain(.6)
$: note("C C2 C C2 E E2 D D2").scale("D:minor").sound("gm_electric_bass_pick:2").gain(.4)
2025/10/08(水) 21:23:08.01ID:ex/r0YWw
どこかで聴いたことのあるメロディですね
クラシック?
45名無しサンプリング@48kHz
垢版 |
2025/10/09(木) 10:08:05.42ID:KD8dd30g
自分もそんなに音楽に詳しいわけではないのでどこかで聴いた曲が
耳に残ってて無意識に出たのだと思います

でもstrudelは演奏技術のない人でも楽しめるからいいですよね
2025/10/09(木) 12:16:38.56ID:MOXuNJMq
DIYでサクッと作れるところが
気に入ってます
1画面で収まるし
バックアップもテキスト保存でOKだし
2025/10/09(木) 16:43:34.39ID:v+xU+oRO
最近音符をmidi番号で覚えようかなと思ってる
覚えてしまえばあと楽だから
C 60
A 69
覚えたw
2025/10/09(木) 16:55:47.76ID:v+xU+oRO
今日の学び
60,62,64,65,67,69,71,72
ドレミファソラシド
2025/11/14(金) 20:53:01.63ID:g/weTCeU
webassembly(言語はrust)で書かれたブラウザで動くlive coding環境

https://glicol.org/
2025/11/15(土) 09:01:59.11ID:LLEWO25f
https://www.youtube.com/playlist?list=PLT4REhRBWaOOrLQxCg5Uw97gEpN-woo1c
51名無しサンプリング@48kHz
垢版 |
2025/11/15(土) 09:21:34.58ID:LLEWO25f
pythonを使ってLive CodindしたいならFoxDot

https://foxdot681713046.wordpress.com/
52名無しサンプリング@48kHz
垢版 |
2025/11/16(日) 17:46:49.31ID:h5Bx+ZWM
グリコのコマンドライン版は別のリポジトリ

https://github.com/glicol/glicol-cli

他にもグリコのサウンドエンジンを応用したVSTプラグインとか色々やってる
模様
53名無しサンプリング@48kHz
垢版 |
2025/11/17(月) 20:22:02.61ID:8/3l7hak
ライブコーディングその他いろいろ

https://github.com/pjagielski/awesome-live-coding-music
https://en.wikipedia.org/wiki/List_of_audio_programming_languages
2025/11/18(火) 21:19:17.82ID:QOVPPRMP
グリコ面白そうですねー
中古DellノートPC入手したんで
遊んでみようと思います
55名無しサンプリング@48kHz
垢版 |
2025/11/18(火) 21:34:02.63ID:E6twDKoW
勝手にグリコって呼んでますが本当はグリコルです

グラフ指向ライブコーディング言語の略みたいです
2025/11/19(水) 16:00:28.49ID:YnG08ryh
Creative Live-Coding with Hydra
youtu.be/NX2BXWuVtRM?si=hUJco2nSKKkApjoe
57名無しサンプリング@48kHz
垢版 |
2025/11/20(木) 07:05:36.03ID:QtCbo6yP
webサービスのものはインストール無しで使えるのは
いいが先日のクラウドフレア大規模障害のように
ネットワークの状況次第で使えなくなるのが難点かな

あとトラフィックで遅延も若干ありそう
2025/11/21(金) 22:46:37.13ID:cnQRQJ/5
Strudelには直接関係ないけど
このスレはPC板に近いと思うのでカキコミます
3連休でAthron64 2.4Ghzの
動態保存に挑戦するつもり
たしかwin95はCPU2Ghz以上で動かないはずなので
諦めて98かme、2kあたりでやってみよかな
Doom3くらいまで動くはずGF6600GTかGF7600GTがあったはずなので
59名無しサンプリング@48kHz
垢版 |
2025/11/22(土) 10:47:16.28ID:UMeTFz8B
いや本当に関係ないな
レスを投稿する

16歳の水野カイトが封印の刀を見つけ、時間が裂けて黒い風と亡霊の侍が現れ、霊の時雨と契約して呪われた刀の継承者となる場面

ニューススポーツなんでも実況