قدرت و کارایی عالی خط فرمان در گنو/لینوکس (2)

خب در این پست هم بذارید یه برنامهء مالتی مدیای دیگه رو معرفی کنم! مثل اینکه افتادیم توی بحث مالتی مدیای خط فرمان!! بهرحال کاربرد این برنامه در بخشهای دیگه هم میتونه باشه و ترجیح میدم بعنوان توالی منطقی و مکمل بحث پیشین مطرحش کنم.

این برنامه اسمش هست SoX و البته در خط فرمان با sox باید اجراش کنید (نام فایلها در سیستم عاملهای یونیکسی حساس به کوچکی و بزرگی حروف هست).

این برنامه یک تبدیل کننده، ویرایشگر، و تولید کننده صدا و فایلهای صوتی هست. واقعا برنامهء بدردبخوری هست و میشه گفت قابلیتهای مالتی مدیای شما رو در خط فرمان کاملتر میکنه بنوعی.

راستی دوستان توجه کنن که تمام این برنامه هایی که داریم میگیم ممکنه روی هر توزیعی بطور پیشفرض نصب نباشن و حتی روی سی دی های اون توزیع هم نباشن. پس ممکنه نیاز به نصب/دانلود دستی باشه. البته این برنامه روی توزیع فدورای بنده هست و فکر میکنم یکی از برنامه های نسبتا استاندارد در توزیعهای لینوکس باشه. ولی بعضی توزیعها یکسری برنامه ها رو بخاطر کاهش حجم توزیع حذف میکنن.

sox – Sound eXchange : universal sound sample translator

با این برنامه میشه یک سری افکت جالب توجه و بدردبخور رو به صوت/موسیقی اضافه کرد.

SoX is a command line program that can convert most popular audio files to most other popular audio file formats. It can optionally change the audio sample data type and apply one or more sound effects to the file during this translation.

البته کار کردن با این برنامه در حالت حرفه ایش نیاز به خوندن منوالش داره؛ ولی خیلی کارهای ساده و متداول رو میتونید بسادگی انجام بدید.

بنده تنها مواردی رو که بعنوان یک کاربر غیرمتخصص در صوت و موسیقی، و برای کارهای عادی استفاده/تست کردم میگم؛ افکتها و گزینه های مختلف این برنامه زیاد هستن و اغلب تخصصی هستن و شرح و توضیحشون نیاز به تخصص لازمه داره. مثلا فیلتر بالاگذر چی هست، بعضی افکتها که اسمهای تخصصی دارن دقیقا چی هستن و غیره. بنابراین بنده وارد این جزییات نمیشم و مطلب رو خلاصه میکنم. برای آشنایی کاملتر به منوال مراجعه کنید. البته بعضی مواردی رو هم که متداول هست و شخصا میفهمم میگم.

با این برنامه میتونید بطور مثال sampling rate فایلها رو تغییر بدید؛ فکر کنم بدرد تغییر حجم و کیفیت میخوره.
میشه یک فایل رو چند بار تکرار کرد. مثلا میخواید یک صدا یا آهنگی که در فایلی هست بصورت دوبار یا هرچند بار پشت سرهم ضبط بشه. بنظرم این خیلی جاها میتونه بدرد بخوره! مثلا شما میخواید ساعتی توسط یکسری بوق پشت سرهم، مثل این ساعتهای قدیمی که ساعت رو با تعداد صدای ناقوس اعلام میکردن، اعلام بشه. خب اینکار رو براتون براحتی انجام میده! البته این فقط یک مثاله.
توجه کنید که صدای تولید شده میتونه در یک فایل ذخیره نشه و بلکه مستقیما پخش بشه! این قابلیت میتونه در خط فرمان و جاهای دیگه خیلی بدرد بخوره؛ یعنی شما میتونید صداهایی رو بصورت دینامیک و On the fly تولید کنید.
افکت reverb اگر آشنا باشید.
افکت vibro که ظاهرا معروف هست، ولی بنده نمیدونم چیه.
افکت reverse؛ یعنی فایل شما انگار از انتها به ابتدا پخش بشه! مثل یک نوار کاست که با دور برعکس پخش بشه.
برداشتن سکوت (صدایی با شدت کمتر از یک حدی که تعریف میکنید) از ابتدا یا انتهای فایلها.
افزایش یا کاهش سرعت (مثل پخش کردن یک نوار کاست با سرعت بالاتر یا پایینتر موتور).
جابجا کردن کانالهای صدا.
ساخت صدا (درمورد این امکان جالب و مفید بعدا صحبت میکنیم).
حذف قطعه/مدت زمان معینی از ابتدا یا انتهای فایل.
تغییر شدت/ولوم صدا.
افکت fade.
انواع فیلترهای مختلف (بالاگذر، پایین گذر، …؟).
… (افکتهای متعدد دیگه)

ضمنا قابلیت میکس (مخلوط) کردن چند فایل صوتی با هم، توسط برنامهء soxmix وجود داره. البته بعضی مشخصات فایلهای ورودی در این حالت باید باهم یکی باشه؛ مثلا sample rate و data type اونها.

مثالها:

sox -t nul /dev/zero -t alsa default synth 2 square 2000-100

این فرمان صوتی با فرکانس ۲۰۰۰ هرتز رو تولید میکنه که در مدت ۲ ثانیه به ۱۰۰ هرتز میرسه. شکل موج صوت از نوع مربعی هست؛ مواظب باشید که به این علت صدای بلند و کاملا تیزی رو تولید میکنه! ولوم اسپیکرهای خودتون رو کم کنید که یک وقت از اهل خانواده بد و بیراه دریافت نکنید!!

sox -t nul /dev/zero -t alsa default synth 1 square 500-3000 repeat 2

صوتی با فرکانس از ۵۰۰ تا ۳۰۰۰ در مدت یک ثانیه؛ این جریان دوبار هم تکرار میشه و بنابراین ما سه تا از این صوت یک ثانیه ای رو خواهیم داشت.

sox -t nul /dev/zero -t alsa default synth 2 square 350

صوتی با فرکانس ۳۵۰ که ۲ ثانیه پخش میشه.
جلوی synth زمان مورد نظر به ثانیه رو بدید یا بصورت hh:mm:ss.frac.

sox file1.wav file2.ogg

فایل شمارهء یک با فرمت wav در فایل شمارهء دو با فرمت ogg ذخیره میشه.
تبدیل فرمتها به همدیگه میتونه به همین سادگی باشه و برنامه از روی پسوندهایی که میشناسه فرمت مورد نظر رو شناسایی میکنه. اگر پسوند کارگر نشه فکر میکنم اقدام به تلاش برای شناسایی از طریق هدرهای فایل بشه. اگر موفق نباشه باید پارامترهای نوع فایل رو در خط فرمان به برنامه بدید.
ضمنا بدیهی هست که برای تبدیل، برای مشخصات مختلف فایل (مثل sample rate و data type) از مقادیر فایل اول، مقادیر پیش فرض و انتخاب خودکار استفاده میشه، مگر اینکه شما مقدارهای دیگری رو در خط فرمان صریحا مشخص کنید.
ogg فرمتی هست که میشه اون رو جایگزین مناسبی برای فرمت انحصاری mp3 دونست. فشرده سازی و کیفیتی مشابه یا نزدیک (گویا کمی بیشتر) ام پی تری داره.

شما میتونید با این برنامه صدا رو هم از دستگاههای ورودی ضبط کنید. اینکار با فرمان rec همراه پارامترهای لازمش براحتی بیشتری انجام میشه که دیگه وارد جزییات نمیشم چون تست نکردم و بقدر کافی بررسی نکردم ساختارش رو.
البته ضبط صدا با برنامه های خط فرمان دیگری (arecord) هم ممکن هست که احتمالا باید روی بیشتر توزیعها پیدا بشن.

راستی اگر اون فرمانهای ساخت صدای بالا روی سیستم شما کار نکرد، بجای -t alsa default یک فایل خروجی بدید، و بعدش فرمان پخش اون فایل رو میتونید بدید. مثلا:

sox ~/.add/oo.ogg out.wav synth 1 square 100-350; play out.wav

نکته اینکه، فرمان play هم که در اینجا آمده، درواقع شل اسکریپتی هست که sox رو بکار میگیره. بنابراین تمام فرمتهای اون رو پشتیبانی میکنه؛ وگرنه با فرمان aplay میتونید فایلهای wav رو پخش کنید.

soxmix music.wav voice.wav mixed.wav

میکس کردن با استفاده از soxmix. از خط فرمان واضح و مبرهن است که فایل موسیقی و فایل صدای آدمیزاد ! باهم میکس/مخلوط شده و در فایل آخر، یعنی mixed.wav، ذخیره میشن.
هرچندتا فایل رو که بخواید میتونید با این روش میکس کنید. آخرین فایل، فایل خروجی و مخلوط تمام فایلها هست.
ضمنا ظاهرا موقع میکس کردن میتونید افکتها و تنظیمات مختلفی رو برای هر فایل بطور جداگانه اعمال کنید!
بهرحال بنده وارد جزییات اینها نمیشم و بیشتر موضوع درمورد برنامه sox هست که باهاش بیشتر کار و بسیاری گزینه هاش رو تست کردم.

این برنامه کارهای بیشتری میکنه و هرکدوم از این کارها هم با گزینه ها و خصوصیات مختلفی قابل انجام هستن (فرضا موج مثلثی، سینوسی، … و حتی انواعی از noise !! بجای مربعی در افکت synth – حذف نویز …).

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

*

شما می‌توانید از این دستورات HTML استفاده کنید: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>