shithub: neindaw

Download patch

ref: 9d432867df46d334be72101ccdb4662e9289eaf4
parent: 233b15c62e1c272d7017811b0287d590a34aba97
author: Sigrid Haflínudóttir <[email protected]>
date: Wed May 13 08:58:04 EDT 2020

dsp/piano: bikeshed the paths

--- a/dsp/piano.c
+++ b/dsp/piano.c
@@ -66,18 +66,19 @@
 	FAUSTFLOAT fHslider2;
 	float fRec12[2];
 	FAUSTFLOAT fHslider3;
+	float fConst11;
 	FAUSTFLOAT fHslider4;
 	int iRec23[2];
 	FAUSTFLOAT fButton0;
 	float fRec25[2];
-	float fConst11;
+	float fConst12;
 	FAUSTFLOAT fHslider5;
 	float fRec24[2];
-	float fConst12;
 	float fConst13;
 	float fConst14;
-	FAUSTFLOAT fHslider6;
 	float fConst15;
+	FAUSTFLOAT fHslider6;
+	float fConst16;
 	float fRec26[2];
 	float fVec1[2];
 	float fVec2[2];
@@ -86,7 +87,6 @@
 	float fRec20[2];
 	float fRec19[2];
 	float fRec18[2];
-	float fConst16;
 	float fConst17;
 	float fRec17[3];
 	float fRec16[3];
@@ -120,7 +120,7 @@
 	float fVec6[8192];
 	float fVec7[4096];
 	int iConst21;
-	float fVec8[4096];
+	float fVec8[2048];
 	int iConst22;
 	float fRec8[2];
 	float fConst23;
@@ -141,24 +141,24 @@
 	float fConst33;
 	float fRec51[2];
 	float fRec50[2];
-	float fVec11[16384];
+	float fVec11[32768];
 	float fConst34;
 	int iConst35;
-	float fVec12[2048];
-	int iConst36;
+	float fConst36;
+	FAUSTFLOAT fHslider9;
+	float fVec12[4096];
+	float fVec13[2048];
+	int iConst37;
 	float fRec48[2];
-	float fConst37;
 	float fConst38;
 	float fConst39;
 	float fConst40;
+	float fConst41;
 	float fRec55[2];
 	float fRec54[2];
-	float fVec13[32768];
-	float fConst41;
-	int iConst42;
-	float fConst43;
-	FAUSTFLOAT fHslider9;
-	float fVec14[4096];
+	float fVec14[32768];
+	float fConst42;
+	int iConst43;
 	float fVec15[4096];
 	int iConst44;
 	float fRec52[2];
@@ -171,7 +171,7 @@
 	float fVec16[32768];
 	float fConst49;
 	int iConst50;
-	float fVec17[2048];
+	float fVec17[4096];
 	int iConst51;
 	float fRec56[2];
 	float fConst52;
@@ -192,7 +192,7 @@
 	float fConst62;
 	float fRec67[2];
 	float fRec66[2];
-	float fVec20[32768];
+	float fVec20[16384];
 	float fConst63;
 	int iConst64;
 	float fVec21[4096];
@@ -636,7 +636,7 @@
 	/* C99 loop */
 	{
 		int l41;
-		for (l41 = 0; (l41 < 4096); l41 = (l41 + 1)) {
+		for (l41 = 0; (l41 < 2048); l41 = (l41 + 1)) {
 			dsp->fVec8[l41] = 0.0f;
 		}
 	}
@@ -699,7 +699,7 @@
 	/* C99 loop */
 	{
 		int l50;
-		for (l50 = 0; (l50 < 16384); l50 = (l50 + 1)) {
+		for (l50 = 0; (l50 < 32768); l50 = (l50 + 1)) {
 			dsp->fVec11[l50] = 0.0f;
 		}
 	}
@@ -706,7 +706,7 @@
 	/* C99 loop */
 	{
 		int l51;
-		for (l51 = 0; (l51 < 2048); l51 = (l51 + 1)) {
+		for (l51 = 0; (l51 < 4096); l51 = (l51 + 1)) {
 			dsp->fVec12[l51] = 0.0f;
 		}
 	}
@@ -713,8 +713,8 @@
 	/* C99 loop */
 	{
 		int l52;
-		for (l52 = 0; (l52 < 2); l52 = (l52 + 1)) {
-			dsp->fRec48[l52] = 0.0f;
+		for (l52 = 0; (l52 < 2048); l52 = (l52 + 1)) {
+			dsp->fVec13[l52] = 0.0f;
 		}
 	}
 	/* C99 loop */
@@ -721,7 +721,7 @@
 	{
 		int l53;
 		for (l53 = 0; (l53 < 2); l53 = (l53 + 1)) {
-			dsp->fRec55[l53] = 0.0f;
+			dsp->fRec48[l53] = 0.0f;
 		}
 	}
 	/* C99 loop */
@@ -728,20 +728,20 @@
 	{
 		int l54;
 		for (l54 = 0; (l54 < 2); l54 = (l54 + 1)) {
-			dsp->fRec54[l54] = 0.0f;
+			dsp->fRec55[l54] = 0.0f;
 		}
 	}
 	/* C99 loop */
 	{
 		int l55;
-		for (l55 = 0; (l55 < 32768); l55 = (l55 + 1)) {
-			dsp->fVec13[l55] = 0.0f;
+		for (l55 = 0; (l55 < 2); l55 = (l55 + 1)) {
+			dsp->fRec54[l55] = 0.0f;
 		}
 	}
 	/* C99 loop */
 	{
 		int l56;
-		for (l56 = 0; (l56 < 4096); l56 = (l56 + 1)) {
+		for (l56 = 0; (l56 < 32768); l56 = (l56 + 1)) {
 			dsp->fVec14[l56] = 0.0f;
 		}
 	}
@@ -783,7 +783,7 @@
 	/* C99 loop */
 	{
 		int l62;
-		for (l62 = 0; (l62 < 2048); l62 = (l62 + 1)) {
+		for (l62 = 0; (l62 < 4096); l62 = (l62 + 1)) {
 			dsp->fVec17[l62] = 0.0f;
 		}
 	}
@@ -846,7 +846,7 @@
 	/* C99 loop */
 	{
 		int l71;
-		for (l71 = 0; (l71 < 32768); l71 = (l71 + 1)) {
+		for (l71 = 0; (l71 < 16384); l71 = (l71 + 1)) {
 			dsp->fVec20[l71] = 0.0f;
 		}
 	}
@@ -963,7 +963,7 @@
 	dsp->fSampleRate = sample_rate;
 	dsp->fConst0 = fminf(192000.0f, fmaxf(1.0f, (float)dsp->fSampleRate));
 	dsp->fConst1 = cosf((37699.1133f / dsp->fConst0));
-	dsp->fConst2 = floorf(((0.127837002f * dsp->fConst0) + 0.5f));
+	dsp->fConst2 = floorf(((0.125f * dsp->fConst0) + 0.5f));
 	dsp->fConst3 = ((0.0f - (6.90775537f * dsp->fConst2)) / dsp->fConst0);
 	dsp->fConst4 = (0.5f * dsp->fConst3);
 	dsp->fConst5 = (0.333333343f * dsp->fConst3);
@@ -970,20 +970,20 @@
 	dsp->fConst6 = (1.0f / tanf((628.318542f / dsp->fConst0)));
 	dsp->fConst7 = (1.0f / (dsp->fConst6 + 1.0f));
 	dsp->fConst8 = (1.0f - dsp->fConst6);
-	dsp->fConst9 = floorf(((0.0316039994f * dsp->fConst0) + 0.5f));
+	dsp->fConst9 = floorf(((0.0134579996f * dsp->fConst0) + 0.5f));
 	dsp->iConst10 = (int)fminf(8192.0f, fmaxf(0.0f, (dsp->fConst2 - dsp->fConst9)));
-	dsp->fConst11 = (7.0f / dsp->fConst0);
-	dsp->fConst12 = expf((0.0f - (5.0f / dsp->fConst0)));
-	dsp->fConst13 = expf((0.0f - (0.5f / dsp->fConst0)));
-	dsp->fConst14 = (0.100000001f * dsp->fConst0);
-	dsp->fConst15 = (10.0f / dsp->fConst0);
-	dsp->fConst16 = (6.28318548f / dsp->fConst0);
-	dsp->fConst17 = (0.0500000007f / dsp->fConst0);
+	dsp->fConst11 = (0.0500000007f / dsp->fConst0);
+	dsp->fConst12 = (7.0f / dsp->fConst0);
+	dsp->fConst13 = expf((0.0f - (5.0f / dsp->fConst0)));
+	dsp->fConst14 = expf((0.0f - (0.5f / dsp->fConst0)));
+	dsp->fConst15 = (0.100000001f * dsp->fConst0);
+	dsp->fConst16 = (10.0f / dsp->fConst0);
+	dsp->fConst17 = (6.28318548f / dsp->fConst0);
 	dsp->fConst18 = (0.159154937f * dsp->fConst0);
 	dsp->fConst19 = (1.0f / Piano_faustpower2_f(dsp->fConst0));
 	dsp->fConst20 = (2.0f / dsp->fConst0);
 	dsp->iConst21 = (int)fminf(8192.0f, fmaxf(0.0f, (0.0199999996f * dsp->fConst0)));
-	dsp->iConst22 = (int)fminf(2048.0f, fmaxf(0.0f, (dsp->fConst9 + -1.0f)));
+	dsp->iConst22 = (int)fminf(1024.0f, fmaxf(0.0f, (dsp->fConst9 + -1.0f)));
 	dsp->fConst23 = floorf(((0.174713001f * dsp->fConst0) + 0.5f));
 	dsp->fConst24 = ((0.0f - (6.90775537f * dsp->fConst23)) / dsp->fConst0);
 	dsp->fConst25 = (0.5f * dsp->fConst24);
@@ -991,41 +991,41 @@
 	dsp->fConst27 = floorf(((0.0229039993f * dsp->fConst0) + 0.5f));
 	dsp->iConst28 = (int)fminf(8192.0f, fmaxf(0.0f, (dsp->fConst23 - dsp->fConst27)));
 	dsp->iConst29 = (int)fminf(2048.0f, fmaxf(0.0f, (dsp->fConst27 + -1.0f)));
-	dsp->fConst30 = floorf(((0.153128996f * dsp->fConst0) + 0.5f));
+	dsp->fConst30 = floorf(((0.219990999f * dsp->fConst0) + 0.5f));
 	dsp->fConst31 = ((0.0f - (6.90775537f * dsp->fConst30)) / dsp->fConst0);
 	dsp->fConst32 = (0.5f * dsp->fConst31);
 	dsp->fConst33 = (0.333333343f * dsp->fConst31);
-	dsp->fConst34 = floorf(((0.0203460008f * dsp->fConst0) + 0.5f));
-	dsp->iConst35 = (int)fminf(8192.0f, fmaxf(0.0f, (dsp->fConst30 - dsp->fConst34)));
-	dsp->iConst36 = (int)fminf(1024.0f, fmaxf(0.0f, (dsp->fConst34 + -1.0f)));
-	dsp->fConst37 = floorf(((0.256891012f * dsp->fConst0) + 0.5f));
-	dsp->fConst38 = ((0.0f - (6.90775537f * dsp->fConst37)) / dsp->fConst0);
-	dsp->fConst39 = (0.5f * dsp->fConst38);
-	dsp->fConst40 = (0.333333343f * dsp->fConst38);
-	dsp->fConst41 = floorf(((0.0273330007f * dsp->fConst0) + 0.5f));
-	dsp->iConst42 = (int)fminf(16384.0f, fmaxf(0.0f, (dsp->fConst37 - dsp->fConst41)));
-	dsp->fConst43 = (0.5f * dsp->fConst0);
-	dsp->iConst44 = (int)fminf(2048.0f, fmaxf(0.0f, (dsp->fConst41 + -1.0f)));
-	dsp->fConst45 = floorf(((0.219990999f * dsp->fConst0) + 0.5f));
-	dsp->fConst46 = ((0.0f - (6.90775537f * dsp->fConst45)) / dsp->fConst0);
-	dsp->fConst47 = (0.5f * dsp->fConst46);
+	dsp->fConst34 = floorf(((0.0191229992f * dsp->fConst0) + 0.5f));
+	dsp->iConst35 = (int)fminf(16384.0f, fmaxf(0.0f, (dsp->fConst30 - dsp->fConst34)));
+	dsp->fConst36 = (0.5f * dsp->fConst0);
+	dsp->iConst37 = (int)fminf(1024.0f, fmaxf(0.0f, (dsp->fConst34 + -1.0f)));
+	dsp->fConst38 = floorf(((0.256891012f * dsp->fConst0) + 0.5f));
+	dsp->fConst39 = ((0.0f - (6.90775537f * dsp->fConst38)) / dsp->fConst0);
+	dsp->fConst40 = (0.5f * dsp->fConst39);
+	dsp->fConst41 = (0.333333343f * dsp->fConst39);
+	dsp->fConst42 = floorf(((0.0273330007f * dsp->fConst0) + 0.5f));
+	dsp->iConst43 = (int)fminf(16384.0f, fmaxf(0.0f, (dsp->fConst38 - dsp->fConst42)));
+	dsp->iConst44 = (int)fminf(2048.0f, fmaxf(0.0f, (dsp->fConst42 + -1.0f)));
+	dsp->fConst45 = floorf(((0.210389003f * dsp->fConst0) + 0.5f));
+	dsp->fConst46 = ((0.0f - (6.90775537f * dsp->fConst45)) / dsp->fConst0);
+	dsp->fConst47 = (0.5f * dsp->fConst46);
 	dsp->fConst48 = (0.333333343f * dsp->fConst46);
-	dsp->fConst49 = floorf(((0.0191229992f * dsp->fConst0) + 0.5f));
+	dsp->fConst49 = floorf(((0.0244210009f * dsp->fConst0) + 0.5f));
 	dsp->iConst50 = (int)fminf(16384.0f, fmaxf(0.0f, (dsp->fConst45 - dsp->fConst49)));
-	dsp->iConst51 = (int)fminf(1024.0f, fmaxf(0.0f, (dsp->fConst49 + -1.0f)));
-	dsp->fConst52 = floorf(((0.125f * dsp->fConst0) + 0.5f));
+	dsp->iConst51 = (int)fminf(2048.0f, fmaxf(0.0f, (dsp->fConst49 + -1.0f)));
+	dsp->fConst52 = floorf(((0.153128996f * dsp->fConst0) + 0.5f));
 	dsp->fConst53 = ((0.0f - (6.90775537f * dsp->fConst52)) / dsp->fConst0);
 	dsp->fConst54 = (0.5f * dsp->fConst53);
 	dsp->fConst55 = (0.333333343f * dsp->fConst53);
-	dsp->fConst56 = floorf(((0.0134579996f * dsp->fConst0) + 0.5f));
+	dsp->fConst56 = floorf(((0.0203460008f * dsp->fConst0) + 0.5f));
 	dsp->iConst57 = (int)fminf(8192.0f, fmaxf(0.0f, (dsp->fConst52 - dsp->fConst56)));
 	dsp->iConst58 = (int)fminf(1024.0f, fmaxf(0.0f, (dsp->fConst56 + -1.0f)));
-	dsp->fConst59 = floorf(((0.210389003f * dsp->fConst0) + 0.5f));
+	dsp->fConst59 = floorf(((0.127837002f * dsp->fConst0) + 0.5f));
 	dsp->fConst60 = ((0.0f - (6.90775537f * dsp->fConst59)) / dsp->fConst0);
 	dsp->fConst61 = (0.5f * dsp->fConst60);
 	dsp->fConst62 = (0.333333343f * dsp->fConst60);
-	dsp->fConst63 = floorf(((0.0244210009f * dsp->fConst0) + 0.5f));
-	dsp->iConst64 = (int)fminf(16384.0f, fmaxf(0.0f, (dsp->fConst59 - dsp->fConst63)));
+	dsp->fConst63 = floorf(((0.0316039994f * dsp->fConst0) + 0.5f));
+	dsp->iConst64 = (int)fminf(8192.0f, fmaxf(0.0f, (dsp->fConst59 - dsp->fConst63)));
 	dsp->iConst65 = (int)fminf(2048.0f, fmaxf(0.0f, (dsp->fConst63 + -1.0f)));
 	dsp->fConst66 = floorf(((0.192303002f * dsp->fConst0) + 0.5f));
 	dsp->fConst67 = ((0.0f - (6.90775537f * dsp->fConst66)) / dsp->fConst0);
@@ -1054,7 +1054,7 @@
 void buildUserInterfacePiano(Piano* dsp, UIGlue* ui_interface) {
 	USED(dsp);
 	ui_interface->openVerticalBox(ui_interface->uiInterface, "Piano");
-	ui_interface->openHorizontalBox(ui_interface->uiInterface, "Basic_Parameters");
+	ui_interface->openHorizontalBox(ui_interface->uiInterface, "Basic");
 	ui_interface->declare(ui_interface->uiInterface, &dsp->fHslider3, "1", "");
 	ui_interface->declare(ui_interface->uiInterface, &dsp->fHslider3, "tooltip", "Tone frequency");
 	ui_interface->declare(ui_interface->uiInterface, &dsp->fHslider3, "unit", "Hz");
@@ -1066,19 +1066,19 @@
 	ui_interface->declare(ui_interface->uiInterface, &dsp->fButton0, "tooltip", "noteOn = 1, noteOff = 0");
 	ui_interface->addButton(ui_interface->uiInterface, "Gate", &dsp->fButton0);
 	ui_interface->closeBox(ui_interface->uiInterface);
-	ui_interface->openVerticalBox(ui_interface->uiInterface, "Physical_Parameters");
+	ui_interface->openVerticalBox(ui_interface->uiInterface, "Physical");
 	ui_interface->declare(ui_interface->uiInterface, &dsp->fHslider4, "2", "");
 	ui_interface->declare(ui_interface->uiInterface, &dsp->fHslider4, "tooltip", "A value between 0 and 1");
-	ui_interface->addHorizontalSlider(ui_interface->uiInterface, "Brightness_Factor", &dsp->fHslider4, 0.0f, 0.0f, 1.0f, 0.00999999978f);
+	ui_interface->addHorizontalSlider(ui_interface->uiInterface, "Brightness Factor", &dsp->fHslider4, 0.0f, 0.0f, 1.0f, 0.00999999978f);
 	ui_interface->declare(ui_interface->uiInterface, &dsp->fHslider8, "2", "");
 	ui_interface->declare(ui_interface->uiInterface, &dsp->fHslider8, "tooltip", "A value between 0 and 1");
-	ui_interface->addHorizontalSlider(ui_interface->uiInterface, "Detuning_Factor", &dsp->fHslider8, 0.100000001f, 0.0f, 1.0f, 0.00999999978f);
+	ui_interface->addHorizontalSlider(ui_interface->uiInterface, "Detuning Factor", &dsp->fHslider8, 0.100000001f, 0.0f, 1.0f, 0.00999999978f);
 	ui_interface->declare(ui_interface->uiInterface, &dsp->fHslider6, "2", "");
 	ui_interface->declare(ui_interface->uiInterface, &dsp->fHslider6, "tooltip", "A value between 0 and 1");
-	ui_interface->addHorizontalSlider(ui_interface->uiInterface, "Hammer_Hardness", &dsp->fHslider6, 0.100000001f, 0.0f, 1.0f, 0.00999999978f);
+	ui_interface->addHorizontalSlider(ui_interface->uiInterface, "Hammer Hardness", &dsp->fHslider6, 0.100000001f, 0.0f, 1.0f, 0.00999999978f);
 	ui_interface->declare(ui_interface->uiInterface, &dsp->fHslider7, "2", "");
 	ui_interface->declare(ui_interface->uiInterface, &dsp->fHslider7, "tooltip", "A value between 0 and 1");
-	ui_interface->addHorizontalSlider(ui_interface->uiInterface, "Stiffness_Factor", &dsp->fHslider7, 0.280000001f, 0.0f, 1.0f, 0.00999999978f);
+	ui_interface->addHorizontalSlider(ui_interface->uiInterface, "Stiffness Factor", &dsp->fHslider7, 0.280000001f, 0.0f, 1.0f, 0.00999999978f);
 	ui_interface->closeBox(ui_interface->uiInterface);
 	ui_interface->openVerticalBox(ui_interface->uiInterface, "Reverb");
 	ui_interface->addHorizontalSlider(ui_interface->uiInterface, "reverbGain", &dsp->fHslider2, 0.136999995f, 0.0f, 1.0f, 0.00999999978f);
@@ -1113,309 +1113,311 @@
 	int iSlow14 = (int)((17.3123398f * (logf(fSlow13) + -6.08677483f)) + 69.5f);
 	float fSlow15 = (float)getValueDCBa1((float)iSlow14);
 	float fSlow16 = (1.0f - fSlow15);
-	float fSlow17 = (float)getValueBq4_gEarBalled((float)iSlow14);
-	float fSlow18 = (2.0f * fSlow17);
-	float fSlow19 = (0.25f * (float)dsp->fHslider4);
-	float fSlow20 = (float)getValueLoudPole((float)iSlow14);
-	float fSlow21 = ((fSlow19 + (0.980000019f - fSlow20)) * (float)getValueLoudGain((float)iSlow14));
-	float fSlow22 = (0.5f * fSlow16);
-	float fSlow23 = (float)(iSlow14 >= 88);
-	float fSlow24 = (2.32830644e-10f * fSlow23);
-	float fSlow25 = (float)dsp->fButton0;
-	int iSlow26 = (fSlow25 > 0.0f);
-	float fSlow27 = expf((0.0f - (dsp->fConst11 / ((float)dsp->fHslider5 * (float)getValueDryTapAmpT60((float)iSlow14)))));
-	int iSlow28 = (fSlow25 < 1.0f);
-	float fSlow29 = (0.0f - (fSlow25 + -1.0f));
-	float fSlow30 = (dsp->fConst12 * fSlow29);
-	float fSlow31 = (float)dsp->fHslider6;
-	float fSlow32 = (dsp->fConst14 * fSlow31);
-	float fSlow33 = expf((0.0f - (dsp->fConst15 / fSlow31)));
-	float fSlow34 = (0.200000003f * (float)getValueSustainPedalLevel((float)iSlow14));
-	float fSlow35 = (1.16415322e-10f * fSlow23);
-	float fSlow36 = (0.0f - fSlow22);
-	float fSlow37 = (fSlow20 + (0.0199999996f - fSlow19));
-	float fSlow38 = powf(10.0f, (dsp->fConst17 * (float)getValuer3db((float)iSlow14)));
-	float fSlow39 = (cosf((dsp->fConst16 * (fSlow13 * (float)getValueThirdPartialFactor((float)iSlow14)))) * (0.0f - (2.0f * fSlow38)));
-	float fSlow40 = Piano_faustpower2_f(fSlow38);
-	float fSlow41 = powf(10.0f, (dsp->fConst17 * (float)getValuer2db((float)iSlow14)));
-	float fSlow42 = (cosf((dsp->fConst16 * (fSlow13 * (float)getValueSecondPartialFactor((float)iSlow14)))) * (0.0f - (2.0f * fSlow41)));
-	float fSlow43 = Piano_faustpower2_f(fSlow41);
-	float fSlow44 = cosf((dsp->fConst16 * fSlow13));
-	float fSlow45 = powf(10.0f, (dsp->fConst17 * (float)getValuer1_1db((float)iSlow14)));
-	float fSlow46 = (fSlow44 * (0.0f - (2.0f * fSlow45)));
-	float fSlow47 = Piano_faustpower2_f(fSlow45);
-	float fSlow48 = powf(10.0f, (0.0500000007f * (float)getValueSecondStageAmpRatio((float)iSlow14)));
-	float fSlow49 = powf(10.0f, (dsp->fConst17 * (float)getValuer1_2db((float)iSlow14)));
-	float fSlow50 = Piano_faustpower2_f(fSlow49);
-	float fSlow51 = (1.0f - fSlow48);
-	float fSlow52 = ((fSlow48 * fSlow47) + (fSlow50 * fSlow51));
-	float fSlow53 = (0.0f - (2.0f * ((fSlow48 * fSlow45) + (fSlow49 * fSlow51))));
-	float fSlow54 = (0.0f - (2.0f * fSlow49));
-	float fSlow55 = (float)dsp->fHslider7;
-	float fSlow56 = (float)getValueStiffnessCoefficient((float)iSlow14);
-	float fSlow57 = (13.6899996f * (Piano_faustpower2_f(fSlow55) * Piano_faustpower2_f(fSlow56)));
-	float fSlow58 = (fSlow57 + -1.0f);
-	float fSlow59 = (5.0f * ((float)dsp->fHslider8 * (float)getValueDetuningHz((float)iSlow14)));
-	float fSlow60 = (fSlow13 + fSlow59);
-	float fSlow61 = (dsp->fConst16 * fSlow60);
-	float fSlow62 = sinf(fSlow61);
-	float fSlow63 = (fSlow55 * fSlow56);
-	float fSlow64 = (7.4000001f * fSlow63);
-	float fSlow65 = (fSlow57 + 1.0f);
-	float fSlow66 = cosf(fSlow61);
-	float fSlow67 = (3.0f * atan2f((fSlow58 * fSlow62), (fSlow64 + (fSlow65 * fSlow66))));
-	float fSlow68 = powf(10.0f, (0.0500000007f * ((float)getValueSingleStringDecayRate((float)iSlow14) / fSlow13)));
-	float fSlow69 = (float)getValueSingleStringZero((float)iSlow14);
-	float fSlow70 = (float)getValueSingleStringPole((float)iSlow14);
-	float fSlow71 = (1.0f - fSlow70);
-	float fSlow72 = ((fSlow68 * fSlow69) * fSlow71);
-	float fSlow73 = (1.0f - fSlow69);
-	float fSlow74 = (fSlow70 * fSlow73);
-	float fSlow75 = (3.0f * fSlow74);
-	float fSlow76 = (fSlow72 - fSlow75);
-	float fSlow77 = (fSlow74 - fSlow72);
-	float fSlow78 = (4.0f * fSlow77);
-	float fSlow79 = (fSlow76 + fSlow78);
-	float fSlow80 = (fSlow68 * fSlow71);
-	float fSlow81 = ((3.0f * fSlow73) - fSlow80);
-	float fSlow82 = (((fSlow66 * fSlow76) / fSlow81) + 1.0f);
-	float fSlow83 = ((fSlow69 + fSlow80) + -1.0f);
-	float fSlow84 = (4.0f * fSlow83);
-	float fSlow85 = (((fSlow84 + (fSlow66 * fSlow79)) / fSlow81) + 1.0f);
-	float fSlow86 = (Piano_faustpower2_f(fSlow62) * fSlow76);
-	float fSlow87 = Piano_faustpower2_f(fSlow81);
-	float fSlow88 = (dsp->fConst18 * (((fSlow67 + atan2f((((0.0f - ((fSlow62 * fSlow79) / fSlow81)) * fSlow82) + (((fSlow62 * fSlow76) * fSlow85) / fSlow81)), ((fSlow82 * fSlow85) + ((fSlow86 * fSlow79) / fSlow87)))) + 6.28318548f) / fSlow60));
-	float fSlow89 = floorf(fSlow88);
-	float fSlow90 = (fSlow88 - fSlow89);
-	float fSlow91 = (0.00100000005f * ((0.999599993f * fSlow25) + (0.899999976f * (fSlow29 * (float)getValueReleaseLoopGain((float)iSlow14)))));
-	float fSlow92 = (1.39698386e-09f * (fSlow21 * (float)(iSlow14 < 88)));
-	float fSlow93 = (3.70000005f * fSlow63);
-	float fSlow94 = ((fSlow72 + fSlow78) - fSlow75);
-	float fSlow95 = (((fSlow84 + (fSlow66 * fSlow94)) / fSlow81) + 1.0f);
-	int iSlow96 = (int)(dsp->fConst18 * (((fSlow67 + atan2f((0.0f - ((fSlow62 * ((fSlow94 * fSlow82) - (fSlow76 * fSlow95))) / fSlow81)), ((fSlow82 * fSlow95) + ((fSlow86 * fSlow94) / fSlow87)))) + 6.28318548f) / fSlow60));
-	int iSlow97 = min(4097, max(0, (iSlow96 + 1)));
-	float fSlow98 = (1.0f / fSlow81);
-	float fSlow99 = (fSlow13 - fSlow59);
-	float fSlow100 = (dsp->fConst16 * fSlow99);
-	float fSlow101 = sinf(fSlow100);
-	float fSlow102 = cosf(fSlow100);
-	float fSlow103 = (3.0f * atan2f((fSlow58 * fSlow101), (fSlow64 + (fSlow65 * fSlow102))));
-	float fSlow104 = (((fSlow102 * fSlow76) / fSlow81) + 1.0f);
-	float fSlow105 = ((((fSlow102 * fSlow79) + fSlow84) / fSlow81) + 1.0f);
-	float fSlow106 = (Piano_faustpower2_f(fSlow101) * fSlow76);
-	float fSlow107 = (dsp->fConst18 * (((fSlow103 + atan2f((((0.0f - ((fSlow101 * fSlow79) / fSlow81)) * fSlow104) + (((fSlow101 * fSlow76) * fSlow105) / fSlow81)), ((fSlow104 * fSlow105) + ((fSlow106 * fSlow79) / fSlow87)))) + 6.28318548f) / fSlow99));
-	float fSlow108 = floorf(fSlow107);
-	float fSlow109 = (fSlow108 + (1.0f - fSlow107));
-	float fSlow110 = (((fSlow84 + (fSlow102 * fSlow94)) / fSlow81) + 1.0f);
-	int iSlow111 = (int)(dsp->fConst18 * (((fSlow103 + atan2f((0.0f - ((fSlow101 * ((fSlow104 * fSlow94) - (fSlow76 * fSlow110))) / fSlow81)), ((fSlow104 * fSlow110) + ((fSlow106 * fSlow94) / fSlow87)))) + 6.28318548f) / fSlow99));
-	int iSlow112 = min(4097, max(0, iSlow111));
-	float fSlow113 = (fSlow107 - fSlow108);
-	int iSlow114 = min(4097, max(0, (iSlow111 + 1)));
-	float fSlow115 = (fSlow89 + (1.0f - fSlow88));
-	int iSlow116 = min(4097, max(0, iSlow96));
-	float fSlow117 = (float)getValueEQBandWidthFactor((float)iSlow14);
-	float fSlow118 = (dsp->fConst19 * (Piano_faustpower2_f(fSlow13) * Piano_faustpower2_f(fSlow117)));
-	float fSlow119 = (0.5f * (1.0f - fSlow118));
-	float fSlow120 = (float)getValueEQGain((float)iSlow14);
-	float fSlow121 = ((0.0f - (dsp->fConst20 * (fSlow13 * fSlow117))) * cosf((dsp->fConst16 * (fSlow13 / (float)getValueStrikePosition((float)iSlow14)))));
-	float fSlow122 = expf((dsp->fConst25 / fSlow0));
-	float fSlow123 = Piano_faustpower2_f(fSlow122);
-	float fSlow124 = (1.0f - (dsp->fConst1 * fSlow123));
-	float fSlow125 = (1.0f - fSlow123);
-	float fSlow126 = (fSlow124 / fSlow125);
-	float fSlow127 = sqrtf(fmaxf(0.0f, ((Piano_faustpower2_f(fSlow124) / Piano_faustpower2_f(fSlow125)) + -1.0f)));
-	float fSlow128 = (fSlow126 - fSlow127);
-	float fSlow129 = (fSlow122 * (fSlow127 + (1.0f - fSlow126)));
-	float fSlow130 = ((expf((dsp->fConst26 / fSlow0)) / fSlow122) + -1.0f);
-	float fSlow131 = expf((dsp->fConst32 / fSlow0));
-	float fSlow132 = Piano_faustpower2_f(fSlow131);
-	float fSlow133 = (1.0f - (dsp->fConst1 * fSlow132));
-	float fSlow134 = (1.0f - fSlow132);
-	float fSlow135 = (fSlow133 / fSlow134);
-	float fSlow136 = sqrtf(fmaxf(0.0f, ((Piano_faustpower2_f(fSlow133) / Piano_faustpower2_f(fSlow134)) + -1.0f)));
-	float fSlow137 = (fSlow135 - fSlow136);
-	float fSlow138 = (fSlow131 * (fSlow136 + (1.0f - fSlow135)));
-	float fSlow139 = ((expf((dsp->fConst33 / fSlow0)) / fSlow131) + -1.0f);
-	float fSlow140 = expf((dsp->fConst39 / fSlow0));
-	float fSlow141 = Piano_faustpower2_f(fSlow140);
-	float fSlow142 = (1.0f - (dsp->fConst1 * fSlow141));
-	float fSlow143 = (1.0f - fSlow141);
-	float fSlow144 = (fSlow142 / fSlow143);
-	float fSlow145 = sqrtf(fmaxf(0.0f, ((Piano_faustpower2_f(fSlow142) / Piano_faustpower2_f(fSlow143)) + -1.0f)));
-	float fSlow146 = (fSlow144 - fSlow145);
-	float fSlow147 = (fSlow140 * (fSlow145 + (1.0f - fSlow144)));
-	float fSlow148 = ((expf((dsp->fConst40 / fSlow0)) / fSlow140) + -1.0f);
-	float fSlow149 = (12.0f * fSlow10);
-	int iSlow150 = (int)fminf(4096.0f, fmaxf(0.0f, (dsp->fConst43 * ((float)dsp->fHslider9 / fSlow13))));
-	float fSlow151 = expf((dsp->fConst47 / fSlow0));
-	float fSlow152 = Piano_faustpower2_f(fSlow151);
-	float fSlow153 = (1.0f - (dsp->fConst1 * fSlow152));
-	float fSlow154 = (1.0f - fSlow152);
-	float fSlow155 = (fSlow153 / fSlow154);
-	float fSlow156 = sqrtf(fmaxf(0.0f, ((Piano_faustpower2_f(fSlow153) / Piano_faustpower2_f(fSlow154)) + -1.0f)));
-	float fSlow157 = (fSlow155 - fSlow156);
-	float fSlow158 = (fSlow151 * (fSlow156 + (1.0f - fSlow155)));
-	float fSlow159 = ((expf((dsp->fConst48 / fSlow0)) / fSlow151) + -1.0f);
-	float fSlow160 = expf((dsp->fConst54 / fSlow0));
-	float fSlow161 = Piano_faustpower2_f(fSlow160);
-	float fSlow162 = (1.0f - (dsp->fConst1 * fSlow161));
-	float fSlow163 = (1.0f - fSlow161);
-	float fSlow164 = (fSlow162 / fSlow163);
-	float fSlow165 = sqrtf(fmaxf(0.0f, ((Piano_faustpower2_f(fSlow162) / Piano_faustpower2_f(fSlow163)) + -1.0f)));
-	float fSlow166 = (fSlow164 - fSlow165);
-	float fSlow167 = (fSlow160 * (fSlow165 + (1.0f - fSlow164)));
-	float fSlow168 = ((expf((dsp->fConst55 / fSlow0)) / fSlow160) + -1.0f);
-	float fSlow169 = expf((dsp->fConst61 / fSlow0));
-	float fSlow170 = Piano_faustpower2_f(fSlow169);
-	float fSlow171 = (1.0f - (dsp->fConst1 * fSlow170));
-	float fSlow172 = (1.0f - fSlow170);
-	float fSlow173 = (fSlow171 / fSlow172);
-	float fSlow174 = sqrtf(fmaxf(0.0f, ((Piano_faustpower2_f(fSlow171) / Piano_faustpower2_f(fSlow172)) + -1.0f)));
-	float fSlow175 = (fSlow173 - fSlow174);
-	float fSlow176 = (fSlow169 * (fSlow174 + (1.0f - fSlow173)));
-	float fSlow177 = ((expf((dsp->fConst62 / fSlow0)) / fSlow169) + -1.0f);
-	float fSlow178 = expf((dsp->fConst68 / fSlow0));
-	float fSlow179 = Piano_faustpower2_f(fSlow178);
-	float fSlow180 = (1.0f - (dsp->fConst1 * fSlow179));
-	float fSlow181 = (1.0f - fSlow179);
-	float fSlow182 = (fSlow180 / fSlow181);
-	float fSlow183 = sqrtf(fmaxf(0.0f, ((Piano_faustpower2_f(fSlow180) / Piano_faustpower2_f(fSlow181)) + -1.0f)));
-	float fSlow184 = (fSlow182 - fSlow183);
-	float fSlow185 = (fSlow178 * (fSlow183 + (1.0f - fSlow182)));
-	float fSlow186 = ((expf((dsp->fConst69 / fSlow0)) / fSlow178) + -1.0f);
+	float fSlow17 = powf(10.0f, (0.0500000007f * (float)getValueSecondStageAmpRatio((float)iSlow14)));
+	float fSlow18 = powf(10.0f, (dsp->fConst11 * (float)getValuer1_1db((float)iSlow14)));
+	float fSlow19 = Piano_faustpower2_f(fSlow18);
+	float fSlow20 = powf(10.0f, (dsp->fConst11 * (float)getValuer1_2db((float)iSlow14)));
+	float fSlow21 = Piano_faustpower2_f(fSlow20);
+	float fSlow22 = (1.0f - fSlow17);
+	float fSlow23 = ((fSlow17 * fSlow19) + (fSlow21 * fSlow22));
+	float fSlow24 = (2.0f * (float)getValueBq4_gEarBalled((float)iSlow14));
+	float fSlow25 = (0.25f * (float)dsp->fHslider4);
+	float fSlow26 = (float)getValueLoudPole((float)iSlow14);
+	float fSlow27 = ((fSlow25 + (0.980000019f - fSlow26)) * (float)getValueLoudGain((float)iSlow14));
+	float fSlow28 = (0.5f * fSlow16);
+	float fSlow29 = (float)(iSlow14 >= 88);
+	float fSlow30 = (2.32830644e-10f * fSlow29);
+	float fSlow31 = (float)dsp->fButton0;
+	int iSlow32 = (fSlow31 > 0.0f);
+	float fSlow33 = expf((0.0f - (dsp->fConst12 / ((float)dsp->fHslider5 * (float)getValueDryTapAmpT60((float)iSlow14)))));
+	int iSlow34 = (fSlow31 < 1.0f);
+	float fSlow35 = (0.0f - (fSlow31 + -1.0f));
+	float fSlow36 = (dsp->fConst13 * fSlow35);
+	float fSlow37 = (float)dsp->fHslider6;
+	float fSlow38 = (dsp->fConst15 * fSlow37);
+	float fSlow39 = expf((0.0f - (dsp->fConst16 / fSlow37)));
+	float fSlow40 = (0.200000003f * (float)getValueSustainPedalLevel((float)iSlow14));
+	float fSlow41 = (1.16415322e-10f * fSlow29);
+	float fSlow42 = (0.0f - fSlow28);
+	float fSlow43 = (fSlow26 + (0.0199999996f - fSlow25));
+	float fSlow44 = powf(10.0f, (dsp->fConst11 * (float)getValuer3db((float)iSlow14)));
+	float fSlow45 = (cosf((dsp->fConst17 * (fSlow13 * (float)getValueThirdPartialFactor((float)iSlow14)))) * (0.0f - (2.0f * fSlow44)));
+	float fSlow46 = Piano_faustpower2_f(fSlow44);
+	float fSlow47 = powf(10.0f, (dsp->fConst11 * (float)getValuer2db((float)iSlow14)));
+	float fSlow48 = (cosf((dsp->fConst17 * (fSlow13 * (float)getValueSecondPartialFactor((float)iSlow14)))) * (0.0f - (2.0f * fSlow47)));
+	float fSlow49 = Piano_faustpower2_f(fSlow47);
+	float fSlow50 = cosf((dsp->fConst17 * fSlow13));
+	float fSlow51 = (fSlow50 * (0.0f - (2.0f * fSlow18)));
+	float fSlow52 = (0.0f - (2.0f * ((fSlow17 * fSlow18) + (fSlow20 * fSlow22))));
+	float fSlow53 = (0.0f - (2.0f * fSlow20));
+	float fSlow54 = (float)dsp->fHslider7;
+	float fSlow55 = (float)getValueStiffnessCoefficient((float)iSlow14);
+	float fSlow56 = (13.6899996f * (Piano_faustpower2_f(fSlow54) * Piano_faustpower2_f(fSlow55)));
+	float fSlow57 = (fSlow56 + -1.0f);
+	float fSlow58 = (5.0f * ((float)dsp->fHslider8 * (float)getValueDetuningHz((float)iSlow14)));
+	float fSlow59 = (fSlow13 + fSlow58);
+	float fSlow60 = (dsp->fConst17 * fSlow59);
+	float fSlow61 = sinf(fSlow60);
+	float fSlow62 = (fSlow54 * fSlow55);
+	float fSlow63 = (7.4000001f * fSlow62);
+	float fSlow64 = (fSlow56 + 1.0f);
+	float fSlow65 = cosf(fSlow60);
+	float fSlow66 = (3.0f * atan2f((fSlow57 * fSlow61), (fSlow63 + (fSlow64 * fSlow65))));
+	float fSlow67 = powf(10.0f, (0.0500000007f * ((float)getValueSingleStringDecayRate((float)iSlow14) / fSlow13)));
+	float fSlow68 = (float)getValueSingleStringZero((float)iSlow14);
+	float fSlow69 = (float)getValueSingleStringPole((float)iSlow14);
+	float fSlow70 = (1.0f - fSlow69);
+	float fSlow71 = ((fSlow67 * fSlow68) * fSlow70);
+	float fSlow72 = (1.0f - fSlow68);
+	float fSlow73 = (fSlow69 * fSlow72);
+	float fSlow74 = (3.0f * fSlow73);
+	float fSlow75 = (fSlow71 - fSlow74);
+	float fSlow76 = (fSlow73 - fSlow71);
+	float fSlow77 = (4.0f * fSlow76);
+	float fSlow78 = (fSlow75 + fSlow77);
+	float fSlow79 = (fSlow67 * fSlow70);
+	float fSlow80 = ((3.0f * fSlow72) - fSlow79);
+	float fSlow81 = (((fSlow65 * fSlow75) / fSlow80) + 1.0f);
+	float fSlow82 = ((fSlow68 + fSlow79) + -1.0f);
+	float fSlow83 = (4.0f * fSlow82);
+	float fSlow84 = (((fSlow83 + (fSlow65 * fSlow78)) / fSlow80) + 1.0f);
+	float fSlow85 = (Piano_faustpower2_f(fSlow61) * fSlow75);
+	float fSlow86 = Piano_faustpower2_f(fSlow80);
+	float fSlow87 = (dsp->fConst18 * (((fSlow66 + atan2f((((0.0f - ((fSlow61 * fSlow78) / fSlow80)) * fSlow81) + (((fSlow61 * fSlow75) * fSlow84) / fSlow80)), ((fSlow81 * fSlow84) + ((fSlow85 * fSlow78) / fSlow86)))) + 6.28318548f) / fSlow59));
+	float fSlow88 = floorf(fSlow87);
+	float fSlow89 = (fSlow88 + (1.0f - fSlow87));
+	float fSlow90 = (0.00100000005f * ((0.999599993f * fSlow31) + (0.899999976f * (fSlow35 * (float)getValueReleaseLoopGain((float)iSlow14)))));
+	float fSlow91 = (1.39698386e-09f * (fSlow27 * (float)(iSlow14 < 88)));
+	float fSlow92 = (3.70000005f * fSlow62);
+	float fSlow93 = ((fSlow71 + fSlow77) - fSlow74);
+	float fSlow94 = (((fSlow83 + (fSlow65 * fSlow93)) / fSlow80) + 1.0f);
+	int iSlow95 = (int)(dsp->fConst18 * (((fSlow66 + atan2f(((fSlow61 * ((fSlow75 * fSlow94) - (fSlow93 * fSlow81))) / fSlow80), ((fSlow81 * fSlow94) + ((fSlow85 * fSlow93) / fSlow86)))) + 6.28318548f) / fSlow59));
+	int iSlow96 = min(4097, max(0, iSlow95));
+	float fSlow97 = (1.0f / fSlow80);
+	float fSlow98 = (fSlow13 - fSlow58);
+	float fSlow99 = (dsp->fConst17 * fSlow98);
+	float fSlow100 = sinf(fSlow99);
+	float fSlow101 = cosf(fSlow99);
+	float fSlow102 = (3.0f * atan2f((fSlow57 * fSlow100), (fSlow63 + (fSlow64 * fSlow101))));
+	float fSlow103 = (((fSlow101 * fSlow75) / fSlow80) + 1.0f);
+	float fSlow104 = ((((fSlow101 * fSlow78) + fSlow83) / fSlow80) + 1.0f);
+	float fSlow105 = (Piano_faustpower2_f(fSlow100) * fSlow75);
+	float fSlow106 = (dsp->fConst18 * (((fSlow102 + atan2f((((0.0f - ((fSlow100 * fSlow78) / fSlow80)) * fSlow103) + (((fSlow100 * fSlow75) * fSlow104) / fSlow80)), ((fSlow103 * fSlow104) + ((fSlow105 * fSlow78) / fSlow86)))) + 6.28318548f) / fSlow98));
+	float fSlow107 = floorf(fSlow106);
+	float fSlow108 = (fSlow107 + (1.0f - fSlow106));
+	float fSlow109 = (((fSlow83 + (fSlow101 * fSlow93)) / fSlow80) + 1.0f);
+	int iSlow110 = (int)(dsp->fConst18 * (((fSlow102 + atan2f((0.0f - ((fSlow100 * ((fSlow103 * fSlow93) - (fSlow75 * fSlow109))) / fSlow80)), ((fSlow103 * fSlow109) + ((fSlow105 * fSlow93) / fSlow86)))) + 6.28318548f) / fSlow98));
+	int iSlow111 = min(4097, max(0, iSlow110));
+	float fSlow112 = (fSlow106 - fSlow107);
+	int iSlow113 = min(4097, max(0, (iSlow110 + 1)));
+	float fSlow114 = (fSlow87 - fSlow88);
+	int iSlow115 = min(4097, max(0, (iSlow95 + 1)));
+	float fSlow116 = (float)getValueEQBandWidthFactor((float)iSlow14);
+	float fSlow117 = (dsp->fConst19 * (Piano_faustpower2_f(fSlow13) * Piano_faustpower2_f(fSlow116)));
+	float fSlow118 = (0.0f - (0.5f * (fSlow117 + -1.0f)));
+	float fSlow119 = (float)getValueEQGain((float)iSlow14);
+	float fSlow120 = ((0.0f - (dsp->fConst20 * (fSlow13 * fSlow116))) * cosf((dsp->fConst17 * (fSlow13 / (float)getValueStrikePosition((float)iSlow14)))));
+	float fSlow121 = expf((dsp->fConst25 / fSlow0));
+	float fSlow122 = Piano_faustpower2_f(fSlow121);
+	float fSlow123 = (1.0f - (dsp->fConst1 * fSlow122));
+	float fSlow124 = (1.0f - fSlow122);
+	float fSlow125 = (fSlow123 / fSlow124);
+	float fSlow126 = sqrtf(fmaxf(0.0f, ((Piano_faustpower2_f(fSlow123) / Piano_faustpower2_f(fSlow124)) + -1.0f)));
+	float fSlow127 = (fSlow125 - fSlow126);
+	float fSlow128 = (fSlow121 * (fSlow126 + (1.0f - fSlow125)));
+	float fSlow129 = ((expf((dsp->fConst26 / fSlow0)) / fSlow121) + -1.0f);
+	float fSlow130 = expf((dsp->fConst32 / fSlow0));
+	float fSlow131 = Piano_faustpower2_f(fSlow130);
+	float fSlow132 = (1.0f - (dsp->fConst1 * fSlow131));
+	float fSlow133 = (1.0f - fSlow131);
+	float fSlow134 = (fSlow132 / fSlow133);
+	float fSlow135 = sqrtf(fmaxf(0.0f, ((Piano_faustpower2_f(fSlow132) / Piano_faustpower2_f(fSlow133)) + -1.0f)));
+	float fSlow136 = (fSlow134 - fSlow135);
+	float fSlow137 = (fSlow130 * (fSlow135 + (1.0f - fSlow134)));
+	float fSlow138 = ((expf((dsp->fConst33 / fSlow0)) / fSlow130) + -1.0f);
+	float fSlow139 = (12.0f * fSlow10);
+	int iSlow140 = (int)fminf(4096.0f, fmaxf(0.0f, (dsp->fConst36 * ((float)dsp->fHslider9 / fSlow13))));
+	float fSlow141 = expf((dsp->fConst40 / fSlow0));
+	float fSlow142 = Piano_faustpower2_f(fSlow141);
+	float fSlow143 = (1.0f - (dsp->fConst1 * fSlow142));
+	float fSlow144 = (1.0f - fSlow142);
+	float fSlow145 = (fSlow143 / fSlow144);
+	float fSlow146 = sqrtf(fmaxf(0.0f, ((Piano_faustpower2_f(fSlow143) / Piano_faustpower2_f(fSlow144)) + -1.0f)));
+	float fSlow147 = (fSlow145 - fSlow146);
+	float fSlow148 = (fSlow141 * (fSlow146 + (1.0f - fSlow145)));
+	float fSlow149 = ((expf((dsp->fConst41 / fSlow0)) / fSlow141) + -1.0f);
+	float fSlow150 = expf((dsp->fConst47 / fSlow0));
+	float fSlow151 = Piano_faustpower2_f(fSlow150);
+	float fSlow152 = (1.0f - (dsp->fConst1 * fSlow151));
+	float fSlow153 = (1.0f - fSlow151);
+	float fSlow154 = (fSlow152 / fSlow153);
+	float fSlow155 = sqrtf(fmaxf(0.0f, ((Piano_faustpower2_f(fSlow152) / Piano_faustpower2_f(fSlow153)) + -1.0f)));
+	float fSlow156 = (fSlow154 - fSlow155);
+	float fSlow157 = (fSlow150 * (fSlow155 + (1.0f - fSlow154)));
+	float fSlow158 = ((expf((dsp->fConst48 / fSlow0)) / fSlow150) + -1.0f);
+	float fSlow159 = expf((dsp->fConst54 / fSlow0));
+	float fSlow160 = Piano_faustpower2_f(fSlow159);
+	float fSlow161 = (1.0f - (dsp->fConst1 * fSlow160));
+	float fSlow162 = (1.0f - fSlow160);
+	float fSlow163 = (fSlow161 / fSlow162);
+	float fSlow164 = sqrtf(fmaxf(0.0f, ((Piano_faustpower2_f(fSlow161) / Piano_faustpower2_f(fSlow162)) + -1.0f)));
+	float fSlow165 = (fSlow163 - fSlow164);
+	float fSlow166 = (fSlow159 * (fSlow164 + (1.0f - fSlow163)));
+	float fSlow167 = ((expf((dsp->fConst55 / fSlow0)) / fSlow159) + -1.0f);
+	float fSlow168 = expf((dsp->fConst61 / fSlow0));
+	float fSlow169 = Piano_faustpower2_f(fSlow168);
+	float fSlow170 = (1.0f - (dsp->fConst1 * fSlow169));
+	float fSlow171 = (1.0f - fSlow169);
+	float fSlow172 = (fSlow170 / fSlow171);
+	float fSlow173 = sqrtf(fmaxf(0.0f, ((Piano_faustpower2_f(fSlow170) / Piano_faustpower2_f(fSlow171)) + -1.0f)));
+	float fSlow174 = (fSlow172 - fSlow173);
+	float fSlow175 = (fSlow168 * (fSlow173 + (1.0f - fSlow172)));
+	float fSlow176 = ((expf((dsp->fConst62 / fSlow0)) / fSlow168) + -1.0f);
+	float fSlow177 = expf((dsp->fConst68 / fSlow0));
+	float fSlow178 = Piano_faustpower2_f(fSlow177);
+	float fSlow179 = (1.0f - (dsp->fConst1 * fSlow178));
+	float fSlow180 = (1.0f - fSlow178);
+	float fSlow181 = (fSlow179 / fSlow180);
+	float fSlow182 = sqrtf(fmaxf(0.0f, ((Piano_faustpower2_f(fSlow179) / Piano_faustpower2_f(fSlow180)) + -1.0f)));
+	float fSlow183 = (fSlow181 - fSlow182);
+	float fSlow184 = (fSlow177 * (fSlow182 + (1.0f - fSlow181)));
+	float fSlow185 = ((expf((dsp->fConst69 / fSlow0)) / fSlow177) + -1.0f);
 	/* C99 loop */
 	{
 		int i;
 		for (i = 0; (i < count); i = (i + 1)) {
-			dsp->fRec11[0] = (0.0f - (dsp->fConst7 * ((dsp->fConst8 * dsp->fRec11[1]) - (dsp->fRec2[1] + dsp->fRec2[2]))));
-			dsp->fRec10[0] = ((fSlow7 * dsp->fRec10[1]) + (fSlow8 * (dsp->fRec2[1] + (fSlow9 * dsp->fRec11[0]))));
+			dsp->fRec11[0] = (0.0f - (dsp->fConst7 * ((dsp->fConst8 * dsp->fRec11[1]) - (dsp->fRec6[1] + dsp->fRec6[2]))));
+			dsp->fRec10[0] = ((fSlow7 * dsp->fRec10[1]) + (fSlow8 * (dsp->fRec6[1] + (fSlow9 * dsp->fRec11[0]))));
 			dsp->fVec0[(dsp->IOTA & 16383)] = ((0.353553385f * dsp->fRec10[0]) + 9.99999968e-21f);
 			dsp->fRec12[0] = (fSlow12 + (0.999000013f * dsp->fRec12[1]));
 			dsp->iRec23[0] = ((1103515245 * dsp->iRec23[1]) + 12345);
-			dsp->fRec25[0] = ((fSlow25 * dsp->fRec25[1]) + 1.0f);
+			dsp->fRec25[0] = ((fSlow31 * dsp->fRec25[1]) + 1.0f);
 			float fTemp0 = (dsp->fRec25[0] + -1.0f);
-			float fTemp1 = (float)((fTemp0 < 2.0f) & iSlow26);
-			float fTemp2 = ((0.0301973838f * fTemp1) + (fSlow27 * (float)((fTemp0 >= 2.0f) | iSlow28)));
+			float fTemp1 = (float)((fTemp0 < 2.0f) & iSlow32);
+			float fTemp2 = ((0.0301973838f * fTemp1) + (fSlow33 * (float)((fTemp0 >= 2.0f) | iSlow34)));
 			dsp->fRec24[0] = ((dsp->fRec24[1] * fTemp2) + (0.150000006f * (fTemp1 * (1.0f - fTemp2))));
-			int iTemp3 = (fTemp0 < fSlow32);
-			float fTemp4 = (fSlow25 * ((dsp->fConst13 * (float)(fTemp0 >= fSlow32)) + (fSlow33 * (float)iTemp3)));
-			dsp->fRec26[0] = ((dsp->fRec26[1] * (fSlow30 + fTemp4)) + (fSlow34 * (((1.0f - fTemp4) - fSlow30) * (float)(iTemp3 & iSlow26))));
+			int iTemp3 = (fTemp0 < fSlow38);
+			float fTemp4 = (fSlow31 * ((dsp->fConst14 * (float)(fTemp0 >= fSlow38)) + (fSlow39 * (float)iTemp3)));
+			dsp->fRec26[0] = ((dsp->fRec26[1] * (fSlow36 + fTemp4)) + (fSlow40 * (((1.0f - fTemp4) - fSlow36) * (float)(iTemp3 & iSlow32))));
 			float fTemp5 = ((float)dsp->iRec23[0] * (dsp->fRec24[0] + dsp->fRec26[0]));
-			dsp->fVec1[0] = (fSlow24 * fTemp5);
-			float fTemp6 = (0.0f - ((0.5f * dsp->fVec1[1]) + (fSlow35 * fTemp5)));
+			dsp->fVec1[0] = (fSlow30 * fTemp5);
+			float fTemp6 = (0.0f - ((0.5f * dsp->fVec1[1]) + (fSlow41 * fTemp5)));
 			dsp->fVec2[0] = fTemp6;
-			dsp->fRec22[0] = (((fSlow22 * fTemp6) + (fSlow36 * dsp->fVec2[1])) - (fSlow15 * dsp->fRec22[1]));
-			dsp->fRec21[0] = ((fSlow21 * dsp->fRec22[0]) + (fSlow37 * dsp->fRec21[1]));
-			dsp->fRec20[0] = ((fSlow21 * dsp->fRec21[0]) + (fSlow37 * dsp->fRec20[1]));
-			dsp->fRec19[0] = ((fSlow21 * dsp->fRec20[0]) + (fSlow37 * dsp->fRec19[1]));
-			dsp->fRec18[0] = ((fSlow21 * dsp->fRec19[0]) + (fSlow37 * dsp->fRec18[1]));
-			dsp->fRec17[0] = ((fSlow17 * (dsp->fRec18[0] - dsp->fRec18[1])) - ((fSlow39 * dsp->fRec17[1]) + (fSlow40 * dsp->fRec17[2])));
-			dsp->fRec16[0] = ((fSlow18 * dsp->fRec17[0]) - ((fSlow42 * dsp->fRec16[1]) + (fSlow43 * dsp->fRec16[2])));
-			dsp->fRec15[0] = (dsp->fRec16[0] - ((fSlow46 * dsp->fRec15[1]) + (fSlow47 * dsp->fRec15[2])));
-			dsp->fRec14[0] = ((dsp->fRec15[0] + ((fSlow52 * dsp->fRec15[2]) + (fSlow44 * ((fSlow53 * dsp->fRec15[1]) - (fSlow54 * dsp->fRec14[1]))))) - (fSlow50 * dsp->fRec14[2]));
+			dsp->fRec22[0] = (((fSlow28 * fTemp6) + (fSlow42 * dsp->fVec2[1])) - (fSlow15 * dsp->fRec22[1]));
+			dsp->fRec21[0] = ((fSlow27 * dsp->fRec22[0]) + (fSlow43 * dsp->fRec21[1]));
+			dsp->fRec20[0] = ((fSlow27 * dsp->fRec21[0]) + (fSlow43 * dsp->fRec20[1]));
+			dsp->fRec19[0] = ((fSlow27 * dsp->fRec20[0]) + (fSlow43 * dsp->fRec19[1]));
+			dsp->fRec18[0] = ((fSlow27 * dsp->fRec19[0]) + (fSlow43 * dsp->fRec18[1]));
+			dsp->fRec17[0] = ((fSlow24 * (0.0f - (0.5f * (dsp->fRec18[1] - dsp->fRec18[0])))) - ((fSlow45 * dsp->fRec17[1]) + (fSlow46 * dsp->fRec17[2])));
+			dsp->fRec16[0] = ((fSlow24 * dsp->fRec17[0]) - ((fSlow48 * dsp->fRec16[1]) + (fSlow49 * dsp->fRec16[2])));
+			dsp->fRec15[0] = (dsp->fRec16[0] - ((fSlow51 * dsp->fRec15[1]) + (fSlow19 * dsp->fRec15[2])));
+			dsp->fRec14[0] = (((fSlow23 * dsp->fRec15[2]) + (dsp->fRec15[0] + (fSlow50 * ((fSlow52 * dsp->fRec15[1]) - (fSlow53 * dsp->fRec14[1]))))) - (fSlow21 * dsp->fRec14[2]));
 			dsp->fRec13[0] = ((fSlow16 * dsp->fRec14[0]) - (fSlow15 * dsp->fRec13[1]));
-			dsp->fRec33[0] = (fSlow91 + (0.999000013f * dsp->fRec33[1]));
-			dsp->fRec38[0] = ((fSlow92 * fTemp5) + (fSlow37 * dsp->fRec38[1]));
-			dsp->fRec37[0] = ((fSlow21 * dsp->fRec38[0]) + (fSlow37 * dsp->fRec37[1]));
-			dsp->fRec36[0] = ((fSlow21 * dsp->fRec37[0]) + (fSlow37 * dsp->fRec36[1]));
-			dsp->fRec35[0] = ((fSlow21 * dsp->fRec36[0]) + (fSlow37 * dsp->fRec35[1]));
-			dsp->fRec34[0] = (((fSlow22 * dsp->fRec35[0]) + (fSlow36 * dsp->fRec35[1])) - (fSlow15 * dsp->fRec34[1]));
+			dsp->fRec33[0] = (fSlow90 + (0.999000013f * dsp->fRec33[1]));
+			dsp->fRec38[0] = ((fSlow91 * fTemp5) + (fSlow43 * dsp->fRec38[1]));
+			dsp->fRec37[0] = ((fSlow27 * dsp->fRec38[0]) + (fSlow43 * dsp->fRec37[1]));
+			dsp->fRec36[0] = ((fSlow27 * dsp->fRec37[0]) + (fSlow43 * dsp->fRec36[1]));
+			dsp->fRec35[0] = ((fSlow27 * dsp->fRec36[0]) + (fSlow43 * dsp->fRec35[1]));
+			dsp->fRec34[0] = (((fSlow28 * dsp->fRec35[0]) + (fSlow42 * dsp->fRec35[1])) - (fSlow15 * dsp->fRec34[1]));
 			float fTemp7 = (dsp->fRec33[0] * (dsp->fRec34[0] + dsp->fRec27[1]));
 			dsp->fVec3[0] = fTemp7;
-			dsp->fRec32[0] = (dsp->fVec3[1] - (fSlow93 * (dsp->fRec32[1] - fTemp7)));
-			dsp->fRec31[0] = (dsp->fRec32[1] - (fSlow93 * (dsp->fRec31[1] - dsp->fRec32[0])));
-			dsp->fRec30[(dsp->IOTA & 8191)] = (dsp->fRec31[1] + (fSlow93 * (dsp->fRec31[0] - dsp->fRec30[((dsp->IOTA - 1) & 8191)])));
-			float fTemp8 = (fSlow90 * dsp->fRec30[((dsp->IOTA - iSlow97) & 8191)]);
+			dsp->fRec32[0] = (dsp->fVec3[1] - (fSlow92 * (dsp->fRec32[1] - fTemp7)));
+			dsp->fRec31[0] = (dsp->fRec32[1] + (fSlow92 * (dsp->fRec32[0] - dsp->fRec31[1])));
+			dsp->fRec30[(dsp->IOTA & 8191)] = (dsp->fRec31[1] + (fSlow92 * (dsp->fRec31[0] - dsp->fRec30[((dsp->IOTA - 1) & 8191)])));
+			float fTemp8 = (fSlow89 * dsp->fRec30[((dsp->IOTA - iSlow96) & 8191)]);
 			float fTemp9 = (dsp->fRec34[0] + (dsp->fRec33[0] * dsp->fRec28[1]));
 			dsp->fVec4[0] = fTemp9;
-			dsp->fRec42[0] = (dsp->fVec4[1] - (fSlow93 * (dsp->fRec42[1] - fTemp9)));
-			dsp->fRec41[0] = (dsp->fRec42[1] - (fSlow93 * (dsp->fRec41[1] - dsp->fRec42[0])));
-			dsp->fRec40[(dsp->IOTA & 8191)] = (dsp->fRec41[1] - (fSlow93 * (dsp->fRec40[((dsp->IOTA - 1) & 8191)] - dsp->fRec41[0])));
-			float fTemp10 = (fSlow109 * dsp->fRec40[((dsp->IOTA - iSlow112) & 8191)]);
-			float fTemp11 = (fSlow113 * dsp->fRec40[((dsp->IOTA - iSlow114) & 8191)]);
-			float fTemp12 = (fSlow115 * dsp->fRec30[((dsp->IOTA - iSlow116) & 8191)]);
-			float fTemp13 = (fTemp8 + (fTemp10 + (fTemp11 + fTemp12)));
-			dsp->fVec5[0] = fTemp13;
-			dsp->fRec39[0] = (fSlow98 * ((2.0f * ((fSlow83 * fTemp13) + (fSlow77 * dsp->fVec5[1]))) - (fSlow76 * dsp->fRec39[1])));
-			dsp->fRec27[0] = (fTemp8 + (dsp->fRec39[0] + fTemp12));
-			dsp->fRec28[0] = (fTemp10 + (dsp->fRec39[0] + fTemp11));
-			float fRec29 = fTemp13;
-			dsp->fRec43[0] = ((fSlow120 * fRec29) - ((fSlow121 * dsp->fRec43[1]) + (fSlow118 * dsp->fRec43[2])));
-			float fTemp14 = (dsp->fRec13[0] + (fRec29 + (fSlow119 * (dsp->fRec43[0] - dsp->fRec43[2]))));
-			dsp->fVec6[(dsp->IOTA & 8191)] = fTemp14;
-			dsp->fVec7[(dsp->IOTA & 4095)] = (fSlow11 * (dsp->fRec12[0] * fTemp14));
-			float fTemp15 = (0.300000012f * dsp->fVec7[((dsp->IOTA - dsp->iConst21) & 4095)]);
-			float fTemp16 = (dsp->fVec0[((dsp->IOTA - dsp->iConst10) & 16383)] - (fTemp15 + (0.600000024f * dsp->fRec8[1])));
-			dsp->fVec8[(dsp->IOTA & 4095)] = fTemp16;
-			dsp->fRec8[0] = dsp->fVec8[((dsp->IOTA - dsp->iConst22) & 4095)];
-			float fRec9 = (0.600000024f * fTemp16);
+			dsp->fRec42[0] = (dsp->fVec4[1] + (fSlow92 * (fTemp9 - dsp->fRec42[1])));
+			dsp->fRec41[0] = (dsp->fRec42[1] + (fSlow92 * (dsp->fRec42[0] - dsp->fRec41[1])));
+			dsp->fRec40[(dsp->IOTA & 8191)] = (dsp->fRec41[1] + (fSlow92 * (dsp->fRec41[0] - dsp->fRec40[((dsp->IOTA - 1) & 8191)])));
+			float fTemp10 = ((fSlow108 * dsp->fRec40[((dsp->IOTA - iSlow111) & 8191)]) + (fSlow112 * dsp->fRec40[((dsp->IOTA - iSlow113) & 8191)]));
+			float fTemp11 = (fSlow114 * dsp->fRec30[((dsp->IOTA - iSlow115) & 8191)]);
+			float fTemp12 = (fTemp8 + (fTemp10 + fTemp11));
+			dsp->fVec5[0] = fTemp12;
+			dsp->fRec39[0] = (fSlow97 * ((2.0f * ((fSlow76 * dsp->fVec5[1]) + (fSlow82 * fTemp12))) - (fSlow75 * dsp->fRec39[1])));
+			dsp->fRec27[0] = (fTemp8 + (dsp->fRec39[0] + fTemp11));
+			dsp->fRec28[0] = (dsp->fRec39[0] + fTemp10);
+			float fRec29 = fTemp12;
+			dsp->fRec43[0] = ((fSlow119 * fRec29) - ((fSlow120 * dsp->fRec43[1]) + (fSlow117 * dsp->fRec43[2])));
+			float fTemp13 = (dsp->fRec13[0] + (fRec29 + (fSlow118 * (dsp->fRec43[0] - dsp->fRec43[2]))));
+			dsp->fVec6[(dsp->IOTA & 8191)] = fTemp13;
+			dsp->fVec7[(dsp->IOTA & 4095)] = (fSlow11 * (dsp->fRec12[0] * fTemp13));
+			float fTemp14 = (0.300000012f * dsp->fVec7[((dsp->IOTA - dsp->iConst21) & 4095)]);
+			float fTemp15 = (dsp->fVec0[((dsp->IOTA - dsp->iConst10) & 16383)] - (fTemp14 + (0.600000024f * dsp->fRec8[1])));
+			dsp->fVec8[(dsp->IOTA & 2047)] = fTemp15;
+			dsp->fRec8[0] = dsp->fVec8[((dsp->IOTA - dsp->iConst22) & 2047)];
+			float fRec9 = (0.600000024f * fTemp15);
 			dsp->fRec47[0] = (dsp->fConst7 * ((dsp->fRec4[1] + dsp->fRec4[2]) - (dsp->fConst8 * dsp->fRec47[1])));
-			dsp->fRec46[0] = ((fSlow128 * dsp->fRec46[1]) + (fSlow129 * (dsp->fRec4[1] + (fSlow130 * dsp->fRec47[0]))));
+			dsp->fRec46[0] = ((fSlow127 * dsp->fRec46[1]) + (fSlow128 * (dsp->fRec4[1] + (fSlow129 * dsp->fRec47[0]))));
 			dsp->fVec9[(dsp->IOTA & 16383)] = ((0.353553385f * dsp->fRec46[0]) + 9.99999968e-21f);
-			float fTemp17 = ((fTemp15 + dsp->fVec9[((dsp->IOTA - dsp->iConst28) & 16383)]) - (0.600000024f * dsp->fRec44[1]));
-			dsp->fVec10[(dsp->IOTA & 4095)] = fTemp17;
+			float fTemp16 = ((fTemp14 + dsp->fVec9[((dsp->IOTA - dsp->iConst28) & 16383)]) - (0.600000024f * dsp->fRec44[1]));
+			dsp->fVec10[(dsp->IOTA & 4095)] = fTemp16;
 			dsp->fRec44[0] = dsp->fVec10[((dsp->IOTA - dsp->iConst29) & 4095)];
-			float fRec45 = (0.600000024f * fTemp17);
-			dsp->fRec51[0] = (dsp->fConst7 * ((dsp->fRec0[1] + dsp->fRec0[2]) - (dsp->fConst8 * dsp->fRec51[1])));
-			dsp->fRec50[0] = ((fSlow137 * dsp->fRec50[1]) + (fSlow138 * (dsp->fRec0[1] + (fSlow139 * dsp->fRec51[0]))));
-			dsp->fVec11[(dsp->IOTA & 16383)] = ((0.353553385f * dsp->fRec50[0]) + 9.99999968e-21f);
-			float fTemp18 = ((dsp->fVec11[((dsp->IOTA - dsp->iConst35) & 16383)] + fTemp15) - (0.600000024f * dsp->fRec48[1]));
-			dsp->fVec12[(dsp->IOTA & 2047)] = fTemp18;
-			dsp->fRec48[0] = dsp->fVec12[((dsp->IOTA - dsp->iConst36) & 2047)];
-			float fRec49 = (0.600000024f * fTemp18);
-			dsp->fRec55[0] = (dsp->fConst7 * ((dsp->fRec3[1] + dsp->fRec3[2]) - (dsp->fConst8 * dsp->fRec55[1])));
-			dsp->fRec54[0] = ((fSlow146 * dsp->fRec54[1]) + (fSlow147 * (dsp->fRec3[1] + (fSlow148 * dsp->fRec55[0]))));
-			dsp->fVec13[(dsp->IOTA & 32767)] = ((0.353553385f * dsp->fRec54[0]) + 9.99999968e-21f);
-			float fTemp19 = dsp->fVec6[((dsp->IOTA - iSlow150) & 8191)];
-			dsp->fVec14[(dsp->IOTA & 4095)] = (fSlow149 * (dsp->fRec12[0] * fTemp19));
-			float fTemp20 = (0.300000012f * dsp->fVec14[((dsp->IOTA - dsp->iConst21) & 4095)]);
-			float fTemp21 = (((0.600000024f * dsp->fRec52[1]) + dsp->fVec13[((dsp->IOTA - dsp->iConst42) & 32767)]) - fTemp20);
-			dsp->fVec15[(dsp->IOTA & 4095)] = fTemp21;
+			float fRec45 = (0.600000024f * fTemp16);
+			dsp->fRec51[0] = (dsp->fConst7 * ((dsp->fRec7[1] + dsp->fRec7[2]) - (dsp->fConst8 * dsp->fRec51[1])));
+			dsp->fRec50[0] = ((fSlow136 * dsp->fRec50[1]) + (fSlow137 * (dsp->fRec7[1] + (fSlow138 * dsp->fRec51[0]))));
+			dsp->fVec11[(dsp->IOTA & 32767)] = ((0.353553385f * dsp->fRec50[0]) + 9.99999968e-21f);
+			float fTemp17 = dsp->fVec6[((dsp->IOTA - iSlow140) & 8191)];
+			dsp->fVec12[(dsp->IOTA & 4095)] = (fSlow139 * (dsp->fRec12[0] * fTemp17));
+			float fTemp18 = (0.300000012f * dsp->fVec12[((dsp->IOTA - dsp->iConst21) & 4095)]);
+			float fTemp19 = (((0.600000024f * dsp->fRec48[1]) + dsp->fVec11[((dsp->IOTA - dsp->iConst35) & 32767)]) - fTemp18);
+			dsp->fVec13[(dsp->IOTA & 2047)] = fTemp19;
+			dsp->fRec48[0] = dsp->fVec13[((dsp->IOTA - dsp->iConst37) & 2047)];
+			float fRec49 = (0.0f - (0.600000024f * fTemp19));
+			dsp->fRec55[0] = (0.0f - (dsp->fConst7 * ((dsp->fConst8 * dsp->fRec55[1]) - (dsp->fRec3[1] + dsp->fRec3[2]))));
+			dsp->fRec54[0] = ((fSlow147 * dsp->fRec54[1]) + (fSlow148 * (dsp->fRec3[1] + (fSlow149 * dsp->fRec55[0]))));
+			dsp->fVec14[(dsp->IOTA & 32767)] = ((0.353553385f * dsp->fRec54[0]) + 9.99999968e-21f);
+			float fTemp20 = (((0.600000024f * dsp->fRec52[1]) + dsp->fVec14[((dsp->IOTA - dsp->iConst43) & 32767)]) - fTemp18);
+			dsp->fVec15[(dsp->IOTA & 4095)] = fTemp20;
 			dsp->fRec52[0] = dsp->fVec15[((dsp->IOTA - dsp->iConst44) & 4095)];
-			float fRec53 = (0.0f - (0.600000024f * fTemp21));
-			dsp->fRec59[0] = (dsp->fConst7 * ((dsp->fRec7[1] + dsp->fRec7[2]) - (dsp->fConst8 * dsp->fRec59[1])));
-			dsp->fRec58[0] = ((fSlow157 * dsp->fRec58[1]) + (fSlow158 * (dsp->fRec7[1] + (fSlow159 * dsp->fRec59[0]))));
+			float fRec53 = (0.0f - (0.600000024f * fTemp20));
+			dsp->fRec59[0] = (0.0f - (dsp->fConst7 * ((dsp->fConst8 * dsp->fRec59[1]) - (dsp->fRec1[1] + dsp->fRec1[2]))));
+			dsp->fRec58[0] = ((fSlow156 * dsp->fRec58[1]) + (fSlow157 * (dsp->fRec1[1] + (fSlow158 * dsp->fRec59[0]))));
 			dsp->fVec16[(dsp->IOTA & 32767)] = ((0.353553385f * dsp->fRec58[0]) + 9.99999968e-21f);
-			float fTemp22 = (((0.600000024f * dsp->fRec56[1]) + dsp->fVec16[((dsp->IOTA - dsp->iConst50) & 32767)]) - fTemp20);
-			dsp->fVec17[(dsp->IOTA & 2047)] = fTemp22;
-			dsp->fRec56[0] = dsp->fVec17[((dsp->IOTA - dsp->iConst51) & 2047)];
-			float fRec57 = (0.0f - (0.600000024f * fTemp22));
-			dsp->fRec63[0] = (0.0f - (dsp->fConst7 * ((dsp->fConst8 * dsp->fRec63[1]) - (dsp->fRec6[1] + dsp->fRec6[2]))));
-			dsp->fRec62[0] = ((fSlow166 * dsp->fRec62[1]) + (fSlow167 * (dsp->fRec6[1] + (fSlow168 * dsp->fRec63[0]))));
+			float fTemp21 = ((0.600000024f * dsp->fRec56[1]) + (dsp->fVec16[((dsp->IOTA - dsp->iConst50) & 32767)] + fTemp18));
+			dsp->fVec17[(dsp->IOTA & 4095)] = fTemp21;
+			dsp->fRec56[0] = dsp->fVec17[((dsp->IOTA - dsp->iConst51) & 4095)];
+			float fRec57 = (0.0f - (0.600000024f * fTemp21));
+			dsp->fRec63[0] = (0.0f - (dsp->fConst7 * ((dsp->fConst8 * dsp->fRec63[1]) - (dsp->fRec0[1] + dsp->fRec0[2]))));
+			dsp->fRec62[0] = ((fSlow165 * dsp->fRec62[1]) + (fSlow166 * (dsp->fRec0[1] + (fSlow167 * dsp->fRec63[0]))));
 			dsp->fVec18[(dsp->IOTA & 16383)] = ((0.353553385f * dsp->fRec62[0]) + 9.99999968e-21f);
-			float fTemp23 = (dsp->fVec18[((dsp->IOTA - dsp->iConst57) & 16383)] - (fTemp15 + (0.600000024f * dsp->fRec60[1])));
-			dsp->fVec19[(dsp->IOTA & 2047)] = fTemp23;
+			float fTemp22 = ((dsp->fVec18[((dsp->IOTA - dsp->iConst57) & 16383)] + fTemp14) - (0.600000024f * dsp->fRec60[1]));
+			dsp->fVec19[(dsp->IOTA & 2047)] = fTemp22;
 			dsp->fRec60[0] = dsp->fVec19[((dsp->IOTA - dsp->iConst58) & 2047)];
-			float fRec61 = (0.600000024f * fTemp23);
-			dsp->fRec67[0] = (dsp->fConst7 * ((dsp->fRec1[1] + dsp->fRec1[2]) - (dsp->fConst8 * dsp->fRec67[1])));
-			dsp->fRec66[0] = ((fSlow175 * dsp->fRec66[1]) + (fSlow176 * (dsp->fRec1[1] + (fSlow177 * dsp->fRec67[0]))));
-			dsp->fVec20[(dsp->IOTA & 32767)] = ((0.353553385f * dsp->fRec66[0]) + 9.99999968e-21f);
-			float fTemp24 = (dsp->fVec20[((dsp->IOTA - dsp->iConst64) & 32767)] + ((0.600000024f * dsp->fRec64[1]) + fTemp20));
-			dsp->fVec21[(dsp->IOTA & 4095)] = fTemp24;
+			float fRec61 = (0.600000024f * fTemp22);
+			dsp->fRec67[0] = (0.0f - (dsp->fConst7 * ((dsp->fConst8 * dsp->fRec67[1]) - (dsp->fRec2[1] + dsp->fRec2[2]))));
+			dsp->fRec66[0] = ((fSlow174 * dsp->fRec66[1]) + (fSlow175 * (dsp->fRec2[1] + (fSlow176 * dsp->fRec67[0]))));
+			dsp->fVec20[(dsp->IOTA & 16383)] = ((0.353553385f * dsp->fRec66[0]) + 9.99999968e-21f);
+			float fTemp23 = (dsp->fVec20[((dsp->IOTA - dsp->iConst64) & 16383)] - (fTemp14 + (0.600000024f * dsp->fRec64[1])));
+			dsp->fVec21[(dsp->IOTA & 4095)] = fTemp23;
 			dsp->fRec64[0] = dsp->fVec21[((dsp->IOTA - dsp->iConst65) & 4095)];
-			float fRec65 = (0.0f - (0.600000024f * fTemp24));
-			dsp->fRec71[0] = (0.0f - (dsp->fConst7 * ((dsp->fConst8 * dsp->fRec71[1]) - (dsp->fRec5[1] + dsp->fRec5[2]))));
-			dsp->fRec70[0] = ((fSlow184 * dsp->fRec70[1]) + (fSlow185 * (dsp->fRec5[1] + (fSlow186 * dsp->fRec71[0]))));
+			float fRec65 = (0.600000024f * fTemp23);
+			dsp->fRec71[0] = (dsp->fConst7 * ((dsp->fRec5[1] + dsp->fRec5[2]) - (dsp->fConst8 * dsp->fRec71[1])));
+			dsp->fRec70[0] = ((fSlow183 * dsp->fRec70[1]) + (fSlow184 * (dsp->fRec5[1] + (fSlow185 * dsp->fRec71[0]))));
 			dsp->fVec22[(dsp->IOTA & 16383)] = ((0.353553385f * dsp->fRec70[0]) + 9.99999968e-21f);
-			float fTemp25 = (dsp->fVec22[((dsp->IOTA - dsp->iConst71) & 16383)] + (fTemp20 + (0.600000024f * dsp->fRec68[1])));
-			dsp->fVec23[(dsp->IOTA & 4095)] = fTemp25;
+			float fTemp24 = (dsp->fVec22[((dsp->IOTA - dsp->iConst71) & 16383)] + (fTemp18 + (0.600000024f * dsp->fRec68[1])));
+			dsp->fVec23[(dsp->IOTA & 4095)] = fTemp24;
 			dsp->fRec68[0] = dsp->fVec23[((dsp->IOTA - dsp->iConst72) & 4095)];
-			float fRec69 = (0.0f - (0.600000024f * fTemp25));
-			float fTemp26 = (fRec9 + dsp->fRec64[1]);
-			float fTemp27 = (dsp->fRec52[1] + fTemp26);
-			dsp->fRec0[0] = (dsp->fRec8[1] + (fRec45 + (fRec49 + (fRec53 + (dsp->fRec56[1] + (fRec57 + (fRec61 + (dsp->fRec44[1] + (dsp->fRec60[1] + (dsp->fRec48[1] + (fRec65 + (dsp->fRec68[1] + (fRec69 + fTemp27)))))))))))));
-			float fTemp28 = (dsp->fRec64[1] + dsp->fRec52[1]);
-			dsp->fRec1[0] = ((dsp->fRec8[1] + (fRec45 + (fRec49 + (fRec61 + (dsp->fRec44[1] + (dsp->fRec60[1] + (fRec9 + dsp->fRec48[1]))))))) - (fRec53 + (dsp->fRec56[1] + (fRec57 + (fRec65 + (dsp->fRec68[1] + (fRec69 + fTemp28)))))));
-			float fTemp29 = (fRec9 + dsp->fRec52[1]);
-			dsp->fRec2[0] = ((fRec45 + (fRec49 + (dsp->fRec44[1] + (dsp->fRec48[1] + (fRec65 + (dsp->fRec68[1] + (fRec69 + dsp->fRec64[1]))))))) - (dsp->fRec8[1] + (fRec53 + (dsp->fRec56[1] + (fRec57 + (fRec61 + (dsp->fRec60[1] + fTemp29)))))));
-			dsp->fRec3[0] = ((fRec45 + (fRec49 + (fRec53 + (dsp->fRec56[1] + (fRec57 + (dsp->fRec44[1] + (dsp->fRec48[1] + dsp->fRec52[1]))))))) - (dsp->fRec8[1] + (fRec61 + (dsp->fRec60[1] + (fRec65 + (dsp->fRec68[1] + (fRec69 + fTemp26)))))));
-			dsp->fRec4[0] = ((dsp->fRec8[1] + (fRec49 + (fRec53 + (dsp->fRec48[1] + (fRec65 + fTemp27))))) - (fRec45 + (dsp->fRec56[1] + (fRec57 + (fRec61 + (dsp->fRec44[1] + (dsp->fRec60[1] + (fRec69 + dsp->fRec68[1]))))))));
-			dsp->fRec5[0] = ((dsp->fRec8[1] + (fRec49 + (dsp->fRec56[1] + (fRec57 + (dsp->fRec48[1] + (dsp->fRec68[1] + (fRec9 + fRec69))))))) - (fRec45 + (fRec53 + (fRec61 + (dsp->fRec44[1] + (dsp->fRec60[1] + (fRec65 + fTemp28)))))));
-			dsp->fRec6[0] = ((fRec49 + (dsp->fRec56[1] + (fRec57 + (fRec61 + (dsp->fRec60[1] + (dsp->fRec48[1] + (fRec65 + dsp->fRec64[1]))))))) - (dsp->fRec8[1] + (fRec45 + (fRec53 + (dsp->fRec44[1] + (dsp->fRec68[1] + (fRec69 + fTemp29)))))));
-			dsp->fRec7[0] = ((fRec49 + (fRec53 + (fRec61 + (dsp->fRec60[1] + (dsp->fRec48[1] + (dsp->fRec68[1] + (fRec69 + dsp->fRec52[1]))))))) - (dsp->fRec8[1] + (fRec45 + (dsp->fRec56[1] + (fRec57 + (dsp->fRec44[1] + (fRec65 + fTemp26)))))));
-			float fTemp30 = (1.0f - dsp->fRec12[0]);
-			output0[i] = (FAUSTFLOAT)((0.370000005f * (dsp->fRec1[0] + dsp->fRec2[0])) + (fSlow11 * (fTemp30 * fTemp14)));
-			output1[i] = (FAUSTFLOAT)((0.370000005f * (dsp->fRec1[0] - dsp->fRec2[0])) + (fSlow149 * (fTemp30 * fTemp19)));
+			float fRec69 = (0.0f - (0.600000024f * fTemp24));
+			float fTemp25 = (fRec65 + dsp->fRec8[1]);
+			float fTemp26 = (dsp->fRec64[1] + (dsp->fRec68[1] + (fRec57 + (fRec69 + fTemp25))));
+			dsp->fRec0[0] = (fRec9 + (fRec45 + (fRec49 + (dsp->fRec52[1] + (dsp->fRec56[1] + (fRec61 + (dsp->fRec60[1] + (fRec53 + (dsp->fRec48[1] + (dsp->fRec44[1] + fTemp26))))))))));
+			float fTemp27 = (dsp->fRec64[1] + fTemp25);
+			float fTemp28 = (dsp->fRec68[1] + (fRec57 + fRec69));
+			dsp->fRec1[0] = ((fRec9 + (fRec45 + (fRec61 + (dsp->fRec60[1] + (dsp->fRec44[1] + fTemp27))))) - (fRec49 + (dsp->fRec52[1] + (dsp->fRec56[1] + (fRec53 + (fTemp28 + dsp->fRec48[1]))))));
+			dsp->fRec2[0] = ((fRec45 + (dsp->fRec56[1] + (fRec61 + (dsp->fRec60[1] + (dsp->fRec44[1] + fTemp28))))) - (fRec9 + (fRec49 + (dsp->fRec52[1] + (fRec53 + (fTemp27 + dsp->fRec48[1]))))));
+			dsp->fRec3[0] = ((fRec45 + (fRec49 + (dsp->fRec52[1] + (fRec61 + (dsp->fRec60[1] + (fRec53 + (dsp->fRec44[1] + dsp->fRec48[1]))))))) - (fRec9 + (dsp->fRec56[1] + fTemp26)));
+			float fTemp29 = (dsp->fRec64[1] + (fRec65 + fRec57));
+			float fTemp30 = (dsp->fRec68[1] + (fRec69 + dsp->fRec8[1]));
+			dsp->fRec4[0] = ((dsp->fRec52[1] + (dsp->fRec56[1] + (fRec61 + (dsp->fRec60[1] + (fRec53 + fTemp29))))) - (fRec9 + (fRec45 + (fRec49 + (dsp->fRec48[1] + (dsp->fRec44[1] + fTemp30))))));
+			float fTemp31 = (dsp->fRec64[1] + (dsp->fRec68[1] + (fRec65 + fRec69)));
+			float fTemp32 = (fRec57 + dsp->fRec8[1]);
+			dsp->fRec5[0] = ((fRec49 + (fRec61 + (dsp->fRec60[1] + (dsp->fRec48[1] + fTemp31)))) - (fRec9 + (fRec45 + (dsp->fRec52[1] + (dsp->fRec56[1] + (fRec53 + (dsp->fRec44[1] + fTemp32)))))));
+			dsp->fRec6[0] = ((fRec9 + (fRec49 + (dsp->fRec56[1] + (fRec61 + (dsp->fRec60[1] + (dsp->fRec48[1] + fTemp32)))))) - (fRec45 + (dsp->fRec52[1] + (fRec53 + (dsp->fRec44[1] + fTemp31)))));
+			dsp->fRec7[0] = ((fRec9 + (dsp->fRec52[1] + (fRec61 + (dsp->fRec60[1] + (fRec53 + fTemp30))))) - (fRec45 + (fRec49 + (dsp->fRec56[1] + (dsp->fRec48[1] + (dsp->fRec44[1] + fTemp29))))));
+			float fTemp33 = (1.0f - dsp->fRec12[0]);
+			output0[i] = (FAUSTFLOAT)((0.370000005f * (dsp->fRec1[0] + dsp->fRec2[0])) + (fSlow11 * (fTemp33 * fTemp13)));
+			output1[i] = (FAUSTFLOAT)((0.370000005f * (dsp->fRec1[0] - dsp->fRec2[0])) + (fSlow139 * (fTemp33 * fTemp17)));
 			dsp->fRec11[1] = dsp->fRec11[0];
 			dsp->fRec10[1] = dsp->fRec10[0];
 			dsp->IOTA = (dsp->IOTA + 1);
--- a/dsp/piano.dsp
+++ b/dsp/piano.dsp
@@ -11,17 +11,17 @@
 
 //==================== GUI SPECIFICATION ================
 
-freq = hslider("h:Basic_Parameters/Freq [1][unit:Hz] [tooltip:Tone frequency]",440,20,20000,1);
-gain = hslider("h:Basic_Parameters/Gain [1][tooltip:Gain (value between 0 and 1)]",1,0,1,0.01); 
-gate = button("h:Basic_Parameters/Gate [1][tooltip:noteOn = 1, noteOff = 0]");
+freq = hslider("h:Basic/Freq [1][unit:Hz] [tooltip:Tone frequency]",440,20,20000,1);
+gain = hslider("h:Basic/Gain [1][tooltip:Gain (value between 0 and 1)]",1,0,1,0.01); 
+gate = button("h:Basic/Gate [1][tooltip:noteOn = 1, noteOff = 0]");
 
-brightnessFactor = hslider("v:Physical_Parameters/Brightness_Factor
+brightnessFactor = hslider("v:Physical/Brightness Factor
 [2][tooltip:A value between 0 and 1]",0,0,1,0.01);
-detuningFactor = hslider("v:Physical_Parameters/Detuning_Factor
+detuningFactor = hslider("v:Physical/Detuning Factor
 [2][tooltip:A value between 0 and 1]",0.1,0,1,0.01)*10;
-stiffnessFactor = hslider("v:Physical_Parameters/Stiffness_Factor
+stiffnessFactor = hslider("v:Physical/Stiffness Factor
 [2][tooltip:A value between 0 and 1]",0.28,0,1,0.01)*3.7;
-hammerHardness = hslider("v:Physical_Parameters/Hammer_Hardness
+hammerHardness = hslider("v:Physical/Hammer Hardness
 [2][tooltip:A value between 0 and 1]",0.1,0,1,0.01)*0.1;
 
 //==================== COMMUTED PIANO PARAMETERS ================