عن المشروع

Audio Tools هي مكتبة C++ تعتمد على الترويسات فقط لمعالجة الصوت على المنصات المدمجة، وتُوزَّع كمكتبة Arduino وكمكتبة C++ عبر CMake، مع دعم PlatformIO وESP-IDF. يتبع تصميمها اصطلاحات Arduino: تبدأ المعالجة وتتوقف باستخدام begin() وend()، وتتدفق بيانات الصوت عبر تجريدات شبيهة بـ Stream. المفاهيم الأساسية - مصادر الصوت ومصارف الصوت: قراءة بيانات الصوت من المصادر وكتابتها إلى المصارف، على غرار نموذج Arduino 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. - تكامل مع سطح المكتب: يمكن بناء مخططات Arduino الصوتية لتشغيلها على Linux وWindows وmacOS. تعمل المكتبة كحلقة وصل تتيح لمكونات الصوت المختلفة والمكتبات الاختيارية العمل معًا. لكل stream كائن إعدادات خاص به يُمرَّر إلى begin()؛ ويوفر defaultConfig() نقطة بداية تعمل عادةً، وتُوثَّق معاملات الإعدادات في مرجع الفئات. يمكن غالبًا تكييف الأمثلة بتبديل فئات stream، مثل استبدال I2SStream بـ AnalogAudioStream للحصول على إخراج تماثلي بدلًا من رقمي. يعرض مثال بسيط بث ملف من ذاكرة الفلاش إلى I2S: يحتفظ MemoryStream ببيانات الصوت، ويُهيَّأ I2SStream في وضع TX مع معدل العينات والقنوات وعدد البتات لكل عينة، وينسخ كائن StreamCopy البيانات من memory stream إلى I2S stream داخل loop(). التسجيل مدمج، ويُضبط افتراضيًا على مستوى التحذير وإخراج Serial، ويمكن تغييره عبر AudioToolsLogger.begin(Serial, AudioToolsLogLevel::Debug). المستويات الصالحة هي Debug وInfo وWarning وError. يمكن تعطيل التسجيل بضبط USE_AUDIO_LOGGING على false في AudioConfig.h لتقليل استهلاك الذاكرة. التوثيق والدعم - يوفر wiki دروسًا ومقدمة وأمثلة وملاحظات حول المكتبات الاختيارية وتشغيل المخططات على سطح المكتب. - توثيق الفئات المُولَّد منظَّم حسب الموضوع وأبجديًا. - يطلب المشروع من المستخدمين قراءة التوثيق والبحث في القضايا والمناقشات الموجودة قبل النشر؛ القضايا مخصصة للأخطاء، بينما تنتمي الأسئلة الأخرى إلى المناقشات. يجب أن تتضمن التقارير السيناريو أو المخطط، والهدف، والعتاد، وإصدارات البرمجيات والمكتبات، والمشكلة الدقيقة. التثبيت - نزّل المكتبة كملف zip واستخدم Library -> zip library في Arduino IDE، أو استنسخ المستودع إلى مجلد مكتبات Arduino. يُوصى باستخدام Git لتسهيل التحديثات عبر git pull. تتوفر معلومات المنصات الأخرى في wiki. المشروع مرخَّص بموجب GPL v3 ويوفر روابط رعاية اختيارية.