Pascalさん、楠本さん、ご記帳ありがとうございます。
> ものすごく簡単なところで躓いていたら,遠慮なく叱ってください。 実はこの部分は、ものすごく重要で、 かつReadme.txtでもきちんと説明しきれていない部分です。 お叱りを受けるのは私の方かもしれません(苦笑)。
Museのコマンドや命令には、大きく2系統があります。 演奏時刻を優先としたものと、記述位置を優先したものです。 本当は、すべて演奏時刻優先であった方がわかりやすいのですが、 Museのコンパイル処理上しかたなく(というか手抜きかも)、 記述位置優先を採用しているものがあります。
演奏時刻優先というのは、図示すると以下の様な感じです。 ●で施した指定が、そのタイミングで全フィンガーに作用します。
#A0 xxxxx xx→→ →→→→→ #A1 xxxxx x●→→ →→→→→ #A2 xxxxx xx→→ →→→→→ #A3 xxxxx xx→→ →→→→→
一方、記述位置優先というのは、 記述したMuseデータの位置以降の記述に作用します。 演奏時刻はまったく関係ありません。
#A0 xxxxx xxxx xxxxx #A1 xxxxx x●→→ →→→→→ #A2 →→→→→ →→→→ →→→→→ #A3 →→→→→ →→→→ →→→→→
基本的に、メンバー属性は「演奏時刻優先」です。 ただし、移調(T)だけは「記述位置優先」です。(統一感が無くて申し訳ありません)
そして、フィンガー属性の方はすべて「記述位置優先」です。 でも、そもそもフィンガー属性の作用は記述したフィンガー内に閉じていますので、 演奏時刻優先と捉えても結果は同じになり混乱は少ないです。 (正確に言うと、和音記述でいろいろあるんですが・・・)汗
問題は、その他の全域指定です。 例えば (%)とか(\)とか、今回問題となった*FING""とかです。 ・テンポの(%)は、演奏時刻優先になっています。 ・しかし、強制タイミング合わせの(%)や(\)や*FING""は、記述位置優先なのです。
つまりPascalさんの例では、 *FING"v-75"が以降のすべての記述に作用していることになります。 しかし、その後の記述行で各フィンガーがv50と指定されているため、 結局すべてv50で演奏されている、というのが今回の挙動です。
という訳で、 *FINGコマンドは、演奏時刻優先と記述位置優先が一致する唯一のポイント、 つまりフィンガーの先頭位置にのみ用いるのが無難だと思います。 使い勝手が悪くて申し訳ありませんが、楠本さんの仰る通り ある時点での「一斉初期化コマンド」だと思って頂けると幸いです。
|