// 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 AutoPanEffect::getManifest() { EffectManifestPointer pManifest(new EffectManifest()); pManifest->setId(getId()); pManifest->setName(QObject::tr("Autopan")); pManifest->setShortName(QObject::tr("Autopan")); pManifest->setAuthor("The Mixxx Team"); pManifest->setVersion("1.0"); pManifest->setDescription(QObject::tr( "Bounce the sound left and right across the stereo field")); // Period EffectManifestParameterPointer period = pManifest->addParameter(); period->setId("period"); period->setName(QObject::tr("Period")); period->setShortName(QObject::tr("Period")); period->setDescription(QObject::tr( "How fast the sound goes from one side to another\n" "1/4 - 4 beats rounded to 1/2 beat if tempo is detected\n" "1/4 - 4 seconds if no tempo is detected")); period->setControlHint(EffectManifestParameter::ControlHint::KNOB_LINEAR); period->setSemanticHint(EffectManifestParameter::SemanticHint::UNKNOWN); period->setUnitsHint(EffectManifestParameter::UnitsHint::UNKNOWN); period->setDefaultLinkType(EffectManifestParameter::LinkType::LINKED); period->setDefaultLinkInversion(EffectManifestParameter::LinkInversion::INVERTED); period->setMinimum(0.0); period->setMaximum(4.0); period->setDefault(2.0); EffectManifestParameterPointer smoothing = pManifest->addParameter(); smoothing->setId("smoothing"); smoothing->setName(QObject::tr("Smoothing")); smoothing->setShortName(QObject::tr("Smooth")); smoothing->setDescription(QObject::tr( "How smoothly the signal goes from one side to the other")); smoothing->setControlHint(EffectManifestParameter::ControlHint::KNOB_LOGARITHMIC); smoothing->setSemanticHint(EffectManifestParameter::SemanticHint::UNKNOWN); smoothing->setUnitsHint(EffectManifestParameter::UnitsHint::UNKNOWN); smoothing->setDefaultLinkType(EffectManifestParameter::LinkType::LINKED); smoothing->setMinimum(0.25); smoothing->setMaximum(0.50); // there are two steps per period so max is half smoothing->setDefault(0.50); // TODO(Ferran Pujol): when KnobComposedMaskedRing branch is merged to master, // make the scaleStartParameter for this be 1. // Width : applied on the channel with gain reducing. EffectManifestParameterPointer width = pManifest->addParameter(); width->setId("width"); width->setName(QObject::tr("Width")); width->setShortName(QObject::tr("Width")); width->setDescription(QObject::tr( "How far the signal goes to each side")); width->setControlHint(EffectManifestParameter::ControlHint::KNOB_LINEAR); width->setSemanticHint(EffectManifestParameter::SemanticHint::UNKNOWN); width->setUnitsHint(EffectManifestParameter::UnitsHint::UNKNOWN); width->setDefaultLinkType(EffectManifestParameter::LinkType::LINKED); width->setMinimum(0.0); width->setMaximum(1.0); // 0.02 * sampleRate => 20ms width->setDefault(0.5); return pManifest; }