Johan Berglund
b9a8742fc1
NuEVI and NuRAD: Timing and speed issue solved - SSD1306 display library needed editing to prevent it from lowering I2C bus speed. Added setting to enable/disable the on the fly key switching. NuRAD: Changed touch sensor reading equalisation from offset to multiplier to improve coherence of readings.
2020-07-22 13:24:56 +02:00
Johan Berglund
cc188f2196
For NuRAD: Fix for SAX fingering (LH2+RH2 now plays Bb). Added Gate Hold functionality from NuEVI, using thumb folded in over R2 through R5 in place of the "doorknob" grip on the EVI. For NuRAD and NuEVI: New POLY PLAY functionality with a number of harmonizer settings and additional rotator setups.
2020-07-19 13:52:06 +02:00
Johan Berglund
c7c1825b62
Fix for SAX fingering and updated fingering chart (NuRAD). Experimental fingerings using rollers for harmonic series (NuEVI). LED indication for extra controller sensor and startup LED check and also fail check for MPR121 sensor boards (NuRAD).
2020-06-04 11:43:46 +02:00
Johan Berglund
9a2e6b002f
Added battery type setting and detailed battery info in ABOUT menu (support for NiMH and LiPo batteries). Added lip sensor activated harmonic series, with settings for range and series type. Added NuRAD overview drawing. Changes to CC lables (from 1 & 2 to A & B).
2020-04-27 11:19:08 +02:00
Johan Berglund
0f65c0d3d8
Added fingerings for NuRAD - SAX, EVI, EVR and EWX. Added setting for extra pinky key (NuRAD). Fix for quickpatch function (NuEVI/NuRAD). Rotator menu moved to main menu (NuEVI/NuRAD). Activation of legacy patch selection and settings now only done in extras menu. Changed zero setting in rotator to set rotators off and move on to next one (you can now rotate between 2-4 notes or set to static chord or interval). Changed order of some menu items.
2020-03-17 13:31:34 +01:00
Johan Berglund
7eccf7eeec
New settings for better portamento performance on Roland SE-02. SEL for switching between OFF and LIN, SEE for switching between OFF and EXP.
2020-02-24 18:27:06 +01:00
Johan Berglund
4decdf1d72
Now it's also NuRAD firmware! Set define for compile option NURAD in hardware.h to switch. Added a new little thing for NuEVI too: releasing the rollers leaves octave in current one instead of going to bottom octave unless coming down from first roller. This is helpful against bass hum from filter leak when setting the EVI aside, using pitch CV from NuEVI and synth with no VCA in use or gate open (drone mode).
2019-12-11 16:12:01 +01:00
Johan Berglund
58d7584f87
Added static glide/portamento control as pinky key setting. Use LEVEL control to set glide time.
2019-10-20 14:16:10 +02:00
Johan Berglund
cd91e6eece
Found culprit in long lags issue in doorKnobCheck function. Reading keys again for that was not very clever... Fixed! Still want some more speed for main loop though. Now getting 6-7 ms. Had 5 ms back in 1.3.5 release. Removed scaling/curve for DAC and PWM DAC CV output. Instead made them FAST using timed interrupts. Now updates every 500 microseconds, allowing for audio rate modulation of CV on these outputs by humming into mouthpiece, just like with direct analog CV from sensor.
2019-10-15 16:43:54 +02:00
Johan Berglund
bab51190e1
Fix for bite vibrato sensitivity. Added increased range of sensitivity settings. Added possibility to use both bite and lever for vibrato at the same time. Separate timing interval for breath (trying to get speed up again). Moved Teensy touch sense calls for pinky key and special key to function less often called (every standard CC interval). Changed menu name VEL BIAS to VEL BOOST which is a more accurate description.
2019-08-25 12:38:02 +02:00
Johan Berglund
8ad8803c57
Added AT (aftertouch) instead of OFF for Level control.
2019-08-21 18:33:09 +02:00
Johan Berglund
d5506ff2b9
Added secondary CC for extra controller and a Level CC control (stored), both with new settings for pinky key. New pinky settings: "EC2" sends on/off (127/0) for extra ctr CC2. "ECS" uses pinky key as switch between sending primary and secondary CC with extra controller. "LVL" lights up breath and portamento LEDs to indicate level (breath LED on full is max level, portamento LED full is min level), and level can be adjusted with K5 (up) and K1 (down). "LVP" is the same as "LVL", but with stored level transmitted at power up.
2019-08-21 08:44:22 +02:00
John Stäck
3ae4147d7e
Move all the LED things to a separate file, as mentioned in comments
2019-07-27 00:42:27 +02:00
John Stäck
6f976ea14d
Use proper 3rd trill value for readTrills()
2019-07-27 00:02:25 +02:00
John Stäck
c8e96343d0
Move EEPROM read/write functions to settings
2019-07-25 11:07:41 +02:00
John Stäck
def0dcacd0
Remove global var for wireless power, add wl channel menu
2019-07-25 08:48:28 +02:00
John Stäck
33bfc9ea08
Use settings flag for DAC output mode (remove CVSCALEBOARD define)
2019-07-25 08:48:28 +02:00
John Stäck
671dfe9b2c
Define constant for "dipswitch" positions
2019-07-25 08:47:58 +02:00
John Stäck
7b179d4343
Add settings for fast boot, bcas mode, 3rd trill, dac out
2019-07-25 08:47:58 +02:00
John Stäck
66b782da16
Menu option to set midibeam power level
2019-07-20 10:38:23 +02:00
Johan Berglund
ed7db007eb
Removed SR and SR+ from CC list
2019-07-18 14:07:52 +02:00
Johan Berglund
597991c968
Added possibility to use bite sensor for vibrato.
2019-07-18 13:58:28 +02:00
Johan Berglund
8159a4ec16
Merge pull request #27 from blind/subblink
...
Flush screen buffer when sub cursor is black
2019-07-17 12:23:12 +02:00
Mikael Degerfält
faff2dcfe9
Flush screen buffer when sub cursor is black
...
Fixes issue #25
2019-07-17 12:19:53 +02:00
Johan Berglund
1cc50cff63
Added secondary breath CC setting (free 1-127) with a rise multiplier to make this CC rise faster than primary CC, for example to get a fast rising VCA control together with a less steep VCF slope. Changed portamento sensor name to BITE. Put SNS dots for MPR121 and Teensy touch keys on separate rows to avoid blanking when redrawn. Note: Update resets to factory settings.
2019-07-15 13:46:34 +02:00
Johan Berglund
1d34681c40
EXTRAS menu page added, with items LEGACY PB, LEGACY BR, GATE HOLD and SPECIAL KEY to enable/disable these special functions.
2019-07-15 07:51:44 +02:00
Mikael Degerfält
73e6db7686
Only handle scrolling if there are items to scroll
2019-06-27 16:00:05 +02:00
Mikael Degerfält
0e32077042
Support scrolling in menus
...
Menus can now have more than 6 entries. There is now an almost empty ABOUT entry in the main menu.
2019-06-27 12:57:49 +02:00
John Stäck
4755b15cd7
Merge pull request #19 from Trasselfrisyr/curves
...
Curves!
2019-06-27 10:13:45 +02:00
Mikael Degerfält
c2a15441a4
Fixed regression bug for patch select
...
After the menu refactoring, switching patch with up/down buttons when screen was off didn't work correctly. Now it should work like before i.e. switch patch on first press of button and not requiring a second press.
2019-06-26 18:04:06 +02:00
Mikael Degerfält
faf4f528b3
Custom draw function for curve to show the form and not just name
...
Draw the curve as well as the name of curve. Could be optimised a bit by not evaluating the curve every pixel, but something like every third pixel. Could also draw dots instead of lines if we need extra speed.
2019-06-26 17:52:43 +02:00
Mikael Degerfält
b061084f1f
Fixed som redraw issues
2019-06-24 17:55:37 +02:00
Mikael Degerfält
91b2a69d21
Fixed text alignment for sub values with units
2019-06-24 00:17:27 +02:00
Mikael Degerfält
9561556302
No need to set text color all the time
...
Since the cursor blinking is handled a bit differently now, there is no need to set text color all the time since we know it should always be white. But just to be certain, lets set it to WHITE first thing in the updatePage function.
Also moved the code from plotMIDI into a custom render function for midi sub menu.
2019-06-23 21:28:35 +02:00
Mikael Degerfält
7a2b70c38d
Moved code from a function into where it was called
...
and some minor cleanup
2019-06-23 21:02:08 +02:00
Mikael Degerfält
5b59b4cd0f
Final push to unify all menu states
...
All states are now handled by the new menu system, although some are flagged to have a custom handler that does everything by itself.
I replaced most reference parameters to pointers to be able to typecast in a nicer way.
Key input is not passed as a parameter to the menu functions instead of having global variables they all access. I think I broke one thing by doing this, since there is no way to propagate key input changes to the next frame.
2019-06-23 17:14:18 +02:00
Mikael Degerfält
9a595c0ffc
WIP on making menues even more generic in handling
2019-06-23 17:14:18 +02:00
Mikael Degerfält
be0d08d8d6
Renamed some stuff for clarity
2019-06-23 17:14:18 +02:00
Mikael Degerfält
f2e2b7d33f
Tiny adjust menu redraw bug fix
...
Had forgotten to redraw adjust menu after normal update, it was only redrawn when the sensor pixels were to be updated.
As a bonus I cleaned up some code.
2019-06-23 17:14:18 +02:00
Mikael Degerfält
bddbffd51d
Moved over the rotation menu to new system
...
Had to change how the values where stored in RAM from singed to unsigned to be able to use the generic menu features. Also had to add the MenuEntrySub as a parameter to the menu callback functions to be able fo display and store the correct values.
Did some major cleanup now that the special case of rotator menu is gone together with all uses of the old version of the sub menu struct.
2019-06-23 17:14:18 +02:00
Mikael Degerfält
6c721e8b65
Removed code duplication
...
Also fixed bug were I reset the active sub menu when then sleep timer kicks in.
2019-06-23 17:14:18 +02:00
Mikael Degerfält
65aa0f4dab
Converted more of the sub menus to the new sub definitions
...
Found out that it’s the lambda functions used for pointer that forces the structs to be in ram instead or rom.
2019-06-23 17:14:18 +02:00
Mikael Degerfält
699546df8c
Handle sub menus in a generic way and moved adjust menu logic to separate file
...
This is a big one where I can finally reap what I sown. Sub menu entries now provide two functions, one to get the text for the current value and one to apply changes aka save to EEPROM. With this I can replace so much code in the menu() function that handles input, but was _almost_ identical. The process of converting the old menus are not completed, and I can probably remove about 200 lines more code.
The question is still what to do with less general menus like the rotator and fast patch menu.
One problem with the current implementation is that it is RAM heavy. It seems the const MenuEntry structs are placed in ram, because there is a pointer to RAM that I assume is allocated during execution and therefore the address cannot be stored in ROM.
My plan has been to put all the configuration fields (that are stored in EEPROM) into a struct or an array. When that is implemented, I can instead store the offset into the array in the const struct, which should be available at compile time and therefore can reside completely in ROM.
2019-06-23 17:14:17 +02:00
Mikael Degerfält
ca5b2b9484
Removed unnecessary display.display() call
2019-06-23 17:14:17 +02:00
Mikael Degerfält
3df78f6598
Same as before
2019-06-23 17:14:17 +02:00
Mikael Degerfält
3de5dd2b37
Even more places to use helper functions
2019-06-23 17:14:17 +02:00
Mikael Degerfält
aec3ef9fc7
Use helper function to plot velocity
2019-06-23 17:14:17 +02:00
Mikael Degerfält
b156a5935d
Moved status led blink to function
2019-06-23 17:14:17 +02:00
Mikael Degerfält
f2eabd7d37
Minor cleanups
2019-06-23 17:14:17 +02:00
Mikael Degerfält
1ac1b67732
Small bug fix
2019-06-23 17:14:17 +02:00