منصوبے کے بارے میں
آڈیو ٹولز ایک ہیڈر-اونلی C++ لائبریری ہے جو ایمبیڈڈ پلیٹ فارمز پر آڈیو پروسیسنگ کے لیے استعمال ہوتی ہے، جو آرڈوینو لائبریری اور CMake C++ لائبریری کے طور پر تقسیم کی جاتی ہے، اور پلیٹ فارم آئی او اور ای ایس پی-آئی ڈی ایف کی معاونت کرتی ہے۔ اس کا ڈیزائن آرڈوینو روایات کی پیروی کرتا ہے: پروسیسنگ begin() اور end() کے ساتھ شروع اور بند کی جاتی ہے، اور آڈیو ڈیٹا Stream جیسی تجریدی شکلوں کے ذریعے بہتا ہے۔
بنیادی تصورات
- آڈیو سورسز اور آڈیو سنکس: سورسز سے آڈیو ڈیٹا پڑھیں اور اسے سنکس میں لکھیں، جو مانوس آرڈوینو Stream ماڈل کی عکاسی کرتا ہے۔
- MP3، AAC، WAV اور FLAC جیسی فارمیٹس کے لیے انکوڈرز اور ڈیکوڈرز، جو EncodedAudioStream کے ذریعے استعمال ہوتے ہیں۔
- پلے بیک منظرناموں کے لیے AudioPlayer اور VideoPlayer کلاسز۔
- USB آڈیو ان پٹ اور آؤٹ پٹ، بشمول USB Audio Class 2.0۔
- مختلف DSP لائبریریوں کے ساتھ انٹیگریشن۔
- وائرڈ یا وائرلیس لنکس پر آڈیو کی منتقلی۔
- ساؤنڈ جنریٹرز (مثلاً سائن ٹونز) جو GeneratedSoundStream کے ساتھ استعمال ہوتے ہیں۔
- ساؤنڈ ایفیکٹس جیسے Boost، Distortion، Echo اور Reverb، AudioEffectStream کے ذریعے۔
- ایک 3-بینڈ ایکویلائزر۔
- ConverterStream کے لیے کنورٹرز اور FilteredStream کے لیے فلٹرز۔
- موسیقی کے نوٹس ان کی فریکوئنسیوں کے ساتھ۔
- QueueStream کے لیے بفر امپلیمنٹیشنز۔
- عین اوقات میں آڈیو سیمپلنگ کے لیے ایک دہرانے والا ٹائمر، جو TimerCallbackAudioStream کے ساتھ استعمال ہوتا ہے۔
- ڈیسک ٹاپ انٹیگریشن: آرڈوینو آڈیو اسکیچز کو لینکس، ونڈوز اور میک او ایس پر چلانے کے لیے بنایا جا سکتا ہے۔
یہ لائبریری ایک گلو کا کردار ادا کرتی ہے جو مختلف آڈیو اجزاء اور اختیاری لائبریریوں کو ایک ساتھ کام کرنے دیتی ہے۔ ہر اسٹریم کا اپنا کنفیگریشن آبجیکٹ ہوتا ہے جو begin() کو دیا جاتا ہے؛ defaultConfig() ایک نقطہ آغاز فراہم کرتا ہے جو عام طور پر کام کرتا ہے، اور کنفیگریشن پیرامیٹرز کلاس ریفرنس میں دستاویزی ہیں۔ مثالوں کو اکثر اسٹریم کلاسز بدل کر ڈھالا جا سکتا ہے، مثلاً ڈیجیٹل کے بجائے اینالاگ آؤٹ پٹ حاصل کرنے کے لیے I2SStream کی جگہ AnalogAudioStream لگا کر۔
ایک سادہ مثال فلیش میموری سے فائل کو I2S پر اسٹریم کرتی ہے: ایک MemoryStream آڈیو ڈیٹا رکھتا ہے، ایک I2SStream کو TX موڈ میں سیمپل ریٹ، چینلز اور بٹس فی سیمپل کے ساتھ کنفیگر کیا جاتا ہے، اور ایک StreamCopy آبجیکٹ loop() کے اندر میموری اسٹریم سے I2S اسٹریم میں ڈیٹا کاپی کرتا ہے۔
لاگنگ بلٹ اِن ہے، ڈیفالٹ طور پر وارننگ لیول اور سیریل آؤٹ پٹ پر، اور اسے AudioToolsLogger.begin(Serial, AudioToolsLogLevel::Debug) کے ذریعے تبدیل کیا جا سکتا ہے۔ درست لیولز Debug، Info، Warning اور Error ہیں۔ میموری کے استعمال کو کم کرنے کے لیے AudioConfig.h میں USE_AUDIO_LOGGING کو false پر سیٹ کر کے لاگنگ غیر فعال کی جا سکتی ہے۔
دستاویزات اور معاونت
- ایک ویکی ٹیوٹوریلز، ایک تعارف، مثالیں، اور اختیاری لائبریریوں اور ڈیسک ٹاپ پر اسکیچز چلانے کے بارے میں نوٹس فراہم کرتی ہے۔
- تیار شدہ کلاس دستاویزات موضوع کے لحاظ سے اور حروف تہجی کے مطابق ترتیب دی گئی ہیں۔
- پروجیکٹ صارفین سے پوسٹ کرنے سے پہلے دستاویزات پڑھنے اور موجودہ ایشوز اور مباحثوں کو تلاش کرنے کی درخواست کرتا ہے؛ ایشوز کا مقصد بگز ہیں، جبکہ دیگر سوالات مباحثوں میں رکھے جانے چاہئیں۔ رپورٹس میں منظرنامہ یا اسکیچ، مقصد، ہارڈویئر، سافٹ ویئر اور لائبریری ورژنز، اور عین مسئلہ شامل ہونا چاہیے۔
تنصیب
- لائبریری کو زپ کے طور پر ڈاؤن لوڈ کریں اور آرڈوینو IDE میں Library -> zip library استعمال کریں، یا ریپوزٹری کو آرڈوینو لائبریریز فولڈر میں کلون کریں۔ git pull کے ذریعے آسان اپ ڈیٹس کے لیے Git کی سفارش کی جاتی ہے۔ دیگر پلیٹ فارمز کی معلومات ویکی میں دستیاب ہیں۔
پروجیکٹ GPL v3 کے تحت لائسنس یافتہ ہے اور اختیاری اسپانسرشپ لنکس پیش کرتا ہے۔
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.