Teensy Audioのテスト(1)2020-03-15
前回紹介したようにハードウェアの準備は出来たので、プログラミングをして音を出していきます。
Teensyduinoのインストール
先ず開発環境としては、Teensyシリーズも通常のArduino IDEを使ってスケッチ(プログラム)を書き込みますが、それに加えてTeensyduinoというアドオンをPCにインストールする必要があります。
やり方は上のリンク先の通りで、インストーラーをダウンロードして起動したらあとは皆「NEXT」でOKでした。インストールするライブラリを選択できますが、よくわからないのでALLにしときました。尚、Arduino IDEを起動した状態でインストールしようとするとエラーが出ますが、焦らずシャットダウンすればOKです。
インストール完了後Arduino IDEを立ち上げると、下図のようにメニューの「ツール>ボード」にTennsyシリーズの一覧が出て来ます。そこで(私の場合は)Teensy4.0を選択すると、今度は「ファイル>スケッチ例」に「Teensy4.0のスケッチ例」というのが出てきます。
これでインストールは完了ですが、その後ちょっと問題が発生しました。Arduino IDEをアップデートする際、旧バージョンをアンインストールする必要がありますが、その時にTeensyduinoも一緒にアンインストールされてしまったのです。
これを回避する方法は見当たらないので、Teensyduinoをインストールし直すか、それが面倒な場合はIDEのアップデートは保留するしか無さそうです。
Teensy Audio library
という訳で開発環境が整ったので、インストールしたライブラリやスケッチを使って音が出るか試していきます。
そこで私が参考にしたのは本家PJRCのチュートリアルです。下に抜粋した解説ムービーではオタクっぽい男女が出てきてボソボソ喋っていますが、何度か聞いてるうちに凡そ過不足なく説明しているのが判りました。
Part_1_02_Hardware_Test
とは言え、面倒なので手っ取り早く何か試したいという人は、スケッチ例>(Teensy4.0用のスケッチ例)Audio>Tutrial>Part_1_02_Hardware_Testが良いと思います。これはスイッチやノブ(ポテンショメータ)を何も接続しなくても、SDカードに何も入れなくても、テスト用のビープ音が断続的に出てきます。
次にSDカード内の音声ファイルを再生したい場合は、予めこちらのページから4つのWAVファイルをダウンロードしてSDカードに書き込む必要があります。因みに私の場合はSDカードのフォーマットは不要で、PCからSDカード(PCから見えてるドライブ)に直接コピー&ペーストで書き込めました。
Part_1_03_Playing_Music
この音声を再生するスケッチは、同じくTutrialのPart_1_03_Playing_Musicが多分一番単純でしょう。これは4つのうち2番目の曲が自動的に再生されるだけです。これもスイッチやノブは必要ありません。何も手こずる事無く音楽が再生されました。DACやSDカードリーダーのドライバ(ライブラリ)を探してインストールしたりしなくても、所定のスケッチを実行するだけでSDカード内の音楽が再生されるのにはちょっと感動します。流石音楽に強い(多分)Teensyですね。
Part_1_04_Blink_While_Playing
次のスケッチPart_1_04_Blink_While_Playingは再生中にオンボードLEDが点滅するものです。しかしこれを試したところ、コンパイルと書き込みは問題なく出来るものの、音楽がさっぱり再生されません。
そこでスケッチの中身をチェックすると、LED出力用に13番のピンを指定していますが、これはオーディオボードとの通信に使っているピンなのです。調べるとTennsy3系のオーディオボードではこのピンは空いているので、このスケッチで動きそうです。つまりこのチュートリアルはTeensy3系用で、Tennsy4.0とそれ用のオーディオボードには対応していないんですね(;´д`)
Part_1_05_Do_More_While_Playing
仕方ないので、取敢えず次のPart_1_05_Do_More_While_Playingに進みます。ここからはスイッチとノブ(可変抵抗)が必要です。配線を簡単にいうと次の通りです。
- スイッチ0、1、2 ⇒ Pin0、Pin1、Pin2
- ノブ1、2、3 ⇒ Pin15(A1:オーディオボード上)、Pin16(A2)、Pin(A3)
このスケッチは何もしなければ4つの音楽ファイルを順番に再生するだけですが、スイッチ0と2で曲をスキップ又は後ろにスキップ出来ます。またノブ2で再生音量調整できます。
しかし!コンパイルして書き込むと、またもや音が出てきません。再びスケッチをチェックすると…前と同じでPin13をLED点滅に使っていました。
そこでスケッチのsetup部分の
pinMode(13, OUTPUT); // LED on pin 13
と、loop部分の
// blink the LED without delays
以下を削除すると、LEDの点滅以外はちゃんと作動するようになりました。
因みにSDカードに入れた4つのファイルはテスト用のショボい音声ではなく、全てちゃんとした曲の抜粋です。特に4番目の曲が私のお気に入りです。これも流石Teensy(⌒∇⌒)
音質レビュー
さてここで、このオーディオボードの音質について書きます。第一印象は淡泊でやや軽めの音でしたが、聴き慣れると率直な音で16bit/44.1kHzなりの解像度は感じます。ただラズベリーパイで使っているDAC( UDA1334A)のようなリッチな低音や伸びやかな高音は感じません(同じ解像度で比較しても)。
このDACにはレギュレータやバンドパスフィルタが搭載され、20~20KHzまで歪や減衰が無いとあり、見た目にも大きなコンデンサが付いてたりします。一方Teensyのオーディオボードにはそうした記述は無く、ただCDクオリティーで録音・再生できると書かれているだけです。
またDACは最初から付いてるステレオミニジャックより、自分で半田付けするAudioOut端子の方が音質がややリッチですが(説明にもそのような記述がある)、Teensyのオーディオボードは何方で聴いても違いが判りませんでした(多分同じ回路を通ってるだけ)。
これは多分に製品コンセプトの違いでしょうね。方やハイエンドオーディオを志向し、方や高音質なマイコンボードといったところでしょうか。とは言えTeensyオーディオボードでも1万円弱のハンディーレコーダーくらいの音質はあると思います。またサンプラー・ドラムマシンとして考えた場合も、Volca Sampleは勿論、Uno Drumと比べても出音自体はやや良質に感じます。
という訳で次回もサンプルスケッチを使って、音楽関係の別の機能を試して行きたいと思います。