1 /*
2   rakarrack - a guitar effects software
3 
4  rkrMIDI.C  -  MIDI functions
5   Copyright (C) 2008-2010 Josep Andreu
6   Author: Josep Andreu
7 
8  This program is free software; you can redistribute it and/or modify
9  it under the terms of version 2 of the GNU General Public License
10  as published by the Free Software Foundation.
11 
12  This program is distributed in the hope that it will be useful,
13  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  GNU General Public License (version 2) for more details.
16 
17  You should have received a copy of the GNU General Public License
18  (version2)  along with this program; if not, write to the Free Software
19  Foundation,
20  Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
21 
22 */
23 
24 
25 #include "global.h"
26 
27 
28 void
29 RKR::InitMIDI ()
30 {
31 
32     // Open Alsa Seq
33 
34 
35     int err = snd_seq_open (&midi_in, "default", SND_SEQ_OPEN_INPUT, 0);
36     if (err < 0)
37         printf ("Cannot activate ALSA seq client\n");
38     snd_seq_set_client_name (midi_in, jackcliname);
39     snd_config_update_free_global ();
40 
41 
42 
43     char portname[50];
44 
45     // Create Alsa Seq Client
46 
47     sprintf (portname, "%s IN",jackcliname);
48     snd_seq_create_simple_port (midi_in, portname,
49                                 SND_SEQ_PORT_CAP_WRITE |
50                                 SND_SEQ_PORT_CAP_SUBS_WRITE,
51                                 SND_SEQ_PORT_TYPE_SYNTH);
52 
53 
54 }
55 
56 
57 
58 void
59 RKR::miramidi ()
60 {
61 
62     if (snd_seq_event_input_pending (midi_in, 1)) {
63         do {
64             midievents ();
65 
66         } while (snd_seq_event_input_pending (midi_in, 0));
67     }
68 
69 };
70 
71 
72 
73 
74 
75 
76 
77 
78 void
79 RKR::midievents()
80 {
81 
82     int i;
83     snd_seq_event_t *midievent;
84     midievent = NULL;
85     snd_seq_event_input (midi_in, &midievent);
86     if (midievent == NULL)
87         return;
88     if (midievent->type == 42)
89         return;
90 
91 
92     if((Tap_Bypass) && (Tap_Selection == 3) && (midievent->type == SND_SEQ_EVENT_CLOCK)) {
93         mtc_counter++;
94         if (mtc_counter >= 24) {
95             Tap_TempoSet=TapTempo();
96             mtc_counter= 0;
97         }
98 
99     }
100 
101     if((Looper_Bypass) && (Tap_Selection==3)) {
102         if (midievent->type == SND_SEQ_EVENT_START) {
103             efx_Looper->changepar(1,1);
104             stecla=5;
105         }
106 
107         if (midievent->type == SND_SEQ_EVENT_STOP) {
108             efx_Looper->changepar(2,1);
109             stecla=5;
110         }
111 
112     }
113 
114     if ((midievent->type == SND_SEQ_EVENT_NOTEON)
115             || (midievent->type == SND_SEQ_EVENT_NOTEOFF)) {
116         int cmdnote = midievent->data.note.note;
117         int cmdvelo = midievent->data.note.velocity;
118 
119         if((Tap_Bypass) && (Tap_Selection == 1) && (midievent->type == SND_SEQ_EVENT_NOTEON) && (cmdvelo != 0))
120             Tap_TempoSet=TapTempo();
121 
122 
123         if (midievent->data.note.channel == HarCh) {
124             for (i = 0; i < POLY; i++) {
125                 if ((midievent->type == SND_SEQ_EVENT_NOTEON) && (cmdvelo != 0)) {
126                     if (note_active[i] == 0) {
127                         note_active[i] = 1;
128                         rnote[i] = cmdnote;
129                         gate[i] = 1;
130                         RC->MiraChord ();
131                         break;
132                     }
133 
134                 }
135 
136 
137                 if ((midievent->type == SND_SEQ_EVENT_NOTEON) && (cmdvelo == 0)) {
138 
139                     if ((note_active[i]) && (rnote[i] == cmdnote)) {
140                         note_active[i] = 0;
141                         gate[i] = 0;
142                         break;
143                     }
144 
145                 }
146 
147 
148                 if (midievent->type == SND_SEQ_EVENT_NOTEOFF) {
149 
150                     if ((note_active[i]) && (rnote[i] == cmdnote)) {
151                         note_active[i] = 0;
152                         gate[i] = 0;
153                         break;
154                     }
155 
156                 }
157             }
158 
159 
160 
161         }
162 
163 
164     }
165 
166 
167 
168 
169 
170     if (midievent->type == SND_SEQ_EVENT_PGMCHANGE) {
171 
172         if (midievent->data.control.channel == MidiCh) {
173 
174             if(!midi_table) {
175                 if ((midievent->data.control.value > 0)
176                         && (midievent->data.control.value < 61))
177                     preset = midievent->data.control.value;
178 
179                 if (midievent->data.control.value == 81)
180                     if (Selected_Preset >1) preset = Selected_Preset-1;
181 
182                 if (midievent->data.control.value == 82)
183                     if (Selected_Preset<60) preset = Selected_Preset+1;
184             } else
185                 preset = midievent->data.control.value;
186 
187         }
188     }
189 
190 
191 
192     if (midievent->type == SND_SEQ_EVENT_CONTROLLER) {
193         if (midievent->data.control.channel == MidiCh) {
194 
195             if(RControl) {
196                 ControlGet = (int)midievent->data.control.param;
197                 return;
198             }
199 
200             if(MIDIway) {
201                 for(i=0; i<20; i++) {
202                     if (XUserMIDI[(int)midievent->data.control.param][i])
203                         process_midi_controller_events(XUserMIDI[(int)midievent->data.control.param][i],
204                                                        (int)midievent->data.control.value);
205                     else break;
206                 }
207             } else
208                 process_midi_controller_events((int)midievent->data.control.param,
209                                                (int)midievent->data.control.value);
210 
211 
212         }
213 
214     }
215 
216 
217 
218 };
219 
220 
221 void
222 RKR::ActOnOff()
223 {
224 
225     if(OnOffC<63) OnOffC++;
226 
227 }
228 
229 void
230 RKR::ActiveUn(int value)
231 {
232 
233     int numef;
234     int inoff=0;
235     int miraque=0;
236 
237 
238     if(value < 20) {
239         numef = value / 2;
240         inoff = checkonoff(efx_order[numef]); // value % 2;
241         miraque = efx_order[numef];
242         ActOnOff();
243         Mnumeff[OnOffC] = numef;
244     } else if(value < 121) {
245         numef = value-20;
246         inoff = checkonoff(numef);
247         miraque = numef;
248         ActOnOff();
249         Mnumeff[OnOffC] = 1000 + numef;
250     }
251 
252     else {
253         numef = value;
254         inoff = checkonoff(numef);
255         miraque = numef;
256         ActOnOff();
257         Mnumeff[OnOffC] = 2000 + numef;
258     }
259 
260     switch(miraque) {
261     case 0:
262         if (inoff) EQ1_Bypass=1;
263         else EQ1_Bypass=0;
264         break;
265     case 1:
266         if (inoff) Compressor_Bypass=1;
267         else Compressor_Bypass=0;
268         break;
269     case 2:
270         if (inoff) Distorsion_Bypass=1;
271         else Distorsion_Bypass=0;
272         break;
273     case 3:
274         if (inoff) Overdrive_Bypass=1;
275         else Overdrive_Bypass=0;
276         break;
277     case 4:
278         if (inoff) Echo_Bypass=1;
279         else Echo_Bypass=0;
280         break;
281     case 5:
282         if (inoff) Chorus_Bypass=1;
283         else Chorus_Bypass=0;
284         break;
285     case 6:
286         if (inoff) Phaser_Bypass=1;
287         else Phaser_Bypass=0;
288         break;
289     case 7:
290         if (inoff) Flanger_Bypass=1;
291         else Flanger_Bypass=0;
292         break;
293     case 8:
294         if (inoff) Reverb_Bypass=1;
295         else Reverb_Bypass=0;
296         break;
297     case 9:
298         if (inoff) EQ2_Bypass=1;
299         else EQ2_Bypass=0;
300         break;
301     case 10:
302         if (inoff) WhaWha_Bypass=1;
303         else WhaWha_Bypass=0;
304         break;
305     case 11:
306         if (inoff) Alienwah_Bypass=1;
307         else Alienwah_Bypass=0;
308         break;
309     case 12:
310         if (inoff) Cabinet_Bypass=1;
311         else Cabinet_Bypass=0;
312         break;
313     case 13:
314         if (inoff) Pan_Bypass=1;
315         else Pan_Bypass=0;
316         break;
317     case 14:
318         if (inoff) Harmonizer_Bypass=1;
319         else Harmonizer_Bypass=0;
320         break;
321     case 15:
322         if (inoff) MusDelay_Bypass=1;
323         else MusDelay_Bypass=0;
324         break;
325     case 16:
326         if (inoff) Gate_Bypass=1;
327         else Gate_Bypass=0;
328         break;
329     case 17:
330         if (inoff) NewDist_Bypass=1;
331         else NewDist_Bypass=0;
332         break;
333     case 18:
334         if (inoff) APhaser_Bypass=1;
335         else APhaser_Bypass=0;
336         break;
337     case 19:
338         if (inoff) Valve_Bypass=1;
339         else Valve_Bypass=0;
340         break;
341     case 20:
342         if (inoff) DFlange_Bypass=1;
343         else DFlange_Bypass=0;
344         break;
345     case 21:
346         if (inoff) Ring_Bypass=1;
347         else Ring_Bypass=0;
348         break;
349     case 22:
350         if (inoff) Exciter_Bypass=1;
351         else Exciter_Bypass=0;
352         break;
353     case 23:
354         if (inoff) MBDist_Bypass=1;
355         else MBDist_Bypass=0;
356         break;
357     case 24:
358         if (inoff) Arpie_Bypass=1;
359         else Arpie_Bypass=0;
360         break;
361     case 25:
362         if (inoff) Expander_Bypass=1;
363         else Expander_Bypass=0;
364         break;
365     case 26:
366         if (inoff) Shuffle_Bypass=1;
367         else Shuffle_Bypass=0;
368         break;
369     case 27:
370         if (inoff) Synthfilter_Bypass=1;
371         else Synthfilter_Bypass=0;
372         break;
373     case 28:
374         if (inoff) MBVvol_Bypass=1;
375         else MBVvol_Bypass=0;
376         break;
377     case 29:
378         if (inoff) Convol_Bypass=1;
379         else Convol_Bypass=0;
380         break;
381     case 30:
382         if(inoff) Looper_Bypass=1;
383         else Looper_Bypass=0;
384         break;
385     case 31:
386         if(inoff) RyanWah_Bypass=1;
387         else RyanWah_Bypass=0;
388         break;
389     case 32:
390         if(inoff) RBEcho_Bypass=1;
391         else RBEcho_Bypass=0;
392         break;
393     case 33:
394         if(inoff) CoilCrafter_Bypass=1;
395         else CoilCrafter_Bypass=0;
396         break;
397     case 34:
398         if(inoff) ShelfBoost_Bypass=1;
399         else ShelfBoost_Bypass=0;
400         break;
401     case 35:
402         if(inoff) Vocoder_Bypass=1;
403         else Vocoder_Bypass=0;
404         break;
405     case 36:
406         if(inoff) Sustainer_Bypass=1;
407         else Sustainer_Bypass=0;
408         break;
409     case 37:
410         if(inoff) Sequence_Bypass=1;
411         else Sequence_Bypass=0;
412         break;
413     case 38:
414         if(inoff) Shifter_Bypass=1;
415         else Shifter_Bypass=0;
416         break;
417     case 39:
418         if(inoff) StompBox_Bypass=1;
419         else StompBox_Bypass=0;
420         break;
421     case 40:
422         if(inoff) Reverbtron_Bypass=1;
423         else Reverbtron_Bypass=0;
424         break;
425     case 41:
426         if(inoff) Echotron_Bypass=1;
427         else Echotron_Bypass=0;
428         break;
429     case 42:
430         if(inoff) StereoHarm_Bypass=1;
431         else StereoHarm_Bypass=0;
432         break;
433     case 43:
434         if(inoff) CompBand_Bypass=1;
435         else CompBand_Bypass=0;
436         break;
437     case 44:
438         if(inoff) Opticaltrem_Bypass=1;
439         else Opticaltrem_Bypass=0;
440         break;
441     case 45:
442         if(inoff) Vibe_Bypass=1;
443         else Vibe_Bypass=0;
444         break;
445     case 46:
446         if(inoff) Infinity_Bypass=1;
447         else Infinity_Bypass=0;
448         break;
449 
450 
451     case 121:
452         if(inoff) Tap_Bypass = 1;
453         else Tap_Bypass = 0;
454         break;
455     case 122:
456         if(inoff) MIDIConverter_Bypass = 1;
457         else MIDIConverter_Bypass = 0;
458         break;
459     case 123:
460         if(inoff) Tuner_Bypass = 1;
461         else Tuner_Bypass = 0;
462         break;
463     case 124:
464         if(inoff) Bypass = 1;
465         else Bypass = 0;
466         break;
467 
468     }
469 
470 
471 
472 
473 
474 
475 
476 
477 
478 }
479 
480 
481 
482 int
483 RKR::checkonoff(int miraque)
484 {
485 
486 
487     switch(miraque) {
488     case 0:
489         if(EQ1_Bypass) return(0);
490         break;
491     case 1:
492         if (Compressor_Bypass) return(0);
493         break;
494     case 2:
495         if (Distorsion_Bypass) return(0);
496         break;
497     case 3:
498         if (Overdrive_Bypass)return(0);
499         break;
500     case 4:
501         if (Echo_Bypass)return(0);
502         break;
503     case 5:
504         if (Chorus_Bypass) return(0);
505         break;
506     case 6:
507         if (Phaser_Bypass) return(0);
508         break;
509     case 7:
510         if (Flanger_Bypass) return(0);
511         break;
512     case 8:
513         if (Reverb_Bypass) return(0);
514         break;
515     case 9:
516         if (EQ2_Bypass) return(0);
517         break;
518     case 10:
519         if (WhaWha_Bypass) return(0);
520         break;
521     case 11:
522         if (Alienwah_Bypass) return(0);
523         break;
524     case 12:
525         if (Cabinet_Bypass) return(0);
526         break;
527     case 13:
528         if (Pan_Bypass) return(0);
529         break;
530     case 14:
531         if (Harmonizer_Bypass) return(0);
532         break;
533     case 15:
534         if (MusDelay_Bypass) return(0);
535         break;
536     case 16:
537         if (Gate_Bypass) return(0);
538         break;
539     case 17:
540         if (NewDist_Bypass) return(0);
541         break;
542     case 18:
543         if (APhaser_Bypass) return(0);
544         break;
545     case 19:
546         if (Valve_Bypass) return(0);
547         break;
548     case 20:
549         if (DFlange_Bypass) return(0);
550         break;
551     case 21:
552         if (Ring_Bypass) return(0);
553         break;
554     case 22:
555         if (Exciter_Bypass) return(0);
556         break;
557     case 23:
558         if (MBDist_Bypass) return(0);
559         break;
560     case 24:
561         if (Arpie_Bypass) return(0);
562         break;
563     case 25:
564         if (Expander_Bypass) return(0);
565         break;
566     case 26:
567         if (Shuffle_Bypass) return(0);
568         break;
569     case 27:
570         if (Synthfilter_Bypass) return(0);
571         break;
572     case 28:
573         if (MBVvol_Bypass) return(0);
574         break;
575     case 29:
576         if (Convol_Bypass) return(0);
577         break;
578     case 30:
579         if (Looper_Bypass) return(0);
580         break;
581     case 31:
582         if (RyanWah_Bypass) return(0);
583         break;
584     case 32:
585         if (RBEcho_Bypass) return(0);
586         break;
587     case 33:
588         if (CoilCrafter_Bypass) return(0);
589         break;
590     case 34:
591         if (ShelfBoost_Bypass) return(0);
592         break;
593     case 35:
594         if (Vocoder_Bypass) return(0);
595         break;
596     case 36:
597         if (Sustainer_Bypass) return(0);
598         break;
599     case 37:
600         if (Sequence_Bypass) return(0);
601         break;
602     case 38:
603         if (Shifter_Bypass) return(0);
604         break;
605     case 39:
606         if (StompBox_Bypass) return(0);
607         break;
608     case 40:
609         if (Reverbtron_Bypass) return(0);
610         break;
611     case 41:
612         if (Echotron_Bypass) return(0);
613         break;
614     case 42:
615         if (StereoHarm_Bypass) return(0);
616         break;
617     case 43:
618         if (CompBand_Bypass) return(0);
619         break;
620     case 44:
621         if (Opticaltrem_Bypass) return(0);
622         break;
623     case 45:
624         if (Vibe_Bypass) return(0);
625         break;
626     case 46:
627         if (Infinity_Bypass) return(0);
628         break;
629 
630 
631 
632 
633     case 121:
634         if (Tap_Bypass) return 0;
635         break;
636     case 122:
637         if (MIDIConverter_Bypass) return 0;
638         break;
639     case 123:
640         if (Tuner_Bypass) return 0;
641         break;
642     case 124:
643         if (Bypass) return 0;
644         break;
645 
646     }
647     return(1);
648 
649 }
650 
651 
652 
653 void
654 RKR::Conecta ()
655 {
656 
657     FILE *fp;
658 
659     int client = 0;
660     int puerto = 0;
661     char temp[128];
662     char temp1[128];
663     char temp2[128];
664     char *nume;
665 
666     if (IsCoIn)
667         disconectaaconnect ();
668 
669 
670     if ((fp = fopen ("/proc/asound/seq/clients", "r")) != NULL) {
671         memset (temp, 0, sizeof (temp));
672 
673         while (fgets (temp, sizeof temp, fp) != NULL) {
674 
675             if (strstr (temp, "Client") != NULL)
676 
677             {
678 
679                 strcpy (temp1, temp);
680                 strtok (temp1, " ");
681                 nume = strtok (NULL, "\"");
682                 sscanf (nume, "%d", &client);
683 
684             }
685 
686             if (strstr (temp, "Port") != NULL) {
687                 strcpy (temp2, temp);
688                 strtok (temp2, " ");
689                 nume = strtok (NULL, "  ");
690                 sscanf (nume, "%d", &puerto);
691                 if (strstr (temp, "rakarrack IN") != 0) {
692                     Cyoin = client;
693                     Pyoin = puerto;
694                 }
695                 if (strstr (temp, MID) != 0) {
696                     Ccin = client;
697                     Pcin = puerto;
698                 }
699 
700             }
701         }
702     }
703 
704     fclose (fp);
705     conectaaconnect ();
706 };
707 
708 
709 
710 
711 void
712 RKR::conectaaconnect ()
713 {
714     char tempi[128];
715 
716     if (MID != NULL) {
717         memset (tempi, 0, sizeof (tempi));
718         sprintf (tempi, "aconnect %d:%d  %d:%d", Ccin, Pcin, Cyoin, Pyoin);
719         system (tempi);
720         IsCoIn = 1;
721     }
722 
723 };
724 
725 
726 void
727 RKR::disconectaaconnect ()
728 {
729     char tempi[128];
730 
731     if (MID != NULL) {
732         memset (tempi, 0, sizeof (tempi));
733         sprintf (tempi, "aconnect -d %d:%d  %d:%d", Ccin, Pcin, Cyoin, Pyoin);
734         system (tempi);
735         IsCoIn = 0;
736     }
737 
738 
739 };
740 
741 
742 
743 void
744 RKR::jack_process_midievents (jack_midi_event_t *midievent)
745 {
746 
747     int i;
748     int type = midievent->buffer[0]>>4;
749 
750 
751     if((Tap_Bypass) && (Tap_Selection == 3) && (midievent->buffer[0] == 0xf8)) {
752         mtc_counter++;
753         if (mtc_counter >= 24) {
754             Tap_TempoSet=TapTempo();
755             mtc_counter= 0;
756         }
757 
758     }
759 
760 
761 
762     if ((type == 8) || (type == 9)) {
763         int cmdnote = midievent->buffer[1];
764         int cmdvelo = midievent->buffer[2];
765         int cmdchan = midievent->buffer[0]&15;
766 
767         if((Tap_Bypass) && (Tap_Selection==1) && (type==9) && (cmdvelo != 0)) Tap_TempoSet = TapTempo();
768 
769 
770         if (cmdchan == HarCh) {
771             for (i = 0; i < POLY; i++) {
772                 if ((type==9) && (cmdvelo != 0)) {
773                     if (note_active[i] == 0) {
774                         note_active[i] = 1;
775                         rnote[i] = cmdnote;
776                         gate[i] = 1;
777                         RC->MiraChord ();
778                         break;
779                     }
780 
781                 }
782 
783 
784                 if ((type==9) && (cmdvelo == 0)) {
785 
786                     if ((note_active[i]) && (rnote[i] == cmdnote)) {
787                         note_active[i] = 0;
788                         gate[i] = 0;
789                         break;
790                     }
791 
792                 }
793 
794                 if (type==8) {
795 
796                     if ((note_active[i]) && (rnote[i] == cmdnote)) {
797                         note_active[i] = 0;
798                         gate[i] = 0;
799                         break;
800                     }
801 
802                 }
803             }
804 
805 
806 
807         }
808 
809 
810     }
811 
812 
813 
814 
815 
816     if (type == 12) {
817         int cmdvalue= midievent->buffer[1];
818         int cmdchan = midievent->buffer[0]&15;
819 
820         if (cmdchan == MidiCh) {
821             if(!midi_table) {
822                 if ((cmdvalue > 0)
823                         && (cmdvalue < 61))
824                     preset = cmdvalue;
825 
826                 if (cmdvalue==81) if (Selected_Preset>1) preset = Selected_Preset-1;
827                 if (cmdvalue==82) if (Selected_Preset<60) preset = Selected_Preset+1;
828             } else
829                 preset = cmdvalue;
830 
831         }
832 
833 
834     }
835 
836 
837 
838     if (type == 11) {
839         int cmdcontrol = midievent->buffer[1];
840         int cmdvalue= midievent->buffer[2];
841         int cmdchan = midievent->buffer[0]&15;
842 
843 
844         if (cmdchan == MidiCh) {
845             if(RControl) {
846                 ControlGet = cmdcontrol;
847                 return;
848             }
849 
850 
851             if(MIDIway) {
852                 for(i=0; i<20; i++) {
853                     if (XUserMIDI[cmdcontrol][i])
854                         process_midi_controller_events(XUserMIDI[cmdcontrol][i],cmdvalue);
855                     else break;
856                 }
857             } else
858                 process_midi_controller_events(cmdcontrol, cmdvalue);
859         }
860     }
861 
862 };
863 
864 
865 /*
866  * process MIDI controller events
867  */
868 void
869 RKR::process_midi_controller_events(int parameter, int value)
870 {
871 
872     int i;
873     // for real parameter changes, flag need for a GUI update
874     if(parameter > 0) {
875         Mcontrol[parameter]=1;
876         Mvalue = 1;
877     }
878 
879 
880     switch (parameter) {
881 
882     case 7:
883         Master_Volume =
884             (float) value / 128.0f;
885         calculavol (2);
886         break;
887 
888     case 1:
889         efx_WhaWha->changepar (6, value);
890         break;
891 
892     case 20:
893         efx_Alienwah->changepar (6,value);
894         break;
895 
896     case 21:
897         efx_Phaser->changepar (6, value);
898         break;
899 
900     case 22:
901         efx_Flanger->changepar (6, value);
902         break;
903 
904     case 23:
905         efx_Chorus->changepar (6, value);
906         break;
907 
908     case 24:
909         efx_MusDelay->changepar (11, value);
910         break;
911 
912     case 25:
913         efx_MusDelay->changepar (12, value);
914         break;
915 
916     case 26:
917         efx_Har->changepar (4, value);
918         break;
919 
920     case 27:
921         if (Harmonizer_Bypass) {
922             Harmonizer_Bypass = 0;
923             efx_Har->changepar (3, value);
924             Harmonizer_Bypass = 1;
925         }
926         break;
927 
928     case 28:
929         efx_WhaWha->changepar (0, value);
930         break;
931 
932     case 29:
933         efx_Overdrive->changepar (0, value);
934         break;
935 
936     case 30:
937         efx_Distorsion->changepar (0, value);
938         break;
939 
940     case 31:
941         efx_Har->changepar (0, value);
942         break;
943 
944     case 52:
945         efx_Chorus->changepar (0, value);
946         break;
947 
948     case 53:
949         efx_Flanger->changepar (0, value);
950         break;
951 
952     case 54:
953         efx_Phaser->changepar (0, value);
954         break;
955 
956     case 55:
957         efx_Alienwah->changepar (0, value);
958         break;
959 
960     case 56:
961         efx_MusDelay->changepar (0, value);
962         break;
963 
964     case 57:
965         efx_Rev->changepar (0, value);
966         break;
967 
968     case 58:
969         efx_Pan->changepar (0, value);
970         break;
971 
972     case 59:
973         efx_Echo->changepar (0, value);
974         break;
975 
976     case 46:
977         efx_Echo->changepar (1, value);
978         break;
979 
980     case 47:
981         efx_Overdrive->changepar (1, value);
982         break;
983 
984     case 48:
985         efx_Distorsion->changepar (1, value);
986         break;
987 
988     case 49:
989         efx_Har->changepar (1, value);
990         break;
991 
992     case 50:
993         efx_Chorus->changepar (1, value);
994         break;
995 
996     case 51:
997         efx_Flanger->changepar (1,value);
998         break;
999 
1000     case 60:
1001         efx_Phaser->changepar (1, value);
1002         break;
1003 
1004     case 61:
1005         efx_Alienwah->changepar (1, value);
1006         break;
1007 
1008     case 62:
1009         efx_MusDelay->changepar (1, value);
1010         break;
1011 
1012     case 63:
1013         efx_Rev->changepar (1, value);
1014         break;
1015 
1016     case 65:
1017         efx_MusDelay->changepar (7, value);
1018         break;
1019 
1020     case 66:
1021         efx_WhaWha->changepar (1, value);
1022         break;
1023 
1024     case 67:
1025         efx_Pan->changepar (1, value);
1026         break;
1027 
1028     case 68:
1029         efx_Overdrive->changepar (3, value);
1030         break;
1031 
1032     case 69:
1033         efx_Distorsion->changepar (3, value);
1034         break;
1035 
1036     case 70:
1037         efx_Overdrive->changepar (4, value);
1038         break;
1039 
1040     case 71:
1041         efx_Distorsion->changepar (4, value);
1042         break;
1043 
1044     case 72:
1045         efx_Chorus->changepar (2, ret_Tempo(value));
1046         break;
1047 
1048     case 73:
1049         efx_Flanger->changepar (2,ret_Tempo(value));
1050         break;
1051 
1052     case 74:
1053         efx_Phaser->changepar (2, ret_Tempo(value));
1054         break;
1055 
1056     case 75:
1057         efx_WhaWha->changepar (2,ret_Tempo(value));
1058         break;
1059 
1060     case 76:
1061         efx_Alienwah->changepar (2, ret_Tempo(value));
1062         break;
1063 
1064     case 77:
1065         efx_Pan->changepar (2, ret_Tempo(value));
1066         break;
1067 
1068     case 78:
1069         efx_Echo->changepar (5, value);
1070         break;
1071 
1072     case 79:
1073         efx_Chorus->changepar (8, value);
1074         break;
1075 
1076     case 80:
1077         efx_Flanger->changepar (8, value);
1078         break;
1079 
1080     case 81:
1081         efx_Phaser->changepar (7, value);
1082         break;
1083 
1084     case 82:
1085         efx_Alienwah->changepar (7, value);
1086         break;
1087 
1088     case 83:
1089         efx_MusDelay->changepar (5, value);
1090         break;
1091 
1092     case 84:
1093         efx_MusDelay->changepar (9, value);
1094         break;
1095 
1096     case 85:
1097         efx_Overdrive->changepar (7, ret_LPF(value));
1098         break;
1099 
1100     case 86:
1101         efx_Distorsion->changepar (7, ret_LPF(value));
1102         break;
1103 
1104     case 87:
1105         efx_Rev->changepar (7, ret_LPF(value));
1106         break;
1107 
1108     case 88:
1109         efx_Overdrive->changepar (8, ret_HPF(value));
1110         break;
1111 
1112     case 89:
1113         efx_Distorsion->changepar (8, ret_HPF(value));
1114         break;
1115 
1116     case 90:
1117         efx_Rev->changepar (8, ret_HPF(value));
1118         break;
1119 
1120     case 91:
1121         efx_Chorus->changepar (9, value);
1122         break;
1123 
1124     case 92:
1125         efx_Flanger->changepar (9, value);
1126         break;
1127 
1128     case 93:
1129         efx_Phaser->changepar (9, value);
1130         break;
1131 
1132     case 94:
1133         efx_Overdrive->changepar (2, value);
1134         break;
1135 
1136     case 95:
1137         efx_Distorsion->changepar (2, value);
1138         break;
1139 
1140     case 96:
1141         efx_Alienwah->changepar (9,value);
1142         break;
1143 
1144     case 97:
1145         efx_Echo->changepar (4, value);
1146         break;
1147 
1148     case 98:
1149         efx_MusDelay->changepar (4,value);
1150         break;
1151 
1152     case 99:
1153         efx_Chorus->changepar (5, value);
1154         break;
1155 
1156     case 100:
1157         efx_Flanger->changepar (5, value);
1158         break;
1159 
1160     case 101:
1161         efx_Phaser->changepar (5, value);
1162         break;
1163 
1164     case 102:
1165         efx_WhaWha->changepar (5, value);
1166         break;
1167 
1168     case 103:
1169         efx_Alienwah->changepar (5,value);
1170         break;
1171 
1172     case 104:
1173         efx_Pan->changepar (5, value);
1174         break;
1175 
1176     case 105:
1177         efx_Chorus->changepar (3, value);
1178         break;
1179 
1180     case 106:
1181         efx_Flanger->changepar (3,value);
1182         break;
1183 
1184     case 107:
1185         efx_Phaser->changepar (3, value);
1186         break;
1187 
1188     case 108:
1189         efx_WhaWha->changepar (3, value);
1190         break;
1191 
1192     case 109:
1193         efx_Alienwah->changepar (3, value);
1194         break;
1195 
1196     case 110:
1197         efx_Pan->changepar (3, value);
1198         break;
1199 
1200     case 111:
1201         efx_WhaWha->changepar (7, value);
1202         break;
1203 
1204     case 112:
1205         efx_WhaWha->changepar (8, value);
1206         break;
1207 
1208     case 113:
1209         efx_WhaWha->changepar (9, value);
1210         break;
1211 
1212     case 114:
1213         efx_Phaser->changepar (11, value);
1214         break;
1215 
1216     case 115:
1217         efx_Alienwah->changepar (10, value);
1218         break;
1219 
1220     case 116:
1221         ActiveUn(value);
1222         break;
1223 
1224     case 117:
1225         efx_APhaser->changepar (0, value);
1226         break;
1227 
1228     case 118:
1229         efx_APhaser->changepar (1, value);
1230         break;
1231 
1232     case 119:
1233         efx_APhaser->changepar (2, value);
1234         break;
1235 
1236     case 120:
1237         efx_APhaser->changepar (11, value);
1238         break;
1239 
1240     case 121:
1241         efx_APhaser->changepar (6, value);
1242         break;
1243 
1244     case 122:
1245         efx_APhaser->changepar (7, value);
1246         break;
1247 
1248     case 123:
1249         efx_APhaser->changepar (9, value);
1250         break;
1251 
1252     case 124:
1253         efx_APhaser->changepar (5, value);
1254         break;
1255 
1256     case 125:
1257         efx_NewDist->changepar (0, value);
1258         break;
1259 
1260     case 126:
1261         efx_NewDist->changepar (1, value);
1262         break;
1263 
1264     case 127:
1265         efx_NewDist->changepar (2, value);
1266         break;
1267 
1268     case 2:
1269         efx_NewDist->changepar (3, value);
1270         break;
1271 
1272     case 3:
1273         efx_NewDist->changepar (4, value);
1274         break;
1275 
1276     case 4:
1277         efx_NewDist->changepar (7, ret_LPF(value));
1278         break;
1279 
1280     case 5:
1281         efx_NewDist->changepar (8, ret_HPF(value));
1282         break;
1283 
1284     case 6:
1285         efx_NewDist->changepar (9, value);
1286         break;
1287 
1288     case 8:
1289         efx_NewDist->changepar (11, value);
1290         break;
1291 
1292     case 9:
1293         efx_NewDist->changepar (12, value);
1294         break;
1295 
1296     case 12:
1297         Fraction_Bypass = (float) value / 127.0f;
1298         break;
1299 
1300     case 14:
1301         Input_Gain =
1302             (float) value / 128.0f;
1303         calculavol (1);
1304         break;
1305 
1306     case 130:
1307         efx_EQ1->changepar(0, value);
1308         break;
1309 
1310     case 131:
1311         for(i=0; i<10; i++) efx_EQ1->changepar(i*5+13, value);
1312         break;
1313 
1314     case 132:
1315         efx_EQ1->changepar(12, value);
1316         break;
1317 
1318     case 133:
1319         efx_EQ1->changepar(5+12, value);
1320         break;
1321 
1322     case 134:
1323         efx_EQ1->changepar(10+12, value);
1324         break;
1325 
1326     case 135:
1327         efx_EQ1->changepar(15+12, value);
1328         break;
1329 
1330     case 136:
1331         efx_EQ1->changepar(20+12, value);
1332         break;
1333 
1334     case 137:
1335         efx_EQ1->changepar(25+12, value);
1336         break;
1337 
1338     case 138:
1339         efx_EQ1->changepar(30+12, value);
1340         break;
1341 
1342     case 139:
1343         efx_EQ1->changepar(35+12, value);
1344         break;
1345 
1346     case 140:
1347         efx_EQ1->changepar(40+12, value);
1348         break;
1349 
1350     case 141:
1351         efx_EQ1->changepar(45+12, value);
1352         break;
1353 
1354     case 142:
1355         efx_Compressor->Compressor_Change(4, 10+(int) ((float) value * 1.890f));
1356         break;
1357 
1358     case 143:
1359         efx_Compressor->Compressor_Change(5, 10+(int) ((float) value * 3.858f));
1360         break;
1361 
1362     case 144:
1363         efx_Compressor->Compressor_Change(2, 2+ (int) ((float) value * .314f));
1364         break;
1365 
1366     case 145:
1367         efx_Compressor->Compressor_Change(7,  (int) ((float) value * .787f));
1368         break;
1369 
1370     case 146:
1371         efx_Compressor->Compressor_Change(1,  -60 + (int) ((float) value * .448f));
1372         break;
1373 
1374     case 147:
1375         efx_Compressor->Compressor_Change(3,  -40 + (int) ((float) value * .314f));
1376         break;
1377 
1378     case 148:
1379         efx_EQ2->changepar(0, value);
1380         break;
1381 
1382     case 149:
1383         efx_EQ2->changepar(11, 20+(int)((float)value*7.7165f ));
1384         break;
1385 
1386     case 150:
1387         efx_EQ2->changepar(12, value);
1388         break;
1389 
1390     case 151:
1391         efx_EQ2->changepar(13, value);
1392         break;
1393 
1394     case 152:
1395         efx_EQ2->changepar(16, 800 + (int)((float)value*56.692f));
1396         break;
1397 
1398     case 153:
1399         efx_EQ2->changepar(17, value);
1400         break;
1401 
1402     case 154:
1403         efx_EQ2->changepar(18, value);
1404         break;
1405 
1406     case 155:
1407         efx_EQ2->changepar(21, 20000 + (int)((float)value*157.48f));
1408         break;
1409 
1410     case 156:
1411         efx_EQ2->changepar(22, value);
1412         break;
1413 
1414     case 157:
1415         efx_EQ2->changepar(23, value);
1416         break;
1417 
1418     case 158:
1419         efx_DFlange->changepar(0,value-64);
1420         break;
1421 
1422     case 159:
1423         efx_DFlange->changepar(1,value-64);
1424         break;
1425 
1426     case 160:
1427         efx_DFlange->changepar(2,value);
1428         break;
1429 
1430     case 161:
1431         efx_DFlange->changepar(3,20+(int)((float)value*3.7795f));
1432         break;
1433 
1434     case 162:
1435         efx_DFlange->changepar(4,(int)((float)value*23.622f));
1436         break;
1437 
1438     case 163:
1439         efx_DFlange->changepar(5,(int)((float)value*0.7874f));
1440         break;
1441 
1442     case 164:
1443         efx_DFlange->changepar(6,value-64);
1444         break;
1445 
1446     case 165:
1447         efx_DFlange->changepar(7,20+(int)((float)value*157.32f));
1448         break;
1449 
1450     case 166:
1451         efx_DFlange->changepar(10,1+(int)((float)value*4.716f));
1452         break;
1453 
1454     case 167:
1455         efx_DFlange->changepar(11,value);
1456         break;
1457 
1458     case 168:
1459         efx_DFlange->changepar(13,value);
1460         break;
1461 
1462     case 169:
1463         efx_Valve->changepar(0,value);
1464         break;
1465 
1466     case 170:
1467         efx_Valve->changepar(2,value);
1468         break;
1469 
1470     case 171:
1471         efx_Valve->changepar(1,value);
1472         break;
1473 
1474     case 172:
1475         efx_Valve->changepar(4,value);
1476         break;
1477 
1478     case 173:
1479         efx_Valve->changepar(3,value);
1480         break;
1481 
1482     case 174:
1483         efx_Valve->changepar(10,value);
1484         break;
1485 
1486     case 175:
1487         efx_Valve->changepar(12,(int)((float)value*.7874f));
1488         break;
1489 
1490     case 176:
1491         efx_Valve->changepar(6,ret_LPF(value));
1492         break;
1493 
1494     case 177:
1495         efx_Valve->changepar(7,ret_HPF(value));
1496         break;
1497 
1498     case 178:
1499         efx_Ring->changepar(0,value-64);
1500         break;
1501 
1502     case 179:
1503         efx_Ring->changepar(2,value-64);
1504         break;
1505 
1506     case 180:
1507         efx_Ring->changepar(11,value);
1508         break;
1509 
1510     case 181:
1511         efx_Ring->changepar(3,value);
1512         break;
1513 
1514     case 182:
1515         efx_Ring->changepar(1,value-64);
1516         break;
1517 
1518     case 183:
1519         efx_Ring->changepar(4,(int)((float)value*.7874f));
1520         break;
1521 
1522     case 184:
1523         efx_Ring->changepar(5,1 + (int)((float)value*157.472f));
1524         break;
1525 
1526     case 185:
1527         efx_Ring->changepar(7,(int)((float)value*.7874f));
1528         break;
1529 
1530     case 186:
1531         efx_Ring->changepar(8,(int)((float)value*.7874f));
1532         break;
1533 
1534     case 187:
1535         efx_Ring->changepar(9,(int)((float)value*.7874f));
1536         break;
1537 
1538     case 188:
1539         efx_Ring->changepar(10,(int)((float)value*.7874f));
1540         break;
1541 
1542     case 189:
1543         efx_Exciter->changepar(0,value);
1544         break;
1545 
1546     case 190:
1547         efx_Exciter->changepar(11,20+(int)((float)value *157.3228f));
1548         break;
1549 
1550     case 191:
1551         efx_Exciter->changepar(12,20+(int)((float)value *157.3228f));
1552         break;
1553 
1554     case 192:
1555         efx_Exciter->changepar(1,value-64);
1556         break;
1557 
1558     case 193:
1559         efx_Exciter->changepar(2,value-64);
1560         break;
1561 
1562     case 194:
1563         efx_Exciter->changepar(3,value-64);
1564         break;
1565 
1566     case 195:
1567         efx_Exciter->changepar(4,value-64);
1568         break;
1569 
1570     case 196:
1571         efx_Exciter->changepar(5,value-64);
1572         break;
1573 
1574     case 197:
1575         efx_Exciter->changepar(6,value-64);
1576         break;
1577 
1578     case 198:
1579         efx_Exciter->changepar(7,value-64);
1580         break;
1581 
1582     case 199:
1583         efx_Exciter->changepar(8,value-64);
1584         break;
1585 
1586     case 200:
1587         efx_Exciter->changepar(9,value-64);
1588         break;
1589 
1590     case 201:
1591         efx_Exciter->changepar(10,value-64);
1592         break;
1593 
1594     case 202:
1595         efx_MBDist->changepar(0,value);
1596         break;
1597 
1598     case 203:
1599         efx_MBDist->changepar(2,value);
1600         break;
1601 
1602     case 204:
1603         efx_MBDist->changepar(3,value);
1604         break;
1605 
1606     case 205:
1607         efx_MBDist->changepar(4,value);
1608         break;
1609 
1610     case 206:
1611         efx_MBDist->changepar(8,(int)((float)value*.7874f));
1612         break;
1613 
1614     case 207:
1615         efx_MBDist->changepar(9,(int)((float)value*.7874f));
1616         break;
1617 
1618     case 208:
1619         efx_MBDist->changepar(10,(int)((float)value*.7874f));
1620         break;
1621 
1622     case 209:
1623         efx_MBDist->changepar(12,40+(int)((float)value*7.559f));
1624         break;
1625 
1626     case 210:
1627         efx_MBDist->changepar(13,1000+(int)((float)value*55.1181f));
1628         break;
1629 
1630     case 211:
1631         efx_MBDist->changepar(1,value);
1632         break;
1633 
1634     case 212:
1635         efx_Arpie->changepar(0,value-64);
1636         break;
1637 
1638     case 213:
1639         efx_Arpie->changepar(7,value);
1640         break;
1641 
1642     case 214:
1643         efx_Arpie->changepar(1,value-64);
1644         break;
1645 
1646     case 215:
1647         efx_Arpie->changepar(2,ret_Tempo(value));
1648         break;
1649 
1650     case 216:
1651         efx_Arpie->changepar(3,value);
1652         break;
1653 
1654     case 217:
1655         efx_Arpie->changepar(4,value-64);
1656         break;
1657 
1658     case 218:
1659         efx_Arpie->changepar(5,value);
1660         break;
1661 
1662     case 219:
1663         efx_Arpie->changepar(6,value);
1664         break;
1665 
1666     case 220:
1667         efx_Expander->Expander_Change(3,10+(int)((float)value*15.669291f));
1668         break;
1669 
1670     case 221:
1671         efx_Expander->Expander_Change(4,10+(int)((float)value*3.8582677f));
1672         break;
1673 
1674     case 222:
1675         efx_Expander->Expander_Change(2,1+(int)((float)value*.3858f));
1676         break;
1677 
1678     case 223:
1679         efx_Expander->Expander_Change(1,(int)((float)value*-.629921f));
1680         break;
1681 
1682     case 224:
1683         efx_Expander->Expander_Change(7,value);
1684         break;
1685 
1686     case 225:
1687         efx_Expander->Expander_Change(5,ret_LPF(value));
1688         break;
1689 
1690     case 226:
1691         efx_Expander->Expander_Change(6,ret_HPF(value));
1692         break;
1693 
1694     case 227:
1695         efx_Shuffle->changepar(0,value);
1696         break;
1697 
1698     case 228:
1699         efx_Shuffle->changepar(5,20+(int)((float)value*7.7165));
1700         break;
1701 
1702     case 229:
1703         efx_Shuffle->changepar(1,value-64);
1704         break;
1705 
1706     case 230:
1707         efx_Shuffle->changepar(6,400+(int)((float)value*28.3464));
1708         break;
1709 
1710     case 231:
1711         efx_Shuffle->changepar(2,value-64);
1712         break;
1713 
1714     case 232:
1715         efx_Shuffle->changepar(7,1200+(int)((float)value*53.5433));
1716         break;
1717 
1718     case 233:
1719         efx_Shuffle->changepar(3,value-64);
1720         break;
1721 
1722     case 234:
1723         efx_Shuffle->changepar(8,6000+(int)((float)value*157.48031));
1724         break;
1725 
1726     case 235:
1727         efx_Shuffle->changepar(4,value-64);
1728         break;
1729 
1730     case 236:
1731         efx_Shuffle->changepar(9,value-64);
1732         break;
1733 
1734     case 237:
1735         efx_Synthfilter->changepar(0,value);
1736         break;
1737 
1738     case 238:
1739         efx_Synthfilter->changepar(1,value);
1740         break;
1741 
1742     case 239:
1743         efx_Synthfilter->changepar(2,ret_Tempo(value));
1744         break;
1745 
1746     case 240:
1747         efx_Synthfilter->changepar(5,value);
1748         break;
1749 
1750     case 241:
1751         efx_Synthfilter->changepar(6,value);
1752         break;
1753 
1754     case 242:
1755         efx_Synthfilter->changepar(7,value-64);
1756         break;
1757 
1758     case 243:
1759         efx_Synthfilter->changepar(11,value);
1760         break;
1761 
1762     case 244:
1763         efx_Synthfilter->changepar(12,value-64);
1764         break;
1765 
1766     case 245:
1767         efx_Synthfilter->changepar(13,5+(int)((float)value*7.83464));
1768         break;
1769 
1770     case 246:
1771         efx_Synthfilter->changepar(14,5+(int)((float)value*3.8976378));
1772         break;
1773 
1774     case 247:
1775         efx_Synthfilter->changepar(15,value);
1776         break;
1777 
1778     case 248:
1779         efx_MBVvol->changepar(0,value);
1780         break;
1781 
1782     case 249:
1783         efx_MBVvol->changepar(1,ret_Tempo(value));
1784         break;
1785 
1786     case 250:
1787         efx_MBVvol->changepar(3,value);
1788         break;
1789 
1790     case 251:
1791         efx_MBVvol->changepar(4,ret_Tempo(value));
1792         break;
1793 
1794     case 252:
1795         efx_MBVvol->changepar(6,value);
1796         break;
1797 
1798     case 253:
1799         efx_MBVvol->changepar(7,20+(int)((float)value*7.71653));
1800         break;
1801 
1802     case 254:
1803         efx_MBVvol->changepar(8,1000+(int)((float)value*55.11811));
1804         break;
1805 
1806     case 255:
1807         efx_MBVvol->changepar(9,2000+(int)((float)value*188.97638));
1808         break;
1809 
1810     case 256:
1811         efx_RyanWah->changepar(0,value);
1812         break;
1813 
1814     case 257:
1815         efx_RyanWah->changepar(10,value-64);
1816         break;
1817 
1818     case 258:
1819         efx_RyanWah->changepar(11,value-64);
1820         break;
1821 
1822     case 259:
1823         efx_RyanWah->changepar(12,value-64);
1824         break;
1825 
1826     case 260:
1827         efx_RyanWah->changepar(6,value);
1828         break;
1829 
1830     case 261:
1831         efx_RyanWah->changepar(2,ret_Tempo(value));
1832         break;
1833 
1834     case 262:
1835         efx_RyanWah->changepar(1,value);
1836         break;
1837 
1838     case 263:
1839         efx_RyanWah->changepar(14,10+(int)((float)value*47.165354f));
1840         break;
1841 
1842     case 264:
1843         efx_RyanWah->changepar(8,value);
1844         break;
1845 
1846     case 265:
1847         efx_RyanWah->changepar(7,value-64);
1848         break;
1849 
1850     case 266:
1851         efx_RyanWah->changepar(9,value);
1852         break;
1853 
1854     case 267:
1855         efx_Looper->changepar(0,value);
1856         break;
1857 
1858     case 268:
1859         efx_Looper->changepar(6,value);
1860         break;
1861 
1862     case 269:
1863         efx_Looper->changepar(10,value);
1864         break;
1865 
1866     case 270:
1867         if(value) i=1;
1868         else i=0;
1869         efx_Looper->changepar(5,i);
1870         break;
1871 
1872     case 271:
1873         if(value) i=1;
1874         else i=0;
1875         efx_Looper->changepar(9,i);
1876         break;
1877 
1878     case 272:
1879         if(value) i=1;
1880         else i=0;
1881         efx_Looper->changepar(1,i);
1882         break;
1883 
1884     case 273:
1885         if(value) i=1;
1886         else i=0;
1887         efx_Looper->changepar(2,i);
1888         break;
1889 
1890     case 274:
1891         if(value) i=1;
1892         else i=0;
1893         efx_Looper->changepar(3,i);
1894         break;
1895 
1896     case 275:
1897         if(value) i=1;
1898         else i=0;
1899         efx_Looper->changepar(11,i);
1900         break;
1901 
1902     case 276:
1903         if(value) i=1;
1904         else i=0;
1905         efx_Looper->changepar(12,i);
1906         break;
1907 
1908     case 277:
1909         if(value) i=1;
1910         else i=0;
1911         efx_Looper->changepar(7,i);
1912         break;
1913 
1914     case 278:
1915         if(value) i=1;
1916         else i=0;
1917         efx_Looper->changepar(8,i);
1918         break;
1919 
1920     case 279:
1921         if(value) i=1;
1922         else i=0;
1923         efx_Looper->changepar(4,i);
1924         break;
1925 
1926     case 280:
1927         efx_Convol->changepar(0,value);
1928         break;
1929 
1930     case 281:
1931         efx_Convol->changepar(1,value);
1932         break;
1933 
1934     case 282:
1935         efx_Convol->changepar(7,value);
1936         break;
1937 
1938     case 283:
1939         efx_Convol->changepar(6,value);
1940         break;
1941 
1942     case 284:
1943         efx_Convol->changepar(10,value-64);
1944         break;
1945 
1946     case 285:
1947         efx_Convol->changepar(3,5+(int)((float)value*1.9291339f));
1948         break;
1949 
1950     case 286:
1951         efx_CoilCrafter->changepar(0,value);
1952         break;
1953 
1954     case 287:
1955         efx_CoilCrafter->changepar(7,20+(int)((float)value*34.488189f));
1956         break;
1957 
1958     case 288:
1959         efx_CoilCrafter->changepar(3,2600+(int)((float)value*14.96063f));
1960         break;
1961 
1962     case 289:
1963         efx_CoilCrafter->changepar(4,10+(int)((float)value*.43307087f));
1964         break;
1965 
1966     case 290:
1967         efx_CoilCrafter->changepar(0,2600+(int)((float)value*14.96063f));
1968         break;
1969 
1970     case 291:
1971         efx_CoilCrafter->changepar(6,10+(int)((float)value*.43307087f));
1972         break;
1973 
1974     case 292:
1975         efx_ShelfBoost->changepar(0,value);
1976         break;
1977 
1978     case 293:
1979         efx_ShelfBoost->changepar(4,1+(int)((float)value*.992125f));
1980         break;
1981 
1982     case 294:
1983         efx_ShelfBoost->changepar(2,220+(int)((float)value*124.25197f));
1984         break;
1985 
1986     case 295:
1987         efx_ShelfBoost->changepar(1,value-64);
1988         break;
1989 
1990     case 296:
1991         efx_Vocoder->changepar(0,value);
1992         break;
1993 
1994     case 297:
1995         efx_Vocoder->changepar(1,value);
1996         break;
1997 
1998     case 298:
1999         efx_Vocoder->changepar(4,value);
2000         break;
2001 
2002     case 299:
2003         efx_Vocoder->changepar(2,1+(int)((float)value*.992125f));
2004         break;
2005 
2006     case 300:
2007         efx_Vocoder->changepar(3,40+(int)((float)value*1.023622f));
2008         break;
2009 
2010     case 301:
2011         efx_Vocoder->changepar(6,value);
2012         break;
2013 
2014     case 302:
2015         efx_Vocoder->changepar(5,value);
2016         break;
2017 
2018     case 303:
2019         efx_RBEcho->changepar(0,value);
2020         break;
2021 
2022     case 304:
2023         efx_RBEcho->changepar(7,value);
2024         break;
2025 
2026     case 305:
2027         efx_RBEcho->changepar(1,value);
2028         break;
2029 
2030     case 306:
2031         efx_RBEcho->changepar(2,ret_Tempo(value));
2032         break;
2033 
2034     case 307:
2035         efx_RBEcho->changepar(3,value);
2036         break;
2037 
2038     case 308:
2039         efx_RBEcho->changepar(5,value);
2040         break;
2041 
2042     case 309:
2043         efx_RBEcho->changepar(6,value);
2044         break;
2045 
2046     case 310:
2047         efx_RBEcho->changepar(9,value);
2048         break;
2049 
2050     case 311:
2051         efx_RBEcho->changepar(4,value);
2052         break;
2053 
2054     case 312:
2055         efx_Sustainer->changepar(0,value);
2056         break;
2057 
2058     case 313:
2059         efx_Sustainer->changepar(1,value);
2060         break;
2061 
2062     case 314:
2063         efx_Sequence->changepar(8,value);
2064         break;
2065 
2066     case 315:
2067         efx_Sequence->changepar(0,value);
2068         break;
2069 
2070     case 316:
2071         efx_Sequence->changepar(1,value);
2072         break;
2073 
2074     case 317:
2075         efx_Sequence->changepar(2,value);
2076         break;
2077 
2078     case 318:
2079         efx_Sequence->changepar(3,value);
2080         break;
2081 
2082     case 319:
2083         efx_Sequence->changepar(4,value);
2084         break;
2085 
2086     case 320:
2087         efx_Sequence->changepar(5,value);
2088         break;
2089 
2090     case 321:
2091         efx_Sequence->changepar(6,value);
2092         break;
2093 
2094     case 322:
2095         efx_Sequence->changepar(7,value);
2096         break;
2097 
2098     case 323:
2099         efx_Sequence->changepar(9,ret_Tempo(value));
2100         break;
2101 
2102     case 324:
2103         efx_Sequence->changepar(10,value);
2104         break;
2105 
2106     case 325:
2107         efx_Sequence->changepar(12,(int)((float)value*.05511811f));
2108         break;
2109 
2110     case 326:
2111         efx_Shifter->changepar(0,value);
2112         break;
2113 
2114     case 327:
2115         efx_Shifter->changepar(6,(int)((float)value*.094488189f));
2116         break;
2117 
2118     case 328:
2119         efx_Shifter->changepar(2,value);
2120         break;
2121 
2122     case 329:
2123         efx_Shifter->changepar(1,value);
2124         break;
2125 
2126     case 330:
2127         efx_Shifter->changepar(3,1 + (int)((float)value*15.748031f));
2128         break;
2129 
2130     case 331:
2131         efx_Shifter->changepar(4,1 + (int)((float)value*15.748031f));
2132         break;
2133 
2134     case 332:
2135         efx_Shifter->changepar(4,-70 + (int)((float)value*.70866142f));
2136         break;
2137 
2138     case 333:
2139         efx_Shifter->changepar(9,value);
2140         break;
2141 
2142     case 334:
2143         efx_StompBox->changepar(0,value);
2144         break;
2145 
2146     case 335:
2147         efx_StompBox->changepar(4,value);
2148         break;
2149 
2150     case 336:
2151         efx_StompBox->changepar(3,value);
2152         break;
2153 
2154     case 337:
2155         efx_StompBox->changepar(2,value);
2156         break;
2157 
2158     case 338:
2159         efx_StompBox->changepar(1,value);
2160         break;
2161 
2162     case 339:
2163         efx_Reverbtron->changepar(0,value);
2164         break;
2165 
2166     case 340:
2167         efx_Reverbtron->changepar(11,value);
2168         break;
2169 
2170     case 341:
2171         efx_Reverbtron->changepar(7,value);
2172         break;
2173 
2174     case 342:
2175         efx_Reverbtron->changepar(6,value);
2176         break;
2177 
2178     case 343:
2179         efx_Reverbtron->changepar(10,value);
2180         break;
2181 
2182     case 344:
2183         efx_Reverbtron->changepar(3,20 + (int)((float)value*11.653543f));
2184         break;
2185 
2186     case 345:
2187         efx_Reverbtron->changepar(9,value);
2188         break;
2189 
2190     case 346:
2191         efx_Reverbtron->changepar(5,(int)((float)value*3.9370079f));
2192         break;
2193 
2194     case 347:
2195         efx_Reverbtron->changepar(1,value);
2196         break;
2197 
2198     case 348:
2199         efx_Echotron->changepar(0,value);
2200         break;
2201 
2202     case 349:
2203         efx_Echotron->changepar(11,value);
2204         break;
2205 
2206     case 350:
2207         efx_Echotron->changepar(5,ret_Tempo(value));
2208         break;
2209 
2210     case 351:
2211         efx_Echotron->changepar(6,value);
2212         break;
2213 
2214     case 352:
2215         efx_Echotron->changepar(10,value);
2216         break;
2217 
2218     case 353:
2219         efx_Echotron->changepar(7,value);
2220         break;
2221 
2222     case 354:
2223         efx_Echotron->changepar(2,value);
2224         break;
2225 
2226     case 355:
2227         efx_Echotron->changepar(1,value);
2228         break;
2229 
2230     case 356:
2231         efx_Echotron->changepar(9,value);
2232         break;
2233 
2234     case 357:
2235         efx_Echotron->changepar(3,1+ (int)((float)value*.99212598f));
2236         break;
2237 
2238     case 358:
2239         efx_StereoHarm->changepar(0,value);
2240         break;
2241 
2242     case 359:
2243         efx_StereoHarm->changepar(2,-12+(int)((float)value*.18897638f));
2244         break;
2245 
2246     case 360:
2247         efx_StereoHarm->changepar(3,-2000+(int)((float)value*31.496063f));
2248         break;
2249 
2250     case 361:
2251         efx_StereoHarm->changepar(1,value);
2252         break;
2253 
2254     case 362:
2255         efx_StereoHarm->changepar(5,-12+(int)((float)value*.18897638f));
2256         break;
2257 
2258     case 363:
2259         efx_StereoHarm->changepar(6,-2000+(int)((float)value*31.496063f));
2260         break;
2261 
2262     case 364:
2263         efx_StereoHarm->changepar(4,value);
2264         break;
2265 
2266     case 365:
2267         efx_StereoHarm->changepar(11,value);
2268         break;
2269 
2270     case 366:
2271         efx_StereoHarm->changepar(8,(int)((float)value*.18110236f));
2272         break;
2273 
2274     case 367:
2275         efx_StereoHarm->changepar(9,(int)((float)value*.25984252f));
2276         break;
2277 
2278     case 368:
2279         efx_CompBand->changepar(0,value);
2280         break;
2281 
2282     case 369:
2283         efx_CompBand->changepar(12,value);
2284         break;
2285 
2286     case 370:
2287         efx_CompBand->changepar(1,2+(int)((float)value*.31496063f));
2288         break;
2289 
2290     case 371:
2291         efx_CompBand->changepar(2,2+(int)((float)value*.31496063f));
2292         break;
2293 
2294     case 372:
2295         efx_CompBand->changepar(3,2+(int)((float)value*.31496063f));
2296         break;
2297 
2298     case 373:
2299         efx_CompBand->changepar(4,2+(int)((float)value*.31496063f));
2300         break;
2301 
2302     case 374:
2303         efx_CompBand->changepar(5,-70+(int)((float)value*.74015748f));
2304         break;
2305 
2306     case 375:
2307         efx_CompBand->changepar(6,-70+(int)((float)value*.74015748f));
2308         break;
2309 
2310     case 376:
2311         efx_CompBand->changepar(7,-70+(int)((float)value*.74015748f));
2312         break;
2313 
2314     case 377:
2315         efx_CompBand->changepar(8,-70+(int)((float)value*.74015748f));
2316         break;
2317 
2318     case 378:
2319         efx_CompBand->changepar(9,20+(int)((float)value*7.71653f));
2320         break;
2321 
2322     case 379:
2323         efx_CompBand->changepar(10,1000+(int)((float)value*55.11811f));
2324         break;
2325 
2326     case 380:
2327         efx_CompBand->changepar(11,2000+(int)((float)value*188.97638f));
2328         break;
2329 
2330     case 381:
2331         efx_Opticaltrem->changepar(0,value);
2332         break;
2333 
2334     case 382:
2335         efx_Opticaltrem->changepar(1,ret_Tempo(value));
2336         break;
2337 
2338     case 383:
2339         efx_Opticaltrem->changepar(2,value);
2340         break;
2341 
2342     case 384:
2343         efx_Opticaltrem->changepar(4,value);
2344         break;
2345 
2346     case 385:
2347         efx_Opticaltrem->changepar(5,value);
2348         break;
2349 
2350     case 386:
2351         efx_Vibe->changepar(6,value);
2352         break;
2353 
2354     case 387:
2355         efx_Vibe->changepar(0,value);
2356         break;
2357 
2358     case 388:
2359         efx_Vibe->changepar(8,value);
2360         break;
2361 
2362     case 389:
2363         efx_Vibe->changepar(1,ret_Tempo(value));
2364         break;
2365 
2366     case 390:
2367         efx_Vibe->changepar(2,value);
2368         break;
2369 
2370     case 391:
2371         efx_Vibe->changepar(4,value);
2372         break;
2373 
2374     case 392:
2375         efx_Vibe->changepar(7,value);
2376         break;
2377 
2378     case 393:
2379         efx_Vibe->changepar(9,value);
2380         break;
2381 
2382     case 394:
2383         efx_Vibe->changepar(5,value);
2384         break;
2385 
2386     case 395:
2387         efx_Infinity->changepar(0,value);
2388         break;
2389 
2390     case 396:
2391         efx_Infinity->changepar(9,-1000+(int)((float)value*15.748031f));
2392         break;
2393 
2394     case 397:
2395         efx_Infinity->changepar(15,value);
2396         break;
2397 
2398     case 398:
2399         efx_Infinity->changepar(13,value);
2400         break;
2401 
2402     case 399:
2403         efx_Infinity->changepar(10,value);
2404         break;
2405 
2406     case 400:
2407         efx_Infinity->changepar(11,value);
2408         break;
2409 
2410     case 401:
2411         efx_Infinity->changepar(12,ret_Tempo(value));
2412         break;
2413 
2414     case 402:
2415         efx_Infinity->changepar(14,-16+(int)((float)value*.2518685f));
2416         break;
2417 
2418 
2419     }
2420 
2421 
2422 }
2423 
2424 
2425 int
2426 RKR::ret_Tempo(int value)
2427 {
2428     return( 1+(int)((float)value*4.724f));
2429 }
2430 int
2431 RKR::ret_LPF(int value)
2432 {
2433     return( 20+(int)((float)value*204.566f));
2434 }
2435 int
2436 RKR::ret_HPF(int value)
2437 {
2438     return( 20+(int)((float)value*157.322f));
2439 }
2440 
2441