void set(syVComp para) {
		int oldmode = mode;
		switch ((int) para.mode) {
			case MODE_OFF:
				mode = MODE_BIT_OFF;
				break;
			case MODE_PEAK:
				mode = MODE_BIT_PEAK | MODE_BIT_ON;
				break;
			case MODE_RMS:
				mode = MODE_BIT_RMS | MODE_BIT_ON;
				break;
			default:
				//assert (false);
		}

		if (para.stereo != 0.0f)
			mode |= MODE_BIT_STEREO;

		if (mode != oldmode)
			reset();

		// @@@BUG: original V2 code uses "fcsamplesperms" here which is
		// hard-coded to 44.1kHz
		dblen = (int)(para.lookahead * inst.SRfcsamplesperms);

		float thresh = 8.0f * Utils.calcfreq(para.threshold / 128.0f);
		invol = 1.0f / thresh;
		if (para.autogain != 0.0f)
			thresh = 1.0f;
		outvol = (float) (thresh * Math.pow(2.0f, (para.outgain - 64.0f) / 16.0f));
		ratio = para.ratio / 128.0f;

		// attack: 0 (!) ... 200ms (5Hz)
		attack = (float) Math.pow(2.0f, -para.attack * 12.0f / 128.0f);
		// release: 5ms .. 5s
		release = (float) Math.pow(2.0f, -para.release * 16.0f / 128.0f);
	}