以前の続きです。前回では、M5StackのM5Stack CORE BASIC V2.7にPORT.C(UART)を追加する「M5StackBasicLite(@akita11さん設計・製作)」というベースボードを使って、「UNIT-SYNTH(以下「SYNTH」)」を動かすことに成功しました。今回は、「UNIT-MIDI(以下「MIDI」)」が使えるか動作確認していきたいと思います。
「SYNTH」も「MIDI」も同じく仏dream社のSAM2695を内蔵したシンセサイザーユニットで、Arduino IDEのサンプルコード(「drum」と「piano」)も同じのものが使えるようです。Arduino IDEのコード(プログラム)をコンパイルして書き込むのは、いつものLinux Mintで動かしている自作PCを使います。
前回の動作確認で「drum」のプログラムを入れていたので、「MIDI」につなぎ替えて「MIDI」のAUDIO出力から音が出るか確認します。(「SYNTH」にはスピーカーが内蔵されていますが、「MIDI」には付いていません)これも定番になっていますが、YAZAWAのTVR35WH(アンプ内蔵スピーカー)につないで音が出ることを確認できました。少し歪んで聞こえたので、プリアンプ(ヘッドホンアンプ)をはさむと良いかもしれないと思いました。音を出すことに成功したので、この状態で何も手を加えずにBehringerのRD-6(アナログドラムマシーン)にMIDIケーブルでつないで音が出るかやってみました。当然かも知れませんが、何の反応もありませんでした。
そもそも、これまで使っていた「drum」や「piano」のコードには、MIDIの設定らしき項目がなく、Unit-MIDIでMIDIをコントロールできるのサンプルコードはないものかと探したところ、GitHubのサイト内に、「M5-SAM2695」のページを見つけました。この中に入っているサンプルコードを使えば、M5Stack Core Basicから「MIDI」を動かせるのではないかと考えて、ダウンロードしてみました。以下備忘を兼ねて、ダウンロードしたサンプルコードをリスト形式で記載しておきます。
※これ以外に、「M5-SAM2695/src/」内の「M5_SAM2695.h」が必要なようです。
この「drum.ino」と「piano.ino」は、「SYNTH」の動作確認で使った「drum.ino」「piano.ino」と同じ名前になっていますが、コードの中身が違います。フォルダ名も同じなので、その違いに気づきにくいかもしれませんが、コードの中身をよく見ると「MIDI」用の設定が追加されていることがわかりました。紛らわしいので、それぞれ「drum_midi.ino」「piano_midi.ino」と名前を変更して使うことにしました。
先程は、drum.inoのコードを使って動作確認を試みましたが、今度はpiano_midi.inoのコードを使って動作確認をしてみることにします。piano_midi.inoを開いてコンパイルしようとすると、「M5_SAM2695.h」が見つからないと言われてコンパイルできないので、「src」の中に入っている「M5_SAM2695.h」をpiano_midi.inoファイルと同じディレクトリ内にコピーしてからコンパイル&書き込みを行いました。すると、エラーを出さずにコンパイルが成功して、Core Basicへの書き込みもできました。
この状態で、Unit-MIDIにアンプ内蔵スピーカーをつなぐと、プログラムしたとおりに音が鳴ったので、SAM2695を動かせていることがわかりました。次は、MIDIのコントロールができるかを確認します。前回紹介した、Behringerの「Pro VS MINI」を使って、MIDI信号が正しく出てきているのか確認してみました。Unit-MIDIのMIDI OUTとPro VS MINIのMIDI INをMIDIケーブルでつないでから、Core Basicの電源を入れると、Pro VS MINIが鳴り始めました。これで、無事にMIDIのコントロールができることがわかりました。プログラミングの手間を考えると、1曲丸ごとプログラムしてシーケンサーのように使うという使い方は実用的ではないように思いますが、「本物の電子楽器(語彙不足…)を鳴らせる」ことに、様々な可能性を感じます。
0 件のコメント:
コメントを投稿