संगीत रचना के टूल के रूप में Ruby: Sonic Pi
(bhmt.dev)-
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 doblock का उपयोग करके code को समानांतर चलाया जाता है
-
समानांतर निष्पादन
in_thread doblock का उपयोग करके दो "वाद्ययंत्रों" को समानांतर चलाया जा सकता है- उदाहरण के लिए, एक 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 टिप्पणियां
Hacker News राय