見出し画像

puredata×オーディオインターフェイス×raspberry piと遅延の検証

はじめに

エフェクターなど、リアルタイムに音を処理する際に気になるのが遅延です。
しばしば、遅延が故に、ディレイエフェクターをかけたように聴こえてしまうことがあります。
ちなみに遅延のことを、レイテンシとよく言われます。
Windowsではかなり遅延があるため、Windowsを用いたエフェクターを作成することは困難と言えます。また、エフェクターのためにPCを持ち運ぶことは難しく、より小型なコンピュータが求められます。
そこで、ubuntu OSをインストールしたraspberry piを用いてpuredataのプログラムを動かし、オーディオインターフェイスを接続して使おうと考えました。
実際に上手く使えるのか試してみました!

画像6

使用機材

・コンピュータ:raspberry pi 4/RAM:8GMモデル
シングルボードコンピュータながらCPUがそこそこよく、RAMも8GBあるので、スマートフォン並みの性能と言えます。puredataは比較的軽い処理なので、充分にプログラムを走らせられます。しかしながら、CPUがARMアーキテクチャ故に、対応しているアプリケーションやライブラリが少ない傾向にあります。アプリケーションで言うと、Processing IDEやSpotifyが動きませんでした。puredataのライブラリも、本来はメニューからインストールできるものの、ARMでは対応して無いライブラリがあるようで、一部ライブラリはソースコードをダウンロードして、コンパイルしました。
・オーディオインターフェイス:M-AUDIO AIR192|6
低遅延のオーディオインターフェイスです。入力・出力ともに2チャンネルあり、ノブを初め、デザインも操作性にたけています。ASIOの表記はありませんでしたが、Windowsに接続した際はASIOに対応していました。ASIOとは、Windowsの低遅延の規格です。
・コンデンサーマイク:audio-technica PRO35
管楽器のニュアンスまで拾ってくれるコンデンサーマイクで、ロングセラー商品。15000円程度で入手できる比較的手が届きやすいモデルです。

画像7


raspberry piのOSについて

Linux系のOS、ubuntuを使用しています。動作が軽く、遅延が少ないことが期待できます。WindowsやMacほどではないものの、比較的広く使われており、信頼性も高いと言えます。
puredataはLinuxも対応しており、リアルタイム処理を得意とするので、ubuntuはじめ、Linuxで本領を発揮するとも言えるかもしれません。


raspberry piにおけるオーディオ設定について

低遅延とされているJack Audioを使おうと考えていましたが、遅延がかなりありました。そのため、ALSAに設定したところ、問題無く使える程度に遅延が抑えられました。 次の写真はJack Audioを試したときの画面。

画像2

↓こちらがALSAで接続した際の画面

画像3

遅延のメカニズム

遅延は一般的に、デジタルとアナログを変換する過程で発生することが多いです。もちろん、PCの性能もかかわってくきます。
例えば、マイクから入力した音をPCのプログラムを通してスピーカーから鳴らすならば、マイクからインターフェイスを通してPCに入力される過程でアナログデジタル変換、PCからオーディオインターフェイスを通じてスピーカーに出力される過程で、デジタルアナログ変換が行われます。また、プログラムの処理はPCの性能が問われます。これらの過程で遅延が発生する訳です。
つまり、オーディオインターフェイスの性能やPCの軽さが重要と言えます。

デジタルとアナログの変換による遅延のチェック方法

今後、エフェクターの実装を検討しているため、puredataのプログラムを用いて遅延をチェックしました。用いたプログラムは、何も音を変化させないプログラムで、入力された音をそのまま出力するほか、波形を描くプログラムです。

画像4


プログラムによる遅延のチェック方法

入力した音を出力するだけでは、実用的なプログラムとは言えません。実際に使用するプログラムはもっと多くの処理を行うため、何か処理を行う過程で遅延が発生しないかも検討して見たいと思います。
今回は、pdのオブジェクトの一つ、[freeverb~]オブジェクトを用いたエフェクターでテストしました。
このオブジェクトはライブラリとして公開されており、その名の通り、リバーブをかけることができます。リバーブとは残響という意味で、空間内で発生した音の残響を表現することができます。
dry-wetや空間の大きさなどをパラメータとして調節することができる仕様になっています。
こちらも特に違和感無く使えますね。これは様々なサイトで勉強して、早速マルチエフェクター作りたいですね。

画像5

電源の問題

raspberry piの消費電力はそこそこ必要なため、オーディオインターフェイスを繋ぐとやはり、電力不足で画面がしばしば消えました。なので電源はUSBで3Aを供給できる物が必要なようです。特に、ファンタム電源を使用した際に消費電力は増えます。
また、画面も必要になるので、ポータブルディスプレイを使用する際も電源には気を付けないといけませんね。

画像6

総括

この組み合わせはかなり良いと思います。コンパクトかつ遅延がほぼなく、いい感じです。今後はエフェクター等を開発したいです。もちろん、楽器とともに運搬はややきついかもしれませんが、アルミケースを使用するなど検討していきたいと思います。
また、どのようにしてエフェクトを操作するのか。ここが難しいところです。というのも、arduinoを使って可変抵抗やボタン、ペダルの値を読み込む方法もありますが、なんせ、大型化してしまいます。なので、OSC通信に対応したアプリケーションをタブレットに入れて、raspberry piとタブレットを接続して制御するのが現実的かもしれませんね。

いいなと思ったら応援しよう!