Note-off on midio128 on Pause

Ok :slight_smile:

Open midio_midi.inc, search for following section:

;; if All Notes Off CC active: check it here
SET_BSR	MIDIO_BASE
movf	MIDIO_ALL_NOTES_OFF_CHANNEL, W, BANKED
bz	MIDIO_MIDI_NotifyReceivedEventNC	; ignore if channel value == 0
addlw	-1 ; MIDI channel = channel value - 1
andlw	0x0f
iorlw	0xb0 ; check for CC | <channel>
xorwf	MIDIO_LAST_RECEIVED_EVNT0, W, BANKED
bnz	MIDIO_MIDI_NotifyReceivedEventNC
movf	MIDIO_LAST_RECEIVED_EVNT1, W, BANKED	; check for CC#123
xorlw	123
bnz	MIDIO_MIDI_NotifyReceivedEventNC
movf	MIDIO_LAST_RECEIVED_EVNT2, W, BANKED	; check for value > 0
bz	MIDIO_MIDI_NotifyReceivedEventNC
MIDIO_MIDI_NotifyReceivedEventNO
goto	MIDIO_DOUT_ClearAll ; set all DOUTs to passive state
MIDIO_MIDI_NotifyReceivedEventNC
[/code]


and replace it by:
[code]  
 ;; if All Notes Off CC active: check it here  
 SET\_BSR MIDIO\_BASE  
 movf MIDIO\_ALL\_NOTES\_OFF\_CHANNEL, W, BANKED  
 bz MIDIO\_MIDI\_NotifyReceivedEventNC ; ignore if channel value == 0   
  
&nbsp; &nbsp; &nbsp; &nbsp; ;; react on any channel (omni mode)  
&nbsp; &nbsp; &nbsp; &nbsp; movf MIDIO\_LAST\_RECEIVED\_EVNT0, W, BANKED&nbsp; &nbsp; ; check for CC  
&nbsp; &nbsp; &nbsp; &nbsp; andlw 0xf0  
&nbsp; &nbsp; &nbsp; &nbsp; xorlw 0xb0  
 bnz MIDIO\_MIDI\_NotifyReceivedEventNC  
 movf MIDIO\_LAST\_RECEIVED\_EVNT1, W, BANKED ; check for CC#123  
 xorlw 123  
 bnz MIDIO\_MIDI\_NotifyReceivedEventNC  
MIDIO\_MIDI\_NotifyReceivedEventNO  
 goto MIDIO\_DOUT\_ClearAll ; set all DOUTs to passive state  
MIDIO\_MIDI\_NotifyReceivedEventNC  

I think, that it isn’t required to parse for CC#120 in addition - one CC is enough to deactivate all DOUTs

Best Regards, Thorsten.

Hello Thorsten !

Many thanks for work, all is fine now. :smiley:

For test I’ve set my midio on 8 different channels; I can say now that a CC123 of any value stops all notes on all channels. Not tested on 16 channels though but it must work as well :slight_smile:

I’m now considering I must learn programming Pic. Everywhere it’s told it’s very easy, only 35 instructions to learn… But, when reading Midio128 programm, doesn’t seem so easy    ???  If at least I could be abble to change litle things by myself…

Thank you once more

Best regards

Chris

Chris

Hello T.K.

Thank you for all the help you have given with the note off problem. It now works fine, turning everything off on receipt of #CC123. My first thoughts on using the new GPUtils was utter confusion, but after some rational thought, it now seems to be doing what I want.

It seems, from looking at some of the other Perle scripts, that it might be  possible to convert syx files back to asm. This would be useful for checking the scale and options when there are problems. Could anybody offer some guidance on how to achieve this ? I tried to follow the same proceedure as for making the syx file, with ‘Make’ but all I got was…

Regards - Busker99

Ian