2015年4月5日日曜日

新しいユーザーイベント機能が追加されたA tiny MML parserのVersion 0.5.0をリリースしました。(ついでにRaspberry Piのサンプルも追加しました)

先月の事ですが、Make: Japanさんの記事「Arduinoでちょっと長めの音楽を再生する方法」でA tiny MML parserを御紹介頂きました。Make: Japanさんありがとうございます。


記事を眺めていて「実世界と繋がる機能を加えれば、他の要素と組み合わせて動作するシステムを作れるよなぁ」と考えました。要するに「A tiny MML parserは単にシーケンサーエンジンである」と考えるならば(まぁ、まさにその通りですが・・・)、シーケンサーが出すイベントに応じて外界を制御するグル―ロジックを付け加えるだけで、様々なコンポーネントを制御するシステムになる・・・というわけです。

そこで、A tiny MML parser Version 0.5.0では、新しくシンプルなユーザーイベント機能を搭載する事にしました。このユーザーイベント機能は、MML文の中に@{MY_EVENT}のように@で始まり{}で括った文字列を書いておくと、ユーザーコールバック関数に「'MY_EVENT'というユーザーイベントだよ!」と通知をしてくれるというものです。


今回のユーザーイベント機能を使うと、例えば以下のような事が簡単に実現できます。
  • 曲の演奏に合わせてLEDを光らせる。
  • 曲の演奏に合わせてモーターを動かす。
  • 曲の演奏に合わせて音色を切り替える。
  • 曲なんて鳴らさずに、イベントシーケンサとして使用する。
  • その他色々。
以下に示すのは、イベント文字列に応じて、サーボを制御する実装例です。
加えて、シリアル通信にイベントを通知しています。


曲の演奏状態に合わせてサーボを動作させる事が出来れば、MMLパペットが作れますね。 :)


非常にシンプルな機能ですが、従来のバージョンではユーザーアプリケーション側で何らかのトリックを加えて対応する必要があり、ちょっと何かこのタイミングでという簡単なニーズを手軽に実現する手段がありませんでした。今回の新しいバージョンに加わったユーザーイベント機能によって、曲の進み具合に合わせて、何かしらの処理をしたいという時に、本当に簡単に処理できるようになりました。やったね。


あと、今回のパッケージからRaspberry Piのサンプルも同梱する事にしました。Physical Pin 15 http://pi.gadgetoid.com/pinout/pin15_gpio22 にピエゾスピーカーを取り付けると演奏を楽しめます。こちらのサンプル、実は改良が必要なのですが、これはまた後日・・・やるかどうかわかりませんが・・・。


ダウンロードは http://www.cubeatsystems.com/firmware/tinymml/download.html からどうぞ。

0 件のコメント:

コメントを投稿