key to make a CC dump?

hi!

how can i use a key on my SID control surface (for example the one used to choose SID4, which i don’t have) in order to produce a CC dump of the current patch on the MIDI out?

i’d like the same action provided by the sysex string:

  i) F0 00 00 7E 46 <device-number> 0E F7

      Request CC Dump

at the press of a button…

thanks!

Just add

  bsf SID_STAT, SID_STAT_CC_DUMP_REQ

anywhere to cs_menu_buttons.inc

Best Regards, Thorsten.

great! :slight_smile:

nowbut after trying it i found that i need one more step…

since the CC dump is flowing from the SID (CC=16 due to other hardware devices) to my midibox 16E (CC=1) i’d like to change the SID CC dump channel number output, if it’s possible…

i had a look on the SIC_CCOUT.INC

in particular in this section:

SID_CCOUT_Handler_Loop
	movf	TMP1, W
	call	SID_CCOUT_Get ; get CC parameter value
	movwf	TMP2 ; store value in TMP2
	IFSET	TMP2, 7, rgoto SID_CCOUT_Handler_Next ; (returns WREG[7] if non-CC value)

	;; send CC
	movff	SID_V1_BASE + SID_Vx_MIDI_CHANNEL, WREG
	iorlw	0xb0
	call	MIOS_MIDI_TxBufferPut
	movf	TMP1, W
	call	MIOS_MIDI_TxBufferPut
	movf	TMP2, W
	call	MIOS_MIDI_TxBufferPut

	movlw	8 ; add a short delay of 8 mS for slow sequencers
	call	MIOS_Delay

i have tried, with no success, to work on the first lines of ;;send CC

movff	SID_V1_BASE + SID_Vx_MIDI_CHANNEL, WREG
	iorlw	0xb0
	call	MIOS_MIDI_TxBufferPut

but since i don’t know the exact meaning of the parameters and how to handle them i moved with eyes closed and tried (i want to output midi data on channel 1):

movff	0x01 + SID_Vx_MIDI_CHANNEL, WREG
	iorlw	0xb0
	call	MIOS_MIDI_TxBufferPut

movff	0x01  WREG
	iorlw	0xb0
	call	MIOS_MIDI_TxBufferPut

movff	SID_V1_BASE + 0x01, WREG
	iorlw	0xb0
	call	MIOS_MIDI_TxBufferPut

neither of these worked… my last try was:

movff	SID_V1_BASE + SID_Vx_MIDI_CHANNEL, WREG
	iorlw	0xb1
	call	MIOS_MIDI_TxBufferPut

knowing that 0xb0 output a CC MIDI message on channel “0”… i assumed 0 as the “preset sid channel”, and tried to change it to 1, but this time the result was a series of CC ouput to chennl 16 (my default channel)…

is there a simple workaround?

uhm… i thought that maybe it’s simpler to change the midibox 16E CC message like this:

        1 =  BF 11 [00-7F:40] ENC_MODE_ABSOLUTE&NORMAL  LED_PATTERN_1  “Transpose  V1” ±HEX

where:

“BF 11 [00-7F:40]”

the F stays for midi CC=16, right?

No, F stays for Channel 16 (0xf = 15, we are counting from zero).

Alternatively you could replace the “iorlw 0xb0” by “movlw 0xb0” in order to force MIDI channel #1 on the SID, but since it will still receive MIDI data over channel 16, changing the MB64E setup is the better solution.

Note that MB64E provides a “global MIDI channel” where you can overload the channel settings of your setup. It’s really simple, and can be changed from the menu.

Best Regards, Thorsten.