/* * Mute/unmute volume */ bool Control::mute() { if (muted()) { if (setvolume(mutevolume)) { mutevolume = 0; } } else { if (setvolume(0)) { mutevolume = st->volume; } } return get_error_bool(); }
void ShelfBoost::changepar (int npar, int value) { switch (npar) { case 0: setvolume (value); break; case 1: Pq1 = value; q1 = powf (30.0f, ((float)value - 64.0f) / 64.0f); RB1l->setq(q1); RB1r->setq(q1); break; case 2: Pfreq1 = value; freq1 = (float) value; RB1l->setfreq(freq1); RB1r->setfreq(freq1); break; case 3: Pstereo = value; break; case 4: Plevel = value; gain = .375f * (float)value; u_gain = 1.0f / gain; RB1l->setgain(gain); RB1r->setgain(gain); 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 Echo::setpreset(unsigned char npreset) { /**\todo see if the preset array can be replaced with a struct or a class*/ const int PRESET_SIZE = 7; const int NUM_PRESETS = 9; unsigned char presets[NUM_PRESETS][PRESET_SIZE] = { //Echo 1 {67, 64, 35, 64, 30, 59, 0 }, //Echo 2 {67, 64, 21, 64, 30, 59, 0 }, //Echo 3 {67, 75, 60, 64, 30, 59, 10 }, //Simple Echo {67, 60, 44, 64, 30, 0, 0 }, //Canyon {67, 60, 102, 50, 30, 82, 48 }, //Panning Echo 1 {67, 64, 44, 17, 0, 82, 24 }, //Panning Echo 2 {81, 60, 46, 118, 100, 68, 18 }, //Panning Echo 3 {81, 60, 26, 100, 127, 67, 36 }, //Feedback Echo {62, 64, 28, 64, 100, 90, 55 } }; if(npreset >= NUM_PRESETS) npreset = NUM_PRESETS - 1; for(int n = 0; n < PRESET_SIZE; n++) changepar(n, presets[npreset][n]); if(insertion) setvolume(presets[npreset][0] / 2); //lower the volume if this is insertion effect Ppreset = npreset; }
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 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 StompBox::changepar (int npar, int value) { switch (npar) { case 0: setvolume (value); break; case 1: Phigh = value; if( value < 0) highb = ((float) value)/64.0f; if( value > 0) highb = ((float) value)/32.0f; break; case 2: Pmid = value; if( value < 0) midb = ((float) value)/64.0f; if( value > 0) midb = ((float) value)/32.0f; break; case 3: Plow = value; if( value < 0) lowb = ((float) value)/64.0f; if( value > 0) lowb = ((float) value)/32.0f; break; case 4: Pgain = value; gain = dB2rap(50.0f * ((float)value)/127.0f - 50.0f); break; case 5: Pmode = value; init_mode (Pmode); break; }; init_tone (); };
void CoilCrafter::changepar (int npar, int value) { switch (npar) { case 0: setvolume (value); break; case 1: Ppo = value; if (Ppo>0) { freq1 = tfreqs[value]; Pfreq1 = (int)freq1; setfreq1(); q1 = tqs[value]; Pq1 = (int)(q1*10.0f); setq1(); } break; case 2: Ppd = value; if(Ppd>0) { freq2 = tfreqs[value]; Pfreq2 = (int)freq2; setfreq2(); q2 = tqs[value]; Pq2 =(int)(q2*10.0f); setq2(); } break; case 3: Pfreq1 = value; freq1 = (float) value; setfreq1(); break; case 4: Pq1 = value; q1 = (float)value/10.0f; setq1(); break; case 5: Pfreq2 = value; freq2 = (float) value; setfreq2(); break; case 6: Pq2 = value; q2 = (float)value/10.0f; setq2(); break; case 7: Ptone = value; sethpf(value); break; case 8: Pmode = 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 EQ::changepar(int npar, unsigned char value) { switch (npar) { case 0: setvolume(value); break; } if (npar < 10) return; int nb = (npar - 10) / 5; // number of the band (filter) if (nb >= MAX_EQ_BANDS) return; int bp = npar % 5; // band paramenter float tmp; switch (bp) { case 0: filter[nb].Ptype = value; if (value > 9) filter[nb].Ptype = 0; // has to be changed if more filters will be added if (filter[nb].Ptype != 0) { filter[nb].l->settype(value - 1); filter[nb].r->settype(value - 1); } break; case 1: filter[nb].Pfreq = value; tmp = 600.0f * powf(30.0f, (value - 64.0f) / 64.0f); filter[nb].l->setfreq(tmp); filter[nb].r->setfreq(tmp); break; case 2: filter[nb].Pgain = value; tmp = 30.0f * (value - 64.0f) / 64.0f; filter[nb].l->setgain(tmp); filter[nb].r->setgain(tmp); break; case 3: filter[nb].Pq = value; tmp = powf(30.0f, (value - 64.0f) / 64.0f); filter[nb].l->setq(tmp); filter[nb].r->setq(tmp); break; case 4: filter[nb].Pstages = value; if (value >= MAX_FILTER_STAGES) filter[nb].Pstages = MAX_FILTER_STAGES - 1; filter[nb].l->setstages(value); filter[nb].r->setstages(value); break; } }
void Analog_Phaser::changepar (int npar, int value) { switch (npar) { case 0: setvolume (value); break; case 1: setdistortion (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 = 0; if (value == 2) barber = 1; break; case 5: lfo.Pstereo = value; lfo.updateparams (); break; case 6: setwidth (value); break; case 7: setfb (value); break; case 8: setstages (value); break; case 9: setoffset (value); break; case 10: if (value > 1) value = 1; Poutsub = value; break; case 11: setdepth (value); break; case 12: if (value > 1) value = 1; Phyper = value; break; }; };
void CompBand::changepar (int npar, int value) { switch (npar) { case 0: setvolume (value); break; case 1: PLratio = value; setratio(0,value); break; case 2: PMLratio = value; setratio(1,value); break; case 3: PMHratio = value; setratio(2,value); break; case 4: PHratio = value; setratio(3,value); break; case 5: PLthres = value; setthres(0,value); break; case 6: PMLthres = value; setthres(1,value); break; case 7: PMHthres = value; setthres(2,value); break; case 8: PHthres = value; setthres(3,value); break; case 9: setCross1 (value); break; case 10: setCross2 (value); break; case 11: setCross3(value); break; case 12: setlevel(value); break; }; };
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 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 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 StereoHarm::changepar (int npar, int value) { switch (npar) { case 0: setvolume (value); break; case 1: setgain (0,value); break; case 2: setinterval(0,value); break; case 3: setchrome(0, value); break; case 4: setgain (1,value); break; case 5: setinterval(1,value); break; case 6: setchrome(1, value); break; case 7: PSELECT = value;; break; case 8: Pnote = value; break; case 9: Ptype = value; if (Ptype==0) { setchrome(0, Pchromel); setchrome(1, Pchromer); } break; case 10: setMIDI (value); break; case 11: setlrcross(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; }; };
DynamicFilter::DynamicFilter(bool insertion_, float *efxoutl_, float *efxoutr_, SynthEngine *_synth) : Effect(insertion_, efxoutl_, efxoutr_, new FilterParams(0, 64, 64, 0, _synth), 0), lfo(_synth), Pdepth(0), Pampsns(90), Pampsnsinv(0), Pampsmooth(60), filterl(NULL), filterr(NULL), synth(_synth) { setvolume(110); setpreset(Ppreset); changepar(1, 64); // pan cleanup(); }
void Shuffle::changepar (int npar, int value) { switch (npar) { case 0: setvolume (value); break; case 1: setGainL(value); break; case 2: setGainML(value); break; case 3: setGainMH(value); break; case 4: setGainH(value); break; case 5: setCross1 (value); break; case 6: setCross2 (value); break; case 7: setCross3 (value); break; case 8: setCross4 (value); break; case 9: PQ = value; value +=64; tmp = powf (30.0f, ((float)value - 64.0f) / 64.0f); lr->setq(tmp); mlr->setq(tmp); mhr->setq(tmp); hr->setq(tmp); break; case 10: E=value; break; }; };
//============================================================================== void Equalizer::setParameter (int npar, uint8 value) { switch (npar) { case 0: setvolume(value); break; case 1: setdrywet(value); break; } if (npar < 10) return; int nb = (npar - 10) / 5; // number of the band (filter) if (nb >= MAX_EQ_BANDS) return; int bp = npar % 5; // band paramenter float tmp; switch (bp) { case 0: if (value > 9) value = 0; // has to be changed if more filters will be added filter[nb].Ptype = value; if (value != 0) { filter[nb].l->setType (value - 1); filter[nb].r->setType (value - 1); } break; case 1: filter[nb].Pfreq = value; tmp = 600.0 * pow (30.0,(value - 64.0) / 64.0); filter[nb].l->setFreq (tmp); filter[nb].r->setFreq (tmp); break; case 2: filter[nb].Pgain = value; tmp = 30.0 * (value - 64.0) / 82.0; // original was: - 64.0) / 64.0 filter[nb].l->setGain (tmp); filter[nb].r->setGain (tmp); break; case 3: filter[nb].Pq = value; tmp = pow (30.0, (value - 64.0) / 64.0); filter[nb].l->setQ (tmp); filter[nb].r->setQ (tmp); break; case 4: value = jmin (value, (uint8) MAX_ANALOG_FILTER_STAGES); filter[nb].Pstages = value; filter[nb].l->setStages (value); filter[nb].r->setStages (value); break; } }
void Exciter::changepar (int npar, int value) { switch (npar) { case 0: setvolume (value); break; case 1: sethar(0,value); break; case 2: sethar(1,value); break; case 3: sethar(2,value); break; case 4: sethar(3,value); break; case 5: sethar(4,value); break; case 6: sethar(5,value); break; case 7: sethar(6,value); break; case 8: sethar(7,value); break; case 9: sethar(8,value); break; case 10: sethar(9,value); break; case 11: setlpf(value); break; case 12: sethpf(value); break; }; };
void MBVvol::changepar (int npar, int value) { switch (npar) { case 0: setvolume (value); break; case 1: lfo1.Pfreq = value; lfo1.updateparams (); break; case 2: lfo1.PLFOtype = value; lfo1.updateparams (); break; case 3: lfo1.Pstereo = value; lfo1.updateparams (); break; case 4: lfo2.Pfreq = value; lfo2.updateparams (); break; case 5: lfo2.PLFOtype = value; lfo2.updateparams (); break; case 6: lfo2.Pstereo = value; lfo2.updateparams (); break; case 7: setCross1 (value); break; case 8: setCross2 (value); break; case 9: setCross3(value); break; case 10: Pcombi=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 Reverb::changepar(int npar, unsigned char value) { switch(npar) { case 0: setvolume(value); break; case 1: setpan(value); break; case 2: settime(value); break; case 3: setidelay(value); break; case 4: setidelayfb(value); break; // case 5: setrdelay(value); // break; // case 6: seterbalance(value); // break; case 7: setlpf(value); break; case 8: sethpf(value); break; case 9: setlohidamp(value); break; case 10: settype(value); break; case 11: setroomsize(value); break; case 12: setbandwidth(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; } };