การดำเนินการพื้นฐานประเภทใดบ้างที่ทำกับสัญญาณเสียงเพื่อสร้างเสียงที่น่าสนใจ


10

ฉันไม่รู้ว่าคำถามนี้จะสมเหตุสมผลหรือไม่เพราะฉันใหม่กับ dsp มาก

ในการจู่โจมที่ จำกัด ของฉันเกี่ยวกับเสียง dsp ฉันได้เจอ:

  1. การปรับความถี่
  2. Amplitude Modulation
  3. การสังเคราะห์สารเติมแต่ง
  4. การสังเคราะห์การหักลบ

คำถามของฉันคือ: เหล่านี้เป็นหมวดหมู่พื้นฐานที่สำคัญของการจัดการสัญญาณ (โดยเฉพาะสำหรับเสียง) หรือไม่

กล่าวอีกนัยหนึ่งว่าเอฟเฟกต์และสิ่งแฟนซีทั้งหมดที่ FL Studio พร้อมกับชุดปลั๊กอินเต็มรูปแบบสามารถทำได้ถูกแบ่งออกเป็นซีรีย์และการรวมกันของการดำเนินงาน 4 ข้อด้านบน? หรือจะมีทั้งพวงมากกว่า? DAW ที่ทันสมัยพร้อมปลั๊กอินสามารถแยกย่อยประเภทใด ๆ ในลักษณะนี้ได้หรือไม่? 4 หมวดหมู่ข้างต้นมีเหตุผลในตัวเองใช่ไหม!

พื้นหลังเล็กน้อย: โดยพื้นฐานแล้วฉันกำลังพยายามสร้างซินธิไซเซอร์ / ตัวแก้ไขเสียงขั้นพื้นฐาน (แต่ยืดหยุ่นมาก) เป็นโครงการเพื่อเรียนรู้ทั้งการเขียนโปรแกรมและเสียง dsp การใช้จาวาฉันเริ่มต้นด้วยการเลียนแบบคลาสซินเดอเรเตอร์ในโลกแห่งความจริงขั้นพื้นฐานการเรียกสิ่งต่าง ๆ เช่น Oscillator และ LFO และสิ่งที่คล้ายกัน แต่ทุกครั้งที่ฉันเรียนรู้สิ่งใหม่ฉันพบว่าตัวเองต้องเขียนทุกอย่าง

ฉันกำลังพยายามที่จะเริ่มต้นใหม่อีกครั้งและมากับวัตถุพื้นฐานและโครงสร้างของโปรแกรม เพื่อให้ถูกต้องฉันต้องรู้ว่าฉันควรอนุญาตให้วัตถุเหล่านี้โต้ตอบ ฯลฯ ได้อย่างไร ...

ขอบคุณ!

แก้ไข * * *

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

แก้ไข * แก้ไข ***

ฉันควรเพิ่มว่า googling เล็กน้อยเปิดเผยคู่มือพื้นฐานนี้สำหรับ "การสังเคราะห์ประเภท"ซึ่งฉันพบว่ามีความเกี่ยวข้องและน่าสนใจ


คุณต้องการพื้นหลังทางทฤษฎีเกี่ยวกับเทคนิคการสังเคราะห์หรือคุณต้องการอะไรมากกว่านี้ (เช่นวิธีการทั่วไปที่ใช้ในทางปฏิบัติ) dsp.stackexchange.com/questions/192/…
ดาต้านักวิเคราะห์

1
ถ้าฉันจะสรุปการปรับแต่งเสียงที่เป็นไปได้ทั้งหมดในหมวดหมู่ที่น้อยที่สุดเท่าที่จะทำได้ฉันจะตั้งชื่อการแปลงเชิงเส้นและไม่เชิงเส้น แต่สิ่งเหล่านั้นกว้างเกินไปและกว้างเกินกว่าที่จะนำมาใช้ได้
Alexey Frunze

@datageist - ฉันเดาว่าฉันจะต้องใช้ทั้งคู่! แต่นั่นเป็นลิงก์ที่มีประโยชน์มากขอบคุณ
kiman

@ อเล็กซ์นั้นเป็นเรื่องธรรมดามาก แต่มันก็เป็นจุดเริ่มต้นของความคิดและอย่างน้อยตอนนี้ฉันก็รู้ว่าฉันเห่าต้นไม้ผิดไป
kiman

รับหนังสือของ Will Pirkle การออกแบบ Software Synthesizer Plug-Ins ใน C ++: สำหรับ RackAFX, VST3 และหน่วยเสียง คุณจะทำการสังเคราะห์และเรียนรู้ไปพร้อมกันแทนที่จะพยายามคิดทุกอย่างด้วยตัวเอง
panthyon

คำตอบ:


9

หมวดหมู่ AM / FM ค่อนข้างแปลกสำหรับเอฟเฟกต์จริงคุณสามารถรับเอฟเฟกต์ที่น่าสนใจได้โดยการปรับความกว้างของสัญญาณอินพุต แต่ "การมอดูเลตความถี่" หมายถึงอะไรสำหรับสัญญาณอินพุทที่ซับซ้อนซึ่งคุณไม่มีแม้แต่การแสดงความถี่ที่แม่นยำ? คุณสามารถบอกได้ว่าทุกเอฟเฟกต์คือการปรับความกว้างโดยสัญญาณแต่สิ่งนี้จะไม่ช่วยคุณปรับใช้!out(t)in(t)

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

  • ตัวกรอง Biquad
  • เส้นหน่วงเวลาเศษส่วน
  • เครื่องยนต์ Convolution เพื่อการแปลงสัญญาณอินพุตที่รวดเร็วพร้อมการตอบสนองแบบแรงกระตุ้นตามอำเภอใจ
  • Waveshaper (การใช้ฟังก์ชั่นที่ไม่ใช่เชิงเส้นกับสัญญาณอินพุตในโดเมนเวลา)
  • หน่วยการสร้างแบบซินธิไซเซอร์: ออสซิลเลเตอร์, LFOs, ADSR ซองจดหมาย
  • อุปกรณ์ตรวจจับสัญญาณ: ผู้ติดตามซองจดหมาย, f0 extractor

ด้วยบล็อกเหล่านั้นคุณสามารถสร้าง:

  • ตัวกรองที่คล้าย Synth หรือวาวา: หนึ่งหรือสอง biquads
  • อัตโนมัติ: ผู้ติดตามซองจดหมาย + ซอง + biquad
  • Flanger / Phaser: LFO + สายการหน่วงเวลา
  • นักร้อง: LFO + สายล่าช้า
  • พัดโบกขั้นตอน: เส้นหน่วงเวลา (อาร์เรย์ของตัวกรองหวีแบบขนานและอนุกรม)
  • Convolution reverb: Convolution
  • Spatializer: convolution (ด้วย HRTFs การตอบสนองต่อแรงกระตุ้น)
  • การจำลองแอมป์กีต้าร์: การโน้มน้าวใจ
  • การบิดเบือน Fuzz: รับ + ​​waveshapper
  • Bitcrusher (quantizer): กรณีเฉพาะของ waveshapper
  • Ring modulator ด้วย sine carrier: oscillator
  • Noise Gate และเอฟเฟกต์การเปลี่ยนแปลงอื่น ๆ : ผู้ติดตามซองจดหมาย
  • การจำลองเทป: convolution, waveshapper, follower ซองจดหมาย (สำหรับการประมวลผลการเปลี่ยนแปลง)
  • EQ: biquads
  • ลูกคอ: LFO
  • การจำลองเลสลี่: convolution + LFO
  • Vocoder: ผู้ติดตาม biquads + ซองจดหมาย

ในขณะที่เอฟเฟกต์เหล่านี้เป็นเพียงเรื่องของการปะต่อบล็อกต่าง ๆ (ตัว Flanger นั้นเป็น LFO modulating สายหน่วงเวลา) แต่เอฟเฟกต์อื่น ๆ นั้นต้องการกาวที่ซับซ้อนมากขึ้นระหว่างส่วนต่าง ๆ ซึ่งเฉพาะเจาะจงมากพอ ของมันเอง.

นี่คือภาพรวมชุดเอฟเฟกต์ที่น่าสนใจซึ่งจะครอบคลุมพื้นที่จำนวนมากสำหรับการผลิตเพลง แต่มันก็ไม่ละเอียดและมีเอฟเฟกต์บางอย่างที่ไม่เหมาะกับกรอบนี้ ... ตัวอย่างบางส่วน: * ตัวลดอัตราตัวอย่างสกปรก (ใน a bitcrusher): จริงมันเป็นการคูณโดยหวี dirac และจากนั้นการบิดโดยหน้าต่างสี่เหลี่ยม ... แต่มันง่ายกว่าที่จะเขียนมันเป็นสิ่งที่ทำซ้ำค่าของตัวอย่างหนึ่งตัวอย่างจากตัวอย่างต่อไปนี้ของ N แทนการแพทช์แอมพลิจูด และการโน้มน้าวใจ! * เอฟเฟกต์การเปลี่ยนระดับเสียง (pitch-shift, auto-tuning) ไม่เหมาะกับเฟรมเวิร์คนี้ พวกเขาต้องการการแสดงสัญญาณเสียงที่ซับซ้อนมากขึ้น (เฟส vocoder สำหรับวิธีความถี่โดเมน; การตรวจจับพิทช์และเครื่องหมายพิทช์สำหรับวิธีโดเมนเวลา)

ฉันขอแนะนำให้คุณเล่นด้วยเครื่องมือซอฟต์แวร์ "สไตล์โมดูลาร์" เช่น Pd, Reaktor, Plogue, SyntheEdit ... - และลองใช้เอฟเฟกต์จากหน่วยการสร้างพื้นฐานที่มีให้


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

1
"การสังเคราะห์ FM" ที่ถูกนำไปใช้ในซินธิไซเซอร์ (เช่นชุดยามาฮ่า DX, ฮาร์ดแวร์ที่ใช้ OPL และการจำลองซอฟต์แวร์ของสิ่งเหล่านั้น) เป็นผู้เรียกชื่อผิดเนื่องจากนี่เป็นการกระทำจริงด้วยการมอดูเลตเฟส en.wikipedia.org/wiki/Phase_modulation
pichenettes

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

@Bryan ดูการอ้างสิทธิ์ 1 ในสิทธิบัตรการสังเคราะห์ "FM" US4018121 บาป (wt + I (t) บาป w_m t) - มันเป็นการปรับเฟส PM ง่ายต่อการนำไปใช้เนื่องจาก 1 / คุณไม่ต้องการตัวสะสมพิเศษเพื่อรวมความถี่ที่แตกต่างกันในเฟส - ดูโพสต์ไม่กี่ที่ที่ผู้คนพยายามสร้างเสียงด้วยความถี่ที่แปรผันตามเวลาและกัด 2 / การแปลงจากความถี่ไปสู่การเพิ่มเฟสเกี่ยวข้องกับการหาร ด้วย PM คุณจะคำนวณการเพิ่มเฟสในอัตราการปรับ ด้วย FM คุณจะต้องคำนวณการเพิ่มเฟสในอัตราตัวอย่างอีกครั้ง
pichenettes

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