2 पॉइंट द्वारा GN⁺ 2025-10-15 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Strudel REPL एक open source और मुफ़्त music live coding environment है, जो web browser में काम करता है
  • अलग software install किए बिना, सिर्फ़ browser में ही real-time music generation और modification संभव है
  • यह मूल रूप से REPL (Read–Eval–Print Loop) तरीके पर आधारित है, जहाँ user code input करते ही sound pattern तुरंत playback होने लगता है
  • मुख्य विशेषताएँ

    • user "s(\"[bd ]*2\").bank(\"tr909\").dec(.4)" जैसे code command के ज़रिए pattern sequencing, instrument selection, sound adjustment आसानी से कर सकते हैं
    • अलग-अलग drum sampler (bank), decay (decay) settings आदि के साथ बारीक संगीत नियंत्रण संभव है
    • real-time code modification और उसका result तुरंत सुन पाने की वजह से immediate feedback इसकी बड़ी ताकत है
  • accessibility और उपयोगिता

    • DAW (digital audio workstation) या जटिल music software के बिना भी सरल code से music creation और experimentation किया जा सकता है
    • music और programming beginners भी कम entry barrier के साथ मज़ेदार और creative experience ले सकते हैं
    • open source और community support के कारण आगे scalability और collaboration की संभावना भी है
  • तुलना और फायदे

    • मौजूदा live coding platforms (TidalCycles, Sonic Pi आदि) की तुलना में web-based environment होने से accessibility और convenience अधिक है
    • अलग installation/setup process के बिना कोई भी तुरंत music live coding experience शुरू कर सकता है

1 टिप्पणियां

 
GN⁺ 2025-10-15
Hacker News राय
  • Strudel के live coding sessions के बहुत शानदार YouTube वीडियो हैं, उदाहरण के तौर पर यह वीडियो सुझाता हूँ
    • Switch Angel का वीडियो खास तौर पर प्रभावशाली है, इनके Instagram tutorials भी देखने लायक हैं
    • मेरे सबसे पसंदीदा वीडियो में से एक यह वीडियो है, जिसमें voice filter की वजह से narration गाने के हिस्से जैसा लगता था, खास तौर पर बहुत मज़ेदार लगा
    • अगर कोई इस वीडियो के audio को, vocals समेत, remix करे तो बहुत मज़ा आएगा
    • लगता है वही लिंक दो बार जुड़ गया है, जानना चाहता हूँ कि असल में दूसरा लिंक कौन सा होना था, वह भी देखना चाहूँगा
  • Strudel, TidalCycles(Haskell) का JavaScript port है; TC जहाँ synth के लिए SuperCollider का इस्तेमाल करता है, वहीं Strudel शायद superdough नाम की अपनी implementation इस्तेमाल करता है। मैं इस समय SuperCollider sclang सीख रहा हूँ, और अगर कोई version upgrade आया तो HN पर साझा करना चाहूँगा। इस विषय पर हमेशा गहरी चर्चा होती है। लेकिन sclang संगीत जगत का PHP जैसा लगता है, बस और बदसूरत और कम consistent; फिर भी यह powerful और मज़ेदार है
    • SuperCollider forum में wasm के जरिए SuperCollider को port करने की चर्चा है(webassembly support पर पोस्ट), सोच रहा हूँ कि क्या आगे चलकर इसका उपयोग हो सकेगा
    • मैं भी TidalCycles के साथ थोड़ा खेल रहा था और Haskell syntax पसंद होने की वजह से उसे आज़माना चाहता था, लेकिन Strudel UI इतना smooth है कि मैंने JS syntax स्वीकार कर लिया। इसी की वजह से superdough के बारे में भी पता चला, जिसे मैंने पहले कभी नहीं देखा था, इसलिए जिज्ञासा हुई
    • पहले जब मैं SuperCollider इस्तेमाल करता था तो Overtone इस्तेमाल करता था; Overtone हर चीज़ को Closure API में लपेट देता है, इसलिए sclang की जगह s-expressions से sound define की जा सकती है। Overtone आजकल भी maintain हो रहा है या नहीं, यह पूरी तरह नहीं जानता, लेकिन लगता है थोड़ी activity अभी भी है(official site)
    • मेरे अनुभव में sclang, Smalltalk और Ruby का hybrid लगा; सचमुच "inconsistency" की मिसाल, अजनबी भी और अजीब तरह से परिचित भी, लेकिन फिर भी मुझे यह PHP से कहीं ज़्यादा elegant लगता है
  • Strudel के शानदार होने की वजह यह है कि मौजूदा music tools कुछ पुराने और NIH(not invented here) syndrome से ग्रस्त लगते हैं, जबकि असल ज़रूरत JS में चलने वाली चीज़ की है। पिछली पीढ़ी के tools (जैसे sonic pi) के समय यह मुश्किल था, लेकिन अब timing बिल्कुल सही है। उम्मीद है अगली पीढ़ी में ऐसा interface आए जहाँ visualization और code सचमुच दो-तरफ़ा संवाद करें। मौजूदा sliders मुझे बहुत शानदार तत्व लगते हैं; Bret Victor भी शायद इस पर गर्व करें
  • flok नाम का एक tool भी है, जो strudel repl को hydra के visuals के साथ जोड़ता है। इसमें sclang समेत दूसरे algorave environments भी मिलते हैं और सब कुछ sync रहता है(शायद CRDTs से), दोस्तों के साथ remote jam के लिए बहुत बढ़िया है(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()
    
    मुझे खुद भी यहाँ क्या हो रहा है उसका आधा समझ नहीं आता, लेकिन यह सच में बहुत मज़ेदार था, शायद अब तक किए गए मेरे projects में सबसे पसंदीदा। और सबसे मज़ेदार बात यह थी कि page के अंदर ही reference docs मौजूद थे, इसलिए कुछ भी आज़माकर तुरंत उसका नतीजा देख सकता था
  • यह error message आता है
    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
    
    सोच रहा हूँ कि इसे चलाने के लिए अपनी security settings में क्या बदलना होगा
  • मेरा(Lil Data) remix version, DJ_Dave का Array, साझा कर रहा हूँ(Strudel mix, YouTube वीडियो)
  • यह intro वीडियो पसंद आया(YouTube लिंक)
  • Strudel text-based है, इसलिए AI के लिए अपने-आप music generate करना बहुत आसान हो जाता है; मैं ऐसे Strudel agent का इंतज़ार कर रहा हूँ जो music को strudel notation में transcribe कर दे
    • मुझे अपने हाथ से compose करना पसंद है, लेकिन अगर AI सिर्फ prompt input से sound design तक संभाल ले ("XYZ गाने के lead synth जैसा, लेकिन थोड़ा और buzzy, और ABC parameters को अलग से tweak करने लायक"), तो वह क्रांतिकारी होगा
    • मुझे लगता है जल्द ही agent खुद music सुनकर यह भी analyze कर पाएँगे कि हमने पहले उसे कैसे evaluate किया था
  • हाल ही में YouTube पर Strudel interface देखा; पहली नज़र में यह console जैसा लगता है, लेकिन sliders जैसे elements भी हैं, इसलिए यह दिलचस्प लगा