Jump to content

Recommended Posts

Posted

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!

Posted

great! :-)

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?

Posted

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?

Posted

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.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...