العودة إلى الدليل

فصل من الدليل · ٣

التصنيع والتوليد

كيف يُصنع المؤثر من الكود، وكيف يُعاد بالبصمة نفسها.

المؤثر كود يولّد الصوت من الصفر بلغة بايثون (Python) ومكتبتي numpy وscipy، ثم يُطبَّع ويُضغط بأداة ffmpeg.

مكونات بساط عجم ٦٤ أربعة: وسادة بتركيب إضافي، ونقرات وترية بخوارزمية كاربلس-سترونغ (Karplus-Strong)، وأجراس بتوافقيات غير منتظمة، وصدى قاعة صناعي طوله ٢٫٦ ثانية.

البذرة العشوائية ثابتة، فيخرج المؤثر نفسه بالبصمة نفسها في كل تشغيل للخط الزمني نفسه.

أمر واحد في المولّد يعيد كل شيء: يولّد، ويقيس الشدة، ويطبّع تطبيعاً خطياً بمرورين على −١٨، ويصنع ملف الاستماع، ثم يطابق ثلاث بصمات ويطبع لكل ملف «مطابق» أو «مختلف».

درس من المولّد ١٫٠٫٠: أمر التطبيع فيه كان بمرور واحد، فيخرج ١٩٢ كيلوهرتز بكسب متغير ولا يطابق النسخة الأم، وأمر التوليد فيه ينتهي بخطأ. صُحّحا في المولّد ١٫٠٫١، وطابقت البصمات الثلاث من نسخة مفكوكة منه.

الأوامر

TL_PATH=timeline.json BED_OUT=out/bed_raw.wav BED_META=out/bed_meta.json python3 music.py
ffmpeg -i out/bed_raw.wav -af loudnorm=I=-18:TP=-1.5:LRA=11:print_format=json -f null -
ffmpeg -i out/bed_raw.wav -af "loudnorm=...:linear=true,aresample=48000" -c:a pcm_s24le master.wav
ffmpeg -i master.wav -c:a libmp3lame -b:a 320k listen.mp3

# or all of it at once:
python3 master.py