MIOS V1.3 is now available for download, it comes with some new features for the near future:
it’s now possible to integrate an own LCD driver which is not natively supported by MIOS. See also the docs under Concepts->MBHP->LCD
up to 8 BankSticks can now be addressed over the same IIC bus by using the MIOS_BANKSTICK_CtrlSet function. Note that this feature doesn’t work with the EEPROM M24256 from ST, but only with Microchip EEPROM 24LC256. See also the docs under Concepts->MBHP->BankStick
the MIOS_HLP_Dec2BCD function can be used to convert a 16 bit decimal value to BCD (for example to send the digits of a decimal number over the MIDI interface or to display the numbers on a LED digit display)
MIOS_LCD_PrintBCD4 and MIOS_LCD_PrintBCD5 can be used to print 16 bit values in decimal form
the MIOS_MF_StartupSpeedSet allows to give the motorfaders a “kick” when they are starting to move (can be tried with the mf_calibration application. The MIDIbox LC application now includes a calibration menu)
the speed modes of the encoder driver have been rewritten, see the MIOS_ENC_SpeedSet description for further details. The “enc_speed_v1_3” application allows to test the various settings.
good ideas I will integrate the BankStick solution and the possibility to move the master fader in a second layer.
Sly: yep - the speed option works nice The SID Control surface already uses it; with MIOS_ENC_SPEED_FAST and divider parameter 1 it is possible to increase a 7-bit value with a half revolution of the encoder - when it is turned fast. When it is turned slow you still will get 48 increments for this half revolution. Higher dividers are usefull for values with a higher resolution - this is demonstrated in the enc_speed example.
'cuse my ignorance but, what is all this encoder rate settings actually do? as in a ‘real-world’ situation…why would they be great for gpc mode as Sly said?
I havnt used any encoders yet, so no doubt it’ll all start to click when i get them runnin…
Also, I’ve notcied that v1.3 of the LC emu has extra code for this GPC function. I thought the layer function is just another name for gpc, but that code is still there too??? I dont geddit, is it just like a 3rd layer then?
Is there any info on the layer/GPC functions on the site anywhere?
The GPC mode is my private pleasure, very limited, reduced to my own needs and therefore not documented. However, it could be improved in the future. It could also be completly changed…
Encoders: values will be incremented faster when you turn the encoder faster. It’s the same effect like known from a computer mouse. Sometimes also called “progressive mode”
Sorry for the open questions reg. MIDIbox LC — everything will be documented as soon as the application is complete, and this can still take a while…
Thanks for clearing that up - i’m sure it’ll all become clear when the LC is made and i’m free to sysex at will for testing etc Just my eagerness and also the fact that I just drilled out the LC panel made me get in a pickle worrying about including extra buttons and such for all this GPC/layer stuff
You dont need to apologise for nefin mate - I just thought the LC was complete already (hence already upto v1.3), surely u cant have even more feature planned??? ;D
you will not need extra buttons for GPC. Its only a button that you can select via shift. And again another button to go back to LC mode. So you may add this function to the second layer of LC ;)
GPC is only for the encoders, but you have the encoders allready on your LC panel… So you really dont have to add anything on your panel.
the MIOS_HLP_Dec2BCD function can be used to convert a 16 bit decimal value to BCD (for example to send the digits of a decimal number over the MIDI interface or to display the numbers on a LED digit display)
Could you explain in more depth?
I am needing to convert some pulses through counters to a 7 segment for an actuator, and I am wondering if using the 18f might be a good way to do this.
Also, could this mean that selected knobs could show values through 7 segment along with LCD?
So if we now have functions in the MIOS to directly interface 7 segments, can we imagine to replace the LED rings around encoders by, for instance, 2x small 7 segments displays ?
I ask the questions, because I would like to avoid to drill 176 holes for my SID control surface but I want to keep information about actual value of the encoders
you can also replace ledring with ledbar = bargraph, yiu have to make just a “big” hole… or, as I plan to do it, you make a big circular hole, and in it you put encoder + leds (on a PCB) and put something on it… I will do it and post pic!
Just some comments to prevent the scare that LED rings or a replacement is required: my own surface is not stuffed with LED rings. The values are displayed on LCD instead. Maybe I should left some words to the workflow before you start to create your panel:
when I press the OSC Select button. The SID CS jumps to the OSC menu immediately. If the OSC menu was already active, the cursor stays at the same position, otherwise the cursor jumps to the first menu item. The OSC number will be incremented, but also mixed OSC combinations can be selected. There are 6 button states for 6 different oscillator combinations
the behaviour of the OSC Ctrl button is similar, but it has only three states: Envelope, Misc and Assign Layer. Every time I press this button the LCD changes to a menu view so that the 5 encoders are matching with the 5 menu items.
using the OSC Select or OSC Ctrl button is also important if you want to change a parameter which is not assigned to any rotary encoder or functional button - just press the OSC/Ctrl button for a quick change into the OSC menu and select the menu item with the rotary encoder beside of the LCD
when an encoder is moved, the menu page changes quickly to the same view like above
this means: by using the OSC Ctrl button you can make the values visible on the LCD, and by using the OSC button you can select the 6 oscillator combinations (if more than one is selected at the same time, the values of the first oscillator will be displayed). Also by moving the rotary encoder, the values will be visible.
Btw.: because of this LCD<->Button<->Encoder interaction, a 2x20 LCD is absolutely recommented.
Ok, now some words to LED rings: they are nice to have, but in my oppinion they won’t give you much more. Due to the (perfect ;-)) interaction with the menu interface, I’m more concentrated on the LCD and (especially) on the sound than on my fingers which are tweaking the knobs and selecting the functions. But don’t forget the LEDs next to the buttons - they are important for an ergonomic handling.
LED bars: a good replacement for LED rings, maybe even more ergonomic but not required
LED digits: nice to have but not really important. Please note that you need 3*14 = 42 digits to display the decimal values of 14 encoders. But only two additional DOUTX4 modules can be connected, and every DOUTX4 module can only be stuffed with 12 digits maximum (due to the multiplexing method).