Takunojiのプログラミング・プレイグラウンド(遊び場)

Javaプログラミングを基本にして、ゲーム作成に必要なことの調査結果、やったら面白そうなことなどを記載します。プログラミングのススメ的なことも記載します。プログラミングで楽しく遊ぶために色々と記載して行きます。

Microbit ラズパイ Midi音源〜フリーハンドで音源を鳴らす仕組み1〜

思いつきですが、Microbitからラズパイ経由でMidi音源を鳴らす仕組みを作ろうと思います。イチからやっていきますので、まずはどの様なものを作成するか?から考えます。

どんなものを作る?

タイトルにある様に「Microbit〜ラズパイ〜Midi音源」とデータを送信し、音源を鳴らす仕組みを作ろうと思います。下の様なイメージです。

f:id:Takunoji:20191006154601p:plain

仕組みのイメージ

これで一体何をするのか?

シンプルに、手に装備したマイクロビットから片手だけでMidi音源の再生と停止を行える様なものを作成しようと考えています。ちなみにマイクロビットは下の様な形で装備します。

名付けてアーマード・マイクロビット!

実際は、サポーターにマジックテープでマイクロビットをつけただけですが(笑)

このマイクロビットから直接音源を鳴らそうと試みたけどうまくいかず。。。

www.zenryokuservice.work

知り合いに話をしたら「ラズパイ経由でやれば?」とアドバイスをいただきました。

確かに、ラズパイならJavaアプリケーション(画像なしのCUI)で簡単なメッセージ(Aボタン押下など)を受けて、JavaからMidiメッセージを送信することを考えています。

そんなわけで、上の様なイメージになりました。

最終的にならすMidi音源は下のものになります。

f:id:Takunoji:20191006155937p:plain

Zoom RT-123

必要なこと

まずは、どうしたらできるか?を考えます。自分は以下の様に考えました。

<Topレベル: 大まかな概要>

  1. マイクロビットとラズパイをBluetoothで接続して連携できること
  2. ラズパイからMidi音源Midiメッセージを送信し鳴らせること

<Middleレベル: >

  1. ラズパイでBluetoothドングルでMicrobitと連携する(特定のもので良い)
  2. ラズパイでJavaサーバー(アプリ)を起動する
  3. Javaサーバー(アプリ)でMicrobitのメッセージを受ける
  4. 同様に、受けたメッセージからMidi音源を鳴らすMidiメッセージを作成
  5. MidiメッセージをMidi音源(RT-123)へ送信する

<Lowレベル: >

  1. ラズパイにBluetoothのネットワークインターフェース設定を行い自分のマイクロビットと接続できる様にする
  2. Javaサーバーアプリケーション(Socketサーバー)を作成する
  3. JavaサーバーAPでMidiメッセージの作成と送信を行う
  4. JavaサーバーAPでマイクロビットからのメッセージを受ける
  5. マイクロビットからのメッセージにより以下のMidiメッセージを作成
    A. 12小節分のドラム・ベースの伴奏を行うMidiメッセージを生成する
    B. 上と違うパターンのものを生成する
    A, BのMidiメッセージをMidi音源に送信する

ちなみに、Midi音源はUSB経由でラズパイからMidiメッセージを送信されるのでそのためのインターフェース(ここではUSBケーブル)を購入しました。

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

ROLAND UM-ONE MKII USB MIDIインターフェース
価格:3960円(税込、送料無料) (2019/10/6時点)

楽天で購入

 

これで、大まかなところは決まった形になります。

結構な、作業量になってしまいました。。。

しかし、千里の道のりも一歩目からです。

 

今回はここら辺りにします。

でわでわ。。。