Jump to content

menu button as play..


TD
 Share

Recommended Posts

my first go at a mod in MB SID.. i wanted to be able to start a seq in the bass or drum engine without having to trigger a note on..

after following this topic.

http://www.midibox.org/forum/index.php/topic,11188.0.html

i had a go at this.

cs_menu_tables.inc

 ; --------------------------------------------------------------------------
CS_MENU_TABLES_B
	;;              pointer to table      par. button pressed      exec button pressed   page name          var            max  print function
	CS_MENU_T_ENTRY	CS_MENU_TABLE_B_ROOT, CS_MENU_Page_Root,       CS_MENU_BUTTON_Play,   "---", SID_PATCH,               0x7f, PRINT_PAT  ; (special handling in CS_MENU_PageUpDown selected with SID_PATCH)
and:
; --------------------------------------------------------------------------
CS_MENU_TABLES_D 
	;;              pointer to table      par. button pressed      exec button pressed   page name          var            max  print function
	CS_MENU_T_ENTRY	CS_MENU_TABLE_D_ROOT, CS_MENU_Page_Root,       CS_MENU_BUTTON_Play,   "---", SID_PATCH,             0x7f, PRINT_PAT  ; (special handling in CS_MENU_PageUpDown selected with SID_PATCH)

it works out quite nice.. in a bassline or drum patch, once in the menu root, menu button will toggle start /stop sequence  8) cool to be able to just hold the little box and trigger / tweak patterns..  [[sUPER FUN!!!]]  ;D 

switching to a lead patch gets your main menu back..    now i just need to replace my wobbbbly encoder switch! 

..just thought id share that.

Link to comment
Share on other sites

yes it work this way but how you come back to main?  ;)

CS_MENU_BUTTON_Sel5
	;; if in main page (CS_MENU[7]), goto to PlayNote/StartSeq
	movlw	0x00
	GOTO_IFSET CS_MENU, 7, ACCESS, CS_MENU_MS_PlayNote

	;; select button #5, set cursor to 5th position
	clrw

	movlw	0x04
	rgoto	CS_MENU_BUTTON_Select_Cont

this is mine.

i move just 0x00 into W because i've just a stereo sid and CS_MENU_MS_PlayNote read the current SID selected in W. for slaves code must improved like CS_MENU_BUTTON_Play show. reading the sid state in CS_MENU_SELECTED_SID_FLAGS (set by CS_MENU_BUTTON_SID[1234]) and move the right SID number 0x0[0123] into W.

Link to comment
Share on other sites

by changing to another patch.. i only have the play button mod on bass & drum engine..

probably a lazy way to do it, but it seems to work out for me.  ;)

yes it work this way but how you come back to main?  ;)

CS_MENU_BUTTON_Sel5
	;; if in main page (CS_MENU[7]), goto to PlayNote/StartSeq
	movlw	0x00
	GOTO_IFSET CS_MENU, 7, ACCESS, CS_MENU_MS_PlayNote

	;; select button #5, set cursor to 5th position
	clrw

	movlw	0x04
	rgoto	CS_MENU_BUTTON_Select_Cont

this is mine.

i move just 0x00 into W because i've just a stereo sid and CS_MENU_MS_PlayNote read the current SID selected in W. for slaves code must improved like CS_MENU_BUTTON_Play show. reading the sid state in CS_MENU_SELECTED_SID_FLAGS (set by CS_MENU_BUTTON_SID[1234]) and move the right SID number 0x0[0123] into W.

Link to comment
Share on other sites

due to some change in the rc19 this mod need some more tweak.

the function CS_MENU_BUTTON_Select_Cont now call like shown here the new CS_MENU_SHIFT_Button that you can find in cs_menu_shift.inc

	;; branch if in SHIFT page
	GOTO_IFSET CS_STAT3, CS_STAT3_SHIFT_PAGE, ACCESS, CS_MENU_SHIFT_Button
because of this, if you have a minimal CS (like me) with Menu button as Shift (that is a mod and not come with the original code) this call make conflict when you hold the Menu button to show the Shift page, and push the select button that have play function too, and because CS_MENU, 7 is not cleared by the Menu Button when you call shift. So i suggest to modify functions like here:
CS_MENU_BUTTON_Exec_NoStartup
	;; activate/deactivate menu button function
	bcf	CS_MENU_MODE, CS_MENU_MODE_MENU_PRESSED
	btfss	MIOS_PARAMETER2, 0; if button is pressed
	bsf	CS_MENU_MODE, CS_MENU_MODE_MENU_PRESSED

	;; if in main page (CS_MENU[7]), goto shift function <=
	GOTO_IFSET CS_MENU, 7, ACCESS, CS_MENU_BUTTON_Shift <=

	;; do nothing if button has been depressed
	btfsc	MIOS_PARAMETER2, 0
	return

	;; EXTRA for Exec/Menu button:
	;; exit SID player mode if CS is disabled
	GOTO_IFSET SID_STAT, SID_STAT_SIDPLAYER_CS_DISABLE, ACCESS, SIDPLAY_Disable

	goto	CS_MENU_Exec
CS_MENU_BUTTON_Sel2
	;; if in main page (CS_MENU[7]), call PlayNote/StartSeq <=
	GOTO_IFSET CS_MENU, 7, ACCESS, CS_MENU_BUTTON_Play <=

	;; select button #2, set cursor to 2nd position
	clrw
	movlw	0x01
	rgoto	CS_MENU_BUTTON_Select_Cont
CS_MENU_BUTTON_Shift
	;; exit with message if SID player mode enabled and SID1 selected
	BRA_IFSET SID_STAT, SID_STAT_SIDPLAYER_CS_DISABLE, ACCESS, CS_MENU_BUTTON_SP_IgnoreMsg

	bcf	CS_MENU, 7 <=
	btfsc	MIOS_PARAMETER2, 0; if button has been depressed <=
	bsf	CS_MENU, 7 <=

	;; activate/deactivate shift function
	bcf	CS_MENU_MODE, CS_MENU_MODE_SHIFT_PRESSED
	btfss	MIOS_PARAMETER2, 0; if button is pressed
	bsf	CS_MENU_MODE, CS_MENU_MODE_SHIFT_PRESSED

	;; change to SHIFT page
	bcf	CS_STAT3, CS_STAT3_SHIFT_PAGE
	btfss	MIOS_PARAMETER2, 0; if button is pressed
	bsf	CS_STAT3, CS_STAT3_SHIFT_PAGE

	;; always request new display-initialization
	bsf	CS_STAT, CS_STAT_DISPLAY_INIT_REQ

	return

i've marked with <= the added code. in this way you have shift button and 2nd select as play, in main menu window.

hope this help.

G.

p.s. please correct me if i'm wrong in any part, i'm quite new on MIOS.

Link to comment
Share on other sites

the nice is, in this way shift page remain on button release. since i prefer slow encoder movement, if you switch on shift page and turn any CS enc, it go slow, switching to others CS page too, sice you come back to main, the speed don't come back to normal.

Link to comment
Share on other sites

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...
 Share

×
×
  • Create New...