任务单 #22506

再生終了後に音が鳴り続ける場合がある

开放日期: 2010-07-16 11:45 最后更新: 2010-07-25 12:29

报告人:
(匿名)
属主:
类型:
状态:
关闭
优先:
5 - Medium
严重性:
5 - Medium
处理结果:
Fixed
文件:

Details

特定のMIDIデータにおいて、曲の再生が終了しても最後の音が鳴り続ける場合がある。 曲の最後で NOTE ON したまま NOTE OFF しないMIDIデータで発生している。

任务单历史 (3/6 Histories)

2010-07-16 11:45 Updated by: None
  • New Ticket "再生終了後に音が鳴り続ける場合がある" created
2010-07-18 03:41 Updated by: yknk
2010-07-23 01:08 Updated by: yknk
评论

原因

NOTE ON したままトラックが終了するSMFがある。 シーケンサは素直に従うため、再生が終わっても音が鳴ったままになる。

問題のSMFは cvs.exe や rcpcv.dll で *.RCP から *.MID に変換したものである。 変換元の *.RCP で、トラックの最終データが次のように ST < GT になってると、 NOTE OFF が欠けたSMFができるらしい。変換ツールの不具合??

NOTE  ST  GT  VEL
B5    24  37  126
END_TRACK

SMFの仕様で、このようなデータへの対処方法(指針)が定義されているかどうかは不明。

2010-07-23 01:14 Updated by: yknk
  • 处理结果 Update from to Fixed
评论

対策

再生終了時に、全トラックを NOTE OFF する。 少々乱暴であるが、音が鳴りっぱなしになることを確実に避ける。

SMSequencer::_OnTimer

データ終端に到達したら全トラックの NOTE OFF を行う。_AllTrackNoteOff()

SMOutDevCtrl::NoteOffAll

全トラックノートオフの処理は実装済みであったが、 MIDIデバイスに送信するコマンドが間違っていたので修正する。

  • オールサウンドオフ Bn 78 ←こちらを送信していた
  • オールノートオフ Bn 7B
2010-07-25 12:26 Updated by: yknk
  • 状态 Update from 开启 to 关闭
  • Ticket Close date is changed to 2010-07-25 12:26
2010-07-25 12:29 Updated by: yknk
评论

備考:ログインせずにチケットを登録してしまったので、報告者が(匿名)になっています。

Attachment File List

No attachments

编辑

Please login to add comment to this ticket » 登录名