新プロジェクト: nanoKEY スタンダロン MIDI キーボード化

ぼちぼちとはじめてます

近頃話題の nanoKEY、私も入手しました。nanoKEY、小さくて便利ですが、USB MIDI のみ対応なので、USB ホストがないと使えません。

普段のシンセ作業では、nanoKEY 導入以前から、PC から MIDI モニタソフト経由で MIDI 信号を出していたので、USB MIDI でも全く不都合ないのですが、nanoKEY をたとえばデモなどで持ち出して使いたいときには、PC がなくてはいけなくて少しとりまわしが悪いです。

ということで、nanoKEY をスタンダロン MIDI 化すると、とっても便利そうです。

シンセ自作界隈の皆様同じように考えられているようで、マイコンを使って USB ホストの実装をすることを検討し始めている方もいらっしゃいます。

ところで、そもそもスタンダロン化するにはどんなアプローチがあるでしょうか?だいたいこんなところでしょうか

  • nanoKEY 自体を改造して、レガシー MIDI が直接出せるようにしてしまう
  • じゃまにならない程度に小型のホストを開発してしまう

前者は、仕上がりすっきりしますが、MIDI 信号を発生するプログラムを書き直す必要があります。nanoKEY は、使ってみるとわかりますが、弾き具合など、とてもしっかりチューンされていて、同じ弾き具合を再現するのは(とても勉強になりそうですが)ちょっと大変そうだし、内部に手を入れて壊してしまうリスクも伴います

ということで、まずは後者のアプローチのほうが無難そうです(とはいえ楽ではないのですが)。そこで、マイコンを使って USB ホストの実装、となるんですが、私にはUSBホストを実装するウデはない、でもやっぱりスタンダロン化はしたい、ということで、ちょっと違うアプローチをとってみることにします。

それはこんなアプローチ:

nanoKEY -> (USB) -> シングル・ボード・コンピュータ (Linux) -> (シリアルポート) -> MIDI out

シングル・ボード・コンピュータというのは、超小型の PC です。どれぐらい小さいかというと、たとえば 3.5インチディスクぐらいの大きさです。中にはフロッピーディスクサイズのものもあります。れっきとした 386 互換機もあって、普通に Windows や Linux などがインストールできます。ディスプレイも普通のを使えます。これだと、使い勝手は普通の PC と変わりませんから、USBホストの知識がなくてもやれます。でもまあその、高くつきます。SBC の値段は nanoKEY の何倍もします。なのでちょっとアホらしい方法なのですが、今、死蔵している SBC があるので、「新たにモノを買わない」というルールのもとにプロジェクトを立ち上げました。

現在のところの進捗状況

  • まずは、テスト・開発を行うため、普通のデスクトップ PC に Linux をインストール
  • nanoKEY をつないで、認識されることを確認

MIDI 出しのところは、シリアルポートから MIDI 信号を出すソフトを書いてしまおうかと。ということで、USB-MIDI ドライバから情報をもらう必要があるので、次には、Linux の USB-MIDI ドライバがどんな仕組みになっているかを調べ上げることになります。

ここはドキュメントあさりになります。が、あまりに安易なので、ちょっとは考えてみることにしました。もし自分が USB-MIDI ドライバを作るのだったらどうするかな?ええと、USB-MIDI の信号を拾いたいアプリは、一度にひとつとは限らないから、ドライバは共有できるようにしたいです。そして、リアルタイム性が重要だから、ドライバとアプリの通信は、プロデューサ・コンシューマモデルがいいでしょうか。共有するプロデューサ・コンシューマモデルといっても、シェアドメモリとかファイルとか、共有の受け渡しリソースを介すると、どっから読み始めて?、とかリソースサイズは?、とか、かなりうっとおしそうなので、受け渡し自体はアプリと一対一の接続で、ドライバからアプリに一方的にイベントを流し込むやり方が楽そうです。
と、いうことで、ドライバはサーバとして実装して、アプリとの通信はソケット経由、イベントは、サーバからアプリへ一方的に流し込めばいいし、ネットワークを介さなければパケットの消失もあまりなさそうなので、通信は UDP でやるのがいいのかな?こんな感じかなぁ

ということで、次には実物のつくりを調べて答え合わせしてみますです。

2 Comments

  1. なお

    Googleから来ました。
    デモ用に持ち運ぶための小型MIDIキーボードを選定しているところです。
    今度出るAKAIのLPK-25が良さそうですが、ベンダーが付いていないので決めかねています。CASIOのGZ-5はいくら何でも鍵盤が小さすぎる気がします。
    nanoKEYはPC経由じゃないとダメなんですね。

  2. Gan

    コメントありがとうございます。
    nanoKEY は、USB デバイスなので、USB ホストが必要です。普通は PC 使いますね。
    専用機を製作する方法もありますが、いろいろと手間がかかるので、小さな PC をホストにする方法でまずはやろうと思っています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください