// static EffectManifestPointer FilterEffect::getManifest() { EffectManifestPointer pManifest(new EffectManifest()); pManifest->setId(getId()); pManifest->setName(QObject::tr("Filter")); pManifest->setShortName(QObject::tr("Filter")); pManifest->setAuthor("The Mixxx Team"); pManifest->setVersion("1.0"); pManifest->setDescription(QObject::tr( "Allows only high or low frequencies to play.")); pManifest->setEffectRampsFromDry(true); EffectManifestParameterPointer lpf = pManifest->addParameter(); lpf->setId("lpf"); lpf->setName(QObject::tr("Low Pass Filter Cutoff")); lpf->setShortName(QObject::tr("LPF")); lpf->setDescription(QObject::tr( "Corner frequency ratio of the low pass filter")); lpf->setControlHint(EffectManifestParameter::ControlHint::KNOB_LOGARITHMIC); lpf->setSemanticHint(EffectManifestParameter::SemanticHint::UNKNOWN); lpf->setUnitsHint(EffectManifestParameter::UnitsHint::HERTZ); lpf->setDefaultLinkType(EffectManifestParameter::LinkType::LINKED_LEFT); lpf->setNeutralPointOnScale(1); lpf->setDefault(kMaxCorner); lpf->setMinimum(kMinCorner); lpf->setMaximum(kMaxCorner); EffectManifestParameterPointer q = pManifest->addParameter(); q->setId("q"); q->setName(QObject::tr("Resonance")); q->setShortName(QObject::tr("Q")); q->setDescription(QObject::tr( "Resonance of the filters\n" "Default: flat top")); // What does this mean? q->setControlHint(EffectManifestParameter::ControlHint::KNOB_LOGARITHMIC); q->setSemanticHint(EffectManifestParameter::SemanticHint::UNKNOWN); q->setUnitsHint(EffectManifestParameter::UnitsHint::SAMPLERATE); q->setDefault(0.707106781); // 0.707106781 = Butterworth q->setMinimum(0.4); q->setMaximum(4.0); EffectManifestParameterPointer hpf = pManifest->addParameter(); hpf->setId("hpf"); hpf->setName(QObject::tr("High Pass Filter Cutoff")); hpf->setShortName(QObject::tr("HPF")); hpf->setDescription(QObject::tr( "Corner frequency ratio of the high pass filter")); hpf->setControlHint(EffectManifestParameter::ControlHint::KNOB_LOGARITHMIC); hpf->setSemanticHint(EffectManifestParameter::SemanticHint::UNKNOWN); hpf->setUnitsHint(EffectManifestParameter::UnitsHint::HERTZ); hpf->setDefaultLinkType(EffectManifestParameter::LinkType::LINKED_RIGHT); hpf->setNeutralPointOnScale(0.0); hpf->setDefault(kMinCorner); hpf->setMinimum(kMinCorner); hpf->setMaximum(kMaxCorner); return pManifest; }
// static EffectManifestPointer MoogLadder4FilterEffect::getManifest() { EffectManifestPointer pManifest(new EffectManifest()); pManifest->setId(getId()); pManifest->setName(QObject::tr("Moog Ladder 4 Filter")); pManifest->setShortName(QObject::tr("Moog Filter")); pManifest->setAuthor("The Mixxx Team"); pManifest->setVersion("1.0"); pManifest->setDescription(QObject::tr( "A 4-pole Moog ladder filter, based on Antti Houvilainen's non linear digital implementation")); pManifest->setEffectRampsFromDry(true); EffectManifestParameterPointer lpf = pManifest->addParameter(); lpf->setId("lpf"); lpf->setName(QObject::tr("LPF")); lpf->setDescription(QObject::tr("Corner frequency ratio of the low pass filter")); lpf->setControlHint(EffectManifestParameter::ControlHint::KNOB_LOGARITHMIC); lpf->setSemanticHint(EffectManifestParameter::SemanticHint::UNKNOWN); lpf->setUnitsHint(EffectManifestParameter::UnitsHint::UNKNOWN); lpf->setDefaultLinkType(EffectManifestParameter::LinkType::LINKED_LEFT); lpf->setNeutralPointOnScale(1); lpf->setDefault(kMaxCorner); lpf->setMinimum(kMinCorner); lpf->setMaximum(kMaxCorner); EffectManifestParameterPointer q = pManifest->addParameter(); q->setId("resonance"); q->setName(QObject::tr("Resonance")); q->setShortName(QObject::tr("Res")); q->setDescription(QObject::tr("Resonance of the filters. 4 = self oscillating")); q->setControlHint(EffectManifestParameter::ControlHint::KNOB_LOGARITHMIC); q->setSemanticHint(EffectManifestParameter::SemanticHint::UNKNOWN); q->setUnitsHint(EffectManifestParameter::UnitsHint::SAMPLERATE); q->setMinimum(0.0); q->setMaximum(4.0); q->setDefault(1.0); EffectManifestParameterPointer hpf = pManifest->addParameter(); hpf->setId("hpf"); hpf->setName(QObject::tr("HPF")); hpf->setDescription(QObject::tr("Corner frequency ratio of the high pass filter")); hpf->setControlHint(EffectManifestParameter::ControlHint::KNOB_LOGARITHMIC); hpf->setSemanticHint(EffectManifestParameter::SemanticHint::UNKNOWN); hpf->setUnitsHint(EffectManifestParameter::UnitsHint::UNKNOWN); hpf->setDefaultLinkType(EffectManifestParameter::LinkType::LINKED_RIGHT); hpf->setNeutralPointOnScale(0.0); hpf->setDefault(kMinCorner); hpf->setMinimum(kMinCorner); hpf->setMaximum(kMaxCorner); return pManifest; }
// static EffectManifestPointer BitCrusherEffect::getManifest() { EffectManifestPointer pManifest(new EffectManifest()); pManifest->setId(getId()); pManifest->setName(QObject::tr("Bitcrusher")); pManifest->setShortName(QObject::tr("Bitcrusher")); pManifest->setAuthor("The Mixxx Team"); pManifest->setVersion("1.0"); pManifest->setDescription(QObject::tr( "Adds noise by the reducing the bit depth and sample rate")); pManifest->setEffectRampsFromDry(true); pManifest->setMetaknobDefault(0.0); EffectManifestParameterPointer depth = pManifest->addParameter(); depth->setId("bit_depth"); depth->setName(QObject::tr("Bit Depth")); depth->setShortName(QObject::tr("Bit Depth")); depth->setDescription(QObject::tr( "The bit depth of the samples")); depth->setControlHint(EffectManifestParameter::ControlHint::KNOB_LOGARITHMIC); depth->setSemanticHint(EffectManifestParameter::SemanticHint::UNKNOWN); depth->setUnitsHint(EffectManifestParameter::UnitsHint::UNKNOWN); depth->setDefaultLinkType(EffectManifestParameter::LinkType::LINKED); depth->setDefaultLinkInversion(EffectManifestParameter::LinkInversion::INVERTED); depth->setNeutralPointOnScale(1.0); depth->setDefault(16); // for values -1 0 +1 // we do not allow a 1 bit version because this causes a distortion because of the missing sign bit depth->setMinimum(2); depth->setMaximum(16); EffectManifestParameterPointer frequency = pManifest->addParameter(); frequency->setId("downsample"); frequency->setName(QObject::tr("Downsampling")); frequency->setShortName(QObject::tr("Down")); frequency->setDescription(QObject::tr( "The sample rate to which the signal is downsampled")); frequency->setControlHint(EffectManifestParameter::ControlHint::KNOB_LOGARITHMIC); frequency->setSemanticHint(EffectManifestParameter::SemanticHint::UNKNOWN); frequency->setUnitsHint(EffectManifestParameter::UnitsHint::SAMPLERATE); frequency->setDefaultLinkType(EffectManifestParameter::LinkType::LINKED); frequency->setDefaultLinkInversion(EffectManifestParameter::LinkInversion::INVERTED); frequency->setNeutralPointOnScale(1.0); frequency->setDefault(1.0); frequency->setMinimum(0.02); frequency->setMaximum(1.0); return pManifest; }
// static EffectManifestPointer GraphicEQEffect::getManifest() { EffectManifestPointer pManifest(new EffectManifest()); pManifest->setId(getId()); pManifest->setName(QObject::tr("Graphic Equalizer")); pManifest->setShortName(QObject::tr("Graphic EQ")); pManifest->setAuthor("The Mixxx Team"); pManifest->setVersion("1.0"); pManifest->setDescription(QObject::tr( "An 8-band graphic equalizer based on biquad filters")); pManifest->setEffectRampsFromDry(true); pManifest->setIsMasterEQ(true); // Display rounded center frequencies for each filter float centerFrequencies[8] = {45, 100, 220, 500, 1100, 2500, 5500, 12000}; EffectManifestParameterPointer low = pManifest->addParameter(); low->setId(QString("low")); low->setName(QString("%1 Hz").arg(centerFrequencies[0])); low->setShortName(QString("%1 Hz").arg(centerFrequencies[0])); low->setDescription(QObject::tr( "Gain for Low Filter")); low->setControlHint(EffectManifestParameter::ControlHint::KNOB_LINEAR); low->setSemanticHint(EffectManifestParameter::SemanticHint::UNKNOWN); low->setUnitsHint(EffectManifestParameter::UnitsHint::UNKNOWN); low->setNeutralPointOnScale(0.5); low->setDefault(0); low->setMinimum(-12); low->setMaximum(12); QString paramName; for (int i = 0; i < 6; i++) { if (centerFrequencies[i + 1] < 1000) { paramName = QString("%1 Hz").arg(centerFrequencies[i + 1]); } else { paramName = QString("%1 kHz").arg(centerFrequencies[i + 1] / 1000); } EffectManifestParameterPointer mid = pManifest->addParameter(); mid->setId(QString("mid%1").arg(i)); mid->setName(paramName); mid->setShortName(paramName); mid->setDescription(QObject::tr( "Gain for Band Filter %1").arg(i + 1)); mid->setControlHint(EffectManifestParameter::ControlHint::KNOB_LINEAR); mid->setSemanticHint(EffectManifestParameter::SemanticHint::UNKNOWN); mid->setUnitsHint(EffectManifestParameter::UnitsHint::UNKNOWN); mid->setNeutralPointOnScale(0.5); mid->setDefault(0); mid->setMinimum(-12); mid->setMaximum(12); } EffectManifestParameterPointer high = pManifest->addParameter(); high->setId(QString("high")); high->setName(QString("%1 kHz").arg(centerFrequencies[7] / 1000)); high->setDescription(QObject::tr( "Gain for High Filter")); high->setControlHint(EffectManifestParameter::ControlHint::KNOB_LINEAR); high->setSemanticHint(EffectManifestParameter::SemanticHint::UNKNOWN); high->setUnitsHint(EffectManifestParameter::UnitsHint::UNKNOWN); high->setDefault(0); high->setMinimum(-12); high->setMaximum(12); return pManifest; }