Bug #42
(V5.84)マクロ記述されたコマンドが実行されない場合がある
ステータス: | 終了 | 開始日: | 2011/01/02 | |
---|---|---|---|---|
優先度: | 通常 | 期日: | 2011/01/19 | |
担当者: | - | 進捗 %: | 100% | |
カテゴリ: | - | 作業時間の記録: | - | |
対象バージョン: | - |
説明
状況(2011.01.19)¶
V5.85にて対処済み。
(原因)
従前の処理シーケンスは、データに一度だけ記述するタイプのコマンド重複チェックを、
マクロ展開処理よりも前に実施しており、しかも無名マクロの展開部ではそのコマンドの
展開を実施していなかった。しかし当初の仕様では、マクロの繰返し数にゼロ指定が
出来無かったため、定義部は必ず実行されるという前提を置くことができるため
演奏データとしては矛盾無く翻訳できた。
更にこの仕様で無名マクロを利用した場合、重複チェックに掛からない状況であったが、
定義部と展開部が必ず同一の指定となるため、2つの指定が競合することはなく、
事実上の問題は無いと判断していた。
しかるにゼロ指定を可能としたV5.3以降、定義部でも展開部でもコマンド認識をしない状況が生じ、
今回の症状が出現するに至った。
(対処)
マクロ展開を処理しながらコマンド重複チェックも並行するシーケンスに変更する事で、
マクロ内に記述されたコマンドを正しく展開解析し、重複チェックも厳密に行うようにした。
なおドラムに関しては、移調(T)および音部記号(?)を無効化する仕様を実現するため、
マクロ展開処理に先行してドラムコマンドの存在を決定する処置も施した。
概要(2011.01.02)¶
MUSEのコマンド?についてなのですが、
音符ですと、
{d4}0 {}
と書きますと、ドの音が4分音符で一回鳴ります。
ですが、
{*DRUM"O1"}0 {}
と書きますと、Oのメンバーはドラムに転向しませんでした。
いろいろ試してみましたが、
{*DRUM"O1"}0
は、転向せず、
{*DRUM"O1"}{} もしくは、*DRUM"O1" *DRUM"O1"
は転向します。
ヘッド*HEAD"moji" についても同じでした。
ひとつのMUSEデータ内で、音源別に2種類の設定を記述しようとして、発見しました。
これは、*DRUM""や*HEAD""が、音符とは違い、MUSEデータ内のどの位置に書いても有効な事と、関係がありますでしょうか?
関連するチケット