Waveshareというメーカー(?)のMini Piano Moduleを試しました。タッチで反応するピアノ鍵盤とブザー、NeoPixelなフルカラーLEDが4つ付いてる機能盛りだくさんなmicro:bit用モジュールです。
Mini Piano Module for micro:bit, Touch Keys to Play Music
もちろん海外製。最初はAliexpressが買おうかと思って探したら、ebayの方が安かったのでそちらで。Makecode用の拡張機能(Extension、元Package)はGitHubにあります。
waveshare/TouchPiano
最初のテスト動画。
Mini Piano Module for micro:bit test
リポジトリの名前がTouchPiano。商品名と違うのはなんでだろうと思いつつ。ドキュメントもけっこうテキトー。テンプレートのTODOがそのまま残ってるくらい。
しかし、拡張機能はまずまずの出来。LED用のは割愛。鍵盤用には2つのブロックがあります。
ひとつは、各キーが押されているかをチェックするもの。「Key ○ is Pressed」 (つづり間違いでブロック名のKeyがPeyになってる)
もう一つはこれだけで鍵盤になる「Play Piano」。
最初は「Key ○ is Pressed」 を使って各キー(鍵盤)の状態をチェックして……とかやってたのですが、これが面倒。○の部分はドロップダウンリストから選択しなくてはならない。forでループしてできないっぽいのだ。というわけで、ひとつひとつ分岐でやってのでした。
それが最初にあげてある動画。
その後、「Play Piano」の存在に気づき、試したらなんのプログラミングもせずに動くのでした。このブロックを「ずっと」ループに入れるだけでOK。ほんとなにもする必要なし。内蔵ブザーが押した鍵盤に応じて鳴る。しかも、ランダムで4つのLEDがカラフルに光る。ほんとよくできてる。
で、ブザーじゃ味気ないと思い。
内蔵ブザーはあくまでも単音。和音も無理。
ということで、いつものようにBluetoo MIDI(MIDI over Bluetooth)で、PCやスマホの音源を鳴らすことに。
この段階で気づいたのが、NeoPixelの拡張機能と、Bluetooth MIDIの拡張機能が同時使用できないということ。これは開発者側も認めています。
neopixels and bluetooth are incompatible · Issue #1280 · Microsoft/pxt
ということで、NeoPixelの使用はあきらめる。独自の関数とかを作ったり、拡張機能に向けていろいろ調べながら作ったのが以下のテスト動画。
micro:bit, Waveshare Mini Piano Module, Bluetooth MIDI test
Windows 10のMicrosoft GS Wavetable Synthを自作のブリッジアプリMIDIberry経由で鳴らしています。Windows 10の設定でペアリング後、MIDIberryを起動すればすぐに鳴らせます。
プログラムチェンジでGMの楽器を次々に鳴らしているのですが、見た目を派手にしたい&楽器名を表示させたいと思い、@ryoyakawaiさんのMIDI Message Viwerを改造したものを使っています(いつもお世話になってます。今回、プログラム名表示を追加したり、プログラムチェンジの時の3つめのパラメータを「- -」にするとかしてます)。
ryoyakawai/midimessageviewer
まだ不安定なところがあるので、もう少しつめてから拡張機能を公開しようかと思っております。
Piano ModuleはAmazonでも売ってるみたいです。思ったより安い(一部べらぼうに高いのがありますが)。
私はebayのセラーで1300円くらいで買いました(2019年2月)。10日くらいで届きました。
コメント