コード例 #1
0
void MLMultiSlider::setWave(int w)
{
	float val = 0.;
	
	MLRange vRange;
	vRange.convertTo(mRange);
	for (int i=0; i<mNumSliders; ++i)
	{
		switch(w)
		{
			case 1: // square
				val = i <mNumSliders/2 ? 0 : 1;
			break;
			case 2: // sine
				val = sin(i * kMLTwoPi / mNumSliders)/-2. + 0.5;
			break;
			case 3: // saw
				val = (float)i / (float)(mNumSliders - 1);
			break;
			case 4: // random
				val = MLRand();
			break;
			default:
				val = 0.5;
			break;
		}	
		val = vRange(val);
		sendSliderAction(val, i);
	}
}
コード例 #2
0
ファイル: MLProcNoise.cpp プロジェクト: EQ4/madronalib
void MLProcNoise::process(const int samples)
{	
	static MLSymbol gainSym("gain");
	MLSignal& y = getOutput();
	y.setConstant(false); // ?
	MLSample gain = getParam(gainSym);
	
	for (int n=0; n<samples; ++n)
	{
		y[n] = MLRand() * gain;
	}
}