void set(syVV2 para) {
		xpose = para.transp - 64.0f;
		updateNote();

		fmode = (int) para.routing;
		keysync = (int) para.oscsync;

		// equal power panning
		float p = para.panning / 128.0f;
		lvol = (float) Math.sqrt(1.0f - p);
		rvol = (float) Math.sqrt(p);

		// filter balance for parallel
		float x = (para.fltbal - 64.0f) / 64.0f;
		if (x >= 0.0f) {
			f2gain = 1.0f;
			f1gain = 1.0f - x;
		} else {
			f1gain = 1.0f;
			f2gain = 1.0f + x;
		}

		// subsections
		for (int i = 0; i < syVV2.NOSC; i++) {
			osc[i].set(para.osc[i]);
			//System.out.printf("%f %f %f %f %f %f\n", para.osc[i].mode, para.osc[i].ring, para.osc[i].pitch, para.osc[i].detune, para.osc[i].color, para.osc[i].gain);
		}
		for (int i = 0; i < syVV2.NENV; i++)
			env[i].set(para.env[i]);

		for (int i = 0; i < syVV2.NFLT; i++)
			vcf[i].set(para.flt[i]);

		for (int i = 0; i < syVV2.NLFO; i++)
			lfo[i].set(para.lfo[i]);

		dist.set(para.dist);
	}