[[Q&Aコーナー]] *質問 [#gdd58bb1] 投稿日:2015/03/28(Sat) 23:27 皆さんお久しぶりです。 たぶん初めてのFINGコマンドなのですが, 下記のデータで,G7の音だけ大きくなるかと思ったら,変化がありません。 <>部分を右クリックしてv属性を見ると,v+75もv-75も先頭に書かれています。 これはなぜでしょうか? ものすごく簡単なところで躓いていたら,遠慮なく叱ってください。 よろしくお願いします。 ;ここから #H8 _1*MARK""*FING"v+75"_*MARK""*FING"v-75"_ #A1 @v50 {d1/>s<d} #B1 @v50 {m1/[rf]m} #C1 @v50 {s1/ss} #D1 @v50 <{d1/>c<d} % #H8 _1___ ;ここまで *回答 [#w46b8504] 投稿日:2015/03/29(Sun) 09:11 あははっ、私も*FINGのタイミングがわからず、調べることもせず、今まで別々にすべて同じ記述をしてきました。 と、分からないことを前置きして、(わからないならコメントするなっ、て話ですが。^^;) これを機に*FINGを使いたいと思います。 質問者さんのイメージは、例えて云うなら、テンポ(%)と同じイメージなんだと思います。 テンポなら質問者さんの記述通り、初めのHメンバーにひとつ記述すればその後のメンバーすべてが同じテンポになります。 でも、この記述の結果を見ると、そうではなく、*FINGの記述の場所が大事なようですね。 つまり、同じメンバー内でも、下記のような記述では、#A2は冒頭から*FING指定になるのでしょう。多分。^^; #A1----------------------------*FING----------------------------- #A2-------------------------------------------------------------- もしそうなら、あえて*FINGを使うとすると、Hメンバーは必要でなくなり、次のようになりますかね。 ;---------------ここから------------------ #A1 v50 d1/ #B1 v50 m1/ #C1 v50 s1/ #D1 v50 <d1/ *FING"v+75" #A1 >s #B1 [rf] #C1 s #D1 >c *FING"v-75" #A1 <d #B1 m #C1 s #D1 <d ;---------------ここから------------------ ;---------------ここまで------------------ このようになるでしょうか。多分。^^; でも、無名マクロが必要なら、これでは使えませんね。 自信はないので、後はみんなの意見を待ちたいと思います。 投稿日:2015/03/29(Sun) 10:31 投稿者:開発者 > ものすごく簡単なところで躓いていたら,遠慮なく叱ってください。 実はこの部分は、ものすごく重要で、 かつ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コマンドは、演奏時刻優先と記述位置優先が一致する唯一のポイント、 つまりフィンガーの先頭位置にのみ用いるのが無難だと思います。 使い勝手が悪くて申し訳ありませんが、 ある時点での「一斉初期化コマンド」だと思って頂けると幸いです。 投稿日:2015/03/30(Mon) 00:23 説明を読ませていただきました。 メンバ属性と比べて,フィンガーごとに値を持つ属性を 「演奏時刻優先」で設定するのは 負荷が高いだろうということはわかります。 FINGは,曲頭や,%等で先頭と最後をそろえられた部品を くっつける際の初期化を意図しているということで, 納得できました。どうもありがとうございました。 (Tや\はフィンガーごとに異なる移調楽器を記載するための仕様ですよね。 その役割は今はyに移ったでしょうが。) 投稿日:2015/03/30(Mon) 00:50 > (Tや\はフィンガーごとに異なる移調楽器を記載するための仕様ですよね。 > その役割は今はyに移ったでしょうが。) う〜ん。流石。1を聞いて10を知るといった感じです! この件についても先の書込みで触れようと思ったのですが、 あまりに長文になるためグッとこらえた所でした。 仰る通り、移調楽器においてのTと\の使い勝手の悪さからyを開発しました。 Tと\は、過去データの互換性のために・・・ と言うとちょぴり淋しいので、こう捉えて下さい。 「Tや\は、メンバー単位で一括指定できるyである。 更に\は、全メンバーの一括指定さえできる」 これらのコマンドは、ポップス系のMuserには便利ではないかと思っています。