डीप नोट जनरेट करने के लिए स्क्रिप्ट बनाएं


11

THX गहरी टिप्पणी ऑडियो / वीडियो उत्पादन प्रौद्योगिकी के क्षेत्र में सबसे पहचानने लगता है में से एक है। इसके निर्माता के अनुसार, अंतिम परिणाम उत्पन्न करने में C कोड की लगभग 20,000 लाइनें लगीं। हम उससे बेहतर कर सकते हैं।

आपका कार्य किसी भी भाषा में एक स्क्रिप्ट लिखना है जो ध्वनि उत्पन्न करेगा (एक फ़ाइल या सीधे हार्डवेयर के लिए) जो कि THX ध्वनि के ट्रेडमार्क विवरण को फिट करता है, जैसा कि यूएस पेटेंट और ट्रेडमार्क कार्यालय द्वारा प्रदान किया गया है :

THX लोगो थीम में सात उपायों पर 30 आवाजें शामिल हैं, जो एक संकीर्ण सीमा में शुरू होती हैं, 200 से 400 हर्ट्ज होती हैं, और धीरे-धीरे तीन सप्तक को घेरने वाली छद्म पिचों की ओर आकर्षित होती हैं। 30 आवाजें 200 हर्ट्ज और 400 हर्ट्ज के बीच पिचों पर शुरू होती हैं और चौथे उपाय द्वारा तीन सप्तक की फैली पूर्व-चयनित पिचों पर पहुंचती हैं। उच्चतम पिच को थोड़ा अलग किया जाता है, जबकि सबसे कम दो पिचों की आवाज़ों की संख्या दोगुनी होती है।

ध्यान दें कि "preselected पिचों" को वास्तविक THX गहरे नोट में पिचों के समान होना चाहिए, जो कि ई फ्लैट की कुंजी में हैं।

किसी भी भाषा में ऐसा करने वाला सबसे छोटा कोड जीतता है।


कृपया Import[youtube]उत्तर से बचें
डॉ। बेलिसरियस

"उत्पन्न" करने के लिए एक ध्वनि आम तौर पर पहले से उत्पन्न ध्वनि को दूसरी जगहों से आयात करने के लिए प्रेरित करेगी।
जो जे डे

3
युक्ति बहुत ढीली है। मेरा मानना ​​है कि मैं एक ऐसा कार्यक्रम लिख सकता हूं जिसमें 30 तरंगें (कोई भी) जो 250 हर्ट्ज से शुरू होती हैं, खेलते हैं कि एक दूसरे के लिए, तीन समूहों में विभाजित करें, 250, 500 और 1000 हर्ट्ज (तीन सप्तक), एक दूसरे के लिए खेलते हैं और अंत में खेलते हैं 1000 हर्ट्ज समूह को अलग करने के साथ। यह निर्दिष्ट करना कि यह "पहचानने योग्य" होना चाहिए, विजेता की निष्पक्षता को एक समस्या बना देगा। मुझे लगता है कि लोकप्रियता की प्रतियोगिता के रूप में यह बेहतर होगा।
शियोना

मैं अब बहुत सोच रहा हूं, जिसका मतलब है कि मैं इस समस्या का दूसरा संस्करण पोस्ट करूंगा जो इसके बजाय एक लोकप्रियता प्रतियोगिता है। (ढीले चश्मे को कुछ दिलचस्प लघु समाधानों के लिए बनाना चाहिए, कम से कम।)
जो जेड।

2
वहाँ पहले से ही एक 140 चरित्र समाधान है।
MSalters 0

जवाबों:


2

सी, 323 बाइट्स

#include<math.h>
#define A y=-2*y*y*y+3*y*y
main(i,j,o,e){e=44100;write(1,"RIFF´9WAVEfmt      D¬  ±    data9",44);float r[30],x,y,k,v;for(i=0;i++<30;r[i]=.5-(9*i%7)/7.);for(i=0;i++<9*e;){x=2.*M_PI*i/(0.+e),k=y=1-i/(8.*e),v=0,A,A,A,y=y>1?1:y;for(j=0;j++<30;o=j%6,v+=(7-o)*.1*sin(x*(20<<o)*(1+y*r[j])));write(1,&v,4);}}

(अन्य लोगों के बीच, NUL वर्णों को टेक्स्टबॉक्स में चिपकाया नहीं जा सकता; आप यहां मूल फ़ाइल को देख या डाउनलोड कर सकते हैं )

उपयोग:

gcc deep-note.c -o deep-note
./deep-note > deep-note.wav

उत्पन्न ध्वनि का पूर्वावलोकन सुनने के लिए यहां क्लिक करें!


अच्छी कोशिश, लेकिन यह मूल से बहुत सरल लग रहा है
qwr

2
मैं वास्तव में करता हूं; मूल प्रश्न में संदर्भित प्रश्न की 20000 पंक्तियों द्वारा नियंत्रित 30 ऑसिलेटर का उपयोग करता है। इस न्यूनतम स्रोत कोड में 400 से कम बाइट्स हैं ... आप क्या प्रदान करते हैं?
मैथ्यू रोडिक

1
यह एक दीप नोट की तरह लगता है कि 1 kHz पर नमूना 200 एन्कोडिंग एमपी 3 एन्कोडिंग से गुजरा।
जो जेड।

फिर भी, इस प्रश्न का उत्तर देने के प्रयास के लिए +1।
जो जेड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.