السلسلة الكاملة للـ signal
الـ audio processor الاحترافي مش خوارزمية واحدة — هو pipeline من مراحل متخصّصة، كل واحدة بتحل مشكلة مختلفة بتقنية DSP مختلفة. الـ EQ بيشكّل توازن الـ frequencies. والـ reverb بيضيف الإحساس الصوتي بتاع أوضة. والـ compressor بيكبح التأرجحات الديناميكية. ومؤثر الـ delay أو الـ chorus بيعمل صورة stereo وبيضيف غنى. والمراحل دي مع بعض بتعمل سلسلة المؤثرات الصوتية (audio effects chain) اللي قاعدة بين المايك والسماعة في كل mixer ومحطة شغل رقمية ونظام صوت live على كوكب الأرض.
إنك تفهم السلسلة دي يعني إنك تفهم الـ DSP التطبيقي. كل مفهوم من الوحدات اللي فاتت — الـ FIR والـ IIR filters والـ DFT والـ convolution وأنظمة الـ feedback — بيرجع يظهر هنا في شكل ملموس ومسموع. والدرس ده بيمشي على كل مرحلة: بتعمل إيه في الصوت، وبتتنفّذ إزاي في الـ DSP، والمراحل بتتوصّل ببعض إزاي في سلسلة متماسكة.
كل مرحلة في سلسلة الصوت بتتصمّم لوحدها، وبعدين بتتوصّل عن طريق control بسيط لـ الـ wet/dry mix (قد إيه من الـ signal المتعالجة بتتخلط مع الأصلية). والـ modularity دي معناها إنك تقدر تبدّل مؤثرات لوحدها أو تعيد ترتيبها أو تعدّيها من غير ما تعيد تصميم السلسلة كلها — نفس المبدأ المستخدم في كل معمارية plugins في محطات الشغل الرقمية.
الـ parametric EQ
الـ EQ بيظبط amplitude نطاقات frequency مختلفة، وبيشكّل الطابع النغمي للصوت. والـ parametric EQ (المعادل البارامتري) بيدّي المهندس تلات controls لكل band: الـ center frequency (فين الـ boost أو الـ cut بيتطبّق)، والـ gain (كام ديسيبل بيتضاف أو بيتشال)، والـ bandwidth Q (النطاق المتأثّر عريض قد إيه). والتلاتة دول مع بعض يقدروا ينحتوا أي frequency response ناعم ممكن تتخيّله.
حجر الأساس لأي parametric EQ هو IIR filter من الدرجة التانية، اسمه المعروف biquad. كل biquad بينفّذ band EQ واحد بخمس معاملات بس وtransfer function فيها polesين وzeroين. ولأن الـ biquad IIR filter، بيحقق تشكيل معقّد في الـ frequency بحساب صغير جدًا — خمس عمليات ضرب وأربع عمليات جمع لكل sample، مهما كان الـ band ضيق.
الـ parametric EQ العملي بيسلسل كذا biquad ورا بعض. EQ بأربع bands بيستخدم أربع biquads، وبيستهلك 20 عملية ضرب و16 عملية جمع لكل sample — حمل صغير جدًا على أي DSP حديث. وأنواع الـ bands الأربعة المعيارية هي: الـ low shelf (boost/cut لكل الـ frequencies تحت corner)، والـ peaking bell (boost/cut حوالين center frequency)، والـ notch (cut حاد عند frequency معيّنة، عشان تشيل الـ hum أو الـ resonance)، والـ high shelf (boost/cut لكل الـ frequencies فوق corner).
الـ reverb: أوضة في علبة
الـ reverb بيقلّد السلوك الصوتي لمكان فيزيائي — الطريقة اللي الأصوات بترتد بيها من الحيطان والسقف والأرضية قبل ما تخفت لحد السكوت. والتسجيل الجاف (التسجيل من قريب) بيبان إكلينيكي ومش طبيعي من غير reverb؛ وإنك تضيفه بيحط الصوت في بيئة صوتية محسوسة، سواء أوضة معيشة أو قاعة حفلات أو كاتدرائية.
الـ algorithmic reverb بيستخدم شبكة من الـ delay lines بـ feedback وcomb filters وall-pass filters عشان يعمل انعكاسات كثيفة ومنتشرة. والتصميمات الكلاسيكية بتاعة Schroeder وMoorer بتسلسل مجموعة comb filters متوازية (بتطلّع echoes دورية عند تأخيرات مختلفة) في سلسلة all-pass filters (بتفرد الـ echoes من غير ما تغيّر طاقتها). تكلفة الحساب واطية والتحكّم سهل، بس ممكن يبان معدني أو ملوّن عند الإعدادات المتطرّفة.
الـ convolution reverb بيمشي بطريقة تانية: بيقيس الـ impulse response الفعلية لأوضة حقيقية (بإنه يسجّل response الأوضة لطلقة مسدس صوت أو sine sweep) وبعدين يعمل convolution لأي signal صوت مع الـ response دي. والنتيجة صح رياضيًا — الـ signal الجافة بتبان كأنها اتسجّلت في الأوضة دي بالظبط. والتمن هو تكلفة الحساب: الـ convolution مع ذيل reverb مدته ثانيتين عند 48 كيلوهرتز محتاج convolution بـ 96,000 sample. والـ partitioned convolution (overlap-add أو overlap-save) بينزّل ده لسلسلة FFTs قصيرة ممكن تتنفّذ.
الـ dynamic range compression
الـ compressor بيصغّر الـ dynamic range بتاع الـ signal — الفرق بين أعلى لحظاتها وأهداها. قمم الطبول ممكن تبقى أعلى بـ 30 ديسيبل من مستواها المتوسط؛ ومن غير compression، يا القمم بتعمل clipping في الخرج يا المستوى المتوسط بيبقى واطي أوي إنك تسمعه بوضوح. والـ compressor بيوطّي الأجزاء العالية من الصوت أوتوماتيك، وده بيخلّيك تعلّي المستوى الكلي لحد ما الأجزاء الواطية تملا الـ mix.
الـ compressor بيتعرّف بخمس parameters: الـ threshold (المستوى اللي فوقه بيبدأ تقليل الـ gain)، والـ ratio (المستويات اللي فوق الـ threshold بتتقلّل قد إيه؛ نسبة 4:1 معناها 4 ديسيبل داخلين = 1 ديسيبل طالع فوق الـ threshold)، والـ attack time (تقليل الـ gain بيتطبّق بسرعة قد إيه بعد ما الـ signal تعدّي الـ threshold)، والـ release time (بيرجع بسرعة قد إيه)، والـ makeup gain (بيتطبّق بعد الـ compression عشان يرجّع المستوى الكلي).
تنفيذ الـ DSP للـ compressor فيه مرحلتين: الـ level detector (envelope follower بيتابع مستوى الـ RMS أو الـ peak بتاع الـ signal بـ time constants منفصلة للـ attack والـ release) والـ gain computer (اللي بيحوّل المستوى المرصود لكمية تقليل gain عن طريق قانون الـ threshold/الـ ratio). والـ gain المحسوب بيتحوّل لمقياس خطي وبيتضرب sample بـ sample في الصوت. والـ limiter ببساطة compressor نسبته عالية جدًا (10:1 أو ∞:1)، بيتستخدم كسقف صلب عشان يمنع أي sample إنها تعدّي 0 dBFS.
الـ limiter اللي الـ attack بتاعه صفر هيعمل clipping لأول sample من كل transient قبل ما الـ gain computer يلحق يتفاعل. والـ look-ahead بيحل ده بإنه بيعمل buffering للصوت 5 لـ 10 ملي ثانية لقدّام، فبيدّي الـ gain computer إنذار مسبق يبدأ يقلّل الـ gain قبل ما الـ transient يوصل. وده بيضيف latency ثابتة بس بيطلّع limiting شفاف من غير تشويه.
مؤثرات الـ delay والـ chorus
مؤثر الـ delay بيشغّل echo واحد أو أكتر للدخل على فترات زمنية ثابتة. وزمن الـ delay ومستوى الـ feedback (قد إيه من كل echo بيرجع للـ delay line) والـ mix بيحدّدوا الطابع — من slapback echo خفيف (100 لـ 150 ملي ثانية، من غير feedback) لحد تكرارات إيقاعية ورا بعض. وفي الـ DSP، الـ delay ببساطة circular buffer بيتقري من مكان متزحزح بالنسبة لراس الكتابة: output = buffer[write_ptr − delay_samples]. ومفيش حساب محتاجه غير قراية الـ buffer وضرب الـ feedback.
مؤثر الـ chorus بيعمل إحساس إن كذا آلة أو صوت بيعزفوا مع بعض، فبيخلّي الصوت أتقل. بيشتغل بإنه بيعمل modulation لزمن الـ delay بتاع delay line واحدة أو أكتر بـ low-frequency oscillator (LFO)، عادةً sine wave عند 0.5 لـ 5 هرتز بعمق 5 لـ 25 ملي ثانية. وتغيّر الـ pitch الخفيف اللي جاي من تغيّر زمن الـ delay بيقلّد عدم الانضباط الطبيعي بين العازفين في الفرقة. والقراية من مكان delay مش صحيح محتاجة interpolation — linear أو all-pass — عشان تتجنّب artifacts الـ aliasing اللي جاية من الـ fractional delay.
تجميع السلسلة الكاملة
ترتيب المراحل في الـ audio pipeline بيفرق في الصوت. والترتيب التقليدي لأغلب سيناريوهات الإنتاج هو:
الـ EQ قبل الـ compression بيضمن إن الـ compressor بيتفاعل مع الـ signal المتصلّحة نغميًا، مش مع artifacts أو frequencies فيها مشاكل. والـ reverb بعد الـ compression بيمنع الـ compressor إنه يعمل pumping على ذيل الـ reverb. والـ limiter الأخير بيشتغل كشبكة أمان، بيلقط أي inter-sample peaks بتعدّي 0 dBFS قبل التحويل من رقمي لتناظري.
كل مرحلة فيها control للـ wet/dry mix (من 0% dry لـ 100% wet). والـ parallel processing — تشغيل الـ signal الجافة والمؤثر في نفس الوقت وخلط الخرج — معيار للـ reverb والـ delay، وبيحافظ على الـ attack transients اللي كانت هتتمسح لو المؤثر لوحده. وشوية compressors بتدّي كمان وضع parallel compression (New York compression) لنفس السبب.
كل مرحلة بتضيف processing latency. الـ biquad EQ والـ compressor بيشتغلوا sample بـ sample، فبيضيفوا latency صفر أو sample واحدة. والـ convolution reverb المبني على الـ blocks بيضيف مدة block واحد (عادةً 512 لـ 2048 sample = من 10 لـ 43 ملي ثانية عند 48 كيلوهرتز). والـ look-ahead limiting بيضيف الـ window بتاعته (5 لـ 10 ملي ثانية). والـ latency الكلية للسلسلة لازم تفضل تحت حد الإدراك (أقل من 20 ملي ثانية للـ live monitoring) أو محطة الشغل تعوّضها في سياقات التسجيل.
- الـ parametric EQ سلسلة من الـ IIR biquad filters، كل واحد بخمس معاملات وتسع عمليات MAC لكل sample، وتقدر تنفّذ bands low shelf وpeaking bell وnotch وhigh shelf.
- الـ algorithmic reverb بيستخدم شبكات comb وall-pass filters عشان يعمل ذيول decay كثيفة؛ والـ convolution reverb بيعمل convolution للدخل مع الـ impulse response بتاعة أوضة حقيقية عشان واقعية صوتية مثالية بتكلفة حساب أعلى.
- الـ compressor بيتكوّن من level detector (envelope follower) وgain computer (قانون الـ threshold/الـ ratio)؛ والـ limiter هو compressor نسبته عالية مع look-ahead عشان يلقط الـ transients قبل الـ clipping.
- مؤثرات الـ delay بتستخدم circular buffers؛ والـ chorus بيعمل modulation لزمن الـ delay بـ LFO، وده محتاج fractional interpolation عشان يتجنّب الـ aliasing من مكان الـ delay المش صحيح.
- الترتيب الـ canonical للسلسلة — EQ ← compression ← reverb ← delay ← limiter — بيعكس منطق صوتي: الـ EQ بيصلّح النغمة قبل ما الـ compressor يتفاعل معاها، والـ limiter بيدّي سقف أمان نهائي.
- الـ latency بتتراكم على طول السلسلة؛ والـ convolution reverb والـ look-ahead limiting هما أكبر المساهمين ولازم يتعوّضوا في التطبيقات الـ live اللي الـ latency فيها لازم تبقى واطية.