Bug #83

(V6.53)途中再生時に波形加工が正常に反映されない場合がある

Redmine Adminほぼ11年前に追加.

ステータス:終了開始日:2013/07/21
優先度:通常期日:2013/07/22
担当者:-進捗 %:

100%

カテゴリ:-作業時間の記録:-
対象バージョン:-

説明

状況(2013.07.22)

V6.54にて対応済み。

(原因)
Museは極力無駄なコントロールメッセージを音源に送出しないようにして音源負荷を低下させる工夫を施している。
その一環として、同一のMSBやLSBが続く場合は送出の省略を実施している。
このため、単独のデータエントリーでコントロール値を変更する場合が存在する。
一方途中再生時において、シークを効率的に実施するため、波形加工のメッセージはその最終値のみを一括送出するようにしている。
曲頭から再生した場合は矛盾は起きないが、途中再生時の場合に単独のデータエントリーに対して省略されているLSBの種別が食い違う可能性があった。
V6.41までは、この食い違いを発生させないように最終的に発行したMSBとLSBをシーク処理の最後に再発行していたが、
V6.50でシーク処理全体を組み直した際、この再発行処理を取り除いてしまっていた。

(対処)
最終のLSB再発行処理を復活させた。
なおMSBの方は、波形加工の一括送出処理の特性上、種別の食い違いが発生しないため、再発行しないままとしている。

(再現性に関する分析)
VSCでは本症状は再現しなかったが、これはVSCの特殊な音源仕様が理由である可能性が高い。
VSCの波形加工(周波数)は、Q=①,②における①と②が独立ではなく、どちらを指定しても同じ1つの効果だけをサポートしている模様。
すなわち、①を指定しても、②を指定しても、最後に指定した値でもう片方を律則してしまう。
(波形加工の確認ダイアログで実験したところ、かなりの確度で本推論が正しいと思われる)
もしこの推測が正しいとすると、LSBの種別が食い違うというバグがあっても、VSCは不具合が起きていないかのように振舞うことになる。

概要(2013.07.21)

以下のデータは最初から再生した際には問題はありませんが、途中から再生すると「Q=64.64」が反映されないようです。

Q=1.0 Q=0.:2
d1
%*MARK "途中再生" 
Q=64.64
d1

冒頭の「Q=1.0」や、「Q=0.:2」を外した場合や、「Q=64.64」の部分を「Q=64.64:i1」のようにするのはOKです。
バージョンは、V6.50以降から発生しているようで、V6.41では未発生でした。
現象を確認した音源は、
① Roland SC-8850(UM-1G経由)
② CoolSoft VirtualMIDISynth
③ Timidity
です。
SoundFontによってはQ=の効きが違うので、効果がわかりにくいこともありますが、GeneralUser GS等30MBレベルのSFなら再現できると思います。
VSCでは、演奏終了時のメモリ解放を有効にするか否かで挙動が変わる場合があったかと思います。


関連するチケット

関連している Release #177: Muse V6.53 終了 2013/07/17

他の形式にエクスポート: Atom PDF