Beispiel #1
0
 int InternalRegisterEffectDefinition(UnityAudioEffectDefinition& definition) {
     int numparams = P_NUM;
     definition.paramdefs = new UnityAudioParameterDefinition[numparams];
     RegisterParameter(definition, "Alternative Sound", "", 0.0f, 1.0f, 1.0f, 1.0f, 1.0f, P_SOUND2, "Alternative Sound");
     RegisterParameter(definition, "Occlusion", "", 0.0f, 1.0f, 0.0f, 1.0f, 1.0f, P_OCCLUSION, "Occlusion");
     definition.flags |= UnityAudioEffectDefinitionFlags_IsSpatializer;
     return numparams;
 }
		template<> void ModuleClassTemplate<InterSYNTHESEModule>::PreInit()
		{
			RegisterParameter(InterSYNTHESEModule::MODULE_PARAM_INTER_SYNTHESE_MASTER_HOST, string(), &InterSYNTHESEModule::ParameterCallback);
			RegisterParameter(InterSYNTHESEModule::MODULE_PARAM_INTER_SYNTHESE_MASTER_PORT, "8080", &InterSYNTHESEModule::ParameterCallback);
			RegisterParameter(InterSYNTHESEModule::MODULE_PARAM_INTER_SYNTHESE_SLAVE_ACTIVE, "0", &InterSYNTHESEModule::ParameterCallback);
			RegisterParameter(InterSYNTHESEModule::MODULE_PARAM_INTER_SYNTHESE_SLAVE_ID, "0", &InterSYNTHESEModule::ParameterCallback);
			RegisterParameter(InterSYNTHESEModule::MODULE_PARAM_INTER_SYNTHESE_WAITING_TIME, "5", &InterSYNTHESEModule::ParameterCallback);
		}
 int InternalRegisterEffectDefinition(UnityAudioEffectDefinition& definition)
 {
     int numparams = P_NUM;
     definition.paramdefs = new UnityAudioParameterDefinition[numparams];
     RegisterParameter(definition, "Window", "s", 0.1f, kMaxWindowLength, 1.0f, 1.0f, 1.0f, P_Window, "Length of analysis window");
     RegisterParameter(definition, "YOffset", "dB", -200.0f, 200.0f, 0.0f, 1.0f, 1.0f, P_YOffset, "Zoom offset on y-axis around which the loudness graphs will be plotted");
     RegisterParameter(definition, "YScale", "%", 0.001f, 10.0f, 1.0f, 100.0f, 1.0f, P_YScale, "Zoom factor for loudness graph");
     return numparams;
 }
 int InternalRegisterEffectDefinition(UnityAudioEffectDefinition& definition)
 {
     int numparams = P_NUM;
     definition.paramdefs = new UnityAudioParameterDefinition[numparams];
     RegisterParameter(definition, "Base Period", "ms", 0.0f, 5000.0f, 200.0f, 1.0f, 3.0f, P_BASEPERIOD, "Base time between impulses");
     RegisterParameter(definition, "Random Period", "ms", 0.0f, 5000.0f, 100.0f, 1.0f, 3.0f, P_RANDOMPERIOD, "Random time between impulses");
     RegisterParameter(definition, "Base Amp", "", 0.0f, 1.0f, 0.5f, 1.0f, 1.0f, P_BASEAMP, "Base amplitude of impulses");
     RegisterParameter(definition, "Random Amp", "", 0.0f, 1.0f, 0.5f, 1.0f, 3.0f, P_RANDOMAMP, "Random amplitude of impulses");
     RegisterParameter(definition, "Base Decay", "ms", 0.0f, 10000.0f, 10.0f, 1.0f, 3.0f, P_BASEDECAY, "Decay time of impulses");
     RegisterParameter(definition, "Random Decay", "ms", 0.0f, 10000.0f, 0.0f, 1.0f, 3.0f, P_RANDOMDECAY, "Decay time of impulses");
     RegisterParameter(definition, "Noise Level", "", 0.0f, 50.0f, 0.0f, 1.0f, 3.0f, P_NOISEADD, "Level of additive white noise");
     RegisterParameter(definition, "Noise Mix", "", 0.0f, 1.0f, 0.0f, 1.0f, 3.0f, P_NOISEMIX, "Level of white noise multiplied by impulse");
     return numparams;
 }
 int InternalRegisterEffectDefinition(UnityAudioEffectDefinition& definition)
 {
     int numparams = P_NUM;
     definition.paramdefs = new UnityAudioParameterDefinition[numparams];
     RegisterParameter(definition, "Gain1", "dB", -120.0f, 50.0f, 0.0f, 1.0f, 1.0f, P_GAIN1, "Gain of input channel 1 (left or mono)");
     RegisterParameter(definition, "Gain2", "dB", -120.0f, 50.0f, 0.0f, 1.0f, 1.0f, P_GAIN2, "Gain of input channel 2 (right)");
     RegisterParameter(definition, "Gain3", "dB", -120.0f, 50.0f, 0.0f, 1.0f, 1.0f, P_GAIN3, "Gain of input channel 3");
     RegisterParameter(definition, "Gain4", "dB", -120.0f, 50.0f, 0.0f, 1.0f, 1.0f, P_GAIN4, "Gain of input channel 4");
     RegisterParameter(definition, "Gain5", "dB", -120.0f, 50.0f, 0.0f, 1.0f, 1.0f, P_GAIN5, "Gain of input channel 5");
     RegisterParameter(definition, "Gain6", "dB", -120.0f, 50.0f, 0.0f, 1.0f, 1.0f, P_GAIN6, "Gain of input channel 6");
     RegisterParameter(definition, "Gain7", "dB", -120.0f, 50.0f, 0.0f, 1.0f, 1.0f, P_GAIN7, "Gain of input channel 7");
     RegisterParameter(definition, "Gain8", "dB", -120.0f, 50.0f, 0.0f, 1.0f, 1.0f, P_GAIN8, "Gain of input channel 8");
     return numparams;
 }
Beispiel #6
0
 int InternalRegisterEffectDefinition(UnityAudioEffectDefinition& definition)
 {
     int numparams = P_NUM;
     definition.paramdefs = new UnityAudioParameterDefinition[numparams];
     RegisterParameter(definition, "Attack Time", "s", 0.001f, 2.0f, 0.1f, 1.0f, 3.0f, P_ATK, "Attack time");
     RegisterParameter(definition, "Release Time", "s", 0.001f, 2.0f, 0.5f, 1.0f, 3.0f, P_REL, "Release time");
     RegisterParameter(definition, "Base Level", "%", 0.0f, 1.0f, 0.1f, 100.0f, 1.0f, P_BASE, "Base filter level");
     RegisterParameter(definition, "Sensitivity", "%", -1.0f, 1.0f, 0.1f, 100.0f, 1.0f, P_SENS, "Filter sensitivity");
     RegisterParameter(definition, "Resonance", "%", 0.0f, 1.0f, 0.1f, 100.0f, 1.0f, P_RESO, "Filter resonance");
     RegisterParameter(definition, "Type", "", 0.0f, 1.0f, 0.0f, 1.0f, 1.0f, P_TYPE, "Filter type (0 = lowpass, 1 = bandpass)");
     RegisterParameter(definition, "Depth", "", 0.0f, 1.0f, 0.0f, 1.0f, 1.0f, P_DEPTH, "Filter depth (0 = 12 dB, 1 = 24 dB)");
     RegisterParameter(definition, "Sidechain Mix", "%", 0.0f, 1.0f, 0.0f, 100.0f, 1.0f, P_SIDECHAIN, "Sidechain mix (0 = use input, 1 = use sidechain)");
     definition.flags |= UnityAudioEffectDefinitionFlags_IsSideChainTarget;
     return numparams;
 }
Beispiel #7
0
 int InternalRegisterEffectDefinition(UnityAudioEffectDefinition& definition)
 {
     int numparams = P_NUM;
     definition.paramdefs = new UnityAudioParameterDefinition[numparams];
     RegisterParameter(definition, "Gain", "dB", -100.0f, 20.0f, -30.0f, 1.0f, 1.0f, P_GAIN, "Overall gain.");
     RegisterParameter(definition, "Formant Shift", "Hz", -1500.0f, 1500.0f, 0.0f, 1.0f, 3.0f, P_FMTSHIFT, "Relative shifting of filterbank center frequencies.");
     RegisterParameter(definition, "Formant Scale", "x", 0.05f, 10.0f, 1.0f, 1.0f, 3.0f, P_FMTSCALE, "Scaling of filterbank center frequencies.");
     RegisterParameter(definition, "Analysis BW", "%", 0.001f, 1.0f, 0.1f, 100.0f, 1.0f, P_ANALYSISBW, "Analysis filterbank bandwidth.");
     RegisterParameter(definition, "Synthesis BW", "%", 0.001f, 1.0f, 0.1f, 100.0f, 1.0f, P_SYNTHESISBW, "Synthesis filterbank bandwidth.");
     RegisterParameter(definition, "Envelope Decay", "s", 0.001f, 0.4f, 0.01f, 1.0f, 1.0f, P_ENVDECAY, "Envelope follower decay time. Inversely proportional to the speed at which changes are detected.");
     RegisterParameter(definition, "Emphasis", "%", 0.5f, 1.5f, 1.2f, 100.0f, 1.0f, P_EMPHASIS, "Emphasis amount. Can be used to tilt the filter bank to improve intelligibility of consonants.");
     definition.flags |= UnityAudioEffectDefinitionFlags_IsSideChainTarget;
     return numparams;
 }
Beispiel #8
0
		template<> void ModuleClassTemplate<AlgorithmModule>::PreInit()
		{
			RegisterParameter(AlgorithmModule::MODULE_PARAM_USE_ASTAR_FOR_PHYSICAL_STOPS_EXTENDER, "0", &AlgorithmModule::ParameterCallback);
		}
//============================================================
TResult FColorAutomaticEffect::BindDescriptors(){
   TResult resultCd = FAutomaticEffect::BindDescriptors();
   // 变换参数
   RegisterParameter("VertexInstance",                       EEffectParameter_VertexInstance);
   RegisterParameter("VertexModelMatrix",                    EEffectParameter_VertexModelMatrix);
   RegisterParameter("VertexViewMatrix",                     EEffectParameter_VertexViewMatrix);
   RegisterParameter("VertexProjectionMatrix",               EEffectParameter_VertexProjectionMatrix);
   RegisterParameter("VertexViewProjectionMatrix",           EEffectParameter_VertexViewProjectionMatrix);
   RegisterParameter("VertexModelViewProjectionMatrix",      EEffectParameter_VertexModelViewProjectionMatrix);
   RegisterParameter("VertexBoneMatrix",                     EEffectParameter_VertexBoneMatrix);
   // 相机参数
   RegisterParameter("VertexCameraPosition",                 EEffectParameter_VertexCameraPosition);
   //RegisterParameter("VertexCameraDirection",                EEffectParameter_VertexCameraDirection);
   // 光源参数
   //RegisterParameter("VertexLightModelMatrix4x4",               EEffectParameter_VertexLightModelMatrix4x4);
   //RegisterParameter("VertexLightModelViewMatrix4x4",           EEffectParameter_VertexLightModelViewMatrix4x4);
   //RegisterParameter("VertexLightModelViewProjectionMatrix4x4", EEffectParameter_VertexLightModelViewProjectionMatrix4x4);
   //RegisterParameter("VertexLightPosition",                     EEffectParameter_VertexLightPosition);
   RegisterParameter("VertexLightDirection"              ,      EEffectParameter_VertexLightDirection);
   //............................................................
   //// 相机参数
   //RegisterParameter("FragmentCamera",                             EEffectParameter_FragmentCamera);
   RegisterParameter("FragmentCameraPosition",    EEffectParameter_FragmentCameraPosition);
   //RegisterParameter("FragmentCameraDirection",                    EEffectParameter_FragmentCameraDirection);
   //// 光源参数
   //RegisterParameter("FragmentLightModelMatrix4x4",                EEffectParameter_FragmentLightModelMatrix4x4);
   //RegisterParameter("FragmentLightModelViewProjectrionMatrix4x4", EEffectParameter_FragmentLightModelViewProjectrionMatrix4x4);
   //RegisterParameter("FragmentLightPosition",                      EEffectParameter_FragmentLightPosition);
   RegisterParameter("FragmentLightDirection",    EEffectParameter_FragmentLightDirection);
   RegisterParameter("FragmentLightDepth",        EEffectParameter_FragmentLightDepth);
   // 材质参数
   RegisterParameter("FragmentColor",             EEffectParameter_FragmentColor);
   RegisterParameter("FragmentAlpha",             EEffectParameter_FragmentAlpha);
   RegisterParameter("FragmentAmbientColor",      EEffectParameter_FragmentAmbientColor);
   RegisterParameter("FragmentDiffuseColor",      EEffectParameter_FragmentDiffuseColor);
   RegisterParameter("FragmentDiffuseViewColor",  EEffectParameter_FragmentDiffuseViewColor);
   RegisterParameter("FragmentSpecularColor",     EEffectParameter_FragmentSpecularColor);
   RegisterParameter("FragmentSpecularRate",      EEffectParameter_FragmentSpecularRate);
   RegisterParameter("FragmentSpecularViewColor", EEffectParameter_FragmentSpecularViewColor);
   RegisterParameter("FragmentSpecularViewRate",  EEffectParameter_FragmentSpecularViewRate);
   RegisterParameter("FragmentReflectColor",      EEffectParameter_FragmentReflectColor);
   RegisterParameter("FragmentShadowMaterial",    EEffectParameter_FragmentShadowMaterial);
   RegisterParameter("FragmentShadowMaterialInv", EEffectParameter_FragmentShadowMaterialInv);
   return resultCd;
}
 int InternalRegisterEffectDefinition(UnityAudioEffectDefinition& definition)
 {
     int numparams = P_NUM;
     definition.paramdefs = new UnityAudioParameterDefinition[numparams];
     RegisterParameter(definition, "MasterGain", "dB", -100.0f, 100.0f, 0.0f, 1.0f, 1.0f, P_MasterGain, "Overall gain applied");
     RegisterParameter(definition, "LowGain", "dB", -100.0f, 100.0f, 0.0f, 1.0f, 1.0f, P_LowGain, "Gain applied to lower frequency band");
     RegisterParameter(definition, "MidGain", "dB", -100.0f, 100.0f, 0.0f, 1.0f, 1.0f, P_MidGain, "Gain applied to middle frequency band");
     RegisterParameter(definition, "HighGain", "dB", -100.0f, 100.0f, 0.0f, 1.0f, 1.0f, P_HighGain, "Gain applied to high frequency band");
     RegisterParameter(definition, "LowFreq", "Hz", 0.01f, 24000.0f, 800.0f, 1.0f, 3.0f, P_LowFreq, "Cutoff frequency of lower frequency band");
     RegisterParameter(definition, "MidFreq", "Hz", 0.01f, 24000.0f, 4000.0f, 1.0f, 3.0f, P_MidFreq, "Center frequency of middle frequency band");
     RegisterParameter(definition, "HighFreq", "Hz", 0.01f, 24000.0f, 8000.0f, 1.0f, 3.0f, P_HighFreq, "Cutoff frequency of high frequency band");
     RegisterParameter(definition, "LowQ", "", 0.01f, 10.0f, 0.707f, 1.0f, 3.0f, P_LowQ, "Q-factor of lower frequency band (inversely proportional to resonance)");
     RegisterParameter(definition, "MidQ", "", 0.01f, 10.0f, 0.707f, 1.0f, 3.0f, P_MidQ, "Q-factor of middle frequency band (inversely proportional to resonance)");
     RegisterParameter(definition, "HighQ", "", 0.01f, 10.0f, 0.707f, 1.0f, 3.0f, P_HighQ, "Q-factor of high frequency band (inversely proportional to resonance)");
     RegisterParameter(definition, "UseLogScale", "", 0.0f, 1.0f, 1.0f, 1.0f, 1.0f, P_UseLogScale, "Use logarithmic scale for plotting the filter curve frequency response and input/output spectra");
     RegisterParameter(definition, "ShowSpectrum", "", 0.0f, 1.0f, 0.0f, 1.0f, 1.0f, P_ShowSpectrum, "Overlay input spectrum (green) and output spectrum (red)");
     RegisterParameter(definition, "SpectrumDecay", "dB/s", -50.0f, 0.0f, -10.0f, 1.0f, 1.0f, P_SpectrumDecay, "Hold time for overlaid spectra");
     return numparams;
 }
  // This adds the parameter based on the alias given by switchString for the
  // parameter.
  std::pair< bool, size_t >
  SlhaCompatibleWithSarahManager::RegisterUnregisteredSpecialCase(
                                                std::string const& caseString )
  {
    if( ( caseString == "Bmu" )
        ||
        ( caseString == "DsbVd" )
        ||
        ( caseString == "DsbVu" ) )
    {
      // Assume that the special case is "Bmu" and then change if it is "DsbVd"
      // or "DsbVu".
      std::string sarahBlockEntry( "HMIX[ 101 ]" );
      if( caseString == "DsbVd" )
      {
        sarahBlockEntry = "HMIX[ 102 ]";
      }
      else if( caseString == "DsbVu" )
      {
        sarahBlockEntry = "HMIX[ 103 ]";
      }

      // Since what sarahBlockEntry contains is already an alias for caseString
      // (so as to have potential function files designed by SARAH work with
      // pure SLHA files, which may or may not be a good idea), we have to look
      // for the block entry functionoid directly, and create it if it doesn't
      // exist, rather than recursing through
      // LesHouchesAccordBlockEntryManager::RegisterParameter(sarahBlockEntry),
      // which will just come back here through
      // SlhaBlocksWithSpecialCasesManager::RegisterUnregisteredParameter
      // finding sarahBlockEntry as an alias for caseString, then calling the
      // derived override of RegisterUnregisteredSpecialCase, bringing us back
      // here.
      size_t const sarahIndex( RegisterBlockEntry( sarahBlockEntry ) );

      // Since the control flow got to here, the parameter to which caseString
      // refers is definitely not already registered, so it's not a problem to
      // directly register it here, yielding the pure SLHA special case.
      size_t const pureSlhaIndex(
            SlhaBlocksWithSpecialCasesManager::RegisterUnregisteredSpecialCase(
                                                         caseString ).second );

      // This will overwrite activeParametersToIndices[ caseString ] to map
      // caseString to numberOfDistinctActiveParameters as its index in the
      // values vector (corresponding now to the new SlhaTwoSourceFunctionoid),
      // rather than to the pure SLHA functionoid as was set by
      // RegisterParameter( caseString ) (or previous to that).
      return PairAddNewDerivedParameter( caseString,
                                         new LhaTwoSourceFunctionoid(
                                              numberOfDistinctActiveParameters,
                                                                    sarahIndex,
                                                             pureSlhaIndex ) );
    }
    else if( ( caseString == "muTree" )
             ||
             ( caseString == "muLoop" )
             ||
             ( caseString == "BmuTree" )
             ||
             ( caseString == "BmuLoop" )
             ||
             ( caseString == "mHdSqTree" )
             ||
             ( caseString == "mHdSqLoop" )
             ||
             ( caseString == "mHuSqTree" )
             ||
             ( caseString == "mHuSqLoop" ) )
    {
      std::string baseCase( caseString.substr( 0,
                                               caseString.size() - 4 ) );
      std::string const
      treeOrLoop( ( caseString[ caseString.size() - 1 ] == 'e' ) ?
                  "TREE" :
                  "LOOP" );
      std::string sarahBlockEntry( "error" );
      if( baseCase == "Bmu" )
      {
        sarahBlockEntry = FormatVariable( treeOrLoop + "HMIX[ 101 ]" );
      }
      else
      {
        if( baseCase == "mu" )
        {
          baseCase = "HMIX[ 1 ]";
        }
        else if( baseCase == "mHdSq" )
        {
          baseCase = "MSOFT[ 21 ]";
        }
        else if( baseCase == "mHuSq" )
        {
          baseCase = "MSOFT[ 22 ]";
        }
        sarahBlockEntry = FormatVariable( treeOrLoop + baseCase );
      }

      // Since what sarahBlockEntry contains might already be an alias for
      // caseString (so as to have potential function files designed by SARAH
      // work with pure SLHA files, which may or may not be a good idea), we
      // have to look for the block entry functionoid directly, and create it
      // if it doesn't exist, rather than recursing through
      // LesHouchesAccordBlockEntryManager::RegisterParameter(sarahBlockEntry),
      // which will just come back here through
      // SlhaBlocksWithSpecialCasesManager::RegisterUnregisteredParameter
      // finding sarahBlockEntry as an alias for caseString, then calling the
      // derived override of RegisterUnregisteredSpecialCase, bringing us back
      // here.
      size_t const sarahIndex( RegisterBlockEntry( sarahBlockEntry ) );
      size_t const pureSlhaIndex( RegisterParameter( baseCase ).second );

      // This will overwrite activeParametersToIndices[ caseString ] to map
      // caseString to numberOfDistinctActiveParameters as its index in the
      // values vector (corresponding now to the new SlhaTwoSourceFunctionoid),
      // rather than to the pure SLHA functionoid as was set by
      // RegisterParameter( caseString ) (or previous to that).
      return PairAddNewDerivedParameter( caseString,
                                         new LhaTwoSourceFunctionoid(
                                              numberOfDistinctActiveParameters,
                                                                    sarahIndex,
                                                             pureSlhaIndex ) );
    }
    else if( ( caseString == "muDelta" )
             ||
             ( caseString == "BmuDelta" )
             ||
             ( caseString == "mHdSqDelta" )
             ||
             ( caseString == "mHuSqDelta" ) )
    {
      std::string baseCase( caseString.substr( 0,
                                               caseString.size() - 5 ) );
      std::string deltaBlockEntry( "error" );
      if( baseCase == "Bmu" )
      {
        deltaBlockEntry = FormatVariable( "DELTAHMIX[ 101 ]" );
      }
      else if( baseCase == "mu" )
      {
        deltaBlockEntry = FormatVariable( "DELTAHMIX[ 1 ]" );
      }
      else if( baseCase == "mHdSq" )
      {
        deltaBlockEntry = FormatVariable( "DELTAMSOFT[ 21 ]" );
      }
      else if( baseCase == "mHuSq" )
      {
        deltaBlockEntry = FormatVariable( "DELTAMSOFT[ 22 ]" );
      }

      // Since what sarahBlockEntry contains might already be an alias for
      // caseString (so as to have potential function files designed by SARAH
      // work with pure SLHA files, which may or may not be a good idea), we
      // have to look for the block entry functionoid directly, and create it
      // if it doesn't exist, rather than recursing through
      // LesHouchesAccordBlockEntryManager::RegisterParameter(sarahBlockEntry),
      // which will just come back here through
      // SlhaBlocksWithSpecialCasesManager::RegisterUnregisteredParameter
      // finding sarahBlockEntry as an alias for caseString, then calling the
      // derived override of RegisterUnregisteredSpecialCase, bringing us back
      // here.
      size_t const deltaIndex( RegisterBlockEntry( deltaBlockEntry ) );
      size_t const
      treeIndex( RegisterParameter( ( baseCase + "Tree" ) ).second );
      size_t const
      loopIndex( RegisterParameter( ( baseCase + "Loop" ) ).second );
      size_t const differenceIndex( AddNewDerivedParameter( caseString,
                                                  new LhaDifferenceFunctionoid(
                                              numberOfDistinctActiveParameters,
                                                                     loopIndex,
                                                               treeIndex ) ) );

      // This will overwrite activeParametersToIndices[ caseString ] to map
      // caseString to numberOfDistinctActiveParameters as its index in the
      // values vector (corresponding now to the new SlhaTwoSourceFunctionoid),
      // rather than to the pure SLHA functionoid as was set by
      // RegisterParameter( caseString ) (or previous to that).
      return PairAddNewDerivedParameter( caseString,
                                         new LhaTwoSourceFunctionoid(
                                              numberOfDistinctActiveParameters,
                                                                    deltaIndex,
                                                           differenceIndex ) );
    }
    else
    {
      return
      SlhaBlocksWithSpecialCasesManager::RegisterUnregisteredSpecialCase(
                                                                  caseString );
    }
  }
 int InternalRegisterEffectDefinition(UnityAudioEffectDefinition& definition)
 {
     static const char* bandname[] = { "Low", "Mid", "High" };
     int numparams = P_NUM;
     definition.paramdefs = new UnityAudioParameterDefinition[numparams];
     RegisterParameter(definition, "MasterGain", "dB", -100.0f, 100.0f, 0.0f, 1.0f, 1.0f, P_MasterGain, "Overall gain");
     RegisterParameter(definition, "LowFreq", "Hz", 0.01f, 24000.0f, 800.0f, 1.0f, 3.0f, P_LowFreq, "Low/Mid cross-over frequency");
     RegisterParameter(definition, "HighFreq", "Hz", 0.01f, 24000.0f, 5000.0f, 1.0f, 3.0f, P_HighFreq, "Mid/High cross-over frequency");
     for (int i = 0; i < 3; i++)
         RegisterParameter(definition, tmpstr(0, "%sGain", bandname[i]), "dB", -100.0f, 100.0f, 0.0f, 1.0f, 1.0f, P_LowGain + i, tmpstr(1, "%s band gain in dB", bandname[i]));
     for (int i = 0; i < 3; i++)
         RegisterParameter(definition, tmpstr(0, "%sAttackTime", bandname[i]), "ms", 0.0f, 10.0f, 0.1f, 1000.0f, 4.0f, P_LowAttack + i, tmpstr(1, "%s band attack time in seconds", bandname[i]));
     for (int i = 0; i < 3; i++)
         RegisterParameter(definition, tmpstr(0, "%sReleaseTime", bandname[i]), "ms", 0.0f, 10.0f, 0.5f, 1000.0f, 4.0f, P_LowRelease + i, tmpstr(1, "%s band release time in seconds", bandname[i]));
     for (int i = 0; i < 3; i++)
         RegisterParameter(definition, tmpstr(0, "%sThreshold", bandname[i]), "dB", -50.0f, 0.0f, -10.0f, 1.0f, 1.0f, P_LowThreshold + i, tmpstr(1, "%s band compression level threshold time in dB", bandname[i]));
     for (int i = 0; i < 3; i++)
         RegisterParameter(definition, tmpstr(0, "%sRatio", bandname[i]), "%", 1.0f, 30.0f, 1.0f, 100.0f, 1.0f, P_LowRatio + i, tmpstr(1, "%s band compression ratio time in percent", bandname[i]));
     for (int i = 0; i < 3; i++)
         RegisterParameter(definition, tmpstr(0, "%sKnee", bandname[i]), "dB", 0.0f, 40.0f, 10.0f, 1.0f, 1.0f, P_LowKnee + i, tmpstr(1, "%s band compression curve knee range in dB", bandname[i]));
     RegisterParameter(definition, "FilterOrder", "", 1.0f, (float)MAXORDER, 1.0f, 1.0f, 1.0f, P_FilterOrder, "Filter order of cross-over filters");
     RegisterParameter(definition, "UseLogScale", "", 0.0f, 1.0f, 1.0f, 1.0f, 1.0f, P_UseLogScale, "Use logarithmic scale for plotting the filter curve frequency response and input/output spectra");
     RegisterParameter(definition, "ShowSpectrum", "", 0.0f, 1.0f, 0.0f, 1.0f, 1.0f, P_ShowSpectrum, "Overlay input spectrum (green) and output spectrum (red)");
     RegisterParameter(definition, "SpectrumDecay", "dB/s", -50.0f, 0.0f, -10.0f, 1.0f, 1.0f, P_SpectrumDecay, "Hold time for overlaid spectra");
     return numparams;
 }
void CDONames::Init()
{
	m_TypeNames.Add(DO_NONE, "Unknown");
	m_TypeNames.Add(DO_VORTEX,"Vortex");
	m_TypeNames.Add(DO_CHARACTERISTIC_LINE, "Characteristic curve");
	m_TypeNames.Add(DO_STREAMLINE,"Stream line");
	m_TypeNames.Add(DO_STREAKLINE, "Streak line");
	m_TypeNames.Add(DO_PATHLINE, "Path line");
	m_TypeNames.Add(DO_TIMELINE, "Time line");
	m_TypeNames.Add(DO_RECTANGLE, "Rectangle");
	m_TypeNames.Add(DO_TRIANGLE, "Triangle");
	m_TypeNames.Add(DO_ELLIPSE, "Ellipse");
	m_TypeNames.Add(DO_LINE, "Line");
	m_TypeNames.Add(DO_POINT, "Point");
	m_TypeNames.Add(DO_BSPLINE, "B-Spline");
	m_TypeNames.Add(DO_ARROW, "Arrow");
	m_TypeNames.Add(DO_POLYLINE, "Poly line");
	m_TypeNames.Add(DO_SPEEDLINE, "Speed line");

	RegisterParameter(DOP_TYPE,						_T("objectType"),				DOT_INTEGER);
	RegisterParameter(DOP_COLOR,					_T("color"),					DOT_COLOR);
	RegisterParameter(DOP_THICKNESS,				_T("thickness"),				DOT_FLOAT);
	RegisterParameter(DOP_ROTATION,					_T("rotAngle"),					DOT_FLOAT);
	RegisterParameter(DOP_ISSOLID,					_T("IsSolid"),					DOT_BOOLEAN);
	RegisterParameter(DOP_ALPHA,					_T("alpha"),					DOT_FLOAT);
	RegisterParameter(DOP_WIDTH,					_T("width"),					DOT_FLOAT);
	RegisterParameter(DOP_HEIGHT,					_T("height"),					DOT_FLOAT);
	RegisterParameter(DOP_CENTER,					_T("center"),					DOT_POINT);
	RegisterParameter(DOP_CENTER_X,					_T("cx"),						DOT_FLOAT);
	RegisterParameter(DOP_CENTER_Y,					_T("cy"),						DOT_FLOAT);
	RegisterAlternativeName(DOP_CENTER_X,			_T("x"),						DOT_FLOAT);
	RegisterAlternativeName(DOP_CENTER_Y,			_T("y"),						DOT_FLOAT);
	RegisterParameter(DOP_DRAW_STIPPLED,			_T("drawStippled"),				DOT_BOOLEAN);
	RegisterParameter(DOP_INTEGRATIONSTEPS,			_T("numSteps"),					DOT_INTEGER);
	RegisterParameter(DOP_STEPLENGTH,				_T("stepLen"),					DOT_FLOAT);
	RegisterParameter(DOP_ORIGIN,					_T("origin"),					DOT_POINT);
	RegisterParameter(DOP_RENDER_AS_PARTICLES,		_T("asParticles"),				DOT_BOOLEAN);
	RegisterParameter(DOP_STARTFRAME,				_T("startFrame"),				DOT_INTEGER);
	RegisterParameter(DOP_USE_STARTFRAME,			_T("useFixedStartFrame"),		DOT_BOOLEAN);
	RegisterParameter(DOP_DRAWASDROPLETS,			_T("drawAsDroplet"),			DOT_BOOLEAN);
	RegisterParameter(DOP_HALOCOLOR,				_T("haloColor"),				DOT_COLOR);
	RegisterParameter(DOP_ARROWCOLOR,				_T("arrowColor"),				DOT_COLOR);
	RegisterParameter(DOP_SMOOTHNESS,				_T("smoothness"),				DOT_INTEGER);
	RegisterParameter(DOP_VORTEXSTYLE,				_T("vortexStyle"),				DOT_INTEGER);
	RegisterParameter(DOP_VORTEXDIR,				_T("rotationDir"),				DOT_INTEGER);
	RegisterParameter(DOP_ARROWSIZE,				_T("arrowLen"),					DOT_FLOAT);
	RegisterParameter(DOP_THRESHOLD,				_T("vortexThreshold"),			DOT_FLOAT);
	RegisterParameter(DOP_AUTOADJUSTSIZE,			_T("autoAdjustSize"),			DOT_BOOLEAN);
	RegisterParameter(DOP_SHOWTRAJECTORY,			_T("showTrajectory"),			DOT_BOOLEAN);
	RegisterParameter(DOP_TRANSPARENTTRAJECTORY,	_T("trajectoryTransparent"),	DOT_BOOLEAN);
	RegisterParameter(DOP_REVOLUTIONS,				_T("numRevolutions"),			DOT_FLOAT);
	RegisterParameter(DOP_NUMARROWS,				_T("numArrows"),				DOT_INTEGER);
	RegisterParameter(DOP_TRAJECTORYSTEPS,			_T("trajectorySteps"),			DOT_INTEGER);
	RegisterParameter(DOP_SHOWARROWS,				_T("showArrows"),				DOT_BOOLEAN);
	RegisterParameter(DOP_APPEARANCE,				_T("appearance"),				DOT_INTEGER);
	RegisterParameter(DOP_ARROW_DIR,				_T("arrowDir"),					DOT_VECTOR);
	RegisterParameter(DOP_RADIUS1,					_T("rx"),						DOT_FLOAT);
	RegisterParameter(DOP_RADIUS2,					_T("ry"),						DOT_FLOAT);
	RegisterAlternativeName(DOP_RADIUS1,			_T("r1"),						DOT_FLOAT);
	RegisterAlternativeName(DOP_RADIUS2,			_T("r2"),						DOT_FLOAT);
	RegisterParameter(DOP_HATCHED,					_T("hatched"),					DOT_BOOLEAN);
	RegisterParameter(DOP_PTEND,					_T("ptEnd"),					DOT_POINT);
	RegisterParameter(DOP_NUM_SAMPLES,				_T("numSamples"),				DOT_INTEGER);
	RegisterParameter(DOP_SHOW_SEEDINGLINE,			_T("showSeedline"),				DOT_BOOLEAN);
	RegisterParameter(DOP_SPEEDLINE_STYLE,			_T("speedLineStyle"),			DOT_INTEGER);
	RegisterParameter(DOP_ALPHA_MIN,				_T("alphaMin"),					DOT_FLOAT);
	RegisterParameter(DOP_THICKNESS_MIN,			_T("thicknessMin"),				DOT_FLOAT);
	RegisterParameter(DOP_NUMDROPLETS,				_T("numDroplets"),				DOT_INTEGER);
	RegisterParameter(DOP_GROW_STEPS,				_T("growSteps"),				DOT_INTEGER);
	RegisterParameter(DOP_TRANSPARENT_STEPS,		_T("transparentSteps"),			DOT_INTEGER);	
}