void Opticaltrem::changepar (int npar, int value) { switch (npar) { case 0: Pdepth = value; fdepth = 0.5f + ((float) Pdepth)/254.0f; break; case 1: lfo->Pfreq = value; lfo->updateparams (PERIOD); break; case 2: lfo->Prandomness = value; lfo->updateparams (PERIOD); break; case 3: lfo->PLFOtype = value; lfo->updateparams (PERIOD); break; case 4: lfo->Pstereo = value; lfo->updateparams (PERIOD); break; case 5: // pan Ppanning = value; setpanning(value); break; case 6: //Invert Pinvert = value; if(Pinvert) { R1 = 68000.0f; //tremolo circuit series resistance Ra = 500000.0f; //Cds cell dark resistance. } else { R1 = 2700.0f; //tremolo circuit series resistance Ra = 1000000.0f; //Cds cell dark resistance. } setpanning(Ppanning); Ra = logf(Ra); //this is done for clarity Rb = 300.0f; //Cds cell full illumination b = exp(Ra/logf(Rb)) - CNST_E; break; } };
void Echo::changepar(int npar, unsigned char value) { switch(npar) { case 0: setvolume(value); break; case 1: setpanning(value); break; case 2: setdelay(value); break; case 3: setlrdelay(value); break; case 4: setlrcross(value); break; case 5: setfb(value); break; case 6: sethidamp(value); break; } }
void Phaser::changepar(int npar,unsigned char value){ switch(npar){ case 0: setvolume(value); break; case 1: setpanning(value); break; case 2: lfo.Pfreq=value; lfo.updateparams(); break; case 3: lfo.Prandomness=value; lfo.updateparams(); break; case 4: lfo.PLFOtype=value; lfo.updateparams(); break; case 5: lfo.Pstereo=value; lfo.updateparams(); break; case 6: setdepth(value); break; case 7: setfb(value); break; case 8: setstages(value); break; case 9: setlrcross(value); break; case 10:if (value>1) value=1; Poutsub=value; break; case 11:setphase(value); break; }; };
void MBDist::changepar (int npar, int value) { switch (npar) { case 0: setvolume (value); break; case 1: setpanning (value); break; case 2: setlrcross (value); break; case 3: Pdrive = value; PdriveL = (int)((float)Pdrive*volL); PdriveM = (int)((float)Pdrive*volM); PdriveH = (int)((float)Pdrive*volH); break; case 4: Plevel = value; break; case 5: PtypeL = value; break; case 6: PtypeM = value; break; case 7: PtypeH = value; break; case 8: PvolL = value; volL = (float) value /100.0; PdriveL = (int)((float)Pdrive*volL); break; case 9: PvolM = value; volM = (float) value /100.0; PdriveM = (int)((float)Pdrive*volM); break; case 10: PvolH = value; volH = (float) value /100.0; PdriveH = (int)((float)Pdrive*volH); break; case 11: Pnegate = value; break; case 12: setCross1 (value); break; case 13: setCross2 (value); break; case 14: Pstereo = value; break; }; };
void Chorus::changepar (int npar, int value) { switch (npar) { case 0: setvolume (value); break; case 1: setpanning (value); break; case 2: lfo.Pfreq = value; lfo.updateparams (); break; case 3: lfo.Prandomness = value; lfo.updateparams (); break; case 4: lfo.PLFOtype = value; lfo.updateparams (); break; case 5: lfo.Pstereo = value; lfo.updateparams (); break; case 6: setdepth (value); break; case 7: setdelay (value); break; case 8: setfb (value); break; case 9: setlrcross (value); break; case 10: if (value > 1) value = 1; Pflangemode = value; break; case 11: if (value > 1) value = 1; Poutsub = value; break; case 12: awesome_mode = value; if(awesome_mode) { outvolume = 0.0f; ldelay->set_mix(((float)Pvolume/128.0f) ); rdelay->set_mix(((float)Pvolume/128.0f) ); } else outvolume = (float)Pvolume / 127.0f; break; }; };
void Phaser::changepar(int npar, unsigned char value) { switch (npar) { case 0: setvolume(value); break; case 1: setpanning(value); break; case 2: lfo.Pfreq = value; lfo.updateparams(); break; case 3: lfo.Prandomness = value; lfo.updateparams(); break; case 4: lfo.PLFOtype = value; lfo.updateparams(); barber = (2 == value); break; case 5: lfo.Pstereo = value; lfo.updateparams(); break; case 6: setdepth(value); break; case 7: setfb(value); break; case 8: setstages(value); break; case 9: setlrcross(value); setoffset(value); break; case 10: Poutsub = (value > 1) ? 1 : value; break; case 11: setphase(value); setwidth(value); break; case 12: Phyper = min((int)value, 1); break; case 13: setdistortion(value); break; case 14: Panalog = value; break; } }
void Valve::changepar (int npar, int value) { switch (npar) { case 0: setvolume (value); break; case 1: setpanning (value); break; case 2: setlrcross (value); break; case 3: Pdrive = value; dist = (float) Pdrive / 127.0f * 40.0f + .5f; break; case 4: Plevel = value; break; case 5: if (value > 1) value = 1; Pnegate = value; break; case 6: setlpf (value); break; case 7: sethpf (value); break; case 8: if (value > 1) value = 1; Pstereo = value; break; case 9: Pprefiltering = value; break; case 10: Q_q = value; q = (float)Q_q /127.0f - 1.0f; factor = 1.0f - ((float)Q_q / 128.0f); break; case 11: Ped = value; break; case 12: Presence=value; setpresence(value); break; init_coefs(); }; };
void Distorsion::changepar(int npar, unsigned char value) { switch (npar) { case 0: setvolume(value); break; case 1: setpanning(value); break; case 2: setlrcross(value); break; case 3: Pdrive = value; break; case 4: Plevel = value; break; case 5: if (value > 13) Ptype = 13; // this must be increased if more distorsion types are added else Ptype = value; break; case 6: if (value > 1) Pnegate = 1; else Pnegate = value; break; case 7: setlpf(value); break; case 8: sethpf(value); break; case 9: Pstereo = (value > 0) ? 1 : 0; break; case 10: Pprefiltering = value; break; } }
void Vibe::changepar (int npar, int value) { switch (npar) { case 0: Pwidth = value; fwidth = ((float) Pwidth)/90.0f; break; case 1: lfo.Pfreq = value; lfo.updateparams (); break; case 2: lfo.Prandomness = value; lfo.updateparams (); break; case 3: lfo.PLFOtype = value; lfo.updateparams (); break; case 4: lfo.Pstereo = value; lfo.updateparams (); break; case 5: // pan setpanning(value); break; case 6: setvolume(value); break; case 7: //fb Pfb = value; fb = ((float) (Pfb - 64))/65.0f; break; case 8: //depth Pdepth = value; fdepth = ((float) Pdepth)/127.0f; break; case 9: //lrcross Plrcross = value; flrcross = ((float) (Plrcross - 64))/64.0f; fcross = 1.0f - fabs(flrcross); break; case 10: //Stereo Pstereo = value; break; } };
void DynamicFilter::changepar(int npar, unsigned char value) { switch (npar) { case 0: setvolume(value); break; case 1: setpanning(value); break; case 2: lfo.Pfreq = value; lfo.updateparams(); break; case 3: lfo.Prandomness = value; lfo.updateparams(); break; case 4: lfo.PLFOtype = value; lfo.updateparams(); break; case 5: lfo.Pstereo = value; lfo.updateparams(); break; case 6: setdepth(value); break; case 7: setampsns(value); break; case 8: Pampsnsinv = value; setampsns(Pampsns); break; case 9: Pampsmooth = value; setampsns(Pampsns); break; } }
void Chorus::changepar (int npar, int value) { switch (npar) { case 0: setvolume (value); break; case 1: setpanning (value); break; case 2: lfo.Pfreq = value; lfo.updateparams (); break; case 3: lfo.Prandomness = value; lfo.updateparams (); break; case 4: lfo.PLFOtype = value; lfo.updateparams (); break; case 5: lfo.Pstereo = value; lfo.updateparams (); break; case 6: setdepth (value); break; case 7: setdelay (value); break; case 8: setfb (value); break; case 9: setlrcross (value); break; case 10: if (value > 1) value = 1; Pflangemode = value; break; case 11: if (value > 1) value = 1; Poutsub = value; break; }; };
void NewDist::changepar (int npar, int value) { switch (npar) { case 0: setvolume (value); break; case 1: setpanning (value); break; case 2: setlrcross (value); break; case 3: Pdrive = value; break; case 4: Plevel = value; break; case 5: Ptype = value; break; case 6: if (value > 1) value = 1; Pnegate = value; break; case 7: setlpf (value); break; case 8: sethpf (value); break; case 9: Prfreq = value; rfreq = expf (powf ((float)value / 127.0f, 0.5f) * logf (25000.0f)) + 40.0f; filterl->setfreq(rfreq); filterr->setfreq(rfreq); break; case 10: Pprefiltering = value; break; case 11: setoctave (value); break; }; };
void Distorsion::changepar (int npar, int value) { switch (npar) { case 0: setvolume (value); break; case 1: setpanning (value); break; case 2: setlrcross (value); break; case 3: Pdrive = value; break; case 4: Plevel = value; break; case 5: Ptype = value; break; case 6: if (value > 1) value = 1; Pnegate = value; break; case 7: setlpf (value); break; case 8: sethpf (value); break; case 9: if (value > 1) value = 1; Pstereo = value; break; case 10: Pprefiltering = value; break; case 11: break; case 12: setoctave (value); break; }; };
void Alienwah::changepar (int npar, int value) { switch (npar) { case 0: setvolume (value); break; case 1: setpanning (value); break; case 2: lfo.Pfreq = value; lfo.updateparams (); break; case 3: lfo.Prandomness = value; lfo.updateparams (); break; case 4: lfo.PLFOtype = value; lfo.updateparams (); break; case 5: lfo.Pstereo = value; lfo.updateparams (); break; case 6: setdepth (value); break; case 7: setfb (value); break; case 8: setdelay (value); break; case 9: setlrcross (value); break; case 10: setphase (value); break; }; };
void Controller::resetall(){ setpitchwheel(0);//center setexpression(127); setpanning(64); setfiltercutoff(64); setfilterq(64); setbandwidth(64); setmodwheel(64); setfmamp(127); setvolume(127); setsustain(0); setresonancecenter(64); setresonancebw(64); //reset the NRPN NRPN.parhi=-1; NRPN.parlo=-1; NRPN.valhi=-1; NRPN.vallo=-1; };
void Pan::changepar (int npar, int value) { switch (npar) { case 0: setvolume (value); break; case 1: setpanning (value); break; case 2: lfo->Pfreq = value; lfo->updateparams (PERIOD); break; case 3: lfo->Prandomness = value; lfo->updateparams (PERIOD); break; case 4: lfo->PLFOtype = value; lfo->updateparams (PERIOD); break; case 5: lfo->Pstereo = value; lfo->updateparams (PERIOD); break; case 6: setextra (value); break; case 7: PAutoPan = value; break; case 8: PextraON = value; break; } };
void Vocoder::changepar (int npar, int value) { float tmp = 0; switch (npar) { case 0: setvolume (value); break; case 1: setpanning (value); break; case 2: Pmuffle = value; tmp = (float) Pmuffle; tmp *= 0.0001f + tmp/64000; alpha = ncSAMPLE_RATE/(ncSAMPLE_RATE + tmp); beta = 1.0f - alpha; break; case 3: Pqq = value; tmp = (float) value; adjustq(tmp); break; case 4: Pinput = value; input = dB2rap (75.0f * (float)Pinput / 127.0f - 40.0f); break; case 5: Plevel = value; level = dB2rap (60.0f * (float)Plevel / 127.0f - 40.0f); break; case 6: Pring = value; ringworm = (float) Pring/127.0f; break; }; };
void DynamicFilter::changepar (int npar, int value) { switch (npar) { case 0: setvolume (value); break; case 1: setpanning (value); break; case 2: lfo->Pfreq = value; lfo->updateparams (PERIOD); break; case 3: lfo->Prandomness = value; lfo->updateparams (PERIOD); break; case 4: lfo->PLFOtype = value; lfo->updateparams (PERIOD); break; case 5: lfo->Pstereo = value; lfo->updateparams (PERIOD); break; case 6: setdepth (value); break; case 7: setampsns (value); break; case 8: Pampsnsinv = value; setampsns (Pampsns); break; case 9: Pampsmooth = value; setampsns (Pampsns); break; case 10: { Pmode = value; filterpars->defaults (); switch (Pmode) { case 0: filterpars->Pcategory = 0; filterpars->Ptype = 2; filterpars->Pfreq = 45; filterpars->Pq = 64; filterpars->Pstages = 1; filterpars->Pgain = 64; break; case 1: filterpars->Pcategory = 2; filterpars->Ptype = 0; filterpars->Pfreq = 72; filterpars->Pq = 64; filterpars->Pstages = 0; filterpars->Pgain = 64; break; case 2: filterpars->Pcategory = 0; filterpars->Ptype = 4; filterpars->Pfreq = 64; filterpars->Pq = 64; filterpars->Pstages = 2; filterpars->Pgain = 64; break; case 3: filterpars->Pcategory = 1; filterpars->Ptype = 0; filterpars->Pfreq = 50; filterpars->Pq = 70; filterpars->Pstages = 1; filterpars->Pgain = 64; filterpars->Psequencesize = 2; // "I" filterpars->Pvowels[0].formants[0].freq = 34; filterpars->Pvowels[0].formants[0].amp = 127; filterpars->Pvowels[0].formants[0].q = 64; filterpars->Pvowels[0].formants[1].freq = 99; filterpars->Pvowels[0].formants[1].amp = 122; filterpars->Pvowels[0].formants[1].q = 64; filterpars->Pvowels[0].formants[2].freq = 108; filterpars->Pvowels[0].formants[2].amp = 112; filterpars->Pvowels[0].formants[2].q = 64; // "A" filterpars->Pvowels[1].formants[0].freq = 61; filterpars->Pvowels[1].formants[0].amp = 127; filterpars->Pvowels[1].formants[0].q = 64; filterpars->Pvowels[1].formants[1].freq = 71; filterpars->Pvowels[1].formants[1].amp = 121; filterpars->Pvowels[1].formants[1].q = 64; filterpars->Pvowels[1].formants[2].freq = 99; filterpars->Pvowels[1].formants[2].amp = 117; filterpars->Pvowels[1].formants[2].q = 64; break; case 4: filterpars->Pcategory = 1; filterpars->Ptype = 0; filterpars->Pfreq = 64; filterpars->Pq = 70; filterpars->Pstages = 1; filterpars->Pgain = 64; filterpars->Psequencesize = 2; filterpars->Pnumformants = 2; filterpars->Pvowelclearness = 0; filterpars->Pvowels[0].formants[0].freq = 70; filterpars->Pvowels[0].formants[0].amp = 127; filterpars->Pvowels[0].formants[0].q = 64; filterpars->Pvowels[0].formants[1].freq = 80; filterpars->Pvowels[0].formants[1].amp = 122; filterpars->Pvowels[0].formants[1].q = 64; filterpars->Pvowels[1].formants[0].freq = 20; filterpars->Pvowels[1].formants[0].amp = 127; filterpars->Pvowels[1].formants[0].q = 64; filterpars->Pvowels[1].formants[1].freq = 100; filterpars->Pvowels[1].formants[1].amp = 121; filterpars->Pvowels[1].formants[1].q = 64; break; }; reinitfilter (); } }; };
void Echotron::changepar (int npar, int value) { float tmptempo; switch (npar) { case 0: setvolume (value); break; case 1: Pdepth=value; initparams=1; break; case 2: Pwidth=value; initparams=1; break; case 3: Plength = value; if(Plength>127) Plength = 127; initparams=1; break; case 4: Puser = value; break; case 5: Ptempo = value; tmptempo = (float) Ptempo; tempo_coeff = 60.0f / tmptempo; lfo.Pfreq = lrintf(subdiv_fmod*tmptempo); dlfo.Pfreq = lrintf(subdiv_dmod*tmptempo); lfo.updateparams (); initparams=1; break; case 6: sethidamp (value); break; case 7: Plrcross = value; lrcross = ((float)(Plrcross)-64)/64.0; ilrcross = 1.0f - abs(lrcross); break; case 8: /*if(!setfile(value)) { error_num=4; MessageBox(NULL, "Could not find Echotron dly files.", "Error", MB_OK); }*/ break; case 9: lfo.Pstereo = value; dlfo.Pstereo = value; lfo.updateparams (); dlfo.updateparams (); break; case 10: Pfb = value; setfb(value); break; case 11: setpanning (value); break; case 12: Pmoddly = value;//delay modulation on/off break; case 13: Pmodfilts = value;//filter modulation on/off if(!Pmodfilts) initparams=1; break; case 14: //LFO Type lfo.PLFOtype = value; lfo.updateparams (); dlfo.PLFOtype = value; dlfo.updateparams (); break; case 15: Pfilters = value;//Pfilters break; }; };