L'extrait de code que tu cites est en entrée, les leds se programment en sorties (code de PJean).
Voici par exemple le code de sortie du MP3e2
- Code: Select all
<output-mappings>
<device-event name="StateRequest">
<MIDI type="Note" parameter="0x7f" channel="1" value="0x7f"/>
</device-event>
<mapping>
<control alias="fam(Player)[0x1].PlayPause" value="true"/>
<MIDI type="Note" parameter="0xf" channel="0x1" value="127"/>
</mapping>
<mapping>
<control alias="fam(Player)[0x1].PlayPause" value="false"/>
<MIDI type="Note" parameter="0xf" channel="0x1" value="0"/>
</mapping>
<mapping>
<control alias="fam(Player)[0x1].CueStateOutput" value="0"/>
<MIDI type="Note" parameter="0xe" channel="0x1" value="0"/>
</mapping>
<mapping>
<control alias="fam(Player)[0x1].CueStateOutput" value="1"/>
<MIDI type="Note" parameter="0xe" channel="0x1" value="127"/>
</mapping>
<mapping>
<control alias="fam(Player)[0x1].CueStateOutput" value="2"/>
<MIDI loop="true"/>
<MIDI type="Note" parameter="0xe" channel="0x1" value="127" duration="500"/>
<MIDI type="Note" parameter="0xe" channel="0x1" value="0" duration="500"/>
</mapping>
<mapping>
<control alias="fam(Matcher).MatchAWithBFeedback" value="true"/>
<MIDI type="Note" parameter="0x12" channel="0x1" value="127"/>
</mapping>
<mapping>
<control alias="fam(Matcher).MatchAWithBFeedback" value="false"/>
<MIDI type="Note" parameter="0x12" channel="0x1" value="0"/>
</mapping>
<mapping>
<control alias="fam(Matcher).SyncAOnBFeedback" value="true"/>
<MIDI type="Note" parameter="0x12" channel="0x1" value="127"/>
</mapping>
<mapping>
<control alias="fam(Matcher).SyncAOnBFeedback" value="false"/>
<MIDI type="Note" parameter="0x12" channel="0x1" value="0"/>
</mapping>
<mapping>
<control alias="fam(Player)[0x1].KeyLockOutput" value="true"/>
<MIDI type="Note" parameter="0x13" channel="0x1" value="127"/>
</mapping>
<mapping>
<control alias="fam(Player)[0x1].KeyLockOutput" value="false"/>
<MIDI type="Note" parameter="0x13" channel="0x1" value="0"/>
</mapping>
<mapping>
<control alias="fam(Player)[0x1].AutoLoopSelectAndTrigger" value="0"/>
<MIDI type="Note" parameter="0x1" channel="0x1" value="0"/>
<MIDI type="Note" parameter="0x2" channel="0x1" value="0"/>
<MIDI type="Note" parameter="0x3" channel="0x1" value="0"/>
<MIDI type="Note" parameter="0x4" channel="0x1" value="0"/>
</mapping>
<mapping>
<control alias="fam(Player)[0x1].AutoLoopSelectAndTrigger" value="4"/>
<MIDI type="Note" parameter="0x1" channel="0x1" value="127"/>
<MIDI type="Note" parameter="0x2" channel="0x1" value="0"/>
<MIDI type="Note" parameter="0x3" channel="0x1" value="0"/>
<MIDI type="Note" parameter="0x4" channel="0x1" value="0"/>
</mapping>
<mapping>
<control alias="fam(Player)[0x1].AutoLoopSelectAndTrigger" value="5"/>
<MIDI type="Note" parameter="0x1" channel="0x1" value="0"/>
<MIDI type="Note" parameter="0x2" channel="0x1" value="127"/>
<MIDI type="Note" parameter="0x3" channel="0x1" value="0"/>
<MIDI type="Note" parameter="0x4" channel="0x1" value="0"/>
</mapping>
<mapping>
<control alias="fam(Player)[0x1].AutoLoopSelectAndTrigger" value="6"/>
<MIDI type="Note" parameter="0x1" channel="0x1" value="0"/>
<MIDI type="Note" parameter="0x2" channel="0x1" value="0"/>
<MIDI type="Note" parameter="0x3" channel="0x1" value="127"/>
<MIDI type="Note" parameter="0x4" channel="0x1" value="0"/>
</mapping>
<mapping>
<control alias="fam(Player)[0x1].AutoLoopSelectAndTrigger" value="7"/>
<MIDI type="Note" parameter="0x1" channel="0x1" value="0"/>
<MIDI type="Note" parameter="0x2" channel="0x1" value="0"/>
<MIDI type="Note" parameter="0x3" channel="0x1" value="0"/>
<MIDI type="Note" parameter="0x4" channel="0x1" value="127"/>
</mapping>
<mapping>
<control alias="fam(Fx)[0x1].OnOff" value="true"/>
<MIDI type="Note" parameter="0x7" channel="0x1" value="127"/>
</mapping>
<mapping>
<control alias="fam(Fx)[0x1].OnOff" value="false"/>
<MIDI type="Note" parameter="0x7" channel="0x1" value="0"/>
</mapping>
<mapping>
<control alias="fam(Mixer).CueMonitorA" value="true"/>
<MIDI type="Note" parameter="0x10" channel="0x1" value="127"/>
</mapping>
<mapping>
<control alias="fam(Mixer).CueMonitorA" value="false"/>
<MIDI type="Note" parameter="0x10" channel="0x1" value="0"/>
</mapping>
<mapping>
<control alias="fam(Player)[0x1].VinylMode" value="true"/>
<MIDI type="Note" parameter="0x2d" channel="0x1" value="127"/>
</mapping>
<mapping>
<control alias="fam(Player)[0x1].VinylMode" value="false"/>
<MIDI type="Note" parameter="0x2d" channel="0x1" value="0"/>
</mapping>
<mapping>
<control alias="fam(Player)[0x1].BendUp" value="true"/>
<MIDI type="Note" parameter="0xb" channel="0x1" value="127"/>
</mapping>
<mapping>
<control alias="fam(Player)[0x1].BendUp" value="false"/>
<MIDI type="Note" parameter="0xb" channel="0x1" value="0"/>
</mapping>
<mapping>
<control alias="fam(Player)[0x1].BendDown" value="true"/>
<MIDI type="Note" parameter="0xa" channel="0x1" value="127"/>
</mapping>
<mapping>
<control alias="fam(Player)[0x1].BendDown" value="false"/>
<MIDI type="Note" parameter="0xa" channel="0x1" value="0"/>
</mapping>
<mapping>
<control alias="fam(Player)[0x2].PlayPause" value="true"/>
<MIDI type="Note" parameter="0x23" channel="0x1" value="127"/>
</mapping>
<mapping>
<control alias="fam(Player)[0x2].PlayPause" value="false"/>
<MIDI type="Note" parameter="0x23" channel="0x1" value="0"/>
</mapping>
<mapping>
<control alias="fam(Player)[0x2].CueStateOutput" value="0"/>
<MIDI type="Note" parameter="0x22" channel="0x1" value="0"/>
</mapping>
<mapping>
<control alias="fam(Player)[0x2].CueStateOutput" value="1"/>
<MIDI type="Note" parameter="0x22" channel="0x1" value="127"/>
</mapping>
<mapping>
<control alias="fam(Player)[0x2].CueStateOutput" value="2"/>
<MIDI loop="true"/>
<MIDI type="Note" parameter="0x22" channel="0x1" value="127" duration="500"/>
<MIDI type="Note" parameter="0x22" channel="0x1" value="0" duration="500"/>
</mapping>
<mapping>
<control alias="fam(Matcher).MatchBWithAFeedback" value="true"/>
<MIDI type="Note" parameter="0x26" channel="0x1" value="127"/>
</mapping>
<mapping>
<control alias="fam(Matcher).MatchBWithAFeedback" value="false"/>
<MIDI type="Note" parameter="0x26" channel="0x1" value="0"/>
</mapping>
<mapping>
<control alias="fam(Matcher).SyncBOnAFeedback" value="true"/>
<MIDI type="Note" parameter="0x26" channel="0x1" value="127"/>
</mapping>
<mapping>
<control alias="fam(Matcher).SyncBOnAFeedback" value="false"/>
<MIDI type="Note" parameter="0x26" channel="0x1" value="0"/>
</mapping>
<mapping>
<control alias="fam(Player)[0x2].KeyLockOutput" value="true"/>
<MIDI type="Note" parameter="0x27" channel="0x1" value="127"/>
</mapping>
<mapping>
<control alias="fam(Player)[0x2].KeyLockOutput" value="false"/>
<MIDI type="Note" parameter="0x27" channel="0x1" value="0"/>
</mapping>
<mapping>
<control alias="fam(Player)[0x2].AutoLoopSelectAndTrigger" value="0"/>
<MIDI type="Note" parameter="0x15" channel="0x1" value="0"/>
<MIDI type="Note" parameter="0x16" channel="0x1" value="0"/>
<MIDI type="Note" parameter="0x17" channel="0x1" value="0"/>
<MIDI type="Note" parameter="0x18" channel="0x1" value="0"/>
</mapping>
<mapping>
<control alias="fam(Player)[0x2].AutoLoopSelectAndTrigger" value="4"/>
<MIDI type="Note" parameter="0x15" channel="0x1" value="127"/>
<MIDI type="Note" parameter="0x16" channel="0x1" value="0"/>
<MIDI type="Note" parameter="0x17" channel="0x1" value="0"/>
<MIDI type="Note" parameter="0x18" channel="0x1" value="0"/>
</mapping>
<mapping>
<control alias="fam(Player)[0x2].AutoLoopSelectAndTrigger" value="5"/>
<MIDI type="Note" parameter="0x15" channel="0x1" value="0"/>
<MIDI type="Note" parameter="0x16" channel="0x1" value="127"/>
<MIDI type="Note" parameter="0x17" channel="0x1" value="0"/>
<MIDI type="Note" parameter="0x18" channel="0x1" value="0"/>
</mapping>
<mapping>
<control alias="fam(Player)[0x2].AutoLoopSelectAndTrigger" value="6"/>
<MIDI type="Note" parameter="0x15" channel="0x1" value="0"/>
<MIDI type="Note" parameter="0x16" channel="0x1" value="0"/>
<MIDI type="Note" parameter="0x17" channel="0x1" value="127"/>
<MIDI type="Note" parameter="0x18" channel="0x1" value="0"/>
</mapping>
<mapping>
<control alias="fam(Player)[0x2].AutoLoopSelectAndTrigger" value="7"/>
<MIDI type="Note" parameter="0x15" channel="0x1" value="0"/>
<MIDI type="Note" parameter="0x16" channel="0x1" value="0"/>
<MIDI type="Note" parameter="0x17" channel="0x1" value="0"/>
<MIDI type="Note" parameter="0x18" channel="0x1" value="127"/>
</mapping>
<mapping>
<control alias="fam(Fx)[0x2].OnOff" value="true"/>
<MIDI type="Note" parameter="0x1b" channel="0x1" value="127"/>
</mapping>
<mapping>
<control alias="fam(Fx)[0x2].OnOff" value="false"/>
<MIDI type="Note" parameter="0x1b" channel="0x1" value="0"/>
</mapping>
<mapping>
<control alias="fam(Mixer).CueMonitorB" value="true"/>
<MIDI type="Note" parameter="0x24" channel="0x1" value="127"/>
</mapping>
<mapping>
<control alias="fam(Mixer).CueMonitorB" value="false"/>
<MIDI type="Note" parameter="0x24" channel="0x1" value="0"/>
</mapping>
<mapping>
<control alias="fam(Player)[0x2].VinylMode" value="true"/>
<MIDI type="Note" parameter="0x2d" channel="0x1" value="127"/>
</mapping>
<mapping>
<control alias="fam(Player)[0x2].VinylMode" value="false"/>
<MIDI type="Note" parameter="0x2d" channel="0x1" value="0"/>
</mapping>
<mapping>
<control alias="fam(Tracker).PreviewStateOutput" value="0"/>
<MIDI type="Note" parameter="0x2b" channel="0x1" value="0"/>
</mapping>
<mapping>
<control alias="fam(Tracker).PreviewStateOutput" value="1"/>
<MIDI type="Note" parameter="0x2b" channel="0x1" value="127"/>
</mapping>
<mapping>
<control alias="fam(Tracker).PreviewStateOutput" value="2"/>
<MIDI loop="true"/>
<MIDI type="Note" parameter="0x2b" channel="0x1" value="127" duration="500"/>
<MIDI type="Note" parameter="0x2b" channel="0x1" value="0" duration="500"/>
</mapping>
<mapping>
<control alias="fam(Player)[0x2].BendUp" value="true"/>
<MIDI type="Note" parameter="0x1f" channel="0x1" value="127"/>
</mapping>
<mapping>
<control alias="fam(Player)[0x2].BendUp" value="false"/>
<MIDI type="Note" parameter="0x1f" channel="0x1" value="0"/>
</mapping>
<mapping>
<control alias="fam(Player)[0x2].BendDown" value="true"/>
<MIDI type="Note" parameter="0x1e" channel="0x1" value="127"/>
</mapping>
<mapping>
<control alias="fam(Player)[0x2].BendDown" value="false"/>
<MIDI type="Note" parameter="0x1e" channel="0x1" value="0"/>
</mapping>
<mapping>
<control alias="mod(ShiftLogic1)" value="true"/>
<MIDI type="Note" parameter="0x8" channel="0x1" value="127"/>
</mapping>
<mapping>
<control alias="mod(ShiftLogic1)" value="false"/>
<MIDI type="Note" parameter="0x8" channel="0x1" value="0"/>
</mapping>
<mapping>
<control alias="mod(ShiftLogic2)" value="true"/>
<MIDI type="Note" parameter="0x1c" channel="0x1" value="127"/>
</mapping>
<mapping>
<control alias="mod(ShiftLogic2)" value="false"/>
<MIDI type="Note" parameter="0x1c" channel="0x1" value="0"/>
</mapping>
</output-mappings>
Si on prend juste les 2 premiers bloc pour Play/pause
<mapping>
<control alias="fam(Player)[0x1].PlayPause" value="true"/>
<MIDI type="Note" parameter="0xf" channel="0x1" value="127"/>
</mapping>
<mapping>
<control alias="fam(Player)[0x1].PlayPause" value="false"/>
<MIDI type="Note" parameter="0xf" channel="0x1" value="0"/>
</mapping>
la fonction play/pause du lecteur 1 est vraie
l'évènement MIDI de type note à l'adresse 0xf sur le canal 0x1 aura la valeur 127
la fonction play/pause du lecteur 1 est fausse
l'évènement MIDI de type note à l'adresse 0xf sur le canal 0x1 aura la valeur 0
c'est ce qui allumera (ou pas) la led en fonction de l'état renvoyé par Cross.
Il te manque 2 choses : la liste des fonctions disponibles en sortie (alias) et la liste des évènements MIDI que ton contrôleur supporte en entrée.