@@ -242,8 +242,8 @@ PROGRAMME FUNCTION: EVI Wind Controller using the Freescale MP3V5004GP breath
242242#define ROTN3_FACTORY 17 // -7 (+24) Rotation 3
243243#define ROTN4_FACTORY 10 // -14 (+24) Rotation 4
244244#define PRIO_FACTORY 0 // Mono priority 0 - BAS(e note), 1 - ROT(ating note)
245- #define VIB_SENS_FACTORY 2 // 1 least sensitive, higher more sensitive
246- #define VIB_RETN_FACTORY 2 // 1 fast return, higher slower return
245+ #define VIB_SENS_FACTORY 6 // 1 least sensitive, higher more sensitive
246+ #define VIB_RETN_FACTORY 2 // 0, no return, 1 slow return, higher faster return
247247#define VIB_SQUELCH_FACTORY 15 // 0 to 30, vib signal squelch
248248#define VIB_DIRECTION_FACTORY 0
249249
@@ -357,7 +357,7 @@ unsigned short dipSwBits; // virtual dip switch settings for special modes (work
357357unsigned short priority; // mono priority for rotator chords
358358
359359unsigned short vibSens = 2 ; // vibrato sensitivity
360- unsigned short vibRetn = 1 ; // vibrato return speed
360+ unsigned short vibRetn = 2 ; // vibrato return speed
361361unsigned short vibSquelch = 15 ; // vibrato signal squelch
362362unsigned short vibDirection = DNWD; // direction of first vibrato wave UPWD or DNWD
363363
@@ -511,6 +511,7 @@ byte vibLedOff = 0;
511511byte oldpkey = 0 ;
512512
513513float vibDepth[10 ] = {0 ,0.05 ,0.1 ,0.15 ,0.2 ,0.25 ,0.3 ,0.35 ,0.40 ,0.45 }; // max pitch bend values (+/-) for the vibrato settings
514+ int vibMaxList[12 ] = {300 ,275 ,250 ,225 ,200 ,175 ,150 ,125 ,100 ,75 ,50 ,25 };
514515
515516unsigned int curveM4[] = {0 ,4300 ,7000 ,8700 ,9900 ,10950 ,11900 ,12600 ,13300 ,13900 ,14500 ,15000 ,15450 ,15700 ,16000 ,16250 ,16383 };
516517unsigned int curveM3[] = {0 ,2900 ,5100 ,6650 ,8200 ,9500 ,10550 ,11500 ,12300 ,13100 ,13800 ,14450 ,14950 ,15350 ,15750 ,16150 ,16383 };
@@ -680,6 +681,8 @@ void setup() {
680681 priority = readSetting (PRIO_ADDR);
681682 vibSens = readSetting (VIB_SENS_ADDR);
682683 vibRetn = readSetting (VIB_RETN_ADDR);
684+ vibSquelch = readSetting (VIB_SQUELCH_ADDR);
685+ vibDirection = readSetting (VIB_DIRECTION_ADDR);
683686
684687 legacy = dipSwBits & (1 <<1 );
685688 legacyBrAct = dipSwBits & (1 <<2 );
@@ -737,7 +740,7 @@ void setup() {
737740 display.setTextColor (WHITE);
738741 display.setTextSize (1 );
739742 display.setCursor (85 ,52 );
740- display.println (" v.1.2.4 " ); // FIRMWARE VERSION NUMBER HERE <<<<<<<<<<<<<<<<<<<<<<<
743+ display.println (" v.1.2.5 " ); // FIRMWARE VERSION NUMBER HERE <<<<<<<<<<<<<<<<<<<<<<<
741744 display.display ();
742745
743746 delay (1500 );
@@ -1359,21 +1362,8 @@ void pitch_bend(){
13591362 calculatedPBdepth = pbDepthList[PBdepth];
13601363 if (halfPitchBendKey) calculatedPBdepth = calculatedPBdepth*0.5 ;
13611364
1362- switch (vibSens){
1363- case 1 :
1364- vibMax = 200 ;
1365- break ;
1366- case 2 :
1367- vibMax = 100 ;
1368- break ;
1369- case 3 :
1370- vibMax = 50 ;
1371- break ;
1372- case 4 :
1373- vibMax = 25 ;
1374- }
1365+ vibMax = vibMaxList[vibSens-1 ];
13751366
1376-
13771367 if (vibRead < vibThr){
13781368 if (UPWD == vibDirection){
13791369 vibSignal=vibSignal*0.5 +0.5 *map (constrain (vibRead,(vibZero-vibMax),vibThr),vibThr,(vibZero-vibMax),0 ,calculatedPBdepth*vibDepth[vibrato]);
@@ -1391,6 +1381,9 @@ void pitch_bend(){
13911381 }
13921382
13931383 switch (vibRetn){ // moving baseline
1384+ case 0 :
1385+ // keep vibZero value
1386+ break ;
13941387 case 1 :
13951388 vibZero = vibZero*0.95 +vibRead*0.05 ;
13961389 break ;
@@ -3777,7 +3770,7 @@ void menu() {
37773770 break ;
37783771 case 4 :
37793772 // up
3780- if (vibSens < 4 ){
3773+ if (vibSens < 12 ){
37813774 plotVibSens (BLACK);
37823775 vibSens++;
37833776 plotVibSens (WHITE);
@@ -3809,7 +3802,7 @@ void menu() {
38093802 case 1 :
38103803 // down
38113804 plotVibRetn (BLACK);
3812- if (vibRetn > 1 ){
3805+ if (vibRetn > 0 ){
38133806 vibRetn--;
38143807 }
38153808 plotVibRetn (WHITE);
@@ -5001,11 +4994,11 @@ void drawSubVibDirection(){
50014994void plotVibDirection (int color){
50024995 display.setTextColor (color);
50034996 display.setTextSize (2 );
5004- display.setCursor (83 ,33 );
4997+ display.setCursor (79 ,33 );
50054998 if (DNWD == vibDirection){
5006- display.println (" DN " );
4999+ display.println (" NRM " );
50075000 } else {
5008- display.println (" UP " );
5001+ display.println (" REV " );
50095002 }
50105003}
50115004
0 commit comments