[表紙に戻る] [<<<<<] [>>>>>] [ひとつ上へ]
これまでのMMLは、コンピュータに内蔵されている音源をターゲットとする場合がほとんどでしたが(そうでないシステムも存在します)、SMCのMMLは、送信すべきMIDIメッセージを記述することとほぼ等価であるため、MML記述の際に注意すべき点がいくつかあります。
MIDIにおけるハードウェア仕様についてここで詳しくは述べませんが、直接音源チップをアクセスするのとは異なり、データ転送というオーバーヘッドが必ず発生します。今のところはどんなに高速なプロセッサを搭載したマシンを用いても、受信側(主に楽器)にMIDIメッセージが到着するタイミングには上限があるわけです。さらに、受信側の内部に到着データをどれだけ蓄えておくことができるのか、という問題によって、受信バッファが小さいと送信側が送信したデータを(受信側が)取りこぼしてしまう、という現象も発生します。
前項での記述から、同じタイミング(MIDIクロック)内で、MIDIメッセージを生成するコマンドを多く並べすぎると、演奏時にもたつきが起こったり、最悪の場合には受信されない、といったことになります。ですから、同じタイミングで送信するMIDIメッセージは必要最小限にとどめるようにします。それに対して、SMC内部のパラメータを更新するだけでMIDIメッセージを生成しないコマンド(例えばデフォルトのベロシティを設定する“u”など)は、そういったことを気にする必要はありません。
以上に述べたことは、既に数値入力の経験がある方には当然のことと思われるでしょう。実際は、使用する楽器にもよりますので、皆さんがいろいろ実験してみて、どの程度の記述までなら楽器が耐え得るのか、演奏が不自然に聞こえないのか、といったことを調べてみるのも良いのではないでしょうか。