まず始めに現在?のMk Iの構成は以下の通り。
Raspberry 3にGUIもPuredataの音声処理もやらせています。
【メリット】
PuredataパッチがWindows PCで作成したものをそのまま走らせるので
パッチ入れ替えなどメンテナンス・運用が容易
【デメリット】
X Window含めたGUIの処理も音声処理もRaspberry Pi3単独でやるので
レイテンシーが発生。
さて、Mk Iの物理構成でGUI有りと無しでパルス撃つ簡易試験を実施しました。
いつものこのパッチでサイン波を送り込みます。
結果はこちら。(GUIありは前回の結果そのまま転載しています。)
設定
Samplerate:44100
Block Size:64
Delay:11ms
レイテンシー:22ms
検証ではX起動状態でPuredataを使うとレイテンシが増加するので
次はX Windowは切って、コンソールでpd -nogui test.pdで同様の実験をします。
設定
Samplerate:44100
Block Size:64
Delay:6ms
レイテンシー:15ms
ちょっと縮まりました。
これ以上はUSBオーディオの性能と思われます。
さて、話は戻りましてMk IIですが、
相変わらずGUI操作の利便性は捨てきれなかったので
以下の図の構成を現在作成中です。
我が家で余っているRaspberry Pi 1をGUI処理・タッチパネル操作のみの仕事をさせ、
LANケーブルで繋いだRaspberry Pi 3はNO-GUIで音声処理をさせます。
まだ音出しできる状態ではありませんが、
Pi1からPi3へのnetsendとnetreceiveは成功しました。
Pi1のCPU負荷が100%に跳ね上がりますが、
GUIの動作やOSCもサクサク動いているようです。
ちなみにこのやり方、
optimize — Pd Community Site - Pure Data
のThe poor man's multithreading!
のあたりにOSC使っちゃえよ!とあります。
まだたくさんやらないといけない事がありますが、
まだRaspberry Piでは見かけない構成なので引き続き細々とやりたいと思います。
[以下、やりたいこと備忘録]
・イーサネットコンバータ化(現状LAN繋ぐと外部のWindowsPCからsshできない)
--->使うWiーFiアダプタでうまくブリッジ化できないかもしれない。
raspberry pi3側をGUI(イーサネットコンバータ化)にしてraspberry pi2側をCUIにしたほうがいいかも。
--->使うWiーFiアダプタでうまくブリッジ化できないかもしれない。
raspberry pi3側をGUI(イーサネットコンバータ化)にしてraspberry pi2側をCUIにしたほうがいいかも。
・Raspberry Pi3側のreal-timeカーネル導入(1回失敗したが再チャレンジしたい)
--->余り効果なし。場合によっては不安定になる。
--->余り効果なし。場合によっては不安定になる。
・ケース作り(Mk Iのケースでは既に収まらない!サイズほぼ倍になるかな?)
--->Arduino Megaのコンパチでスイッチやロータリーエンコーダーをなんとか使えるようになりました。
・USBオーディオI/O探し(予算と候補があれば。こっちの記事ではトラブってますがzoomのU-44をLinux mintで運用している模様)
ーーー>U-44でもUSBオーディオとALSAではレイテンシーに限界があります。
そこで、紹介してもらいましたWM8731のサウンドカードを使います。
レイテンシーは速く良好です。しかしraspberry piから電源を取るとノイズを拾う模様。
そこでサウンドカードの電源3.3Vを個別に用意したのですが、何故かサウンドカードを認識しません。う~ん。。
・USBオーディオI/O探し(予算と候補があれば。こっちの記事ではトラブってますがzoomのU-44をLinux mintで運用している模様)
ーーー>U-44でもUSBオーディオとALSAではレイテンシーに限界があります。
そこで、紹介してもらいましたWM8731のサウンドカードを使います。
レイテンシーは速く良好です。しかしraspberry piから電源を取るとノイズを拾う模様。
そこでサウンドカードの電源3.3Vを個別に用意したのですが、何故かサウンドカードを認識しません。う~ん。。
0 件のコメント:
コメントを投稿