- 追加された行はこの色です。
- 削除された行はこの色です。
[[Museの裏話]]
[933] 空白1小節の中身 投稿者:開発者 投稿日:2001/02/21(Wed) 12:46 [返信]
[927]名越さん
↓
‖マナーであるという理由ならば、そのマナーはMuseデータを作成する人が
‖やらなければならない/やればいいことで、Museが追加しなくてもいいん
‖じゃないでしょうか。
‖
全くその通りでございます。
よくある「小さな親切大きなお世話」ソフトにならぬようMuseも慎重に設計している
つもりです。
でも、実は今回の「空白の出だし」の件は、マナーだけの問題ではないのです。
私の説明[923]が舌足らずで申し訳ありませんでした。
誤解を解くために、改めてご説明します。
この件は以前、Museで出力したMIDIを譜面ソフトで譜面化したいというご要求に
端を発しております。本当は、出だしのインターバルをゼロにしてしまえば、
譜面化も難なくクリアできるのですが、初期化には50msecほどのインターバルを
おかなければうまく音源側が処理できない命令があります。
例えばドラム転向などです。昔のバージョンでは全くインターバルを入れていな
かったため、音源環境によっては転向できないという不具合を起こしていました。
という訳で、必要最低限の“間”が必要なのですが、その最低限の空白を、
そのまま出力すると、今度は譜面化の際に困ることになります。
音符が小節の途中から出て、ずれてしまい、端数音符がどっさり表示されるのです。
そこで、“1小節分”という区切りインターバルを与え、
その中で必要な初期化処理をすべて行ってしまうという仕様になった訳です。
結局、
・譜面化したい。
・MIDI初期化コマンドには、最低限の“間”が必要。
という2つの要請に答えるために、今の仕様となりました。
(次期バージョンで、この“間”の実時間を2秒から0.5秒に縮められそうです)
これさえも、「小さな親切大きなお世話」であるとなると、
(↑名越さんは、決してそうは言っていません。ここから先は、持論の展開です)
今度は、初期化コマンドもミューザー自らがコーディングせよという仕様になります。
それは、Museのコンセプトにそぐわないので、私にはかなり抵抗があります。
だって、16進コードのMIDIメッセージを理解した人じゃないと使えなくなって
しまいますから。
やれ、ドラム転向があるから、そのためのエクスクルーシブイベントはなんだの、
やれ、ピッチ変化があるから、そのためのRPNイベントはなんだの、
やれ、波形加工をしているから、そのためのNRPNイベントはなんだの、
やれ、ドラムロールの響きを与えるから、そのためのエクスクルーシブはなんだの、
それらを、各メンバーごとにきめ細かく、頭の1小節内で指定しておかないと
機能しません。少なくとも、ミューザーとしての自分は、そのような面倒で、
定型的な作業こそプログラムでやって欲しいと思いました。
そこでMuseでは、Museが上記のすべての処理を、影で一生懸命やっています。
あの1小節の中には、上記のような準備作業が詰め込まれているのです。
しかも、常にその時のMuseデータに合わせて、必要最低限の初期化だけするよう
にしています。
これが、「空白1小節」の中身です。
どうしても、そこまで自らの手で行いたい場合は、やはり一般のMMLコンパイラを
お使いになるほうが良いと思っています。一般のMMLコンパイラは、16進並びの
テキストファイルを16進のバイナリファイルにするといったスタンスです。
私からすると、これではコンパイラーではなく、ただのファイル変換ソフトだと思える
のですが...。しかし、“音楽”というより“MIDI”大好き!という人は、そちらの方
が、期待にこたえてくれるのも事実です。
それらは、エクスクルーシブやRPN/NRPNのようなMIDI仕様の完全理解を
前提としているのです。
どちらが良い悪いは別として、この点が、Museと普通のMMLコンパイラとの
一番大きな違いだと、私は思っています。
★また話が大きく外れてしまいました。長文ごめんなさい。
(補足)
MuseからMIDIをエクスポートすると1小節の空白が出力されます。これの中身についてのお話です。なお、*DATAが実装される前の話です。~
現在は*DATA""のように内容が空白の*DATAを書くと一部出力されないコマンドが存在します。