2 ポイント 投稿者 GN⁺ 2025-10-15 | 1件のコメント | WhatsAppで共有
  • Strudel REPLは、Webブラウザで動作するオープンソースかつ無料の音楽ライブコーディング環境
  • 別途ソフトウェアをインストールすることなく、ブラウザだけでリアルタイムの音楽生成と修正が可能
  • 基本的にREPL(Read–Eval–Print Loop)方式で、ユーザーがコードを入力すると即座にサウンドパターンが再生される
  • 主な特徴

    • ユーザーは"s(\"[bd ]*2\").bank(\"tr909\").dec(.4)"のようなコードコマンドを通じて、パターンシーケンシング、楽器選択、サウンド調整を簡単に行える
    • さまざまなドラムサンプラー(bank)、**ディケイ(decay)**設定など、細かな音楽的操作が可能
    • リアルタイムでのコード修正と結果の試聴が即座に行われるため、即時フィードバックが強み
  • アクセシビリティと活用性

    • DAW(デジタル・オーディオ・ワークステーション)や複雑な音楽ソフトウェアがなくても、シンプルなコードで音楽制作や実験に挑戦できる
    • 音楽やプログラミングの初心者でも参入障壁が低く、楽しさと創造的な体験を得られる
    • オープンソースおよびコミュニティ支援により、今後の拡張性やコラボレーションの可能性もある
  • 比較と利点

    • 既存のライブコーディングプラットフォーム(TidalCycles、Sonic Piなど)よりもWeb環境ベースで、アクセシビリティと利便性が高い
    • 別途インストールや設定の過程なしに、誰でもすぐに音楽ライブコーディング体験を始められる

1件のコメント

 
GN⁺ 2025-10-15
Hacker Newsの意見
  • StrudelのライブコーディングセッションはYouTubeに本当に素晴らしいものがたくさんある。例としてはこの動画がおすすめ
    • Switch Angelの動画が特に印象的で、この人のInstagramチュートリアルも参考になる
    • 私が本当に好きな動画の1つは、ボイスフィルターのおかげでナレーションが曲の一部のように感じられたこの動画で、特に面白かった
    • 誰かがこの動画のオーディオ(ボーカル含む)をリミックスしたらとても面白そう
    • 同じリンクが2回貼られているように見える。もともと意図していた2つ目のリンクが何だったのか気になるし、それも見てみたい
  • StrudelはTidalCycles(Haskell)のJavaScriptポート。TCがSuperColliderをシンセとして使うのに対し、Strudelはsuperdoughという独自実装を使っているようだ。今SuperColliderのsclangを学んでいて、バージョンアップがあればHNで共有したい。この話題ではいつも掘り下げた議論がある。ただ、sclangは音楽界のPHPみたいなもので、もっと醜くて一貫性がない。それでも強力で面白い
    • SuperColliderフォーラムではwasmでSuperColliderをポーティングする議論がある(WebAssembly対応の投稿)。今後これが使えるようになるのか気になる
    • 私もTidalCyclesをいじりながら、Haskellの文法が好きなので使ってみたかったが、StrudelのUIがあまりにも滑らかなのでJS文法を受け入れた。おかげでsuperdoughというものを知ったが、今まで一度も見たことがなく興味が湧いた
    • 以前SuperColliderを使っていたときはOvertoneを使っていた。OvertoneはすべてをClosure APIで包んでいて、sclangの代わりにS式でサウンドを定義できる。Overtoneが最近もメンテされているかは完全には分からないが、まだ多少は活動があるようだ(公式サイト
    • 私の経験では、sclangはSmalltalkとRubyのハイブリッドのようだった。まさに「一貫性のなさ」そのもので、見慣れないのに妙に親しみもあるが、それでもPHPよりはずっとエレガントだと思う
  • Strudelが素晴らしい理由は、既存の音楽ツールが少し古く、NIH(not invented here)症候群にかかっているように感じられる一方で、実際に必要なのはJSで動くものだという点。前世代のツール(sonic piなど)が出た頃はこういうことが難しかったが、今はタイミングがちょうどいい。次の世代では、ビジュアライゼーションとコードが本当に双方向にやり取りするインターフェースが出てきてほしい。今のスライダーは本当に素晴らしい要素だと思うし、Bret Victorも誇らしく思うはず
  • flokというツールもあり、strudel replをhydraのビジュアルと組み合わせている。sclangなど他のアルゴレイヴ環境も提供され、すべてが同期される(CRDTsだと思われる)。友人たちとリモートでジャムするときにとても良い(flokリンク
  • 私はあまり音楽的才能がないが、こんなものを作ってみた
    $: arrange(
     [4, "<sh09_bd>(4,8)"],
     [4, "<sh09_bd>(4,8)"],
     [1, "<sh09_bd mfb512_sd>(6,6)"]
    ).s().fast(2).layer(x=>x.add("0,2")).gain(".4!2 .5").phaser(2).phasercenter("<4000 800 4000 4000>")
    
    $: s("gm_tinkle_bell").distort("<1 2 1 2:.5>").crush("<8 8 8 6 6 8 8>").chop(4)
    
    $: arrange(
     [2, "<c4 e4 g4>(3,8)"], 
     [1, "<f4 a4 c5>(3,8)"], 
     [1, "<c4 e4 g4>(3,8)"] 
    ).note().chop(4).fast(4).distort("<3:.5>").phaser(4).phasercenter("<800>").fm(4).fmdecay("<.05 .05 .1 .2>").fmsustain(.4)._scope()
    
    私もここで何が起きているのか半分も分かっていないが、本当に楽しかったし、おそらく自分がやったプロジェクトの中で一番気に入っている。そして、ページ内にすぐ参照できるドキュメントがあって、何でも試しながらすぐ結果を確認できたのが一番楽しかった
  • このエラーメッセージが出る
    Uncaught (in promise) ReferenceError: AudioContext is not defined
     ln https://strudel.cc/_astro/spectrum.Bf7jMx6O.js:1
     W https://strudel.cc/_astro/spectrum.Bf7jMx6O.js:1
     un https://strudel.cc/_astro/spectrum.Bf7jMx6O.js:1
     c https://strudel.cc/_astro/spectrum.Bf7jMx6O.js:1
    
    セキュリティ設定で何を変えればこれが動くのか気になる
  • 私の(Lil Data)リミックス版であるDJ_DaveのArrayを共有する(StrudelミックスYouTube動画
  • この紹介動画が気に入った(YouTubeリンク
  • Strudelはテキストベースなので、AIが音楽を自動生成するのが本当に簡単になる。音楽をstrudel記法で書き起こしてくれるStrudelエージェントが出るのを待っている
    • 私は自分の手で作曲するのが好きだが、AIがプロンプト入力だけでサウンドデザインまで(「XYZ曲のリードシンセに似ているけどもう少しブージーにして、ABCパラメータも個別に調整できるように」)やってくれるなら革命的だと思う
    • そのうちエージェントが音楽そのものを聴きながら、私たちが以前どう評価したかまで分析してくれるようになると思う
  • 最近YouTubeでStrudelのインターフェースを見たが、最初はコンソールのように見えるものの、スライダーのような要素もあって面白そうに感じた