อัลกอริทึมพัดโบกคุณภาพสูง


11

ฉันค้นหาเว็บไซต์นี้เล็กน้อย แต่น่าประหลาดใจฉันไม่พบข้อมูลที่เกี่ยวข้องมากนักและความรู้เกี่ยวกับ DSP ของฉันนั้นมี จำกัด มาก

เป้าหมายของฉันค่อนข้างเรียบง่าย: ฉันต้องการตั้งค่าเสียงสะท้อนจากอัลกอริทึมใน C ++ ซึ่งฟังดูดีจริงๆ ตัวเลือกที่ดีที่สุดคือให้ผู้ใช้เลือกการแลกเปลี่ยนระหว่างคุณภาพและการใช้งาน cpu

จากสิ่งที่ฉันค้นพบจนถึงตอนนี้คือในการสร้างเสียงสะท้อนคุณต้องป้อนสัญญาณแบบแห้งในอัลกอริธึมการสะท้อนก่อน ถูกต้องหรือไม่

ตอนนี้ฉันได้พบบทความมากมายในส่วนของการสะท้อนปลายโดยใช้เครือข่ายตอบรับล่าช้า (การลดความต้องการการคืนค่าการจำลองการประดิษฐ์โดยใช้เครือข่ายการตอบกลับล่าช้าที่หลากหลาย ) จากสิ่งที่ฉันได้อ่าน FDN เป็นวิธีที่มีคุณภาพสูงไม่ฉลาดเกินไป (cpu ชาญฉลาด) ในการจำลองการสะท้อนกลับในช่วงปลาย นอกจากนี้ฉันคิดว่าคุณสามารถควบคุมคุณภาพ / การเรียกเก็บเงิน cpu โดยการเปลี่ยนจำนวนของสายการล่าช้า

อย่างไรก็ตามฉันไม่มีความคิดอย่างแน่นอนว่าจะเขียนโปรแกรมอัลโกสะท้อนต้น (จำได้ไหมฉันไม่รู้จริงๆในโดเมน DSP)

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

นอกจากนี้สัญชาตญาณของฉันบอกฉันว่าต้องมีตัวกรองหนึ่งหรือหลายตัวในเส้นทางสัญญาณ

บางคนช่วยอธิบายหัวข้อนี้ให้ฉันหน่อยได้ไหม?

หมายเหตุสองประการ:

  • ฉันไม่ได้หลังจากเสียงก้องกังวานเลย ฉันไม่สนใจเกี่ยวกับความสมจริงของ reverb แต่ฉันต้องการให้เสียงที่ฟังดูดีบิดเบี้ยวไม่ใช่เพื่อ reverb cpu หิว
  • นอกจากนี้ส่วนการเข้ารหัสไม่ได้เป็นสิ่งที่ฉันกังวลฉันจะถามใน stackoverflow เป็นอย่างอื่น มันเป็นส่วน DSP จริงๆและเพียงแค่ส่วนนั้นซึ่งฉันหลังจาก :)

คำตอบ:


10

คุณจำเป็นต้องสร้างการสะท้อนต้นด้วยความล่าช้าเล็กน้อย (= convolution ด้วยผลรวมของไดรัคจำนวนหนึ่ง); และ "หาง" กับสิ่งที่มักจะนำมาใช้กับเครือข่ายของ all-pass (AP) และหวีกรอง

ส่วนแรกนั้นไม่สำคัญที่จะนำไปใช้ แต่ยากที่จะทำให้ถูกต้อง มันอาจช่วยให้มองไปที่การวางตำแหน่งของยอดเขาที่หัวของการตอบสนองแรงกระตุ้นที่บันทึกไว้ล่วงหน้าเพื่อรับความคิดว่าการตอบสนองแบบใดที่เป็น "ธรรมชาติ" มันยากที่จะทำให้มันเป็นเรื่องง่ายโดยการตั้งค่าบางอย่างแม้ว่าคุณจะได้รับมันไปด้วยการตั้งค่าล่วงหน้าสำหรับส่วนนี้เพื่อให้ได้เสียง "ลูกผสม" reverb à la Virsyn Reflect

หางเป็นที่ซึ่งอัลกอริทึมดังก้องเปล่งประกาย (ไม่มีการเล่นสำนวนเจตนา) เนื่องจากมันเป็นเรื่องง่ายที่จะ parametrize ปู่ของอัลกอริทึม reverbs เป็นSchroeder'sขั้นตอนวิธี โปรดทราบว่ามันสร้างแค่ "หาง" ไม่ใช่การสะท้อนในช่วงต้น - คุณสามารถเพิ่มมันด้วยการหน่วงเวลาสักสองสามครั้งเพื่อให้หัว มันไม่ได้ฟังดูดีมาก (มี "เม็ดเล็ก ๆ ") แต่เป็นการเริ่มต้นที่ดีโดยที่คุณมีบางสิ่งที่ยุ่งเหยิงและช่วยให้เข้าใจถึงผลกระทบของพารามิเตอร์แต่ละตัว reverbs อัลกอริทึมที่น่ายกย่องมากมายโดยเฉพาะอย่างยิ่งจากยุค 80 (Lexicon, Eventide, Publison) เป็นเพียงการปรับแต่งโทโพโลยีของตัวกรองแบบพาสและตัวกรองแบบหวี ฉันสงสัยว่าสิ่งนี้เกี่ยวข้องกับการทดลองและข้อผิดพลาดจำนวนมากโดยหูที่ผ่านการฝึกอบรมซึ่งเก่งในการหาวิธีการเปลี่ยนแปลงของพารามิเตอร์หรือโทโพโลยีจะให้เสียงมากกว่าวิธีการทางวิทยาศาสตร์ใด ๆ นี่คืออีกหนึ่งการอ่านที่น่าสนใจ- แสดงโครงสร้างเสียงสะท้อนที่ชื่นชอบของ Keith Barr midiverb ดั้งเดิมอาจไม่ใช่คำจำกัดความของคุณ "reverb อัลกอริทึมคุณภาพสูง" แต่ฟังดูไพเราะและทำให้มุมมองที่จะรู้ว่ามันถูกสร้างขึ้นด้วย "dsp" เท่านั้นที่สามารถใช้ MAC ที่มีค่าสัมประสิทธิ์ 0.5 ...

Valhalla room เป็นซอฟต์แวร์ตัวช่วยสร้างอัลกอริทึมที่ชื่นชอบ - ใช้เวลาสักครู่เพื่ออ่านบล็อกของผู้พัฒนาเพื่อค้นหาแรงบันดาลใจเกี่ยวกับสิ่งต่าง ๆ ที่ช่วยทำให้ถูกต้อง


2
ลืมที่จะพูดถึง Freeverb ในรูปแบบที่ทันสมัยกว่า (พร้อมรหัสที่มีอยู่สามารถพบได้เช่นใน csound หรือ ladspa codebase) ของอัลกอริทึมของ Schroeder
pichenettes

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

1
ฉันกล่าวถึงการบิดเนื่องจาก "การ multitap delay" เป็นเพียงการโน้มน้าวใจชนิดหนึ่ง (ด้วยค่าสัมประสิทธิ์ที่ไม่เป็นโมฆะสองสามประการดังนั้นจึงสามารถคำนวณวิธีที่ไร้เดียงสาและไม่มีปืนใหญ่ที่เกี่ยวข้องกับการ "หนาแน่น" อย่างไรก็ตามฮิลมาร์ชี้ให้เห็นความล่าช้ามัลติทาสก์อาจจะไร้เดียงสาเกินไปและหลังจากการสะท้อนสองสามครั้งดังนั้นการแพร่กระจายชั่วคราว (= การกรอง low-pass) เสียงสะท้อนจะดูเป็นธรรมชาติมากขึ้น ซึ่งสามารถทำได้ด้วยความล่าช้าหลายแตะด้วย LP ง่ายสำหรับแต่ละแตะ; หรือโดยการคำนวณโดยตรงทั้งภาพสะท้อนในช่วงต้นของ reverb ด้วยเอ็นจิน convolution และ IRs ที่ตั้งไว้ล่วงหน้า
pichenettes

8

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

มีการนำโอเพนซอร์ซที่ค่อนข้างดีมาใช้เรียกว่า GVerb และตัวอย่างเช่นความกล้า การค้นหา google ควรพาคุณไปยังสำเนาของซอร์สโค้ด (ถูกกฎหมาย)


จากโพสต์ของคุณมันฟังดูง่าย! อย่างน้อยฉันก็เข้าใจได้ยกเว้นส่วนที่เกี่ยวกับความสัมพันธ์ คุณหมายความว่ายังไงกันแน่? นอกจากนี้เกี่ยวกับการเอาใจใส่ที่ขึ้นอยู่กับความถี่ฉันเดาว่าคุณหมายถึงการทิ้งฟิลเตอร์และการปรับจูนด้วยหูมันเป็นความถี่สำหรับทุกบรรทัด เรากำลังพูดถึงประเภทของตัวกรองอะไร HP LP BP ขอบคุณมาก!
Dinaiz
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.