OSDN Ticket Archive


Ticket #26985

Mac OS X 10.7 Lion 対応

登録: 2011-12-21 22:04 最終更新: 2011-12-25 14:20

報告者:
yknk
担当者:
yknk
チケットの種類:
機能リクエスト
状況:
完了
コンポーネント:
MIDITrail Ver.1.1.x for Mac OS X
マイルストーン:
Version 1.1.3 for Mac OS X (完了済み)
優先度:
5 - 中
重要度:
7
解決法:
修正済み
ファイル:
なし

詳細

Mac OS X 10.7 Lion に対応する。

LionでMIDITrail Ver.1.1.2を実行するとき、MIDI OUTにApple DLS Music Deviceを選択していると、 MIDIデータ再生中に、次のエラーが発生することがある。

FILE: SMAppleDLSDevCtrl.mm
LINE: 130
INFO: FFFFD582 00000000

掲示板でも同様の報告あり。

[#60132] AUGraph API error
http://sourceforge.jp/forum/forum.php?thread_id=30628&forum_id=23361

チケットの履歴

2011-12-21 22:04 更新者: yknk
  • 新しいチケット "Mac OS X 10.7 Lion 対応" が作成されました
2011-12-21 22:40 更新者: yknk
コメント

エラーの発生原因

AUGraphに対するMIDIイベント送信処理APIであるMusicDeviceMIDIEventに対して、 特定のコントロールチェンジを送信しようとすると、エラーが発生する。 Mac OS X 10.6 までは、このようなエラーは発生していなかった。

なお、エラー発生時のMusicDeviceMIDIEventの戻り値は

FFFFD582 -> -10878
すなわち
kAudioUnitErr_InvalidParameter = -10878
だと思われる。

MusicDeviceMIDIEventを用いてコントロールチェンジを送信するテストを行った結果は次の通り。

Mac OS X 10.7 Lion でのMusicDeviceMIDIEvent実行結果

CC#0  ok      : Bank Select MSB
CC#1  ok      : Modulation Wheel or Lever
CC#2  error   : Breath Controller
CC#3  error   : --
CC#4  error   : Foot Controller
CC#5  error   : Portamento Time
CC#6  ok      : Data Entry MSB
CC#7  ok      : Channel Volume, fomerly Main Volume
CC#8  error   : Balance
CC#9  error   : --
CC#10  ok      : Pan
CC#11  ok      : Expression Controller
CC#12  error   : Effect Control 1
CC#13  error   : Effect Control 2
CC#14  error   : --
CC#15  error   : --
CC#16  error   : General Purpose Controller 1
CC#17  error   : General Purpose Controller 2
CC#18  error   : General Purpose Controller 3
CC#19  error   : General Purpose Controller 4
CC#20  error   : --
CC#21  error   : --
CC#22  error   : --
CC#23  error   : --
CC#24  error   : --
CC#25  error   : --
CC#26  error   : --
CC#27  error   : --
CC#28  error   : --
CC#29  error   : --
CC#30  error   : --
CC#31  error   : --
CC#32  ok      : LSB for Control 0 : Bank Select LSB
CC#33  ok      : LSB for Control 1 : Modulation Wheel or Lever
CC#34  error   : LSB for Control 2 : Breath Controller
CC#35  error   : LSB for Control 3 : --
CC#36  error   : LSB for Control 4 : Foot Controller
CC#37  error   : LSB for Control 5 : Portamento Time
CC#38  ok      : LSB for Control 6 : Data Entry
CC#39  ok      : LSB for Control 7 : Channel Volume, formerly Main Volume
CC#40  error   : LSB for Control 8 : Balance
CC#41  error   : LSB for Control 9 : --
CC#42  ok      : LSB for Control 10 : Pan
CC#43  ok      : LSB for Control 11 : Expression Controller
CC#44  error   : LSB for Control 12 : Effect Control 1
CC#45  error   : LSB for Control 13 : Effect Control 2
CC#46  error   : LSB for Control 14 : --
CC#47  error   : LSB for Control 15 : --
CC#48  error   : LSB for Control 16 : General Purpase Controller 1
CC#49  error   : LSB for Control 17 : General Purpase Controller 2
CC#50  error   : LSB for Control 18 : General Purpase Controller 3
CC#51  error   : LSB for Control 19 : General Purpase Controller 4
CC#52  error   : LSB for Control 20 : --
CC#53  error   : LSB for Control 21 : --
CC#54  error   : LSB for Control 22 : --
CC#55  error   : LSB for Control 23 : --
CC#56  error   : LSB for Control 24 : --
CC#57  error   : LSB for Control 25 : --
CC#58  error   : LSB for Control 26 : --
CC#59  error   : LSB for Control 27 : --
CC#60  error   : LSB for Control 28 : --
CC#61  error   : LSB for Control 29 : --
CC#62  error   : LSB for Control 30 : --
CC#63  error   : LSB for Control 31 : --
CC#64  ok      : Damper Pedal On/Off
CC#65  ok      : Portamento On/Off
CC#66  ok      : Sostenuto On/Off
CC#67  ok      : Soft Pedal On/Off
CC#68  error   : Legato Footswitch
CC#69  error   : Hold 2
CC#70  error   : Sound Controller 1 : defalut - Sound Variation
CC#71  error   : Sound Controller 2 : defalut - Timbre/Harmonic Intens.
CC#72  error   : Sound Controller 3 : defalut - Release Time
CC#73  error   : Sound Controller 4 : defalut - Attack Time
CC#74  error   : Sound Controller 5 : defalut - Brighteness
CC#75  error   : Sound Controller 6 : defalut - Decay Time
CC#76  error   : Sound Controller 7 : defalut - Vibrato Rate
CC#77  error   : Sound Controller 8 : defalut - Vibrato Depth
CC#78  error   : Sound Controller 9 : defalut - Vibrato Delay
CC#79  error   : Sound Controller 10 : --
CC#80  error   : General Purpose Controller 5
CC#81  error   : General Purpose Controller 6
CC#82  error   : General Purpose Controller 7
CC#83  error   : General Purpose Controller 8
CC#84  error   : Portamento Control
CC#85  error   : --
CC#86  error   : --
CC#87  error   : --
CC#88  error   : High Resolution Velocity Prefix
CC#89  error   : --
CC#90  error   : --
CC#91  ok      : Effect 1 Depth : default - Reverb Send Level
CC#92  error   : Effect 2 Depth : formerly Tremolo Depth
CC#93  error   : Effect 3 Depth : default - Chorus Send Level
CC#94  error   : Effect 4 Depth : formerly Celeste Depth
CC#95  error   : Effect 5 Depth : formerly Phaser Depth
CC#96  error   : Data Increment
CC#97  error   : Data Decrement
CC#98  error   : NRPN LSB
CC#99  error   : NRPN MSB
CC#100  ok      : RPN LSB
CC#101  ok      : RPN MSB
CC#102  error   : --
CC#103  error   : --
CC#104  error   : --
CC#105  error   : --
CC#106  error   : --
CC#107  error   : --
CC#108  error   : --
CC#109  error   : --
CC#110  error   : --
CC#111  error   : --
CC#112  error   : --
CC#113  error   : --
CC#114  error   : --
CC#115  error   : --
CC#116  error   : --
CC#117  error   : --
CC#118  error   : --
CC#119  error   : --
CC#120  ok      : Channel Mode Message : All Sound Off
CC#121  ok      : Channel Mode Message : Reset All Controllers
CC#122  error   : Channel Mode Message : Local Control On/Off
CC#123  ok      : Channel Mode Message : All Notes Off
CC#124  error   : Channel Mode Message : Omni Mode Off
CC#125  error   : Channel Mode Message : Omni Mode On
CC#126  error   : Channel Mode Message : Mono Mode On
CC#127  error   : Channel Mode Message : Poly Mode On
2011-12-21 22:51 更新者: yknk
コメント

対策方針

MusicDeviceMIDIEventの挙動は不可解である。 対応していないコントロールチェンジなら、これまで通り無視して欲しい。

対応案としては次の二つがある。

  1. MusicDeviceMIDIEventの戻り値がエラーであっても無視する。
  2. MusicDeviceMIDIEventでエラーが発生するコントロールチェンジだけ送信しない。

1.の対応が簡単であるが、今後別の異常が発生したときに検出できないというリスクがある。 よって2.の対応を採用する。

対策

SMAppleDLSDevCtrl::SendShortMsgにて、MusicDeviceMIDIEventを呼び出す前に、 Lionが対応しているコントロールチェンジであるか確認する。 対応していないコントロールチェンジである場合は、MusicDeviceMIDIEventを呼び出さずに捨てる。

2011-12-25 14:20 更新者: yknk
  • 解決法なし から 修正済み に更新されました
  • 状況オープン から 完了 に更新されました
  • チケット完了時刻2011-12-25 14:20 に更新されました

添付ファイルリスト

添付ファイルはありません