void MLPluginProcessor::setDefaultParameters()
{
	if (mEngine.getCompileStatus() == MLProc::OK)
	{
		// set default for each parameter.
		const unsigned numParams = getNumParameters();
		for(unsigned i=0; i<numParams; ++i)
		{
			MLPublishedParamPtr paramPtr = getParameterPtr(i);
			MLSymbol paramType = paramPtr->getType();
			if(paramType == "float")
			{
				float defaultVal = getParameterDefaultValue(i);
				setPropertyImmediate(getParameterAlias(i), defaultVal);
			}
			else if (paramType == "string")
			{
				// unimplemented
			}
			else if (paramType == "signal")
			{
				const MLProperty& p = getProperty(getParameterAlias(i));
				if (p.getType() == MLProperty::kSignalProperty)
				{
					// TODO set up defaults for signal params once we are loading from JSON
					// right now we clear to zero
					MLSignal defaultSignal(p.getSignalValue());
					defaultSignal.clear();
					setPropertyImmediate(getParameterAlias(i), defaultSignal);
				}
			}
		}
	}
}