「現像」タブに移ると操作を反映しない
Closed this issue · 35 comments
シーンスイッチで現像に移るよう設定すると移ったあと直後もしくは数十回の操作で操作を反映しなくなる。
MIDI2LR.appの設定で「現像に移る」を「未割り当て」に設定すれば停止しなくなるのでMIDI2LR側が問題ある可能性がある。
LEDとOLEDの表示には操作が反映されている。
USBの抜き差しまで機能が回復することはない。
開発マシンでMIDIMonitor.app使うと、シーン切り替えボタンの後もMIDIメッセージを送り続けている。
MIDI2LR.appで「Lightroomへ送信を停止」すると、止まらない。やはりMIDI2LR側の問題か。
MIDI2LR.appの設定で「現像に移る」を「未割り当て」に設定すれば停止しなくなるのでMIDI2LR側が問題ある可能性がある。
「未割り当て」でも停止してしまう。
Not issue on LrTMAX.
AKAI Synthstation25では起きないので、LrTMAXの何かが原因っぽい。
CCチャネル番号がNRPNの設定シーケンスで使用するチャンネルと被っているので0x40オフセットをつけて空き番号の空間に移動する。
Problem still exists.
SynthStation25のMIDI descriptorをコピーしたら解決したようだ。
nanooKontrol2ベースにしたら再発した(?)
USBの抜き差しまで機能が回復することはない。
ファームウェアリブートまで機能が回復する事はない。
アクティビティモニター 反応ある間はMIDI2LR.App 送信パケットの数値が操作とともに上がっていくが、症状が出ると上がらなくなる。
アクティビティモニター 反応ある間は送信パケットの数値が操作とともに上がっていくが、症状が出ると上がらなくなる。
と、言うことは問題はMIDI2LR.Appか。
MIDI2LR.app ソース解析の結果、
CC チャンネル 6,38,98,99は
NRPNの処理用に個別の判断の判断があるため、使用を避ける。
CC 40(decimal)をシーン0、エンコーダ0のチャンネルとする。
問題が発生する「部分補正 テクスチャ」と「部分補正 明瞭度」についてもマスクを作る前なら問題なく何回でも操作できる。
問題が発生する「部分補正 テクスチャ」と「部分補正 明瞭度」についてもマスクを作る前なら問題なく何回でも操作できる。
ということはLrTMAXには何の問題もない(?)
現像調整をしているファイルに移るとCCコマンドを受信して現在値を反映するが、これを受信した後反映しなくなる
usbd_midi.c を見ると MidiRx()を呼んだ後、
USBD_LL_PrepareReceive()を呼んでいる。
この部分に時間がかかる事は障害になると考え、
Midi_Rx内でキューイングを行うようにした。
キューイングされたデータはEmulate MIDI 内で処理して、
MIDI_CC_Value[] に反映している事までを確認した。
ただし、MIDI_CC_Value[] の反映を行ったあと、送信データが反映されない。か、ピッチベンドとして解釈されてしまう。
データを受信したあと、全く送信していないわけでは無く、操作に応じた送信自体は続いている。
調整が一つなら止まらない。4つは確実に止まってしまう。
現像タブ上でも、ゆっくりした操作なら、止まらない。
ライブラリタブなら止まらない。
0.67で部分的に解決
0.67の解決はプロジェクト全体に-Ofastを指定さた物だったが
エンコーダーの向きが逆開店に認識される副作用が発生する様だ。
-O3なら発生しない模様。
0.67の解決はプロジェクト全体に-Ofastを指定さた物だったが
エンコーダーの向きが逆開店に認識される副作用が発生する様だ。
-O3なら発生しない模様。
-O3でも発生してしまう。-O2は出ない
#19 の問題を解決したら逆向きは軽減した 最適化は-O2で固定
#19 の根本的解決でキューイングを改良したのでこのissueに関してもすこしはよくなっている事を期待する。
現像ずみ写真のコレクションをカーソルキーで辿っていっても止まらない。
エンコーダーの操作でのみ停止する。
受信しつつでも送信はしている様だ。
ゆっくり操作、特に現像履歴がアクティブになった後まで待ってエンコーダを動かすと、止まらない。
自家ビルドしたMIDI2LR Appでログとかブレークポイントを張った結果、
現象が起きている時はMidiReceiverに制御が来ていない、
juicerで止まっている
0.69で止まらなくなった。対策完了?