Jump to content

SID programming help


havensole
 Share

Recommended Posts

Hi all, sorry for my ignorance, but i've checked around and can't find anything that really helps. I am trying to do my own design for the front panel of my SID and am having some issues figuring out how to add minor features and take away others, as well as figuring out how to fully edit encoder features. I am attaching the rough design for the frontpanel (mind you the picture is split so it'll fit on a standard sheet of paper). The vertical boxes are for the encoders, the larger circles are the LED's, and the smaller ones are the buttons. The main issue I need help with are the redifining of the OSC encoder section, the addition of a second LFO section, and the different options in the ENV section. Thanks in advance for your help guys. If I am asking too much, please just point me to where I can learn how to tweek these things.

314_flashfrontpanel_print_jpg94259c3bce8

Link to comment
Share on other sites

ok, i think i need to simplify. my big issue is understanding how MIOS can tell when say, "ENC_ENTRY  3,  2,  MIOS_ENC_MODE_DETENTED2 (code from the MIOS_TABLES.INC) is routed to "Osc attack/finetune/assign #2." i've been looking in the other files and can't seem to find something that defines the encoder input #2 going to a specific function, unless i am just missing something in front of my face. lastly, can someone please help explain the following code in idiot speak for me. "CS_MENU_BUTTON_Osc_Ctrl

;; do nothing if button has been depressed

IFSET MIOS_PARAMETER2, 0, return

;; increment OSC Ctrl parameter (0x00-0x02)

incf CS_MENU_SELECTED_OSC_CTRL, F

movlw 0x02+1

IFGEQ CS_MENU_SELECTED_OSC_CTRL, ACCESS, clrf CS_MENU_SELECTED_OSC_CTRL

movlw CS_MENU_OSC ; change to OSC menu

rcall CS_MENU_BUTTON_Hlp_MenuChange

;; set page offset and cursor pos depending on selected layer

movf CS_MENU_SELECTED_OSC_CTRL, W

bnz CS_MENU_BUTTON_Osc_Ctrl_Not0

CS_MENU_BUTTON_Osc_Ctrl_0

movlw 0x03

rgoto CS_MENU_BUTTON_Osc_Ctrl_Cont

CS_MENU_BUTTON_Osc_Ctrl_Not0

IFSET CS_MENU_SELECTED_OSC_CTRL, 1, rgoto CS_MENU_BUTTON_Osc_Ctrl_Not1

CS_MENU_BUTTON_Osc_Ctrl_1

movlw 0x09

rgoto CS_MENU_BUTTON_Osc_Ctrl_Cont

CS_MENU_BUTTON_Osc_Ctrl_Not1

movlw 0x00

CS_MENU_BUTTON_Osc_Ctrl_Cont

movwf CS_MENU_PAGE_OFFSET

movwf CS_MENU_CURSOR_POS

bsf CS_STAT, CS_STAT_MODIFY_PARAMETER

goto CS_MENU_EXEC_Hlp_ChangeMenu ; deselect parameter"

i can understand some of it, just not everything completely. thanks again in advance.

-HS

Link to comment
Share on other sites

Sorry but it's hard to understand what you want....

That may be why you have no answer.

I modifed some encoder functions and have explaind some code modification in :

http://www.midibox.org/forum/index.php?topic=7233.0

Read the last post...

The main issue I need help with are the redifining of the OSC encoder section, the addition of a second LFO section, and the different options in the ENV section.

For each could you explain the difference between what you'd like to have and the reference design ?

Xavier

Link to comment
Share on other sites

ok, the OSC section, instead of having the OSC env, misc, and assign layers, it will only have a traditional octave (pitchrange i assume), pitch (transpose i assume), pulse width, and fine tune. originally i wanted a mix (level adjustment) for each OSC, but i don't see that anywhere in the code.

next thing is the ENV CTRL buttons where i will be adding another layer. a misc. layer (that at the moment will only be able to control arp rate and port rate).

lastly is the LFO section where i'd like to split the 6 LFO's into 2 parts. having 2 control sections, 1 which controls LFO's 1,3,and 5,  the other controls LFO's 2,4, and 6.

the code i posted before was from the "cs_menu_buttons.inc" file. and dealt with the code for osc ctrl function. the reason i asked for some explanation was that i was planning on getting rid of it, but it would explaain how to re-do the env ctrl section.

sorry for all the confusion.

-HS

Link to comment
Share on other sites

ok, i think i need to simplify. my big issue is understanding how MIOS can tell when say, "ENC_ENTRY  3,  2,  MIOS_ENC_MODE_DETENTED2 (code from the MIOS_TABLES.INC) is routed to "Osc attack/finetune/assign #2." i've been looking in the other files and can't seem to find something that defines the encoder input #2 going to a specific function, unless i am just missing something in front of my face.

It took me some time to understand the encoder/function link.

But i think what you are looking for is in cs_menu_enc.inc and the function is called CS_MENU_ENC_CS_Handler.

The information it gets is the encoder line number in the mios_tables.inc or something like that.

Hope that helps... At least that allow me modify some encoder behaviour.

Xavier

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