Commit graph

296 commits

Author SHA1 Message Date
Brian Hrebec
01d193c9b3 Refactored for teensy 4.0, xEvi hardware
- Switched to platformio, ino -> cpp
- MPRLS for pressure sensor
- Added basic ICM support
- Removed widi, battery, other features not supported in xEvi
- Removed legacy options/processing
- Added LED strip support
- Added encoder support
- Reworked menu code to use encoders/be more flexible
2023-08-27 11:52:08 -05:00
John Stack
c58c3f9e46 Binaries for v1.6.0 2023-02-27 13:25:55 +01:00
John Stack
551084b65a Add platform.io build settings 2023-02-27 13:21:31 +01:00
John Stäck
5e52f700af
Merge pull request #37 from Trasselfrisyr/johans-senaste
Changes up to 1.6.0
2023-02-27 13:15:23 +01:00
John Stäck
ba6182d1e6
Merge branch 'master' into johans-senaste 2023-02-27 13:14:45 +01:00
John Stäck
11f6737ca9
Merge pull request #34 from blind/harmonizer_refactoring
Harmonizer refactoring
2023-02-27 13:05:04 +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
35a5943998 Small tweak to CC intervals (mainly for pitch bend message interval update as a slight steppiness could be detected in some situations) 2021-03-20 11:00:51 +01:00
Johan Berglund
7cb0b1c271 Increased range of CV tuning and scaling. 2021-03-16 16:46:19 +01:00
Johan Berglund
1d637d3535 Bug fix. CV portamento in combination with pitch bend would make the pitch bend range be all over the place. 2021-02-26 10:31:50 +01:00
Johan Berglund
bd52fd0364 Small fix for CV LFO vibrato. 2021-02-26 10:21:53 +01: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
04191e064d Bug fixes. Lipo full value adjustment. ECB setting for pinky key disabled extra controller. 2021-01-28 06:27:21 +01:00
Johan Berglund
4cb72f1112 Latest beta (1.5b6) hex files with notes. New overview pdfs. 2021-01-01 13:25:46 +01:00
Johan Berglund
2adbe75b49 Editing SSD1306 library for I2C speed no longer neccessary. 2021-01-01 12:59:21 +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
bc545cccc1 * Changed names for ADJUST page titles (to shorten) and added numerical value readouts for THR and MAX settings.
* Corrected start position for rotators and added reset to first position when activated and on roller release (from top five octaves like for the otf key change).
* Adjusted NiMH voltage level
2020-10-10 19:02:25 +02: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
51f5ab54f6 Added automatic sensor calibration performed at factory reset. Changed some default values for settings. 2020-07-23 13:41:13 +02:00
Johan Berglund
1f2fff8b47 Updated readme with instructions for editing display library. 2020-07-22 14:06:01 +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
e68a66db84 Quick fix... octave setting missing from fingered note calculation for NuRAD 2020-05-17 17:08:22 +02:00
Johan Berglund
5791cbbe39 New version documentation. 2020-04-27 11:21:36 +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
85028a3627 Added hex files, user guides and fingering charts. 2020-03-24 14:00:44 +01: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
John Stäck
6183f0faee Test tool for MPR121 modules. 2019-12-23 00:41:15 +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
03fc99f2b5 New hex file with 1.4.3 version and corresponding user guide. 2019-10-29 13:15:46 +01:00
Johan Berglund
858bcb359e Hopefully I've managed to get all the legacy control stuff right this time. 2019-10-23 19:21:37 +02:00
Johan Berglund
bf125a3dd6 Fix to get the new pitchlatched patch change the same values as the other legacy ones. 2019-10-22 20:07:30 +02:00
Johan Berglund
32981cb992 Fix for negative breath activated controls. 2019-10-22 19:33:08 +02:00
Johan Berglund
8c1a7444c6 Changed LVL/GLD controls to K6 (increase) and K5 (decrease) to lessen risk of accidental change. LED indicator fix for pinky portamento. 2019-10-20 15:59:50 +02: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
053b954936 Added new dual trill functionality (contribution from Nyle) for third trill key allowing it to do both 3 semitones up and 4 semitones up. The alternate value is triggered by touching K3 and K7 (third trill key) at the same time. Third trill setting decides which interval is the standard "non-combo" one. Inspired by this combo thing, I also added an alternate way of doing lecacy style direct patch selection. Latch a note value using pinky key, then touch K1/K5 combo to send program change to that note value, or K2/K6 combo to send high and low numbers (108 to 127 and 0 to 36). 2019-10-20 12:25:24 +02:00
John Stäck
e7a944b9d1
Merge pull request #33 from Trasselfrisyr/miscfix
Miscfix
2019-10-17 00:02:54 +02:00
John Stäck
049cb6d434 Avoid floating-point math for vibrato calculations 2019-10-16 15:54:11 +02:00
John Stäck
cb7a4a8b88 No need for volatile copies of these variables. 2019-10-16 15:49:52 +02:00
John Stäck
0cbb6bde78 Explicitly initialize variables, use "bool-specific" values when setting. 2019-10-16 15:30:49 +02:00
John Stäck
7c1aa2c0a4 touchValue never used here, no point in reading touch data. 2019-10-16 15:28:23 +02:00
John Stäck
f36129d4bb Make IntervalTimer stub so simulator works 2019-10-16 15:28:01 +02:00
John Stäck
88b38b3f46 Remove trailing whitespace 2019-10-16 15:07:10 +02:00