เทคนิคการสร้างเพลงขั้นตอน [ปิด]


89

ฉันใช้ความคิดมากมายในการสร้างเนื้อหาขั้นตอนมาระยะหนึ่งแล้วและฉันไม่เคยเห็นการทดลองกับดนตรีขั้นตอนมากนัก เรามีเทคนิคที่ยอดเยี่ยมในการสร้างแบบจำลองภาพเคลื่อนไหวพื้นผิว แต่ดนตรียังคงเป็นลูปแบบคงที่หรือแบบเลเยอร์ (เช่น Spore)

ด้วยเหตุนี้ฉันจึงคิดหาเทคนิคการสร้างเพลงที่ดีที่สุดและฉันก็อยากรู้ว่าคนอื่นคิดอย่างไร แม้ว่าคุณจะไม่เคยพิจารณามาก่อนคุณคิดว่าอะไรจะได้ผลดี? โปรดใช้เทคนิคหนึ่งข้อต่อคำตอบและรวมตัวอย่างหากเป็นไปได้ เทคนิคนี้สามารถใช้ข้อมูลที่มีอยู่หรือสร้างเพลงทั้งหมดตั้งแต่ต้นบางทีอาจเป็นข้อมูลบางอย่าง (อารมณ์ความเร็วอะไรก็ได้)


19
ในที่สุดคำถามเกี่ยวกับเพลงเกี่ยวกับการเขียนโปรแกรม / การสร้าง / การสร้างเพลง! : D
Oddmund

คำตอบ:


28

เซลลูลาร์ออโต - อ่าน

นอกจากนี้คุณยังสามารถลองมันออกมาที่นี่

แก้ไข:

rakkarage ได้จัดหาแหล่งข้อมูลอื่น: http://www.ibm.com/developerworks/java/library/j-camusic/


1
Wolfram ฉลาดมาก! เยี่ยมมากที่ทำให้เรื่องแบบนี้เข้าถึงได้เช่นกัน ...
defmeta

ฉันไม่สามารถใช้งานได้กับกล่อง Ubuntu ของฉัน :(
Calmarius


ปัญหาคือมันติดอยู่ในระบบ 12 โทน อัลกอริธึมการสร้างเพลงที่แท้จริงจะเหนือกว่าเครื่องมือวัดปกติและมีการควบคุมโทนเสียงฮาร์มอนิกฟรี เปียโนได้รับการออกแบบด้วยระบบโทนเสียงเฉพาะซึ่งตกลงกันเป็นมาตรฐานในสมัยนั้น ถึงกระนั้นระบบ 12 โทนก็ยอดเยี่ยมในช่วงเวลานั้น
Timothy Swan

42

ระบบที่ประสบความสำเร็จที่สุดมักจะรวมเทคนิคต่างๆเข้าด้วยกัน ฉันสงสัยว่าคุณจะพบเทคนิคหนึ่งที่ใช้ได้ดีกับการสร้างเมโลดี้ความกลมกลืนจังหวะและเบสในเพลงทุกประเภท

ยกตัวอย่างเช่นMarkov chainsเหมาะอย่างยิ่งสำหรับการสร้างลำดับความไพเราะและฮาร์มอนิก วิธีนี้ต้องใช้การวิเคราะห์เพลงที่มีอยู่เพื่อสร้างความน่าจะเป็นในการเปลี่ยนสายโซ่ ความงามที่แท้จริงของโซ่ Markov คือรัฐสามารถเป็นอะไรก็ได้ที่คุณต้องการ

  • สำหรับการสร้างทำนองให้ลองใช้หมายเลขโน้ตที่สัมพันธ์กับคีย์ (เช่นถ้าคีย์เป็น C minor, C จะเป็น 0, D จะเป็น 1, D # จะเป็น 2 และอื่น ๆ )
  • สำหรับการสร้างความกลมกลืนให้ลองใช้การรวมกันของตัวเลขโน้ตที่สัมพันธ์กันสำหรับรูทของคอร์ดประเภทของคอร์ด (หลักรองลดทอนเพิ่ม ฯลฯ ) และการผกผันของคอร์ด (รูทแรกหรือวินาที)

โครงข่ายประสาทเทียมเหมาะอย่างยิ่งกับการทำนายอนุกรมเวลา (การคาดการณ์) ซึ่งหมายความว่าพวกมันเหมาะสมกับการ 'ทำนาย' ลำดับดนตรีเมื่อฝึกเทียบกับท่วงทำนอง / ฮาร์โมนียอดนิยมที่มีอยู่ ผลลัพธ์จะคล้ายกับแนวทางของ Markov chain ฉันไม่สามารถนึกถึงประโยชน์ใด ๆ จากวิธีการของ Markov chain ได้นอกจากการลดขนาดความจำ

นอกจากระดับเสียงแล้วคุณยังต้องใช้ระยะเวลาในการกำหนดจังหวะของโน้ตหรือคอร์ดที่สร้างขึ้น คุณสามารถเลือกที่จะรวมข้อมูลนี้เข้ากับสถานะของลูกโซ่ Markov หรือเอาต์พุตของเครือข่ายประสาทเทียมหรือคุณสามารถสร้างแยกต่างหากและรวมลำดับระยะห่างและระยะเวลาที่เป็นอิสระ

อัลกอริทึมทางพันธุกรรมสามารถใช้เพื่อพัฒนาส่วนจังหวะ แบบจำลองที่เรียบง่ายสามารถใช้โครโมโซมไบนารีซึ่ง 32 บิตแรกแสดงถึงรูปแบบของกลองเตะ 32 บิตที่สองเป็นบ่วง 32 บิตที่สามเป็นหมวก hi แบบปิดและอื่น ๆ ข้อเสียในกรณีนี้คือพวกเขาต้องการความคิดเห็นของมนุษย์อย่างต่อเนื่องเพื่อประเมินความเหมาะสมของรูปแบบที่พัฒนาขึ้นใหม่

ระบบผู้เชี่ยวชาญสามารถนำมาใช้ในการตรวจสอบลำดับที่สร้างขึ้นโดยใช้เทคนิคอื่น ๆ ฐานความรู้สำหรับระบบตรวจสอบความถูกต้องดังกล่าวอาจถูกยกมาจากหนังสือหรือเว็บไซต์ทฤษฎีดนตรีที่ดี ลองชี่อดัมส์musictheory.net


10

มีการวิจัยมากกว่า 50 ปีเกี่ยวกับเทคนิคเหล่านี้ซึ่งมักจะถูกมองข้ามไปโดยนักพัฒนาที่ไม่คุ้นเคยกับประวัติของดนตรีคอมพิวเตอร์และองค์ประกอบอัลกอริทึม สามารถดูตัวอย่างระบบและงานวิจัยมากมายที่แก้ไขปัญหาเหล่านี้ได้ที่นี่:

http://www.algorithmic.net


7

อัลกอริทึมที่ง่ายและได้ผลดีคือการใช้ 1 / f noise หรือที่เรียกว่า "pink noise" เพื่อเลือกระยะเวลาและโน้ตจากสเกล ฟังดูคล้ายกับดนตรีและอาจเป็นจุดเริ่มต้นที่ดี

อัลกอริทึมที่ดีกว่าคือการใช้ "markov chains" .. สแกนเพลงตัวอย่างและสร้างตารางความน่าจะเป็น ในกรณีที่ง่ายที่สุดก็จะเป็นเช่น C มีแนวโน้ม 20% ที่จะทำตาม A เพื่อให้ดีขึ้นให้ดูลำดับของบันทึกย่อที่ผ่านมาเช่น "CA B" มีแนวโน้มที่จะตามด้วย B 15% และ 4% มีแนวโน้มที่จะตามด้วย Bb เป็นต้นจากนั้นเลือกบันทึกโดยใช้ความน่าจะเป็นของบันทึกที่เลือกไว้ก่อนหน้านี้ อัลกอริทึมที่เรียบง่ายอย่างน่าทึ่งนี้สร้างผลลัพธ์ที่ดีทีเดียว

Markov เชื่อมโยงกับการสร้างเพลง



4

ซอฟต์แวร์ของฉันใช้ทฤษฎีวิวัฒนาการประยุกต์เพื่อ "ขยาย" เพลง กระบวนการนี้คล้ายกับโปรแกรมThe Blind Watchmaker ของ Richard Dawkins - MusiGenesis เพิ่มองค์ประกอบดนตรีแบบสุ่มจากนั้นผู้ใช้จะตัดสินใจว่าจะเก็บองค์ประกอบที่เพิ่มไว้หรือไม่ แนวคิดคือเพียงแค่รักษาสิ่งที่คุณชอบและทิ้งสิ่งที่ไม่ถูกต้องและคุณไม่จำเป็นต้องมีการฝึกดนตรีใด ๆ เพื่อใช้มัน

อินเทอร์เฟซพัด แต่เก่า - ฟ้องฉัน


4

ฉันชอบเกม Lucasarts แบบเก่าที่ใช้ระบบ iMuse มาโดยตลอดซึ่งสร้างซาวด์แทร็กที่ตอบสนองต่อเกมได้ไม่สิ้นสุดและเป็นดนตรีมาก (เพราะส่วนใหญ่ยังคงสร้างโดยนักแต่งเพลง) คุณสามารถค้นหาข้อมูลจำเพาะ (รวมถึงสิทธิบัตร) ได้ที่นี่: http://en.wikipedia.org/wiki/IMUSE

ดูเหมือนว่า Nintendo จะเป็น บริษัท เดียวที่ยังคงใช้วิธีการคล้ายกับ iMuse เพื่อสร้างหรือมีอิทธิพลต่อเพลงได้ทันที

เว้นแต่โครงการของคุณจะทดลองมากฉันจะไม่ละทิ้งการใช้นักแต่งเพลง - นักแต่งเพลงที่เป็นมนุษย์จริงๆจะให้ผลลัพธ์ทางดนตรีและน่าฟังมากกว่าอัลกอรีทึม

เปรียบเทียบกับการเขียนบทกวี: คุณสามารถสร้างบทกวีที่ไม่มีเนื้อหาซึ่งฟังดูเปรี้ยวจี๊ดมาก แต่การทำซ้ำเชกสเปียร์ด้วยอัลกอรีทึมนั้นเป็นเรื่องยากที่จะพูดอย่างอ่อนโยน


จริงมาก แต่ฉันคิดว่าผู้ใช้น่าจะสนใจเพลง "โอเค" หรือ "เหมาะสม" ที่ตอบสนองต่อการเล่นเกมมากกว่าเพลง "ยอดเยี่ยม" 5 เพลงซ้ำแล้วซ้ำเล่า ...
RCIX

@RCIX: คุณเคยเล่นเกมด้วยระบบ iMuse หรือไม่? มันตอบสนองต่อสิ่งต่างๆมากมายมีความละเอียดอ่อนหรือชัดเจนตามต้องการ แต่ใช้เพลงที่เขียนโดยนักแต่งเพลงที่เป็นมนุษย์ มันไม่ได้สร้างใหม่โดยสิ้นเชิงไม่เคยได้ยินเพลงมาก่อน แต่มีการเปลี่ยนระหว่างคิวที่ยอดเยี่ยมมันสามารถปรับเปลี่ยนการจัดวาง (นำเครื่องดนตรีใหม่มาผสมผสานอย่างอื่น) สามารถเพิ่มความเร็วหรือลดความเร็วได้ทั้งหมดโดยไม่พลาดจังหวะ . นี่ยังห่างไกลจาก "เพลงยอดเยี่ยม 5 เพลงเดิมซ้ำแล้วซ้ำเล่า" ฉันจะเรียกมันว่า "สตรีมเพลงที่ต่อเนื่องรูปแบบหนึ่งที่เหมาะกับอารมณ์ของเกมในปัจจุบัน"
Galghamon

3

คุณเคยดู SoundHelix (http://www.soundhelix.com) หรือไม่? เป็นเฟรมเวิร์ก Open-Source Java สำหรับการสร้างเพลงแบบสุ่มแบบอัลกอริทึมที่สร้างเพลงที่ค่อนข้างเรียบร้อย คุณสามารถใช้ SoundHelix เป็นแอปพลิเคชันแบบสแตนด์อโลนเป็นแอพเพล็ตที่ฝังอยู่ในเว็บเพจเป็นแอพเพล็ตที่ใช้ JNLP หรือคุณสามารถรวมไว้ในโปรแกรม Java ของคุณเอง

ตัวอย่างที่สร้างด้วย SoundHelix สามารถพบได้ที่นี่: http://www.soundhelix.com/audio-examples


3

การวิจัยเกี่ยวกับการสร้างเพลงขั้นตอนที่ไม่น่าเบื่อกลับไป เรียกดูปัญหาเก่าและใหม่ของ Computer Music Journal http://www.mitpressjournals.org/cmj (ไม่มีชื่อโดเมนจริงหรือไม่) ซึ่งมีบทความทางเทคนิคที่จริงจังเกี่ยวกับการใช้งานจริงสำหรับนักปั่นสังเคราะห์เพลงจ๊อกกี้หัวแร้งคนเลี้ยงสัตว์และนักวิชาการ มันไม่ใช่บทวิจารณ์ที่นุ่มนวลและบทสัมภาษณ์เช่นนิตยสารหลายเล่มที่คุณสามารถหาได้ในร้านหนังสือชั้นนำ


ฉันควรพูดถึงความรู้ของฉันเกี่ยวกับนิตยสารนี้โดยอ้างอิงจากการสมัครสมาชิกที่ฉันมี แต่ล่วงเลยไปเมื่อสองสามปีก่อน ฉันคิดว่ามันยังดีเหมือนเดิม!
DarenW

2

ช่างเป็นเรื่องใหญ่ คุณสามารถดูแอป iPad, Thicket หรือซอฟต์แวร์ Ripple ของฉันได้ที่ morganpackard.com จากประสบการณ์ของฉันแนวทางวิชาการส่วนใหญ่ในการสร้างดนตรีแบบไดนามิกนั้นมาจากสิ่งที่ฟังดูดีและเป็นวิชาการ ฉันคิดว่าสิ่งที่ประสบความสำเร็จมากกว่านั้นมีอยู่ในขอบของสโมสร / โลกอิเล็กทรอนิกา Monolake เป็นฮีโร่ของฉันในแง่นี้ สิ่งที่น่าฟังมากสร้างขึ้นโดยคอมพิวเตอร์ เพลงของฉันเองก็ไม่เลวเหมือนกัน "Alphabet Book" ของ Paul Lansky เป็นตัวอย่างที่ดีของเพลงอัลกอริธึมที่น่าฟังมากโดยเฉพาะอย่างยิ่งเมื่อพิจารณาว่าเขาเป็นคนชอบเรียน


1
นอกจากนี้ตรวจสอบชุมชนรอบ ๆ เครื่องมือที่นักดนตรีใช้ในการสร้างสิ่งต่างๆ - Pure Data, SuperCollider, Max ฉันจะเริ่มต้นด้วยการหานักดนตรีที่มีผลงานที่คุณชอบและทำงานย้อนหลังแทนที่จะเริ่มด้วยการมองหาเทคนิคที่น่าสนใจตามแนวคิด
morgancodes

1

เทคนิคที่ฉันกำลังพิจารณาคือการสร้างรูปแบบดนตรีขนาดเล็กจนถึงบาร์หรือมากกว่านั้น ติดแท็กรูปแบบเหล่านี้ด้วยตัวระบุความรู้สึกเช่น "ความตื่นเต้น" "รุนแรง" ฯลฯ เมื่อคุณต้องการสร้างเพลงสำหรับสถานการณ์หนึ่ง ๆ ให้เลือกรูปแบบสองสามรูปแบบตามแท็กเหล่านี้และเลือกเครื่องดนตรีที่คุณต้องการเล่นด้วย จากเครื่องดนตรีให้หาวิธีผสมผสานรูปแบบต่างๆ (เช่นบนเปียโนคุณอาจจะสามารถเล่นทั้งหมดด้วยกันได้ขึ้นอยู่กับช่วงของมือกีตาร์คุณอาจเล่นโน้ตต่อเนื่องกันอย่างรวดเร็ว) จากนั้นส่งไปยัง PCM . นอกจากนี้คุณสามารถเปลี่ยนคีย์เปลี่ยนความเร็วเพิ่มเอฟเฟกต์ ฯลฯ


1

เทคนิคเฉพาะที่คุณกำลังอธิบายคือสิ่งที่ Thomas Dolby ใช้เมื่อสิบหรือสิบห้าปีที่แล้วแม้ว่าตอนนี้ฉันจำไม่ได้แล้วว่าเขาเรียกมันว่าอะไรดังนั้นฉันจึงไม่สามารถให้คำค้นหาที่ดีกับคุณได้

แต่เห็นนี้บทความวิกิพีเดียและนี้หน้า Metafilter


1
คุณกำลังคิดถึง "เพลงกำเนิด" และโปรแกรมชื่อ "โคอัน"
MusiGenesis

1

หนังสือAlgorithmic Compositionเป็นการนำเสนอวิธีการต่างๆที่ดีที่ใช้:

"หัวข้อที่ครอบคลุม ได้แก่ โมเดลมาร์กอฟไวยากรณ์กำเนิดเครือข่ายการเปลี่ยนแปลงความสับสนวุ่นวายและความคล้ายคลึงกันในตัวเองอัลกอริธึมทางพันธุกรรมออโตมาตาเซลลูลาร์โครงข่ายประสาทเทียมและปัญญาประดิษฐ์"

เป็นจุดเริ่มต้นที่ดีในหัวข้อกว้าง ๆ นี้ แต่ไม่ได้อธิบายเชิงลึกว่าแต่ละวิธีทำงานอย่างไร มันให้ภาพรวมที่ดีของแต่ละรายการ แต่จะไม่เพียงพอหากคุณยังไม่มีความรู้เกี่ยวกับพวกเขา


0

ย้อนกลับไปในช่วงปลายทศวรรษที่ 90 Microsoft ได้สร้างตัวควบคุม ActiveX ที่เรียกว่า "Interactive Music Control" ซึ่งตอบสนองสิ่งที่คุณต้องการ น่าเสียดายที่ดูเหมือนว่าพวกเขาจะล้มเลิกโครงการไปแล้ว


นั่นเป็นเพราะดนตรีที่สร้างขึ้นอย่างสมบูรณ์ซึ่งเป็นลักษณะทั่วไปของเพลงที่แต่งโดยอัลกอริทึม
MusiGenesis

โครงการ Wolfram Tones ที่อ้างถึงโดย @thekidder ข้างต้นประสบความสำเร็จอย่างน่าทึ่งที่ไม่ได้เป่า ฉันคาดหวังว่า
rnd

0

ไม่มากสิ่งที่คุณหลังจาก แต่ผมรู้ว่าคนที่มองไปที่การสร้างโดยอัตโนมัติชุดดีเจเรียกว่าเนื้อหาตามเพลงความคล้ายคลึงกัน



0

ฉันมองหาการทำข้อเสนอโครงการนี้ - "8.1 " จากกลุ่มวิจัย "Theory and praxis in programming language" จาก University of Copenhagen - ภาควิชา CS:

8.1 การเก็บเกี่ยวอัตโนมัติและการวิเคราะห์ทางสถิติของ Music Corpora

การวิเคราะห์แผ่นเพลงแบบดั้งเดิมประกอบด้วยบุคคลหนึ่งคนหรือหลายคนวิเคราะห์จังหวะลำดับคอร์ดและลักษณะอื่น ๆ ของท่อนเดียวซึ่งตั้งอยู่ในบริบทของการเปรียบเทียบท่อนอื่นที่คลุมเครือโดยผู้แต่งคนเดียวกันหรือผู้แต่งคนอื่น ๆ ในช่วงเวลาเดียวกัน

การวิเคราะห์เพลงอัตโนมัติแบบดั้งเดิมแทบจะไม่ได้ใช้แผ่นเพลง แต่เน้นไปที่การวิเคราะห์สัญญาณและการใช้เทคนิคการเรียนรู้ของเครื่องเพื่อแยกและจัดประเภทภายในพูดอารมณ์หรือแนวเพลง ในทางตรงกันข้ามการวิจัยเบื้องต้นที่ DIKU มีจุดมุ่งหมายเพื่อวิเคราะห์ส่วนต่างๆของแผ่นเพลงโดยอัตโนมัติ มูลค่าเพิ่มคือศักยภาพในการดึงข้อมูลจากแผ่นเพลงจำนวนมากที่ไม่สามารถทำได้ง่ายๆด้วยมือและไม่สามารถวิเคราะห์ความหมายได้ด้วยเทคนิคการเรียนรู้ของเครื่อง

สิ่งนี้ - ตามที่ฉันเห็น - เป็นทิศทางตรงกันข้ามกับคำถามของคุณที่ข้อมูลที่สร้างขึ้น - ฉันคิดว่า - สามารถใช้ในบางกรณีของการสร้างเพลงตามขั้นตอน


0

ความเห็นของฉันคือเพลงกำเนิดจะใช้งานได้ก็ต่อเมื่อผ่านกระบวนการคัดเลือกที่เข้มงวดเท่านั้น David Cope ผู้บุกเบิกเพลงอัลกอริทึมจะใช้เวลาหลายชั่วโมงในการแสดงดนตรีจากอัลกอริทึมของเขา (ซึ่งฉันคิดว่าส่วนใหญ่เป็นมาร์กคอฟเชน) เพื่อเลือกไม่กี่อย่างที่ออกมาได้ดี

ฉันคิดว่ากระบวนการคัดเลือกนี้อาจเป็นไปโดยอัตโนมัติโดยการสร้างแบบจำลองลักษณะเฉพาะของสไตล์ดนตรีโดยเฉพาะ ตัวอย่างเช่นสไตล์ "ดิสโก้" จะได้รับคะแนนมากมายสำหรับเบสไลน์ที่มีการเต้นผิดปกติและชิ้นส่วนกลองที่มีบ่วงที่แบ็ตบีต แต่ลบคะแนนสำหรับฮาร์โมนีที่ไม่สอดคล้องกันอย่างมาก

ความจริงก็คือขั้นตอนการแต่งเพลงนั้นเต็มไปด้วยการปฏิบัติทางสำนวนมากมายจนยากที่จะจำลองได้โดยปราศจากความรู้เฉพาะด้าน


0

ฉันทำงานกับโมดูล Python สำหรับเพลงขั้นตอน ฉันเพิ่งตั้งโปรแกรมสิ่งที่ฉันรู้เกี่ยวกับโน้ตสเกลและการสร้างคอร์ดจากนั้นก็สามารถปล่อยให้มันสร้างเนื้อหาแบบสุ่มจากข้อ จำกัด เหล่านั้นได้ ฉันแน่ใจว่ามีทฤษฎีและแบบแผนมากกว่าระบบที่สามารถสอนได้โดยเฉพาะคนที่เข้าใจเรื่องนี้ดีกว่า จากนั้นคุณสามารถใช้ระบบเหล่านั้นเป็นข้อ จำกัด สำหรับอัลกอริทึมทางพันธุกรรมหรือการสร้างเนื้อหาแบบสุ่ม

คุณสามารถดูการใช้งานของฉันได้ที่นี่โดยเฉพาะตัวอย่างโอกาสในการขายที่สร้างขึ้นแบบสุ่มอาจเป็นประโยชน์สำหรับคุณ คนที่มีความเข้าใจอย่างมั่นคงเกี่ยวกับความก้าวหน้าของคอร์ดสามารถสร้างโครงสร้างเพลงจากเทคนิคแบบนั้นและใช้ท่วงทำนองสุ่มแบบ จำกัด เช่นนี้ ความรู้เกี่ยวกับทฤษฎีดนตรีของฉันไม่ได้ขยายไปไกลขนาดนั้น

แต่โดยพื้นฐานแล้วคุณจะต้องเข้ารหัสทฤษฎีของดนตรีประเภทที่คุณต้องการสร้างจากนั้นใช้สิ่งนั้นเป็นข้อ จำกัด สำหรับอัลกอริทึมบางอย่างสำหรับการสำรวจช่วงของทฤษฎีนั้นอย่างเป็นขั้นตอน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.