2009-07-24 14 views
5

मुझे स्वचालित संगीत बनाने में रूचि है। मैं एक ऐसे कार्यक्रम के बारे में सोच रहा था जिसने बड़ी संख्या में 1-बार arpeggios (= सादगी के लिए नोट्स की निश्चित लंबाई अनुक्रम) खिलाया है और जो कुछ भी सीखा है उसके आधार पर अपने स्वयं के अनुक्रम उत्पन्न करता है।एल्गोरिदम?

से शुरू करने के लिए, मुझे पता है कि मैं पत्र (digram? Trigram?) frequency analysis का उपयोग कर सकता हूं, केवल नोट पिच पर लागू होता है, और उसके बाद आवृत्ति संभावनाओं के आधार पर अपना अनुक्रम उत्पन्न करता है।

क्या आप अधिक उन्नत एल्गोरिदम हैं जिन्हें आप जानते हैं, शायद संगीत अनुक्रमों के लिए स्पष्ट रूप से सिखाया जाता है?

उत्तर

6

एल्गोरिदमिक संरचना पर विकिपीडिया लेख एक उत्कृष्ट प्राइमर है। यह एल्गोरिदमिक संगीत निर्माण, उल्लेखनीय संगीतकार, पुस्तक संदर्भ, और एल्गोरिदमिक रचना सॉफ़्टवेयर के लिए उपयोग किए जाने वाले कुछ मॉडलों का वर्णन करता है।

http://en.wikipedia.org/wiki/Algorithmic_composition

+0

विभिन्न फ्रैक्टल और सॉर्टिंग एल्गोरिदम संगीत को ध्वनि देते हैं। – Quickredfox

2

संगीत की मौजूदा लीड का सांख्यिकीय विश्लेषण - औसत - औसत है। कुछ भी दिलचस्प नहीं है क्योंकि यह आपके द्वारा विश्लेषण किए गए सभी सामान्य विशेषताओं को पुन: पेश करता है।

संगीत बहु-आयामी है। आप रुचि रखने वाले किसी भी या सभी आयामों का स्पष्ट रूप से विश्लेषण कर सकते हैं। पिच, टेम्पो, नोट्स का क्रम, हार्मोनिक प्रगति, वॉल्यूम चेंज, कुछ भी। सब कुछ।

संगीत सूक्ष्म और जटिल है इसलिए विश्लेषण करने के लिए हमेशा कुछ और होता है।

AFAIK (मेरा बेटा एक संगीतकार है) जो अधिक दिलचस्प है वह संगीत को उत्पन्न करने के लिए अपने अद्वितीय एल्गोरिदम का आविष्कार करना है जो उचित रूप से विशिष्ट है।

यहां मेरा बेटा निर्दिष्ट है। यह 48 संगीत घटनाओं का एक अनुक्रम उत्पन्न करता है जो टुकड़ा चारों ओर बनाया गया है।

#!/usr/bin/env python 
""" 
there are 8, 3-note sets. 
each one can occur on 3 different beats. 
each pitch of the 3 note set can be in one of 3 octaves and it can either be a harmonic or a fingered note. 
""" 
import random 

noteSetChoices = [ "C-E-G", "C-F-A", "C-E-A", "D-F-A", "D-F-B", "D-G-B", "E-G-B", "F-A-C" ] 
beatChoices= [ "1 - - -", "- 2 - -", "- - - 4" ] 
octaveChoices= [ 1, 2, 3 ] 
techniqueChoices= [ 'Fingered', 'Harmonic' ] 

for n in range(48): 
    note= random.choice(noteSetChoices) 
    beat= random.choice(beatChoices) 
    octave= random.choice(octaveChoices) 
    technique= random.choice(techniqueChoices) 
    print octave, note, technique, beat 
+0

बीयर पर संगीत कैसा है? मुझे पूरा यकीन है कि संगीत स्वतः उत्पन्न होता है। –

+0

मुम्मम, इसका मतलब है कि आप पहले से ही शैली के सिद्धांतों को जानते हैं, और आप उन्हें अन्य गीतों से निकालने नहीं देते हैं। – janesconference

+0

@janesconference: मैं वास्तव में squat नहीं जानता। मैं एक बास खिलाड़ी हूं, इसलिए मैं थोड़ा समझता हूं; मेरे बेटे के संगीतकार। –

4

एक संगीतकार अपने आप को और एक सॉफ्टवेयर इंजीनियरिंग प्रमुख होने के नाते, मैं htink मैं कुछ शांत प्रकाश यहाँ बहा कर सकते हैं: पी मैं कुछ बड़ा के आसपास आधारित बनाने पर अपने आप को और योजना विषय पर बहुत काम किया है भविष्य में यह

जब आप एक एल्गोरिदम लिखते हैं, तो आपका लक्ष्य समाधान के साथ आना है- उदाहरण के लिए, सॉर्टिंग समस्याओं में सॉर्ट की गई सूची है। एल्गोरिदमिक संगीत रचना में, समाधान (आमतौर पर) एक गीत, या सुन्दरता है जो आकर्षक है, संरचना है, आदि

समाधान (एचए) के साथ समस्या यह है कि यह केवल उद्देश्य नहीं है, लेकिन समाधान काफी खुला है। एक सॉर्टिंग एल्गोरिदम के साथ, आपके पास सूची को सॉर्ट करने का केवल एक ही तरीका है। संगीत रचना के साथ, आपके पास लाखों सुखदायक गाने/व्हाटवर्स आपका लक्ष्य है।

तो आपको एक निश्चित एल्गोरिदम की आवश्यकता होगी जो निश्चित समाधान खोजने के लिए अच्छा नहीं है, लेकिन वैकल्पिक समाधान। मेरा सुझाव एक अनुवांशिक एल्गोरिदम या समान है। जेनेटिक एल्गोरिदम बहुत अच्छे हैं क्योंकि वे विभिन्न इष्टतम समाधानों का एक पूल बना सकते हैं।

आपको भागों में संरचना को तोड़ना होगा- संगीत के लिए जीए, ताल के लिए जीए, संरचना के लिए जीए आदि। और अपनी आवश्यकताओं को पूरा करने के लिए अपने फिटनेस फ़ंक्शन को डिज़ाइन करें।

बेशक यह समस्या का केवल एक समाधान है; पहले सूचीबद्ध कई और विकिपीडिया लिंक एक महान शुरुआत है।

मैं बाहर की जाँच की सिफारिश: गेंजम: एक improvisational जाज आनुवंशिक एल्गोरिथम solos- http://www.it.rit.edu/~jab/GenJam.html

व्यापार करने के लिए तैयार किया गया है और यह किताब बहुत शिक्षाप्रद है: http://www.springer.com/computer/information+systems/book/978-1-84628-599-8

मुझे लगता है एक और मजेदार तरीके से तंत्रिका के साथ होगा नेटवर्क्स .... लेकिन उन्हें सेट करना शायद एक मुद्दा हो सकता है .... यह बहुत अधिक काम है।

फिर भी, अपने उपक्रमों में गुड लक: पी

+0

इसके अलावा, संगीत रचना और सद्भावना का अध्ययन करना फिटनेस कार्यों को डिजाइन करने में आपकी सहायता करने के लिए एक लंबा रास्ता तय करेगा: डी – RyanCacophony

0

यह वास्तव में मदद करता है अगर आप संगीत की परंपराओं को पता है, इसलिए किताबों और लेखों मनुष्य कैसे गीत की रचना करने को पढ़ाने के लिए लिखा पढ़ा। आपको महान विचार मिलेंगे।

अब कुछ पेडल बिंदु फेंको और तनाव बनाने के लिए। दो अलग-अलग उपकरणों के बीच कॉल-प्रतिक्रिया की पुरानी तकनीक का उपयोग करें।

1

हालांकि आम तौर पर एक बार की तुलना में लंबे अनुक्रमों पर काम करना है, मार्कोव चेनिंग अपने इनपुट के समान संगीत उत्पन्न करने का एक सरल, प्रभावी तरीका है। ऑडियो पीढ़ी के लिए आरटीसीएमिक्स का उपयोग कर पायथन में लिखे गए उदाहरण के लिए, मेरा कार्यान्वयन here देखें।

यह मेट्रोवेल चेनिंग अध्याय से मेटावेलवेल से नोट्स पर आधारित है, जो एल्गोरिदमिक संरचना पर एक उत्कृष्ट पाठ है।