電音の工場ブログ

当ブログは…

自作エフェクターシンセサイザ製作のネタや開発覚え書きなど、筆者の電音活動を記録しています。お探しの記事が見つからない方は、検索カテゴリ一覧をご利用ください。

スパマーが来訪すると、ときどきコメントをはてなユーザのみに絞ったり開放したりすることがあります。

2005-06-08

MIDI同期 ― その1. 敵を知る2

|  MIDI同期 ― その1. 敵を知る2 - 電音の工場ブログ を含むブックマーク はてなブックマーク -  MIDI同期 ― その1. 敵を知る2 - 電音の工場ブログ  MIDI同期 ― その1. 敵を知る2 - 電音の工場ブログ のブックマークコメント

前回はMFSHのサンプルパルスについて調べた(id:Chuck:20050604#p1)。

では今回はMIDIについて若干の解説を…と考えたが、筆者が書かなくてもリソースはいっぱいある、はず。ということで例えばこの本。

MIDIバイブル〈1〉MIDI1.0規格 基礎編

MIDIバイブル〈1〉MIDI1.0規格 基礎編

  • 作者: リットーミュージック出版編集部
  • 出版社: リットーミュージック
  • 発売日: 1997/10

以上。

ではあんまりなので、MFSHMIDI同期化に必要なところを抜いてくる。

MIDIは以下のパラメータからなるシリアル転送となっている。

通信速度31.25kbps
キャラクタ長8bit
ストップビット1bit
パリティなし

通信速度の 31.25kbps という数字は、マイコンのクロックに 1MHz/4MHz/8MHz といったキリ番を使ったときに2のべき乗で綺麗に分周される数字になっている*1

シリアル転送をワンチップマイコンで楽に処理するためには、UARTとかUSARTといった周辺回路が載っているものを使うと都合が良い。もちろんソフトウェアでUARTの処理を行うことも可能だが、カッタルイことも確かで、これが ATtiny26L をMIDI回りに使おうとしたときにイマイチな理由となっている。

下のレベルにおりて、物理的な信号線としてみると、5mAのカレントループで、電流が流れていれば0、流れていなければ1として伝送するが、基本的にはMIDI規格書に書いてある回路を組めば良い。MIDI FX SW'er では次のような回路にしていた。MIDI受信まわりの参考回路

もっと上のレベルに上がっては、先の8bit(1byte)のシリアル転送単位のものを1つまたは複数個組み合わせて MIDIメッセージ というものを構成している。多数の種類があるが、MFSHMIDI同期化 に必要なのは、リアルタイム・メッセージと呼ばれるグループに属する、次のもの。

ステータス機能
F8タイミング・クロック
FAスタート
FBコンティニュー
FCストップ

んー、ここまで書いて疲れたので、続きはまた後日。

*1:なおここの"k" は1000をあらわす補助単位である。間違える人が少なくないが、1024ではない。

r0r0r0r02005/06/08 09:55それでシリアル通信が絡んでくるような製作にはTiny26Lが、使われないのですね。

ChuckChuck2005/06/08 20:49そうなのです。以前PIC16F84でソフトウェアUARTでMIDIモニタを作ったことがあります。勉強にはなりましたが、その次からはUART回路を持つデバイスを使うようになりました。

所長所長2005/06/09 01:46MIDIはUSBみたいにスピードアップが出来そうにないみたいですね・・・。20年以上出回ってるといまさら新しい規格を作ったとしても互換の問題とかがありますからねぇ。

ChuckChuck2005/06/09 12:27新規格が出てきても「10倍お得!」(何の?)じゃないと積極的に置き換わっていかない感じですね。速度的にMIDIの10倍は簡単に達成できそうですが、あんまり高機能・複雑になると趣味の工作では対応できなくなってしまいます…

みつばむしみつばむし2005/06/10 06:03手弾きだけなら今の速さでもあまり問題無いのかも知れませんね。そー言へば一時SequentialCircuitsがバルクダンプに倍速MIDIを使ってたよーな...MIDI規格外だったのでしょうけど。

ChuckChuck2005/06/10 09:47サンプル・ダンプとか考え始めると、31.25kbps では気が遠くなりますよね。

トラックバック - http://emusic.g.hatena.ne.jp/Chuck/20050608