aiXander/Realtime_PyAudio_FFT
Realtime audio analysis in Python to extract audio features from streaming audio and send them over OSC to any client app.
解決する課題
このプロジェクトは、ライブオーディオ入力(マイクやサウンドカードなど)とクリエイティブなアプリケーションとの間の低遅延なブリッジを提供します。ビートトリガー、周波数帯域、テンポといった「すぐに使える」処理済みオーディオデータを、VJソフトウェア、ゲームエンジン、カスタムスクリプトなどのツールに、複雑な信号処理コードを記述することなく取り込めるようにします。
仕組み
サーバーは生のオーディオをキャプチャし、NumPyとSciPyを使用して最適化されたワーカースレッドで、フィルタリング、FFT解析、オンセット検出といった負荷の高い信号処理をすべて実行します。その後、以下の2つの方法でデータをブロードキャストします。
- OSC (Open Sound Control): リアルタイムパフォーマンスツール向けの高速・低遅延ストリーム。
- WebSockets: ブラウザベースのUIから設定(帯域幅や感度など)を制御しながら、データ更新を受信できる双方向チャネル。
対象ユーザー
ビジュアルやゲームロジックをライブオーディオに同期させる必要があるクリエイティブコーダー、VJ、開発者向けに設計されています。Raspberry Piのような低電力ハードウェア上でも高速に動作する「プラグアンドプレイ」のオーディオ特徴量ソースを求めるTouchDesigner、Max/MSP、Unity、またはp5.jsのユーザーに最適です。
ハイライト
- 低遅延: エンドツーエンドで8〜15msの遅延を目標としています。
- すぐに使える特徴量: 自動スケーリングされた帯域エネルギー(低/中/高)、キック/スネア/ハイハット用のオンセットトリガー、および計算されたBPMを出力します。
- ブラウザベースの制御: フィルターの調整、プリセットの保存、設定の切り替えをリアルタイムで行えるUIが含まれています。
- 効率的: アロケーションフリーのコールバックとベクトル化されたC最適化パスを使用し、高負荷時でもオーディオストリームの安定性を維持します。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト