Bug #13

Redmine Adminほぼ11年前に更新

h1. 状況(2007.10.14)

明かな再現性を確認。
V5.22で対処済み。

(原因)連結処理のアルゴリズムは同時刻のノートOFFとノートONを検出することで行っているが、その検出を高速化するため、ある条件に達した場合に検出作業を打ちきっていた。今回、pqやスタッカートに影響されない仕様に変更したことで、その打ち切り条件を以前よりも広くとらなければならないにもかかわらず、以前のまま実施していた。

(対処)ロード時に、フィンガー毎の時刻キーによるソーティングリストを作成し、それを元に打ちきり条件を決めるように改修した。これにより、今までのコンパイル速度をほぼ維持しつつ、pqやスタッカートに影響を受けない連結を実現した。

(追記)今回の障害対応に伴い、連結&はフィンガー内でのみ実施するように改めた。従来は、メンバー内のフィンガーをまたいで効果していた。

h1. 概要(2007.10.13)

連結コマンド"&"の仕様が, 次のようなコードではうまく機能しません.
<pre>
*FING"x1 q~64"
#A0o5 [dg]4&[db][ea]&[e<c>] | [eb]&[ea][dg]&, | _
#A1p~16q^32.o3 ({ba<c>b<dc>ag}2)1 | () |
</pre>


どうやら,他のフィンガーのp,q指定の影響も受けてしまっているようです.
余りよく調べていませんが,

・#A1 を #B0 など別のメンバーに変えても音は途切れたまま.
・#A1 をコメントアウトすると,ちゃんと音がつながる.
・#A1 の q 指定を q^16 とすると,ちゃんと音がつながる.
・#A1 の p,q 指定を p~4q^4~64 とすると,#A0 の最初のレの音だけがちゃんとつながる.
・#A1 の音符部分を (ba<c>b<dc>ag)1 | () | とする
(つまり,16分音符刻みから8分音符刻みにする)とちゃんと音がつながる.

などが判っています.

戻る