このプロジェクトについて
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 Audio Class 2.0を含むUSBオーディオ入力および出力。
- 各種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に設定すると、メモリ使用量を削減するためにロギングを無効化できます。
ドキュメントとサポート
- wikiでは、チュートリアル、入門、例、およびオプションのライブラリやデスクトップ上でのスケッチ実行に関する注意事項を提供しています。
- 生成されたクラスドキュメントは、トピック別およびアルファベット順に整理されています。
- プロジェクトは、投稿前にドキュメントを読み、既存のissueやdiscussionを検索することをユーザーに求めています。issueはバグを対象とし、その他の質問はdiscussionに属します。報告には、シナリオまたはスケッチ、目標、ハードウェア、ソフトウェアとライブラリのバージョン、および正確な問題を含めるべきです。
インストール
- ライブラリをzipとしてダウンロードし、Arduino IDEでLibrary -> zip libraryを使用するか、リポジトリをArduinoのlibrariesフォルダにクローンします。git pullによる簡単な更新のためにGitが推奨されます。他のプラットフォーム向けの情報はwikiで入手できます。
このプロジェクトはGPL v3の下でライセンスされており、オプションのスポンサーシップリンクを提供しています。
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.