// static EffectManifest AutoPanEffect::getManifest() { EffectManifest manifest; manifest.setId(getId()); manifest.setName(QObject::tr("AutoPan")); manifest.setAuthor("The Mixxx Team"); manifest.setVersion("1.0"); manifest.setDescription(QObject::tr("Bounce the sound from a channel " "to another, roughly or softly, fully or partially, fastly or slowly. " "A delay, inversed on each side, is added to increase the " "spatial move and the period can be synced with the BPM.")); // Period EffectManifestParameter* period = manifest.addParameter(); period->setId("period"); period->setName(QObject::tr("Period")); period->setDescription(QObject::tr("How fast the sound goes from a side to another\n" "1/4 - 4 beats rounded to 1/2 beat if tempo is detected (decks and samplers)\n" "1/4 - 4 seconds if tempo is detected (mic & aux inputs, master mix)")); 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); EffectManifestParameter* smoothing = manifest.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. EffectManifestParameter* width = manifest.addParameter(); width->setId("width"); width->setName(QObject::tr("Width")); width->setDescription("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 manifest; }
// static EffectManifest BitCrusherEffect::getManifest() { EffectManifest manifest; manifest.setId(getId()); manifest.setName(QObject::tr("BitCrusher")); manifest.setAuthor("The Mixxx Team"); manifest.setVersion("1.0"); manifest.setDescription(QObject::tr( "The BitCrusher is an effect that adds quantisation noise to the signal " "by the reduction of the resolution or bandwidth of the samples.")); manifest.setEffectRampsFromDry(true); EffectManifestParameter* depth = manifest.addParameter(); depth->setId("bit_depth"); depth->setName(QObject::tr("Bit Depth")); depth->setDescription(QObject::tr("Adjusts 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); EffectManifestParameter* frequency = manifest.addParameter(); frequency->setId("downsample"); frequency->setName(QObject::tr("Downsampling")); frequency->setShortName(QObject::tr("Down")); frequency->setDescription(QObject::tr("Adjusts 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 manifest; }
// static EffectManifest AutoPanEffect::getManifest() { EffectManifest manifest; manifest.setId(getId()); manifest.setName(QObject::tr("AutoPan")); manifest.setAuthor("The Mixxx Team"); manifest.setVersion("1.0"); manifest.setDescription(QObject::tr("Bounce the sound from a channel " "to another, roughly or softly, fully or partially, fastly or slowly. " "A delay, inversed on each side, is added to increase the " "spatial move and the period can be synced with the BPM.")); // Width : applied on the channel with gain reducing. EffectManifestParameter* width = manifest.addParameter(); width->setId("width"); width->setName(QObject::tr("Width")); width->setDescription("How far the signal goes on the left or on the right"); width->setControlHint(EffectManifestParameter::CONTROL_KNOB_LINEAR); width->setSemanticHint(EffectManifestParameter::SEMANTIC_UNKNOWN); width->setUnitsHint(EffectManifestParameter::UNITS_UNKNOWN); width->setDefaultLinkType(EffectManifestParameter::LINK_LINKED); width->setMinimum(0.0); width->setMaximum(1.0); // 0.02 * sampleRate => 20ms width->setDefault(0.5); // Period unit EffectManifestParameter* periodUnit = manifest.addParameter(); periodUnit->setId("periodUnit"); periodUnit->setName(QObject::tr("Sync")); periodUnit->setDescription(QObject::tr("Synchronizes the period with the BPM if it can be retrieved")); periodUnit->setControlHint(EffectManifestParameter::CONTROL_TOGGLE_STEPPING); periodUnit->setSemanticHint(EffectManifestParameter::SEMANTIC_UNKNOWN); periodUnit->setUnitsHint(EffectManifestParameter::UNITS_UNKNOWN); periodUnit->setDefault(1); periodUnit->setMinimum(0); periodUnit->setMaximum(1); // Period // The maximum is at 128 + 1 allowing 128 as max value and // enabling us to pause time when the parameter is above EffectManifestParameter* period = manifest.addParameter(); period->setId("period"); period->setName(QObject::tr("Period")); period->setDescription(QObject::tr("How fast the sound goes from a side to another," " following a logarithmic scale")); period->setControlHint(EffectManifestParameter::CONTROL_KNOB_LOGARITHMIC); period->setSemanticHint(EffectManifestParameter::SEMANTIC_UNKNOWN); period->setUnitsHint(EffectManifestParameter::UNITS_UNKNOWN); period->setDefaultLinkType(EffectManifestParameter::LINK_LINKED); period->setDefaultLinkInversion(EffectManifestParameter::LinkInversion::INVERTED); period->setMinimum(0.0625); // 1 / 16 period->setMaximum(129.0); // 128 + 1 period->setDefault(3.0); // This parameter controls the easing of the sound from a side to another. EffectManifestParameter* smoothing = manifest.addParameter(); smoothing->setId("smoothing"); smoothing->setName(QObject::tr("Smoothing")); smoothing->setShortName(QObject::tr("Smooth")); smoothing->setDescription( QObject::tr("How fast the signal goes from a channel to an other")); smoothing->setControlHint(EffectManifestParameter::CONTROL_KNOB_LOGARITHMIC); smoothing->setSemanticHint(EffectManifestParameter::SEMANTIC_UNKNOWN); smoothing->setUnitsHint(EffectManifestParameter::UNITS_UNKNOWN); smoothing->setMinimum(0.0); smoothing->setMaximum(0.5); // there are two steps per period so max is half smoothing->setDefault(0.25); // TODO(Ferran Pujol): when KnobComposedMaskedRing branch is merged to master, // make the scaleStartParameter for this be 1. return manifest; }