กลับไปหน้าบทความ

อ่าน 3 นาที

การสังเคราะห์สตริงแบบ Karplus–Strong

การสังเคราะห์เสียงแบบ Karplus–Strong เป็นวิธี การสังเคราะห์เสียงแบบจำลองทางกายภาพ ที่วนซ้ำรูปคลื่นสั้นๆ ผ่านสายหน่วงเวลาที่มีการกรอง เพื่อจำลองเสียงของการตีหรือดี ดสาย หรือ...

การสังเคราะห์สตริงแบบ Karplus–Strong

การสังเคราะห์เสียงแบบ Karplus–Strongเป็นวิธีการสังเคราะห์เสียงแบบจำลองทางกายภาพที่วนซ้ำรูปคลื่นสั้นๆ ผ่านสายหน่วงเวลาที่มีการกรอง เพื่อจำลองเสียงของการตีหรือดีดสาย หรือ เสียงเครื่องดนตรีประเภทเคาะบางประเภท

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

อเล็กซานเดอร์ สตรองเป็นผู้คิดค้นอัลกอริทึม และเควิน คาร์พลัสเป็นผู้ทำการวิเคราะห์การทำงานเป็นครั้งแรก ทั้งสองร่วมกันพัฒนาซอฟต์แวร์และฮาร์ดแวร์ที่นำอัลกอริทึมนี้ไปใช้ รวมถึง ชิป VLSI ที่ออกแบบเอง พวกเขาตั้งชื่ออัลกอริทึมนี้ว่า "Digitar" synthesis ซึ่งเป็นการผสมคำระหว่าง "digital guitar" (กีตาร์ดิจิทัล)

วิธีการทำงาน

  1. มีการสร้างรูปคลื่นกระตุ้นสั้นๆ (ความยาว L ตัวอย่าง) ในอัลกอริทึมดั้งเดิมนั้น เป็นสัญญาณรบกวนสีขาวแต่ก็สามารถรวมถึง สัญญาณย่าน ความถี่กว้าง ใดๆ ก็ได้ เช่นสัญญาณไซน์ แบบเร็ว หรือการกวาดความถี่ หรือคลื่นฟันเลื่อยหรือคลื่นสี่เหลี่ยม แบบรอบ เดียว
  2. สัญญาณกระตุ้นนี้จะถูกส่งออกไปและป้อนกลับเข้าไปในสายหน่วงเวลาที่มีความยาว L ตัวอย่าง พร้อมกัน
  3. สัญญาณเอาต์พุตจากวงจรหน่วงเวลาจะถูกส่งผ่านตัวกรองอัตราขยายของตัวกรองต้องน้อยกว่า 1 ที่ทุกความถี่ เพื่อรักษา วงจร ป้อนกลับเชิงบวก ที่เสถียร ตัวกรองอาจเป็นตัวกรองความถี่ต่ำอันดับหนึ่ง (ดังภาพ) ในอัลกอริทึมดั้งเดิม ตัวกรองประกอบด้วยการหาค่าเฉลี่ยของตัวอย่างสองตัวอย่างที่อยู่ติดกัน ซึ่งเป็นตัวกรองที่ง่ายเป็นพิเศษและสามารถนำไปใช้ได้โดยไม่ต้องใช้ตัวคูณ โดยต้องการเพียงแค่การเลื่อนและการบวกเท่านั้น คุณลักษณะของตัวกรองมีความสำคัญอย่างยิ่งในการกำหนดโครงสร้างฮาร์มอนิกของโทนเสียงที่ค่อยๆ ลดลง
  4. สัญญาณเอาต์พุตที่ผ่านการกรองแล้วจะถูกผสมเข้ากับสัญญาณเอาต์พุตพร้อมกัน และป้อนกลับเข้าไปในวงจรหน่วงเวลาอีกครั้ง

การปรับสาย

ความถี่พื้นฐาน (โดยเฉพาะความถี่เรโซแนนซ์ที่ไม่เป็นศูนย์ต่ำสุด) ของสัญญาณที่ได้คือความถี่ต่ำสุดที่การตอบสนองเฟสที่คลี่ออกของตัวหน่วงเวลาและตัวกรองแบบอนุกรมมี ค่า เท่ากับ0 ดังนั้น ค่าหน่วงเฟสที่ต้องการDสำหรับความถี่พื้นฐานF₀ ที่กำหนด จะคำนวณได้ตามสูตรD = Fs / F₀ โดยที่Fsคือความถี่ในการสุ่มตัวอย่าง

ความยาวของสายหน่วงเวลาดิจิทัลใดๆ จะเป็นจำนวนเต็มเท่าของช่วงเวลาการสุ่มตัวอย่าง เพื่อให้ได้ค่าหน่วงเวลาแบบเศษส่วนซึ่งมักจำเป็นสำหรับการปรับแต่งสายให้ต่ำกว่า JND ( Just Noticeable Difference ) จะใช้ ตัวกรองแบบแทรกสอดโดยเลือกพารามิเตอร์เพื่อให้ได้ค่าหน่วงเฟสที่เหมาะสมที่ความถี่พื้นฐานอาจใช้ตัวกรองIIRหรือFIR ก็ได้ แต่ FIR มีข้อดีคือสามารถลดสัญญาณรบกวนชั่วคราวได้หากค่าหน่วงเวลาแบบเศษส่วนเปลี่ยนแปลงไปตามเวลา ค่าหน่วงเวลาแบบเศษส่วนพื้นฐานที่สุดคือ การแทรกสอดเชิงเส้นระหว่างสองตัวอย่าง (เช่นs (4.2) = 0.8 s (4) + 0.2 s (5)) หากค่าหน่วงเฟสแปรผันตามความถี่ฮาร์โมนิกอาจคมชัดขึ้นหรือแบนลงเมื่อเทียบกับความถี่พื้นฐาน อัลกอริทึมดั้งเดิมใช้การถ่วงน้ำหนักเท่ากันบนสองตัวอย่างที่อยู่ติดกัน เนื่องจากสามารถทำได้โดยไม่ต้องใช้ฮาร์ดแวร์การคูณ ทำให้สามารถใช้งานได้ในราคาที่ถูกมาก

การวิเคราะห์ ด้วยการแปลง Zสามารถนำมาใช้เพื่อหาค่าระดับเสียงและเวลาการลดลงของฮาร์โมนิกได้อย่างแม่นยำยิ่งขึ้น ดังที่ได้อธิบายไว้ในบทความปี 1983 ที่นำเสนออัลกอริทึมนี้

สามารถฟังตัวอย่างการทำงานของอัลกอริทึม Karplus-Strong ได้ใน ไฟล์ Vorbis ต่อไปนี้ อัลกอริทึมนี้ใช้ค่า loop gain 0.98 ร่วมกับตัวกรอง lowpass อันดับแรกที่มีการลดทอนเพิ่มขึ้นเรื่อยๆ ระดับเสียงของโน้ตคือ A2 หรือ 220 เฮิรตซ์

การรักษาระยะเวลา (ความยาวของสายหน่วงเวลา) ให้คงที่ จะทำให้เกิดการสั่นสะเทือนคล้ายกับเสียงของสายหรือระฆัง การเพิ่มระยะเวลาอย่างรวดเร็วหลังจากสัญญาณอินพุตชั่วคราว จะทำให้เกิดเสียงคล้ายกลอง

การปรับปรุงอัลกอริธึม

เนื่องจากเสียงเหมือนสายที่ถูกดีดในบางโหมดอเล็กซ์ สตรองและเควิน คาร์พลัสจึงตั้งสมมติฐานว่าอัลกอริทึมคาร์พลัส-สตรอง (KS) ในแง่หนึ่งเป็นการจำลองสายที่สั่น และพวกเขาพยายามแสดงให้เห็นว่ามันแก้สมการคลื่นสำหรับสายที่สั่น แต่สิ่งนี้ไม่สำเร็จ[ 1 ]จูเลียส โอ. สมิธที่ 3 [ 1]ตระหนักว่าฟังก์ชันการถ่ายโอนของ KS เมื่อมองในฐานะตัวกรองดิจิทัล จะตรงกับของสายที่สั่น โดยตัวกรองในวงจรป้อนกลับแสดงถึงการสูญเสียสายทั้งหมดในช่วงหนึ่งรอบ[ 2 ]ต่อมาเขาได้พัฒนาอัลกอริทึม KS เป็นกรณีพิเศษของการสังเคราะห์ท่อนำคลื่นดิจิทัลซึ่งใช้ในการจำลองคลื่นเสียงในสาย ท่อ และเยื่อ ชุดแรกของการขยายและการวางนัยทั่วไปของอัลกอริทึม Karplus-Strong ซึ่งโดยทั่วไปเรียกว่าอัลกอริทึม Extended Karplus-Strong (EKS) ได้รับการนำเสนอในเอกสารในปี 1982 ในการประชุม International Computer Music Conference ที่เมืองเวนิส ประเทศอิตาลี และตีพิมพ์ในรายละเอียดเพิ่มเติมในปี 1983 ใน Computer Music Journal ในบทความชื่อ "Extensions of the Karplus Strong Plucked String Algorithm" โดย David A. Jaffe และ Julius O. Smith [ 3 ]และในวิทยานิพนธ์ปริญญาเอก/วิศวกรรมไฟฟ้าของ Smith [ 2 ]

Alex Strongได้พัฒนา วิธีการปรับแต่ง wavetable ที่เหนือกว่า สำหรับการสังเคราะห์เสียงสายดีด แต่เผยแพร่เป็นสิทธิบัตรเท่านั้น[ 4 ]

แอปพลิเคชันทางดนตรี

การนำอัลกอริทึมมาใช้ในงานดนตรีครั้งแรกปรากฏในผลงานชื่อMay All Your Children Be Acrobatsซึ่งประพันธ์ขึ้นในปี 1981 โดยDavid A. Jaffeโดยใช้กีตาร์ 8 ตัว เสียงเมซโซโซปราโน และเทปสเตอริโอที่สร้างจากคอมพิวเตอร์ พร้อมเนื้อเพลงที่ดัดแปลงมาจากหนังสือThe People, YesของCarl Sandburg Jaffe ยังคงสำรวจความเป็นไปได้ทางดนตรีและเทคนิคของอัลกอริทึมต่อไปใน ผลงาน Silicon Valley Breakdownสำหรับเสียงเครื่องสายดีดที่สร้างจากคอมพิวเตอร์ (1982) รวมถึงผลงานในภายหลัง เช่นTelegram to the President, 1984สำหรับวงเครื่องสายสี่ชิ้นและเทป และGrassสำหรับคณะนักร้องหญิงและเทป (1987)

สิทธิบัตรนี้ถูกอนุญาตให้บริษัท Mattel Electronics ใช้ก่อน แต่บริษัทก็ล้มเหลวไปก่อนที่จะพัฒนาผลิตภัณฑ์ใดๆ ที่ใช้อัลกอริทึมนี้ จากนั้นจึงถูกอนุญาตให้บริษัทสตาร์ทอัพที่ก่อตั้งโดยอดีตผู้บริหารของ Mattel ที่ถูกเลิกจ้างใช้ต่อ บริษัทนี้ไม่ได้รับเงินทุนเพียงพอที่จะพัฒนาผลิตภัณฑ์ให้เสร็จสมบูรณ์ จึงไม่เคยนำผลิตภัณฑ์ออกสู่ตลาดเช่นกัน ในที่สุด Yamaha ก็ได้รับอนุญาตให้ใช้สิทธิบัตรนี้ โดยเป็นส่วนหนึ่งของชุดสิทธิบัตร Sondius จาก Stanford ไม่เป็นที่ทราบแน่ชัดว่ามีฮาร์ดแวร์ใดที่ใช้อัลกอริทึมนี้วางจำหน่ายหรือไม่ แม้ว่าจะมีซอฟต์แวร์หลายเวอร์ชัน (ซึ่งไม่ได้จ่ายค่าลิขสิทธิ์ใดๆ ให้แก่ผู้คิดค้น) ออกมาวางจำหน่ายแล้วก็ตาม

แม้ว่าอาจจะไม่ปฏิบัติตามอัลกอริทึมอย่างเคร่งครัด แต่ชิ้นส่วนฮาร์ดแวร์สำหรับระบบโมดูลาร์จำนวนมากได้รับการผลิตในเชิงพาณิชย์โดยอ้างอิงหลักการพื้นฐานของ Karplus-Strong Synthesis: คือการใช้ระบบควบคุมแบบกลับด้านและปรับขนาดสำหรับค่าเวลาที่เล็กมากในสายหน่วงเวลาแบบกรองเพื่อสร้างโน้ตที่เล่นได้ในระบบการปรับเสียงแบบ Western Tempered โดยควบคุมด้วยการติดตามโวลต์ต่ออ็อกเทฟหรือข้อมูล MIDI แม้ว่าจะไม่มีการระบุชื่อผู้คิดค้นอย่างเฉพาะเจาะจง แต่คำว่า "Karplus-Strong Synthesis" ก็ถูกอ้างอิงในคู่มือบางเล่ม

ส่วนประกอบฮาร์ดแวร์ที่สามารถสร้างเสียงสังเคราะห์สไตล์ Karplus-Strong ได้ ได้แก่ Moog Clusterflux 108M, Mutable Instruments Elements และ Rings, 4ms Company Dual Looping Delay, 2HP Pluck, Make Noise Mimeophon, Arturia MicroFreak , Non Linear Circuits Is Carp Lust Wrong? และ Strymon Starlab

ดูเพิ่มเติม

  • อัลกอริทึมคาร์พลัส-สตรอง
  • ตัวอย่างเสียง
  • ตัวอย่างเสียงเพิ่มเติมภายใต้ใบอนุญาต CC
  • แอปพลิเคชันข้างต้นเวอร์ชัน HTML5
  • ผลงานเพลงของ David A. Jaffe พร้อมตัวอย่างเสียง
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Karplus–Strong_string_synthesis&oldid=1361187257 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ การสังเคราะห์สตริงแบบ Karplus–Strong

การสังเคราะห์เสียงแบบ Karplus–Strong เป็นวิธี การสังเคราะห์เสียงแบบจำลองทางกายภาพ ที่วนซ้ำรูปคลื่นสั้นๆ ผ่านสายหน่วงเวลาที่มีการกรอง เพื่อจำลองเสียงของการตีหรือดี ดสาย หรือ...

วิธีการทำงาน

มีการสร้างรูปคลื่นกระตุ้นสั้นๆ (ความยาว L ตัวอย่าง) ในอัลกอริทึมดั้งเดิมนั้น เป็นสัญญาณรบกวน สีขาว แต่ก็สามารถรวมถึง สัญญาณย่าน ความถี่กว้าง ใดๆ ก็ได้ เช่น สัญญาณ ไซน์ แบบเร็ว หรือการกวาดความถี่ หรือคลื่นฟันเลื่อย หรือ คลื่น สี่เหลี่ยม แบบรอบ เดียว...

การปรับสาย

ความถี่ พื้นฐาน (โดยเฉพาะความถี่เรโซแนนซ์ที่ไม่เป็นศูนย์ต่ำสุด) ของสัญญาณที่ได้คือความถี่ต่ำสุดที่การตอบสนองเฟสที่คลี่ออกของตัวหน่วงเวลาและตัวกรองแบบอนุกรมมี ค่า เท่ากับ 0 ดังนั้น ค่าหน่วงเฟส ที่ต้องการ D สำหรับความถี่พื้นฐาน F₀ ที่กำหนด จะคำนวณได้ตามสูตร D =...

การปรับปรุงอัลกอริธึม

เนื่องจากเสียงเหมือนสายที่ถูกดีดในบางโหมด อเล็กซ์ สตรอง และ เควิน คาร์พลัส จึงตั้งสมมติฐานว่าอัลกอริทึมคาร์พลัส-สตรอง (KS) ในแง่หนึ่งเป็นการจำลองสายที่สั่น และพวกเขาพยายามแสดงให้เห็นว่ามันแก้สมการคลื่นสำหรับสายที่สั่น แต่สิ่งนี้ไม่สำเร็จ [ 1 ] จูเลียส โอ.