Commit graph

35 commits

Author SHA1 Message Date
John Stäck
ba6182d1e6
Merge branch 'master' into johans-senaste 2023-02-27 13:14:45 +01:00
John Stack
1a543a6734 Changes up to 1.6.0 2023-02-27 12:56:49 +01:00
Mikael Degerfält
6ddd2aa111 Use enum naming convention
The same naming convention for enum as was used in menu should also apply to new enum.
Fixed some compiler warnings in menu.
Moved enum and struct in globals.h away from the middle of #define block.
2021-07-29 20:30:09 +02:00
Mikael Degerfält
b5b6d890c0 Harmonizer refactoring
Removed code duplication by using structs and functions.
2021-07-14 18:55:24 +02:00
Johan Berglund
c8bd07799a * New quarter tone setting for Pinky Key (NuEVI) and Mod Key (NuRAD) – QTN. This makes the Pinky/Mod key a key for playing one quarter tone down using pitchbend (MIDI) or directly affecting the built in note CV output (using CV module or NuEVI CV/Plus). Pitch bend range for MIDI synth needs to be two semitones up/dn (or compensated for in pitch bend divider setting in the controller to make the resulting range two semitones up/dn). On NuRAD, it is recommended to set the 3rd LH Pinky key (EXTRA PKEY setting) to mirror MOD key for playablility.
* Changes to extra controller harmonics settings (experimental). Reverse direction options (ending with an ‘R’) available following the ones going up. This can be used with experimental mouthpieces where increased lip tension creates less touched sensor area.
2021-07-09 14:38:32 +02:00
Johan Berglund
27071c44bd * Added three new settings in EXTRAS MENU – CV TUNE, CV SCALE and CV EC LFO. The first two allow for software tuning of the CV output for 1V/Oct when using NuEVI CV, NuEVI Plus or NuEVI/NuRAD with external CV box or module. Also makes more simple versions of the CV boards possible (no potentiometers for adjustment). The CV EC LFO setting controls a new CV LFO vibrato function for the extra controller (lip sensor). It can be set to OFF (no extra controller LFO vibrato) or values 1 through 8, which represent vibrato freq from 4.5Hz to 8Hz. Default value is 3 (5.5Hz). 2021-02-20 15:35:01 +01:00
Johan Berglund
822e15e33d Adjusted default breath cal offset value. Added inverted octave rollers option for NuEVI (EVR in fingering menu). Support for CME WIDI chip connected to Teensy underside pads. Alternate Serial2 TX pad 31 for separate MIDI output, jumper sensing between pads 27 and 28 and power control for WIDI using pad 33. The old "slow midi" function (touching pinky key when pressing enter to toggle on/off) now repurpused for WIDI power control (only available when pads 27 and 28 are bridged). 2021-01-01 11:57:26 +01:00
Johan Berglund
b80f9247a2 Added compile option to include a MPR121 board adress scanning function for troubleshooting (MENU button at startup). Changed the destination setup for bite and lever to be less confusing and more powerful (custom CCs now possible). The VIB CTL item in the VIBRATO menu is now removed, and in SETUP CTL menu you will find BITE CTL, BITE CC, LEVER CTL and LEVER CC.
BITE CTL and LEVER CTL can both be set to any of these destinations:
	OFF - no destination active for this controller
	VIB - vibrato
	GLD - glide/portamento (defined by GLIDE MOD and GLIDE LMT settings)
	CC  - custom CC output (defined in GLIDE CC and LEVER CC settings)

Settings in GLIDE CC and LEVER CC are only used when corresponding control is set to CC in its CTL setting as described above.
2020-09-04 11:32:40 +02:00
Johan Berglund
c2d429c3f7 * AUTOCAL is available for each ADJUST menu page. With cursor on THR or MAX bar, press UP and DOWN buttons at the same time (and keep off the sensors being calibrated). AUTOCAL will be displayed for two seconds, then updated settings will be shown.
[removed for now - needs work] * Experimental breath controlled harmonic series (BRTH HARM and BR HM SEL settings). Like the lip sensor harmonics function, this shifts the fingered note up the harmonic series. For improved switching speed, try turning down the key deglitch time. (If this function is to be kept, I will probably need to tweak it quite a bit. Tongueing into higher notes and releasing them does not work well currently.)
2020-08-21 07:49:36 +02:00
Johan Berglund
ee438c200d * Adjustment setting for thumb lever (for optimizing thumb portamento control). By setting THR (level of push force to activate) and MAX (level of push force to achieve maximum set portamento) values close to eachother at the desired point of activation, the new glide limit setting to desired rate will create a switching type set rate controller (similar to Crumar EVI glide key). With THR and MAX setup with separation to taste, a continous control up to level set by glide limit is achieved.
* Glide setting SWO, SWitching Only, sending only Glide on/off (CC#65) for use with synths where glide rate CC#5 is used in non standard ways, for example some DSI/Sequential synths like the Prophet REV2 or Prophet 12 where glide rates are set individually for each oscillator.

* Glide limit setting for portamento. Doubles as setting for portamento level sent using pinky key/mod key in GLD mode. (Can be changed both in menu and in GLD mode.)

* Setting of level for LVL, LVP and GLD now reqires touching both pinky/mod and third trill/RHp3 for setting mode activation, this to avoid accidental change of setting when pinky/mod key is touched.

* Rate of setting movement up and down for LVL, LVP and GLD has been adjusted. Became very much too fast after the timing issues were solved in 1.5b1

* A short delay before note offs in legato transitions is added to make playback of recorded midi behave correctly (keeping note on and note off from being registered on the same timestamp).
2020-08-19 23:07:38 +02:00
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
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
John Stäck
75ee097857
Merge branch 'master' into sysex 2019-08-26 16:09:32 +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
e264b01dfd Use wiring.h with proper case, so building hopefully works on Linux 2019-08-07 17:36:41 +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
def0dcacd0 Remove global var for wireless power, add wl channel menu 2019-07-25 08:48:28 +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
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
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
John Stäck
cc86c357a0 Move defines elsewhere as they're used in multiple places 2019-06-25 13:42:22 +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
0d0ea5051d Made the sensor adjust menu driven by data
* Moved menu titles and option names into data structures.
 * Unified select menu option code
 * Also unified handling of menu selection, although main and rotator menus are still handled the old way.
 * Moved struct definitions to numenu.h
 * Grouped functions and variables together based on usage.
2019-06-23 17:14:17 +02:00
Mikael Degerfält
e362546e3c First iteration of menu cleanup
* Broke up the code into more general functions instead of duplicating code
 * Made stuff const and removed variables no longer used
 * Use defines for menu button values
 * Changed the order or things to avoid forward declarations
 * Use array lookup instead of switch-case on some menu options
 * Adjust menu functionification
 * Cleaned up sensor rendering
2019-06-23 17:14:17 +02:00
Mikael Degerfält
921fdb1266 Global namespace cleanup
Moved variables only used in menu to menu code. Variables only used in NuEVI.ino removed from globals.h and made static.
2019-06-08 15:34:16 +02:00
Mikael Degerfält
4bf2a3a91e Renamed menu.ino to menu.cpp
This change required lots of other changes to have it compile. I had to declare all variables from NuEVI.ino used by the menu as extern in a separate header file (globals.h).
Also I moved all defines from NuEVI.ino to a config.h file. I think some of these could be moved back or even moved into menu.cpp.
I declared many variables and functions in menu.cpp as static and moved them around to avoid forward declarations. For simplicity I did some forward declarations anyway.
Some varibles only used in menu.cpp was moved from NuEVI.ino instead of having them as externals.
2019-06-03 19:24:21 +02:00