Bug #64

Redmine Adminほぼ11年前に更新

h1. 状況(2012.11.23)

V6.27にて対応済み。

(原因)
現在のMuseは、メンバー情報やフォーカス機構において、
ミュート指定したメンバーやフィンガーであってもノートOFFの命令はすべて音源に送っている。
その理由は、もしノートONの直後(まだノートOFFが送信されていない状態)で、
そのメンバーやフィンガーにミュートを掛けると、音が鳴り続けてしまうという事態を抑止するためである。

> なぜ一つ目が消えないのかは謎ですが…
まず、#A0 #A1 の両フィンガーとも通常に演奏させた場合を図解すると以下の様になる。

<pre>
#A0 ON(1)------------OFF(1)
ON(2)--------------OFF(2)

#A1 ON(3)------------OFF(3)
ON(4)-------OFF(4)

ここで、#A0だけフォーカスし 現行Museの仕様で#A1をミュートすると、

#A0 ON(1)------------OFF(1)
ON(2)--------------OFF(2)

#A1 OFF(3)
OFF(4)

となり、この時、OFF(3)が、ON(2)の音を止めてしまう。
</pre>

なお、Museは同時刻のノートONとノートOFFがあった場合、先に全ての音止を送信してから、
間髪入れずノートONを送るように工夫している。
よって、pコマンドを使わないと、OFF(1)→OFF(3)→ON(2)という順番で音源に送信され、
OFF(3)は止めるべき相手がいないため、症状が出ない。

(対処)
連結&処理用にセットした音符対を表現するOFFからONへのポインタが残存しているため、それを活用して対応を行った。

各音符に新たなフラグ(音源へのノートON送信済みフラグ)を設け、ミュート対象のノートOFFを検出した際、

先のポインタで対となるノートONをたぐり、そのフラグが既に立っていたら音源に送信し、立っていなければ送信しない

という制御を組み込んだ。

h1. 概要(2012.11.22)


<pre>
*FING"x1 "
@A P72
#A1 p^i10cc
#A2 cc
</pre>

この状態で、フォーカス機能を使って#A1だけ再生すると二つ目のcが消えます。
どうやらpコマンドを使って、同じメンバーで同じ音を同じタイミングで出すと消えるようです。
なぜ一つ目が消えないのかは謎ですが…

戻る