Example #1
0
void
RyanWah::setpreset (int npreset)
{
    const int PRESET_SIZE = 19;
    const int NUM_PRESETS = 6;
    int presets[NUM_PRESETS][PRESET_SIZE] = {
        //Wah Pedal
        {16, 10, 60, 0, 0, 64, 0, 0, 10, 7, -16, 40, -3, 1, 2000, 450, 1, 1, 0},
        //Mutron
        {0, 15, 138, 0, 0, 64, 0, 50, 0, 30, 32, 0, 5, 1, 2000, 60, 0, 1, 1},
        //Phase Wah
        {0, 50, 60, 0, 0, 64, 30, 10, 10, 30, 32, 0, 10, 2, 2000, 350, 1, 1, 2},
        //Succulent Phaser
        {64, 8, 35, 10, 0, 64, 50, -10, 53, 35, 28, -16, 32, 4, 2600, 300, 1, 1, 3},
        //Quacky
        {16, 10, 60, 0, 0, 64, 0, 40, 10, 32, -16, 40, -3, 1, 2000, 400, 1, 1, 4},
        //Smoothtron
        {0, 15, 138, 0, 0, 64, 0, 15, 0, 20, 32, 0, 5, 1, 2000, 60, 0, 3, 5}

    };

    if(npreset>NUM_PRESETS-1) {
        Fpre->ReadPreset(31,npreset-NUM_PRESETS+1);
        for (int n = 0; n < PRESET_SIZE; n++)
            changepar (n, pdata[n]);
    } else {

        for (int n = 0; n < PRESET_SIZE; n++)
            changepar (n, presets[npreset][n]);
    }

    Ppreset = npreset;

    reinitfilter ();
};
Example #2
0
/*
 * Cleanup the effect
 */
void DynamicFilter::cleanup()
{
    reinitfilter();
    ms1 = 0.0;
    ms2 = 0.0;
    ms3 = 0.0;
    ms4 = 0.0;
}
Example #3
0
/*
 * Cleanup the effect
 */
void
RyanWah::cleanup ()
{
    reinitfilter ();
    ms1 = 0.0;
    oldfbias = oldfbias1 = oldfbias2 = 0.0f;
    filterl->cleanup();
    filterr->cleanup();
};
Example #4
0
void
RyanWah::changepar (int npar, int value)
{
    switch (npar) {
    case 0:
        setvolume (value);
        break;
    case 1:
        Pq = value;
        q = (float) Pq;
        break;
    case 2:
        lfo.Pfreq = value;
        lfo.updateparams ();
        break;
    case 3:
        lfo.Prandomness = 0;//value;
        lfo.updateparams ();
        break;
    case 4:
        lfo.PLFOtype = value;
        lfo.updateparams ();
        break;
    case 5:
        lfo.Pstereo = value;
        lfo.updateparams ();
        break;
    case 6:
        setwidth (value);
        break;
    case 7:
        setampsns (value);
        break;
    case 8:
        Pampsnsinv = value;
        setampsns (Pampsns);
        break;
    case 9:
        Pampsmooth = value;
        setampsns (Pampsns);
        break;
    case 10:
        Plp = value;
        lpmix = ((float) Plp)/32.0f;
        reinitfilter ();
        break;
    case 11:
        Pbp = value;
        bpmix = ((float) Pbp)/32.0f;
        reinitfilter ();
        break;
    case 12:
        Php = value;
        hpmix = ((float) Php)/32.0f;
        reinitfilter ();
        break;
    case 13:
        Pstages = (value - 1);
        filterl->setstages(Pstages);
        filterr->setstages(Pstages);
        cleanup();
        break;
    case 14:
        Prange = value;
        if(Pamode) maxfreq = ((float) Prange)/(fSAMPLE_RATE/6.0f);
        else maxfreq = ((float) Prange);
        break;
    case 15:
        Pminfreq = value;
        if (Pamode)  minfreq = ((float) Pminfreq)/(fSAMPLE_RATE/6.0f);
        else minfreq = (float) value;
        break;
    case 16:
        variq = value;
        break;
    case 17:
        Pmode=value;
        if((Pmode==1) || (Pmode==3)) Pqm = 1;
        else Pqm = 0;
        filterl->setmode(Pqm);
        filterr->setmode(Pqm);

        if((Pmode==2) || (Pmode==3)) Pamode = 1;
        else Pamode = 0;
        if(Pamode) {
            minfreq = ((float) Pminfreq)/(fSAMPLE_RATE/6.0f);
            maxfreq = ((float) Prange)/(fSAMPLE_RATE/6.0f);
        } else {
            minfreq = (float) Pminfreq;
            maxfreq = (float) Prange;
        }

        break;
    case 18:
        Ppreset = value;
        break;

    };
};
Example #5
0
void DynamicFilter::setpreset(unsigned char npreset)
{
    const int     PRESET_SIZE = 10;
    const int     NUM_PRESETS = 5;
    unsigned char presets[NUM_PRESETS][PRESET_SIZE] = {
        //WahWah
        {110, 64, 80, 0, 0, 64, 0,  90,  0,  60},
        //AutoWah
        {110, 64, 70, 0, 0, 80, 70, 0,   0,  60},
        //Sweep
        {100, 64, 30, 0, 0, 50, 80, 0,   0,  60},
        //VocalMorph1
        {110, 64, 80, 0, 0, 64, 0,  64,  0,  60},
        //VocalMorph1
        {127, 64, 50, 0, 0, 96, 64, 0,   0,  60}
    };

    if(npreset >= NUM_PRESETS)
        npreset = NUM_PRESETS - 1;
    for(int n = 0; n < PRESET_SIZE; n++)
        changepar(n, presets[npreset][n]);

    filterpars->defaults();
    switch(npreset) {
    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;
    }

//	    for (int i=0;i<5;i++){
//		printf("freq=%d  amp=%d  q=%d\n",filterpars->Pvowels[0].formants[i].freq,filterpars->Pvowels[0].formants[i].amp,filterpars->Pvowels[0].formants[i].q);
//	    };
    if(insertion == 0)
        changepar(0, presets[npreset][0] / 2);           //lower the volume if this is system effect
    Ppreset = npreset;

    reinitfilter();
}
Example #6
0
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 ();
     }
    };
};
Example #7
0
void DynamicFilter::setpreset(unsigned char npreset)
{


if (npreset < 0xf)
    {
        if (npreset >= NUM_PRESETS)
            npreset = NUM_PRESETS - 1;
        for (int n = 0; n < PRESET_SIZE; ++n)
            changepar(n, presets[npreset][n]);

        filterpars->defaults();

        switch (npreset)
        {
            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;
        }

        if (insertion == 0)
            changepar(0, presets[npreset][0] * 0.5f); // lower the volume if this is
                                                  // system effect
        Ppreset = npreset;
        reinitfilter();
    }
    else
    {
        unsigned char preset = npreset & 0xf;
        unsigned char param = npreset >> 4;
        if (param == 0xf)
            param = 0;
        changepar(param, presets[preset][param]);
        if ((insertion == 0) && (param == 0))
            changepar(0, presets[preset][0] * 0.5f);
    }
}
Example #8
0
// Cleanup the effect
void DynamicFilter::cleanup(void)
{
    reinitfilter();
    ms1 = ms2 = ms3 = ms4 = 0.0f;
}