■自作デジタルエフェクター

■Raspberry Pi 用USBオーディオインターフェースの選定

Raspberry Piはマイク入力がないため、別途USBオーディオインターフェースが必要となります。とりあえず試した3種類を紹介しておきます。

Creative Sound Blaster Play!
たまたま手持ちにあったもので、現在は後継機種が出ています。
・分解されている方の記事→USB DAC を分解
C-Media CM119というICチップが使われています。Raspberry Piに挿すだけで認識し、録音・再生ができます。しかしPure Dataでは「tried but couldn't sync A/D/A」というエラーが数分に一度発生し、一瞬だけノイズが出ます。いろいろ設定を変えましたがこのエラーは消えないため、別のものを試すことにしました。

Plugable USB オーディオ変換アダプタ
03_176_1usbp.jpg
接着剤で固めてあるため、分解すると元に戻せません。USB端子側のプラスチック部分を壊す方が楽だと思います。
こちらはC-Media HS100BというICチップとなっています。これも認識は問題ありませんが、Pure Dataで上記と同じエラーが発生します。市販されている安価なUSBオーディオインターフェースはおそらくC-MediaのICを使っているでしょうから、別のものを買っても同じエラーになりそうです。エラー時のノイズは一瞬でほとんど気づかないため、やむを得ずこれを使っていくことにします。※現在はエラーは出ていません(追記参照)。

周波数特性を測定してみると、低域がかなり削られています。たぶん入力のコンデンサの容量が少ないのだろうと思い入力から辿っていくと、コンデンサC12が怪しいとわかりました。これに10μFの積層セラミックコンデンサを並列に追加すると特性が改善しました(1μFのフィルムコンデンサ等でも大丈夫だと思います)。
03_176_2usbpp.jpg
入力インピーダンスが低いため、ギターを繋ぐ場合は前段にバッファーが必要となります。バッファー等に関しては別に記事を書く予定です。

BEHRINGER GUITAR LINK UCG102
03_176_3usbu.jpg
だいぶ前に買ったのですが、現在は値上がりしているようです。Texas Instruments PCM2902というICチップが使われています。少し基板が大きいので採用保留としました。軽くテストしかしていませんが、これもたまにPure Dataのエラーが出ます。ただバッファーが不要なのは楽なので、今後こちらに変更するかもしれません。

---以下2017年4月17日追記---

「tried but couldn't sync A/D/A」というエラーは下記サイトを見て導入したリアルタイムカーネル(もしくは、cmdline.txtの設定項目)が原因かもしれません。導入せずにセットアップすると、今のところエラーは発生していません。特にレイテンシーも変わらないため、導入しない方がよさそうです。
・リアルタイムカーネル導入参考ページ→Raspberry Pi 3とリアルタイムカーネル(3)[自前ビルド無し導入編(おまけ)]
コメント欄に「I2Sのサウンドデバイスでレイテンシーが抑えられる」という記載もあるので、今後の検討課題です。

■USB接続ミニマイク
03_176_4usbm.jpg
分解しただけですが、一応おまけで紹介しておきます。ICを覆う黒い樹脂は取り除けませんでしたが、lsusbコマンドで確認するとC-Media CM108と認識していました。

■タグ : RaspberryPi

■レイテンシーの測定

通常デジタルエフェクターでは、音声処理にかかる時間の分遅延(レイテンシー)が発生します。0.01秒(10ms)以下だとリアルタイム処理と言っていいレベルのようです。なかなかレイテンシーが記載されている記事がありません。買ったはいいものの遅延がひどいというのは避けたいものです。
レイテンシー比較参考ページ

Pure Dataでレイテンシーを測定する場合はPd\doc\7.stuff\tools\latency.pdのパッチを使うことができます。しかしながらこのパッチで測定した場合、聴感より大きい値になっている気がしたため、別の方法で測定してみました。

図にするまでもありませんが、下図のように直接繋いだ音(Lch)と機器を通した音(Rch)を録音し比較するというものです。
03_175_1latep.gif

録音したファイルを拡大して見てみると、下図のようにRchの音が遅れます。(音量レベルは特に合わせていません。)
03_175_2lateg.gif
そしてlatency.pdでの測定結果と比べましたが、同じ遅延時間となりました。結局このパッチでレイテンシーを測定して問題ないと思われます。
こちらのサイトでも考察されています→139 not found

Pure Dataの設定を無理に低レイテンシーにすると、出力される音が途切れて雑音が発生します。現在私が製作中のRaspberryPi3エフェクターでは、Delay 5・Block size 64の設定までは雑音が出ず、実際のレイテンシーは12msでした。しかしながら、どの程度重い処理まで可能なのかは未知数です。※後日測定しなおすと、11msでした。

ちなみにZOOM MS-50Gのレイテンシーもついでに測定してみましたが、6個エフェクトをかけても1ms程度でした。本当にメーカーの技術力には圧倒されます……

■デジタルエフェクター自作に関するメモ

デジタルエフェクターを自作するにあたって、調べたことをまとめておきます。解説できる知識がないため、とりあえずリンクのみばかりです。

■レイテンシー(latency)の問題
別の記事を書きました→レイテンシーの測定

■Pure Data
Pure Data (Pd)というプログラミング環境があります。一般的なプログラミングとは違い、キャンバスに箱を配置して線で繋ぐといった感じでプログラミングできます。詳細は公式サイト等をご覧ください。Pdであればプログラミング初心者でも比較的簡単にエフェクトを開発することができます。

■自分でエフェクトをプログラミングできるペダル(完成品、キット)と参考価格等
(ほとんどこちらのページを参考にしました→Want a Programmable Guitar Pedal?
MOD Devices MOD Duo レイテンシー5ms $649
Hoxtown OWL Pedal £249
StompShield from Open Music Labs Arduinoペダル キット$49 Arduino Uno本体\2940
pedalSHIELD DUE Arduino Guitar Pedal キット£39.95 Arduino Due本体\6090
Line6 Tone Core DSP Developer Kit $199.99
FV-1 Development System :: SPN1001-DEV $50
Bela 超低レイテンシー キット£140
Blackfin DSP基板 \3218 開発プラットフォーム基板 \9698

■自作例
Arduino Guitar Pedal
Minimalist Arduino DSP
Simple Audio DSP Module
mbedを使用したマルチエフェクター(ブログは見れないようです)
Guitar Extended Pure Data + Raspberry Pi
Raspberry Piでギターエフェクターを作る
139 not found Pure Data + Raspberry Pi

管理人

ブログ内検索

メールフォーム

当ブログに関するお問い合わせはこちらからお願いします。 ※FAQ(よくある質問)もお読みください。

お名前
メールアドレス
件名
本文

アクセスカウンター