2017年8月12日土曜日

Raspberry Pi 用 I2S Audio I/O (PIAiF / Dm9 Records) を Fs=96kHz で使う

PIAiF by Dm9 Records を Fs=96kHz で使う

Dm9 Records さんが設計・公開している Raspberry Pi 用 Audio I/F PIAiF で色々実験をしています。PIAiF は、Raspberry Pi 内蔵の CODEC よりも断然音がよく、また、Raspberry Pi の子基板として載せてもサイズがぴったりで邪魔になりません。さらに、延長ピンヘッダが実装されているので、ピンヘッダが占有されず、LCD など他のデバイスを併用することができます。


この PIAiF に搭載されている CODEC チップの WM8731 は、最大 24bit/96kHz で動作する CODEC なのですが、当初はうまく動作しませんでした。Fs=96kHz に設定した自作シンセでは、音が鳴るのですが再生音がおかしくなってしまいました(ピッチが高くなる)。96kHz の WAV ファイルを aplay コマンドで再生した場合も、同様にピッチがおかしくなりました。この時、私の Raspberry Pi の環境は、
  • Raspberry Pi 3
  • Raspbian GNU/Linux 8 (jessie)
  • Kernel version 4.4.50-v7+
でした。

色々調べてみると、どうやら、CODEC ドライバのカーネルモジュールの rpi-proto に問題があるようで、Fs=48kHz 以外の、32kHz や 96kHz に設定する際に、BCLK ratio の設定値が適切に設定されていないようです。こちらの記事に、この問題に関しての言及があります。そこで、記事にある通り、こんな感じのパッチを当て、Fs を変更した時に、適切に BCLK ratio が設定されるように修正した上でカーネルモジュールをリビルドし、標準のカーネルモジュールと差し替えたところ、96kHz 出力でも正しいピッチで音が鳴るようになりました。

ただし、Fs 変更直後に音が出ない(または再生ピッチがおかしくなる)という問題がまだ起きています。この場合は、再度(Fs 変更せずに)再生を開始すると正常に音が鳴るようになります。この原因がどこにあるのかはまだ掴めていません。しかし私の用途では、Fs=96kHz でシンセを動作させられれば大満足なので、これ以上の調査は進めていません。

この PIAiF、Line out & Headphone out だけでなく、Line in も用意されていますので、エフェクタを作りたい向きにもちょうどいいのではないでしょうか。なお、Fs=48kHz で使うのであれば、上記のような細工をする必要はなく、PIAiF を Raspberry Pi にマウントし、/boot/config.txt へ "dtoverlay=rpi-proto" の一行を追記するだけで使えます。このような、便利な DAC/ADC が Raspberry Pi で使えるのは、シンセビルダ/エフェクタビルダにとってはとてもありがたいことですね。

2017年8月7日月曜日

Maker Faire Tokyo 2017 に出展してきました

Maker Faire Tokyo 2017 に出展してきました

先日の 告知通り、Maker Faire 2017 に出展してきました。今年は、東京ビックサイトの東7-8ホールという、正門から一番遠い場所にある会場でした。


Raspberry Pi を使って、電子楽器用のシンセサイザ音源を作り続けて 3 年目。去年までは、音源に音色変更用のボタンをつけただけのものでしたが、今年は音色エディット用のパネルの製作に挑みました。

パネルにノブを並べるだけではありきたりなので、長年あたためていたアイデアである、ノブと EG セグメントの対応が直感的にわかる UI、という仕掛け組み合わせて、初めてシンセを触る人でも簡単に音作りのコツが掴めるシンセサイザの実現を目指しました。またもう一つ、こちらも長年やりたいと思っていた、ヤマハ DX1 のアルゴリズム表示部を再現するという試みも行いました。

EGの遷移に合わせて光るノブ

FM音源では、オペレータごとに用意されている多数の EG(エンベロープジェネレータ)を簡便にエディットできるようにすることが簡単に音作りできるようにするためのポイントなので、まずはこれをノブで操作できるようにしました。また、今回開発したシンセサイザでは、発音させると、EG の遷移に合わせて、対応するノブが点灯するようになっており、どのノブがどの位置のエンベロープを変化させるのかが容易にわかるようになっています。EG のパラメータは、必要最小限に絞ることにより、少ないノブで必要十分な表現ができるよう工夫してあります。


7セグメントLEDを使ったアルゴリズム表示部

もう一つのチャレンジが、ヤマハの FM シンセサイザー DX1 の、アルゴリズム表示部を復刻する試みです。アルゴリズム表示部が 7 セグメント LED をマトリックス状に並べて、レイアウトに合わせて必要な部分が点灯するという、贅沢な仕様でした。以前に NAMM Show に出展されていた現存の 1 台を見たことがありますが、見た目は(現代のシンセに比べれば)地味ながらも個人的には大興奮した一品です。これを自作で復刻したというわけです。


また、この 7 セグメント LED は、タッチセンサとして機能するようにもなっており、タッチしたオペレータのパラメータを LCD 上に呼び出すことができます。こちらの動画でその動作の様子を見ることができます。仕組みは、タッチセンサの周りに銅箔テープを貼り、それを電極として静電容量を検出しスイッチとして作動させるというものです。原理試作ができるまではうまくいくか心配でしたが、意外にもすんなり動作しました。こんな簡単な方法でもスイッチを作れるので、今まで見たこともない部品との組み合わせで操作子を作れるかもしれませんね。

これから

まだまだ荒削りですが、徐々にシンセの中身が揃ってきましたので、次は、筐体を作ってみたいと思っています。基板むき出しなのが今ひとつなので、アクリルで上面だけでも仕上げたいと考えています。また、今回はユニバーサル基板とポリウレタン線を使った工作でしたが、そろそろ配線作業に限界を感じ始めたので、安価になって手を出しやすくなったプリント基板製作にもチャレンジするつもりです。

ブースにご来場いただき説明を聞いてくださったみなさま、また、会期中に交流させていただいた出展者のみなさま、楽しい時間をありがとうございました。

関連リンク



2017年8月4日金曜日

Maker Faire Tokyo 2017 に出展します

Maker Faire Tokyo 2017 に出展します

今年 (2017) も、8/5〜8/6 に開催される Maker Faire Tokyo 2017 に、いつもの奇楽堂さんと一緒に作品を展示します。今年の出展物は、Raspberry Pi に 4 オペレータの FM ソフトシンセを仕込んで、音色エディット用のパネルをつけた "Raspberry Op.4" です。

デモムービーをアップロードしましたのでご覧ください。



当日会場に来られる方は、お時間があればブースに遊びに来てください。奇楽堂&Company I-02-02 にいると思います。