これは、NetBSD Advent Calendar 2020の21日目の記事です。
はじめに
Androidスマートフォンで、USB接続するとumidi(4)として認識される機能のあるものがあります。 これはどういう動作をするのか気になっていました。 今回は、この機能がMIDI入力とMIDI出力の両方として利用できるものだと分かったので、NetBSDから使ってみたいと思います。
Androidスマートフォンの準備
今回使ったAndroidスマートフォンは、Sony Xperia XZというAndroid 8の搭載された端末です。 普段は、自宅内のAsteriskの内線子機として使っている端末です。 これをUSBケーブルで、NetBSD端末につなげると、MIDIデバイスになるための接続を選択する画面が表示されます。 MIDIデバイスになる項目を選択しましょう。
どうやら、Androidスマートフォン単体ではMIDIデバイスにはなれないようです。 今回は、MIDIインプット機器とMIDIアウトプット機器のいずれにもなれる Dreamhound Studios製のMIDI Keyboardというアプリを 利用することにします。
このMIDI Keyboardアプリを起動させると、画面左上にMIDIメニューが表示されています。そこではInpiutとOutputについて、それぞれ指定できます。 標準ではいずれも(none)になっています。つまり、NetBSDとMIDI通信をすることができません。 これをいずれも「Android USB周辺機器ポート」に切り替えておきます。
NetBSDで録音・再生する
NetBSDには、midiplay(1)とmidirecord(1)というコマンドが標準で用意されており、それぞれMIDIファイルの再生、MIDIファイルへの録音ができます。 まずは、当該部分のdmesgを確認してみましょう。umidi1として認識されていることが分かりました。
umidi0 at uhub5 port 1 configuration 1 interface 1 umidi0: Sony (0x0fce) F8332 (0xc1e7), rev 2.00/3.18, addr 10 umidi0: (genuine USB-MIDI) umidi0: out=1, in=1 midi1 at umidi0: <0 >0 on umidi0
以下のように実行した上で、MIDI Keyboardアプリの表示するキーボードで演奏してみます。
-d 1
で、midi1を使うことを指定しています。
$ midirecord -d 1 test.mid
こうやって録音した演奏を以下のように再生してみます。
-d 1
はmidirecordの場合と同様な意味です。
$ midiplay -d 1 test.mid
今回は、ピアノ音のみを扱うアプリでしたが、他の音源を扱えるアプリがあるかもしれませんので、探して試してみたいと思います。
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。