इस प्रोजेक्ट के बारे में
Audio Tools एम्बेडेड प्लेटफ़ॉर्म पर ऑडियो प्रोसेसिंग के लिए एक हेडर-ओनली C++ लाइब्रेरी है, जिसे Arduino लाइब्रेरी और CMake C++ लाइब्रेरी के रूप में वितरित किया जाता है, साथ ही PlatformIO और ESP-IDF के लिए समर्थन है। इसका डिज़ाइन Arduino परंपराओं का पालन करता है: प्रोसेसिंग begin() और end() से शुरू और बंद की जाती है, और ऑडियो डेटा Stream-जैसे अमूर्तनों के माध्यम से प्रवाहित होता है।
मुख्य अवधारणाएँ
- Audio Sources और Audio Sinks: स्रोतों से ऑडियो डेटा पढ़ें और इसे सिंक में लिखें, जो परिचित Arduino Stream मॉडल को दर्शाता है।
- MP3, AAC, WAV और FLAC जैसे प्रारूपों के लिए Encoders और Decoders, जिनका उपयोग EncodedAudioStream के माध्यम से किया जाता है।
- प्लेबैक परिदृश्यों के लिए AudioPlayer और VideoPlayer क्लास।
- USB ऑडियो इनपुट और आउटपुट, जिसमें USB Audio Class 2.0 शामिल है।
- विभिन्न DSP लाइब्रेरीज़ के साथ एकीकरण।
- वायर्ड या वायरलेस लिंक पर ऑडियो का संचार।
- GeneratedSoundStream के साथ उपयोग किए जाने वाले ध्वनि जनरेटर (उदाहरण के लिए साइन टोन)।
- AudioEffectStream के माध्यम से Boost, Distortion, Echo और Reverb जैसे ध्वनि प्रभाव।
- एक 3-बैंड इक्वलाइज़र।
- ConverterStream के लिए कन्वर्टर और FilteredStream के लिए फ़िल्टर।
- संगीत नोट्स उनकी आवृत्तियों के साथ।
- QueueStream के लिए बफ़र कार्यान्वयन।
- सटीक समय पर ऑडियो सैंपलिंग के लिए एक दोहराव वाला टाइमर, जिसका उपयोग TimerCallbackAudioStream के साथ किया जाता है।
- डेस्कटॉप एकीकरण: Arduino ऑडियो स्केच को Linux, Windows और macOS पर चलाने के लिए बनाया जा सकता है।
लाइब्रेरी एक गोंद के रूप में कार्य करती है जो विभिन्न ऑडियो घटकों और वैकल्पिक लाइब्रेरीज़ को एक साथ काम करने देती है। प्रत्येक स्ट्रीम का अपना कॉन्फ़िगरेशन ऑब्जेक्ट होता है जो begin() को पास किया जाता है; defaultConfig() एक शुरुआती बिंदु प्रदान करता है जो आमतौर पर काम करता है, और कॉन्फ़िगरेशन पैरामीटर क्लास संदर्भ में प्रलेखित हैं। उदाहरणों को अक्सर स्ट्रीम क्लास बदलकर अनुकूलित किया जा सकता है, उदाहरण के लिए डिजिटल के बजाय एनालॉग आउटपुट पाने के लिए I2SStream को AnalogAudioStream से बदलना।
एक सरल उदाहरण फ्लैश मेमोरी से I2S तक एक फ़ाइल स्ट्रीम करता है: एक MemoryStream ऑडियो डेटा रखता है, एक I2SStream को TX मोड में सैंपल रेट, चैनल और बिट्स प्रति सैंपल के साथ कॉन्फ़िगर किया जाता है, और एक StreamCopy ऑब्जेक्ट loop() के अंदर मेमोरी स्ट्रीम से I2S स्ट्रीम में डेटा कॉपी करता है।
लॉगिंग अंतर्निहित है, डिफ़ॉल्ट रूप से चेतावनी स्तर और Serial आउटपुट पर, और इसे AudioToolsLogger.begin(Serial, AudioToolsLogLevel::Debug) से बदला जा सकता है। मान्य स्तर Debug, Info, Warning और Error हैं। मेमोरी उपयोग कम करने के लिए AudioConfig.h में USE_AUDIO_LOGGING को false पर सेट करके लॉगिंग अक्षम की जा सकती है।
दस्तावेज़ीकरण और समर्थन
- एक विकी ट्यूटोरियल, एक परिचय, उदाहरण, और वैकल्पिक लाइब्रेरीज़ तथा डेस्कटॉप पर स्केच चलाने पर नोट्स प्रदान करता है।
- जनरेट किया गया क्लास दस्तावेज़ीकरण विषय के अनुसार और वर्णानुक्रम में व्यवस्थित है।
- परियोजना उपयोगकर्ताओं से पोस्ट करने से पहले दस्तावेज़ीकरण पढ़ने और मौजूदा मुद्दों तथा चर्चाओं को खोजने के लिए कहती है; मुद्दे बग के लिए हैं, जबकि अन्य प्रश्न चर्चाओं में आते हैं। रिपोर्ट में परिदृश्य या स्केच, लक्ष्य, हार्डवेयर, सॉफ़्टवेयर और लाइब्रेरी संस्करण, और सटीक समस्या शामिल होनी चाहिए।
स्थापना
- लाइब्रेरी को zip के रूप में डाउनलोड करें और Arduino IDE में Library -> zip library का उपयोग करें, या रिपॉज़िटरी को Arduino libraries फ़ोल्डर में क्लोन करें। git pull के माध्यम से आसान अपडेट के लिए Git की सिफारिश की जाती है। अन्य प्लेटफ़ॉर्म के लिए जानकारी विकी में उपलब्ध है।
परियोजना GPL v3 के अंतर्गत लाइसेंस प्राप्त है और वैकल्पिक प्रायोजन लिंक प्रदान करती है।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.