ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Pythonコミュのpythonによるオーディオプログラミング

  • mixiチェック
  • このエントリーをはてなブックマークに追加
宣伝トピ立て失礼します。

numpy 用のPortAudio (v19) バインディングを公開しました。win32限定です。

同じPortAudio のpythonバインディングとしてpyAudioがありますが、pyAudioはオーディオプログラミングに使用するには不便な点が大きく分けて二つありました。一つ目はポーリングベースドである点、二つ目はnumpyとの親和性が低い(数学関数適用のためにはワンクッション処理が入る)という点です。

そのため、python でコールバックをハンドリングできること、入出力オーディオバッファを numpy array として扱えるようにして numpy (scipy や pylab も)とオーディオインターフェースをシームレスに接続することを念頭に置いて設計しました。
python でコールバックを書けるので、リアルタイムオーディオ操作したい場合は結構役に立ちます。

akit は、下記URLからダウンロードできます。

http://moco.sakura.ne.jp/python/portaudio-python-binding-akit-release/

使ってみた感想ですが、psyco、mklベースドなsicpyを併用すれば、ネイティブレベルのオーディオフィルタリングが可能なんじゃないかと思います。

実際、Delay and Sum を実装してみたら44.1kHz フレーム長 4096でも音飛びせずにいけました。
Cで書くには敷居が高かったオーディオフィルタリング処理も、pythonで楽に、かつ素早く実装できるので便利なんじゃないかと思います。

用途としては、pythonで実装していたオーディオフィルタリングバッチ処理を、リアルタイム処理に書き換える際のテスト実装に使って頂ければ・・・といった感じでしょうか。

現在は詰めが甘いんで0.0.1というバージョンですが、そのうちフィードバックがかかればもちっとしっかり作ろうかと思います。
あと、ドキュメントは正式なものは用意していないので、サイトの説明文とPortAudioのドキュメントとhelpに従って下さい。

ライセンスは修正BSDでお願いします。

宜しくお願い致します。

コメント(0)

mixiユーザー
ログインしてコメントしよう!

Python 更新情報

Pythonのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング