MIDIを解析してマイコンから音を鳴らそう
MIDIファイルからノート(音符)のオン・オフを取り出すことができたの紹介します! そもそもMIDIファイルって何?って方もいると思うのでその辺から紹介していきたいと思います。
MIDIファイルとは
簡単に言ってしまえばPCが演奏するための楽譜です。MIDIファイルの中には いつ?どの音を?どれくらいの時間で?どれくらい大きく?鳴らすかが記録されています。 (他にもピッチベンドや音色、ポルタメントなど色々なものが記録されていますが 今回作成した解析ソフトでは無視しました。)
MIDIファイルを使ったら何ができるの?
これが今回、解析ソフトを作った最大の目的です。 MIDIからいつ?どの音を?どれくらいの時間で?どれくらい大きく?鳴らすかという情報を取得できれば簡単に複雑な譜面をマイコンから鳴らすことができますよね!というわけで作ってみたわけです。
ソフトウェアの紹介
まだ試作段階で読めるmidiファイルはかなり制限付きで、読める命令やエラー処理等まだまだ改良が必要ですが、単音でかつノートのオン・オフを取りだす分には使えます。
GUIはQtを用いて実装しました。インストールして数時間で簡単なソフトウェアが作れるようになるのでめちゃくちゃお勧めです!(特に配置やイベント処理が楽!)
解析結果には ” ノートナンバー , 音符 ” が表示されます。
※使用上の注意
・MIDIファイル内には必ずノートの情報のみとしてください。Dominoで開いた場合は以下のようなデータのみで構成してください。(ステータスバイトがFF、8X、9Xの命令のみ解析可能)
・曲のデータは単音のみとし、ノートが重ならないように注意してください。
・曲のデータは1トラック目に保存してください。トラック切り替えは今後の更新で実装予定です。
・ファイルのパスに日本語が含まれないようにしてください。
ダウンロード
以下のURLからDLできます。(Qt未導入Win10のみ動作確認済み)
次回は実際のマイコンへの実装方法や解析用のコードについても解説しようかと思います。