3 पॉइंट द्वारा GN⁺ 2024-08-11 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Sonic Pi: Ruby को संगीत रचना के टूल के रूप में इस्तेमाल करना

  • पृष्ठभूमि

    • लेखक मूल रूप से संगीत का छात्र था
    • वेब डेवलपर के रूप में काम करते हुए वह तकनीकी काम में गहराई से जुड़ गया
    • कई तरह के वाद्ययंत्रों को संभालना कठिन होने के कारण उसने इलेक्ट्रॉनिक संगीत में हाथ आजमाया, लेकिन सफल नहीं हुआ
    • हाल ही में Sonic Pi के जरिए उसने फिर से संगीत और कोडिंग को जोड़ा
  • Sonic Pi परिचय

    • Sam Aaron द्वारा बनाया गया Sonic Pi एक software synthesizer है जिसे code से नियंत्रित किया जाता है
    • यह Ruby के विस्तारित domain-specific language (DSL) का उपयोग करके संगीत और audio concepts को मैप करता है
    • उदाहरण के लिए, :c4 जैसे symbols से नोट दिखाए जाते हैं, और chord(:d3, :maj7) जैसे chord generators का उपयोग होता है
  • प्रोजेक्ट का लक्ष्य

    • लक्ष्य केवल Sonic Pi का उपयोग करके एक demo की रचना करना था
    • MIDI या बाहरी samples का उपयोग किए बिना, पूरी तरह code से ही रचना की गई
  • बेसिक कोड उदाहरण

    • use_bpm 70 से BPM सेट किया जाता है, और use_synth :pulse से synthesizer सेट किया जाता है
    • play :c2, sleep 0.25 जैसे code से नोट बजाए जाते हैं और समयांतराल तय किया जाता है
    • play_pattern_timed [ :c3, :d3, :e3, :g3 ], 0.25 से pattern चलाया जाता है
  • कोड ऑप्टिमाइज़ेशन

    • दोहराए जाने वाले code को कम करने के लिए functions परिभाषित किए गए
    • def arpeggiate(root, is_minor = false) function से arpeggio pattern बनाया जाता है
    • in_thread do block का उपयोग करके code को समानांतर चलाया जाता है
  • समानांतर निष्पादन

    • in_thread do block का उपयोग करके दो "वाद्ययंत्रों" को समानांतर चलाया जा सकता है
    • उदाहरण के लिए, एक thread में arpeggio चलता है और दूसरे thread में melody चलती है
  • कोरल भाग का कार्यान्वयन

    • ring का उपयोग करके कई नोट्स को एक सूची में जोड़ा जाता है
    • play_pattern_timed [ring(:c5, :e5)], 4, sustain: 3.8 की तरह नोट बजाए जाते हैं और sustain समय सेट किया जाता है
    • def choral_rings(notes, sus) function परिभाषित करके choral pattern को सरल बनाया जाता है
  • लाइव लूप

    • live_loop का उपयोग करके अनंत बार दोहराया जाने वाला loop बनाया जाता है
    • live_loop :harp do की तरह loop परिभाषित कर उसके भीतर code लिखा जाता है
  • निष्कर्ष

    • प्रोग्रामिंग केवल विज्ञान नहीं, बल्कि कला भी है
    • code लिखना एक रचनात्मक क्रिया है और दूसरों से संवाद करने का एक तरीका भी
    • Sonic Pi के जरिए संगीत और कोडिंग को जोड़कर रचनात्मक काम किया जा सकता है

GN⁺ की संक्षिप्त प्रस्तुति

  • Sonic Pi ऐसा टूल है जिससे code के जरिए संगीत रचा जा सकता है, और यह Ruby के विस्तारित DSL का उपयोग करता है
  • इस प्रोजेक्ट का लक्ष्य केवल Sonic Pi का उपयोग करके एक demo तैयार करना था
  • प्रोग्रामिंग में विज्ञान के साथ-साथ कलात्मक पहलू भी है, और Sonic Pi इसे अच्छी तरह दिखाता है
  • संगीत और कोडिंग को जोड़कर रचनात्मक काम करने का यह एक अच्छा उदाहरण है
  • मिलते-जुलते फीचर वाले टूल्स में TidalCycles और SuperCollider शामिल हैं

1 टिप्पणियां

 
GN⁺ 2024-08-11
Hacker News राय
  • अगर आपकी रुचि live coding में है, तो Glicol आज़माने लायक है
  • TidalCycles भी सुझाने लायक है। Haskell और Ruby की DSL बनाने की क्षमता की प्रशंसा की गई है
  • Glicol का language design synthesizer-प्रेरित syntax, composition की गति, और sound design की सुविधा पर केंद्रित है
    • लक्ष्य ऐसा DSL डिज़ाइन करना है जो मौजूदा programming आदतों को दर्शाए, लेकिन किसी मौजूदा language से बंधा न हो
  • Ruby का syntax लगभग English जैसा है, इसलिए यह बहुत उपयोगी है
  • Sonic Pi के संस्थापक Sam Aaron का live performance कभी देखा था
    • हर बार code बदलने पर संगीत का विकसित होना प्रभावशाली था
  • एक Ruby developer के रूप में, इसे algorithmically generated music बनाने में इस्तेमाल किया जा सकता है, यह बात बहुत दिलचस्प लगती है
    • उदाहरण के लिए, noisy git repository events को algorithmic music में बदलने के लिए इसका उपयोग किया जा सकता है
  • एक musician के रूप में, MIDI keyboard या acoustic instrument को रिकॉर्ड और loop करना बेहतर UX है
    • Ruby DSL का उपयोग करके कुछ भी input किया जा सकता है, लेकिन piano keyboard की तुलना में UX अच्छा नहीं है
    • शायद इसे Logic के विकल्प के रूप में इस्तेमाल नहीं करूंगा
  • programming music के एक अलग approach के रूप में, Python के लिए scamp की सिफारिश की जाती है
    • लेखक ने YouTube पर कई वीडियो अपलोड किए हैं
  • कुछ साल पहले Sonic Pi का उपयोग करके THX Deep Note को recreate करने वाला एक YouTube वीडियो देखा था
    • शुरुआत में उसने यह नहीं बताया कि वह क्या करने वाला है, और धीरे-धीरे sound को adjust करते हुए आखिर में Deep Note बना देता है
    • अफसोस है कि वह वीडियो फिर से नहीं मिल रहा
  • हाल में Sonic Pi के बारे में सोचते हुए कुछ वीडियो देखे
    • कुछ साल पहले इसे थोड़ी देर के लिए इस्तेमाल किया था
  • HTML comments सही तरह से काम नहीं कर रहे। editor दो hyphen को एक em dash में बदल देता है
  • Sonic Pi live coder alsoknownasrox को शुभकामनाएं
  • यह सचमुच शानदार demo है
    • लेकिन Safari में site layout टूट जाता है