「サクラ」質問掲示板

サクラの質問掲示板です。

(#187) 遅ればせながら正攻法での解です。、 - 凪 (2012-10-04 00:33) /中 確認待ち
凪といいます。遅ればせながら正攻法での解です。、

//-------
Function GetTime{
 Int CT=Time;

 Array TT=();
 TT(0) = (Time(3:1:0)-Time(2:1:0)) / (Time(2:2:0)-Time(2:1:0));
 TT(1) = TimeBase*4 / ((Time(3:1:0)-Time(2:1:0)) / TT(0));

 RESULT=TT;
 Time(CT);  //Time書きもどし

} //Func

System.MeasureShift=0
TimeBase=98

TimeSignature=(15,7)
l7 ccccc ccccc ccccc

//TimeSignature=(15,8)
//l8 ccccc ccccc ccccc

Print(GetTime());

PrintTime;
//------

Twitter / sparkkamakiri様 10月1日より、この解へ至る方法論を提示されていたので、
これを元に一部改編しました。、本職のひとは一味ちがうな、、と思います。

変更点...
System.MeasureShiftへ対応しました。
分母数を出力してます。

Twitterアカウントの持ちあわせはなく連絡不可のため、またメールの要件ほどでもないと判断しまして、こちらに直接記入する運びとなりましたが、sparkkamakiri様に於いては、事後承諾ということでよろしいでしょうか?、、
問題があれば、修正するなり、取り下げるなど迅速にいたします。


それと確認していて、気になった点がありました、出力値と表示が一致しない点です。
[4,8,16]などの通常の数字では、演奏モニターへの出力と、PrintTimeの出力は一致しますが、、
それ以外の[12]などの分母数字は、何故か切り上げているみたいです。

つまり、5/12のような拍子であれば、演奏モニターは、5/16での時間表示になってずれます。
ただし、PrintTime側ではあってます、、表示がうまくいっていない気がします。
参考として、15/7は、15/8での時間表示になっていました。


それと、これは蛇足かもしれませんが...過去の質問掲示板でも変拍子の件で話題に上がっていたようなので、、
TimeSignature命令の、扱いの難しさの仕組みを解いてみました。

http://oto.chu.jp/cgi/sakura-q/cbbs.cgi?mode=al2&namber=13232&rev=&no=0
http://oto.chu.jp/cgi/sakura-q/srch.cgi?no=0&word=%95%CF%94%8F%8Eq&andor=and&logs=all&KYO=1&PAGE=20

TimeSignature命令によって変更される時間表示は、単純に現在のタイム値から、割り出しているようなので、
もしTimeSignatureが上書きされると、記述されたポイントから合算するのではなく、
最初から全て計算し直しするので、見慣れない数値が表示され、混乱に陥るのではないかと考えています。


TimeBase=96として、3/4拍子の場合、Track(0);Time(2:1:0);//=288(PrintTime)
拍子を、12/8拍子で書き換えた瞬間、Track(0);Time(1:7:0);//=288(PrintTime)

//-------
TimeBase=96;
TimeSignature=(3,4)
l4 ccc

PrintTime;  //Time値 288 -> Time(2:1:0);

TimeSignature=(12,8);
PrintTime;  //Time値は同じ 288 ->Time(1:7:0);

l8 cccc cccc cccc

//-------

タイム値を加算しない状態として、このポイントで拍子だけを変更すると、
単純に現在の小節表示が変更され、l4ccc -> l8ccc ccc 分移動したTime(1:7:0);という表示に変化します。
関数で拍子を取得する方法は? / 迷子の雄猫 (2012-09-27 21:08) (#182)/ 低 未処理
  正攻法ではありませんが... / 通りがかりです (2012-09-28 00:18) (#185)/ 中 確認待ち
    関数で拍子を取得する方法はなさそう? / 迷子の雄猫 (2012-09-28 03:08) (#186)/ 低 アイデア
      遅ればせながら正攻法での解です。、 / 凪 (2012-10-04 00:33) (#187)/ 中 確認待ち
        解決:ようやく思い通りに拍子を取得 / 迷子の雄猫 (2014-01-10 15:06) (#260)/ 低 解決

(#187)へ返信する:

👆お手数ですが、いたずら防止のために、「真夏」の読み方を平仮名で記入してください。

編集時に使うキーを入力(省略可能)

画像ファイル(最大300KB)を添付可能