Situation: I have the CUTOFF filter completely closed. To open it fully I need to turn MANY laps on the CUTOFF filter encoder to reach the max value. I suppose this is normal, since holding down SHIFT while turning the knobs increases the rate significantly. BUT, I’m playing at the same time so I have only one hand free.
My questions: Is there a hex-file or such I can edit so the dent-to-value-amount increases? So I can open the filter on that amazing bass to the max with 1 lap instead of 9.
I tried looking for this before I posted, cause I have a feeling I’ve read somewhere that you can edit a file to change this, but I couldn’t find any info.
You could try if it works better for you if you invert the “fast” function selected with the SHIFT button.
For this, open src/cs_menu.inc, search for
btfss CS_MENU_MODE, CS_MENU_MODE_SHIFT_PRESSED
replace “btfss” by “btfsc”
Thereafter build a new .hex file (see also the Wiki for more infos on the toolchain)
Alternatively it should also be possible to set a specific speed for the cutoff encoder in the CS_MENU_EncSpeedSet function if you prefer this (but I would have to test the code before providing it)
That SHIFT-thing sounds like a good solution. First I thought that holding down SHIFT would make the 1-15 value knobs go too fast, but I noticed they are not affected by holding SHIFT. Only the “long” values (0-255 etc) are affected by SHIFT. This is great news, so I will definitely try to edit that .inc-file and build a HEX-file so the MB will have the SHIFT activated by default. I let you know if I need any help doing that.
I edited some menu orders and other things at the same time, these changes worked, so my upload was succesfull.
In cs_menu.inc i see two lines with
CS_MENU_MODE, CS_MENU_MODE_SHIFT_PRESSED
maybe they both need to be edited?
one in this block (already edited)
CS_MENU_EncSpeedSet_ModVal_GT1F
;; max value > 0x1f: set fast speed
movf CS_MENU_PARAMETER_MAX_H, W
movwf TMP2
rlf TMP1, F
rlf TMP2, F
movlw 0x05 ; saturate if value >= 5
cpfsgt TMP2, ACCESS ; (IFLEQ)
movf TMP2, W
CS_MENU_EncSpeedSet_Main
movlw 2 ; this speed value is taken when ENC_SPEED_FAST is selected
movwf MIOS_PARAMETER2
movlw MIOS_ENC_SPEED_FAST ; FAST or NORMAL mode depending on state of shift button
btfsc CS_MENU_MODE, CS_MENU_MODE_SHIFT_PRESSED
movlw MIOS_ENC_SPEED_NORMAL
movwf MIOS_PARAMETER1
movf PRODL, W ; encoder number
goto MIOS_ENC_SpeedSet
I built my cs prototype with cheap encoders i ordered from china (about 15 pices for 5$…). They are detented (24 clicks) and detents cannot be removed as the detents are made of the switching contacts.
Somewhere i have read that by using nondetented encoders the resolution is much better, although i don´t see how this will work as they should still only have 24 impulses per turn (right?).
Maybe someone has some input on this and can recomend a better suited part.
That SHIFT-thing sounds like a good solution. First I thought that holding down SHIFT would make the 1-15 value knobs go too fast, but I noticed they are not affected by holding SHIFT. Only the “long” values (0-255 etc) are affected by SHIFT. This is great news, so I will definitely try to edit that .inc-file and build a HEX-file so the MB will have the SHIFT activated by default. I let you know if I need any help doing that.
changing the code is really simple. Just change the line and recompile. I already tried it but for me it changed nothing. So it would be really interesting if it´s a mistake on my side or if it simply doesn´t work like that. Maybe just a little mistake in the discription (although i would normally trust tk blindly).
So people, if you are interested, just try it and tell us how it went. If it works for you i´ll have to keep trying and see what my mistake was.
Besides, i still belive using a MB_NG or MB_64e to handle the controllers would give more options and would be much easier to tweak for best feel and resolution.
The only thing that troubles me is that a second core running the encoders or pots would have to determine what SID (1,2,3,4) is currently active so data will be transmitted on the right channel. Luckily each SID engine sends a dout flag when active, that´s where the SID LEDs are connected. This could be used to let MB_NG switch to the right midi channel(s).
This would also mean that channel assignment would have to be fixed in the ensamble settings. So a Midi router would be required since we want to be able to play each sid individually or unisono from one channel.
You could try if it works better for you if you invert the “fast” function selected with the SHIFT button.
For this, open src/cs_menu.inc, search for
btfss CS_MENU_MODE, CS_MENU_MODE_SHIFT_PRESSED
replace “btfss” by “btfsc”
Thereafter build a new .hex file (see also the Wiki for more infos on the toolchain)
Alternatively it should also be possible to set a specific speed for the cutoff encoder in the CS_MENU_EncSpeedSet function if you prefer this (but I would have to test the code before providing it)