「PIC AVR 工作室」サイトの日記的なブログです。
サイトに挙げなかった他愛ないことを日記的に書き残してます。
PIC AVR 工作室 ブログ



ここのところ取り組んできたシリアルMIDIモニタ
がひとまず完成。

PCのシリアルポートにMIDI機器を繋いで、
そのMIDI機器とのやり取りをハックする
という単純な仕組み。MIDIから入力した
ログデータをファイルに保存しておく機能も
登載。


各社のシリアルMIDIドライバではなく、単に
シリアルポートに接続したRS232C機器と同等
の扱いなので、ドライバ周りの相性に影響され難い
というのがいいところ。
以前実験した時に、ドライバの相性で接続でき
なかったUSB-シリアル変換ケーブル経由でも
問題なく接続できちゃう。

マイコン類でMIDIの工作をする時のモニター
プログラムとして便利かな、と。


ただ、あくまでシリアルインターフェースの機器
として入出力しているだけなので、MIDI機器の
接続方法によっては制約がでることも有りますが。

→外付けMIDIキーボードをwindows内蔵の
 ソフトウェアMIDIに繋いで鳴らそうという
 場合は、それらの間にこのモニターを挟んで使う
 ことが現状できません。

元々はMIDIマスター(キーボード等)から
MIDI音源などに向かって流れる経路をデータを
眺めるという用途で作りました。

なので、MIDIマスターの出力を例の変換器経由
でシリアル端子から入力し、今回作ったモニター
プログラムでモニターしながらこの信号をさらに
シリアル端子からMIDI音源に繋いで音源から
音も出すというのはok。

オイラの想定していた用途としてはこの現仕様で
充分事足りるので、暫くはこのままの仕様でokと
思ってるんだけど、今後の仕様追加について
ちょっと考えておくことに。


やっぱMIDIマスターからの入力をモニター
しながらwindows内蔵のソフトウェアMIDI
を鳴らすのも出来た方がいい気がするし、
SMFなどを入力して、タイムラインに
沿ってMIDI信号を画面表示しながら
MIDI機器にデータを吐き出すような
機能もあればいいな…とか。


せっかく出来上がったので、プロジェクト
ファイル一式アーカイブにして公開しようと
思ってるんだけど、プログラム作る時に
イロイロ弄ってたらプロジェクト一式
入っているフォルダの中に色んなものが
取り込まれちゃったりしててアレなので、
とりあえずexeファイルとvbのプログラム
ソース本体と、フォーム定義のソースあたり
を載せておくと実際に実行したり、ソース
レベルで弄りましたり出来るかなぁ?

普段VBなんて使わない人間にとっては、
VB2005ってどこからどこまでがプロジェクト
一式なのかが良く判らんのよねぇ…



コメント ( 0 )




久々にPIC マイコンを便利に使うページを訪れて、
SDカードをSPI経由でPICを使ってアクセス
しちゃう情報を眺めてみる。

http://www.mars.dti.ne.jp/~m7030/yellow_hos/fat.html
http://www.mars.dti.ne.jp/~m7030/yellow_hos/fat32.html
http://www.mars.dti.ne.jp/~m7030/pic_room/fatfs/index.html

うーん、楽しそうだな。

おいら以前せっかくSDカード用のブレッドボード
アクセサリを作っておきながら、全然弄らずに今に
至ってよるな…


元々音楽を持ち歩く習慣が無いおいらにとっては、MP3
プレイヤー的なものは以前買ったtrancendのT.sonic 650
だけあれば充分なんだけど、やっぱマイコンで大容量の
記憶媒体を扱ったり、それをPCのI/Fと共用したり
するってのが魅力だよな。

以前自宅で水槽を管理してた頃(熱帯魚ではありません)
には、水温とかPHとかのロギングがしたいなとか思って
あれこれ考えては見たんだけど、あのころは確か
SDカードは出てなかったし、SDを扱えるような
マイコンなんて大き過ぎてお手軽感が無かったもんな。

時間が出来たらいずれにしてもやりたいジャンル
なんだけど、明確な目的が目の前にぶら下がらないと
なかなか腰が持ち上がらないんだよな。


おぉ!日本人同士のバトル、熱いぜ!
(リアルタイム中継)
CM明けのダミ声やめろ!


今日は帰ってきて夕飯食ってから例によってVB
2005のMIDIモニターを少しだけ進めてみる。
うーん、とりあえず最後の2機能を除き、一通り
動作確認が出来ちゃった。

調子乗ってあと幾つか機能を載せたいんだけど、
まぁここまで出来ちゃえば完成といっても
いいんだよな。当初盛り込もうと思ってた機能は
既に載ったし。


あー、サトちゃんJrリタイヤか…残念…


とはいえ、やっぱりVB2005は困ったチャンだな。

デバッガを起動してテスト中、エラーが出たから
そのメッセージを信用してバグを探していたんだ
けど、エラーメッセージが指していたところじゃ
なくて、その少し先で呼び出ししていた関数の
さらに内部ロジックの部分にバグがあったよ( ̄〆 ̄)

エラーメッセージは「直接のエラー原因の場所」
を表示しなくちゃ意味ねーだろ!!!( ̄〆 ̄)
基本の「キ」だ!!!


というわけで、エラーの原因が判るまでにムダな
1時間を過ごしてしまったな…
しかもそのバグ。昔のBASICの言語仕様ならエラー
にならないはずのモノ。ゲイツ君が勝手にBASIC
の仕様を捻じ曲げちゃった部分ね。

まぁ、とりあえず開発中のスクリーンショット。


なにやら意味不明の画面ですが…

鍵盤をクリックするとMIDI出力にトーンデータが
出力されるとか、その上の方にあるテキストボックス
には直接バイナリデータ列を指定して出力できたり、
一方MIDIからの入力データは左のテキストボックス
にhexデータとしてリアルタイムで表示されるという
寸法。

ACTIVE SENSING(0xFE)は除外/非除外して表示したり
も可能になってたり、起動時に利用可能なcomポート
を自動で検索してくれたりと、今回はイロイロ盛り込み
済み。
音程も0~127のすべてに対応。ベロシティーは目下
100固定だけど、これはもう少し工夫したいところ。

残りはMIDI-inからMIDI-outにスルー
する機能と、ログをファイル保存する機能の2つだけ。
そこだけできればとりあえずVer.1は完成で
いいんじゃないかな。


もうちょっとだ。



コメント ( 0 )