RPiでpure data
投稿日: Jul 26, 2017 3:57:24 PM
思いのほかいいのですこれが。
winで使ってたときはADCのレイテンシーは大きいわ、すぐプチプチいうわでバッファ大きくしてさらにレイテンシー大きくなって。リアルタイムじゃ使えない!意味わかんない! みたいなかんじだったのだけど。
RPiで使うとシーケンサから飛んできたmidiデータをpdで加工してjackに投げて音源に渡し、音源の出漁をADCで入力してエフェクトをかけてDACから出力みたいなことをしても目立った遅れはないです。
pdはだめだって、残念な子だってずっと思っていたんですがいや、これは。使える。
ということでpd本腰いれます。voiceSynthとかもプロトタイピングのつもりだったんだけども、これだけ使えるならこういうものだって作るのもありかも。
現状問題になっているのがADCまわり。要するにAudio I/F。
ベリンガーのミキサータイプは外部入力がそのままメインアウトにつながっちゃってるので入力にたいしてエフェクトかけてどうのとかいう処理がやり辛い上にメイン出力をループバックすると無限ループしちゃうので校長先生の挨拶キーーーンみたいなことになっちゃいますので。事実上使えません。
で、RPiだと安心C-Mediaですがこれは入力がモノラルなので。少し悲しい。 使えなくはない。
pdのコミュニティみてたらベリンガーのUCA222が使えるとある。
安いしステレオ入力だし素直なオーディオI/Fのはずなのでこれチェック。
次に、midi音源的なハードウェア(ポケミクとかポケミクとか)をつないだ場合これはこれでグランドループするので綺麗に音が取りこめません。ノイズの嵐です。 アイソレータを使えばグランドループから抜けられるのでアイソレータ。
これは秋月とかでST71を二つほど買えば解決するので近いうちに何とかしましょう。
さらに。
linuxには真っ当なmidiシーケンサがない。
一応seq24というのがそこそこ使えるけどすごく使いやすいわけじゃない。
あと、pdでmidiというのはやりやすいわけじゃない。
どっちかというとOSC(Open Sound Control)とかのほうがより良いし。
かといってそういう良いソフトがあるわけじゃない。
ので、作ることにした。
開発環境はC++、OSCのライブラリとしてoscPack、スケジューリングにはWiringPiのスレッド機能。
んなところ? それぞれのテストは終わってる。あとは組み立てるわけだけどめんどいので後回し。
という感じ。