session-2018-11-22-222923

clive

a C audio live-coding skeleton

diff @ 2018-11-22 22:29:44 +0000
diff --git a/client/go.c b/client/go.c
index 8eae48fec..d98ab3b1b 100644
--- a/client/go.c
+++ b/client/go.c
@@ -33,7 +33,7 @@
 ///==========================================================================
 ///==========================================================================
 
-#define RESET 1
+#define RESET 0
 
 typedef float sample;
 #define SR 48000
diff @ 2018-11-22 22:29:58 +0000
diff --git a/client/go.c b/client/go.c
index d98ab3b1b..ed109ebc0 100644
--- a/client/go.c
+++ b/client/go.c
@@ -125,9 +125,9 @@ go(S *s, int channels, const float *in, float *out)
     // pitchshift feedback
     for (int c = 0; c < 2; ++c) {
       sample down = pitchshift(&s->so2.shift[2 * c + 0], 2, 100,
-        lop(&s->so2.lag[0], -12, 1e-3), feedback[c]);
+        lop(&s->so2.lag[0], -12, 1e-4), feedback[c]);
       sample up   = pitchshift(&s->so2.shift[2 * c + 1], 2, 100,
-        lop(&s->so2.lag[0],  19, 1e-3), down);
+        lop(&s->so2.lag[0],  19, 1e-4), down);
       feedback[c] = feedback[c] - down - up;
     }
     // compress feedback
diff @ 2018-11-22 22:30:13 +0000
diff --git a/client/go.c b/client/go.c
index ed109ebc0..06c7cf4a5 100644
--- a/client/go.c
+++ b/client/go.c
@@ -116,7 +116,7 @@ go(S *s, int channels, const float *in, float *out)
     // trigger impulse on reload
     sample impulse[2] = { s->reloaded, s->reloaded };
     // modulate delay times
-    sample p = phasor(&s->so2.phase, 0.01);
+    sample p = phasor(&s->so2.phase, 0.02);
     sample modulation = 10 * cos(twopi * p);
     sample feedback[2] =
       { delread4(&s->so2.echo[1].del, 200 - modulation)
diff @ 2018-11-22 22:30:20 +0000
diff --git a/client/go.c b/client/go.c
index 06c7cf4a5..6d9fcbc2e 100644
--- a/client/go.c
+++ b/client/go.c
@@ -117,7 +117,7 @@ go(S *s, int channels, const float *in, float *out)
     sample impulse[2] = { s->reloaded, s->reloaded };
     // modulate delay times
     sample p = phasor(&s->so2.phase, 0.02);
-    sample modulation = 10 * cos(twopi * p);
+    sample modulation = cos(twopi * p);
     sample feedback[2] =
       { delread4(&s->so2.echo[1].del, 200 - modulation)
       , delread4(&s->so2.echo[0].del, 200 + modulation)
diff @ 2018-11-22 22:30:26 +0000
diff --git a/client/go.c b/client/go.c
index 6d9fcbc2e..1a6769eb3 100644
--- a/client/go.c
+++ b/client/go.c
@@ -116,7 +116,7 @@ go(S *s, int channels, const float *in, float *out)
     // trigger impulse on reload
     sample impulse[2] = { s->reloaded, s->reloaded };
     // modulate delay times
-    sample p = phasor(&s->so2.phase, 0.02);
+    sample p = phasor(&s->so2.phase, 0.5);
     sample modulation = cos(twopi * p);
     sample feedback[2] =
       { delread4(&s->so2.echo[1].del, 200 - modulation)
diff @ 2018-11-22 22:30:31 +0000
diff --git a/client/go.c b/client/go.c
index 1a6769eb3..700b9a803 100644
--- a/client/go.c
+++ b/client/go.c
@@ -119,8 +119,8 @@ go(S *s, int channels, const float *in, float *out)
     sample p = phasor(&s->so2.phase, 0.5);
     sample modulation = cos(twopi * p);
     sample feedback[2] =
-      { delread4(&s->so2.echo[1].del, 200 - modulation)
-      , delread4(&s->so2.echo[0].del, 200 + modulation)
+      { delread4(&s->so2.echo[1].del, 100 - modulation)
+      , delread4(&s->so2.echo[0].del, 100 + modulation)
       };
     // pitchshift feedback
     for (int c = 0; c < 2; ++c) {
diff @ 2018-11-22 22:30:40 +0000
diff --git a/client/go.c b/client/go.c
index 700b9a803..439eee0c7 100644
--- a/client/go.c
+++ b/client/go.c
@@ -119,8 +119,8 @@ go(S *s, int channels, const float *in, float *out)
     sample p = phasor(&s->so2.phase, 0.5);
     sample modulation = cos(twopi * p);
     sample feedback[2] =
-      { delread4(&s->so2.echo[1].del, 100 - modulation)
-      , delread4(&s->so2.echo[0].del, 100 + modulation)
+      { delread4(&s->so2.echo[1].del, 50 - modulation)
+      , delread4(&s->so2.echo[0].del, 50 + modulation)
       };
     // pitchshift feedback
     for (int c = 0; c < 2; ++c) {
diff @ 2018-11-22 22:30:47 +0000
diff --git a/client/go.c b/client/go.c
index 439eee0c7..46aba0c2f 100644
--- a/client/go.c
+++ b/client/go.c
@@ -119,8 +119,8 @@ go(S *s, int channels, const float *in, float *out)
     sample p = phasor(&s->so2.phase, 0.5);
     sample modulation = cos(twopi * p);
     sample feedback[2] =
-      { delread4(&s->so2.echo[1].del, 50 - modulation)
-      , delread4(&s->so2.echo[0].del, 50 + modulation)
+      { delread4(&s->so2.echo[1].del, 25 - modulation)
+      , delread4(&s->so2.echo[0].del, 25 + modulation)
       };
     // pitchshift feedback
     for (int c = 0; c < 2; ++c) {
diff @ 2018-11-22 22:31:00 +0000
diff --git a/client/go.c b/client/go.c
index 46aba0c2f..025d8327f 100644
--- a/client/go.c
+++ b/client/go.c
@@ -119,8 +119,8 @@ go(S *s, int channels, const float *in, float *out)
     sample p = phasor(&s->so2.phase, 0.5);
     sample modulation = cos(twopi * p);
     sample feedback[2] =
-      { delread4(&s->so2.echo[1].del, 25 - modulation)
-      , delread4(&s->so2.echo[0].del, 25 + modulation)
+      { delread4(&s->so2.echo[1].del, 12.5 - modulation)
+      , delread4(&s->so2.echo[0].del, 12.5 + modulation)
       };
     // pitchshift feedback
     for (int c = 0; c < 2; ++c) {
diff @ 2018-11-22 22:31:08 +0000
diff --git a/client/go.c b/client/go.c
index 025d8327f..1b39c645b 100644
--- a/client/go.c
+++ b/client/go.c
@@ -128,7 +128,7 @@ go(S *s, int channels, const float *in, float *out)
         lop(&s->so2.lag[0], -12, 1e-4), feedback[c]);
       sample up   = pitchshift(&s->so2.shift[2 * c + 1], 2, 100,
         lop(&s->so2.lag[0],  19, 1e-4), down);
-      feedback[c] = feedback[c] - down - up;
+      feedback[c] = 2 * feedback[c] - down - up;
     }
     // compress feedback
     compress(so2, &s->so2.compress, 5, 10, 25, 48, feedback);
diff @ 2018-11-22 22:31:16 +0000
diff --git a/client/go.c b/client/go.c
index 1b39c645b..b1bf224dd 100644
--- a/client/go.c
+++ b/client/go.c
@@ -137,7 +137,7 @@ go(S *s, int channels, const float *in, float *out)
     so2[1] *= gain;
     // write to delay lines
     for (int c = 0; c < 2; ++c) {
-      so2echo(&s->so2.echo[c], 20, 500,
+      so2echo(&s->so2.echo[c], 50, 500,
         tanh(so2[c] + RESET*impulse[c]));
     }
     mixdown[0] += so2[0];
diff @ 2018-11-22 22:31:21 +0000
diff --git a/client/go.c b/client/go.c
index b1bf224dd..d7ff657de 100644
--- a/client/go.c
+++ b/client/go.c
@@ -137,7 +137,7 @@ go(S *s, int channels, const float *in, float *out)
     so2[1] *= gain;
     // write to delay lines
     for (int c = 0; c < 2; ++c) {
-      so2echo(&s->so2.echo[c], 50, 500,
+      so2echo(&s->so2.echo[c], 50, 1500,
         tanh(so2[c] + RESET*impulse[c]));
     }
     mixdown[0] += so2[0];
diff @ 2018-11-22 22:31:32 +0000
diff --git a/client/go.c b/client/go.c
index d7ff657de..df79030f0 100644
--- a/client/go.c
+++ b/client/go.c
@@ -128,7 +128,7 @@ go(S *s, int channels, const float *in, float *out)
         lop(&s->so2.lag[0], -12, 1e-4), feedback[c]);
       sample up   = pitchshift(&s->so2.shift[2 * c + 1], 2, 100,
         lop(&s->so2.lag[0],  19, 1e-4), down);
-      feedback[c] = 2 * feedback[c] - down - up;
+      feedback[c] = 2 * feedback[c] - 1.2 * down - up;
     }
     // compress feedback
     compress(so2, &s->so2.compress, 5, 10, 25, 48, feedback);
diff @ 2018-11-22 22:31:36 +0000
diff --git a/client/go.c b/client/go.c
index df79030f0..e918e667a 100644
--- a/client/go.c
+++ b/client/go.c
@@ -128,7 +128,7 @@ go(S *s, int channels, const float *in, float *out)
         lop(&s->so2.lag[0], -12, 1e-4), feedback[c]);
       sample up   = pitchshift(&s->so2.shift[2 * c + 1], 2, 100,
         lop(&s->so2.lag[0],  19, 1e-4), down);
-      feedback[c] = 2 * feedback[c] - 1.2 * down - up;
+      feedback[c] = 2 * feedback[c] - 1.5 * down - up;
     }
     // compress feedback
     compress(so2, &s->so2.compress, 5, 10, 25, 48, feedback);
diff @ 2018-11-22 22:31:41 +0000
diff --git a/client/go.c b/client/go.c
index e918e667a..600e58321 100644
--- a/client/go.c
+++ b/client/go.c
@@ -128,7 +128,7 @@ go(S *s, int channels, const float *in, float *out)
         lop(&s->so2.lag[0], -12, 1e-4), feedback[c]);
       sample up   = pitchshift(&s->so2.shift[2 * c + 1], 2, 100,
         lop(&s->so2.lag[0],  19, 1e-4), down);
-      feedback[c] = 2 * feedback[c] - 1.5 * down - up;
+      feedback[c] = 2 * feedback[c] - 2 * down - up;
     }
     // compress feedback
     compress(so2, &s->so2.compress, 5, 10, 25, 48, feedback);
diff @ 2018-11-22 22:31:50 +0000
diff --git a/client/go.c b/client/go.c
index 600e58321..6c32247e3 100644
--- a/client/go.c
+++ b/client/go.c
@@ -128,7 +128,7 @@ go(S *s, int channels, const float *in, float *out)
         lop(&s->so2.lag[0], -12, 1e-4), feedback[c]);
       sample up   = pitchshift(&s->so2.shift[2 * c + 1], 2, 100,
         lop(&s->so2.lag[0],  19, 1e-4), down);
-      feedback[c] = 2 * feedback[c] - 2 * down - up;
+      feedback[c] = 2 * feedback[c] - 3 * down - up;
     }
     // compress feedback
     compress(so2, &s->so2.compress, 5, 10, 25, 48, feedback);
diff @ 2018-11-22 22:31:53 +0000
diff --git a/client/go.c b/client/go.c
index 6c32247e3..b2ae4c787 100644
--- a/client/go.c
+++ b/client/go.c
@@ -128,7 +128,7 @@ go(S *s, int channels, const float *in, float *out)
         lop(&s->so2.lag[0], -12, 1e-4), feedback[c]);
       sample up   = pitchshift(&s->so2.shift[2 * c + 1], 2, 100,
         lop(&s->so2.lag[0],  19, 1e-4), down);
-      feedback[c] = 2 * feedback[c] - 3 * down - up;
+      feedback[c] = 2 * feedback[c] - 3 * down + up;
     }
     // compress feedback
     compress(so2, &s->so2.compress, 5, 10, 25, 48, feedback);
diff @ 2018-11-22 22:32:07 +0000
diff --git a/client/go.c b/client/go.c
index b2ae4c787..e3e122106 100644
--- a/client/go.c
+++ b/client/go.c
@@ -119,8 +119,8 @@ go(S *s, int channels, const float *in, float *out)
     sample p = phasor(&s->so2.phase, 0.5);
     sample modulation = cos(twopi * p);
     sample feedback[2] =
-      { delread4(&s->so2.echo[1].del, 12.5 - modulation)
-      , delread4(&s->so2.echo[0].del, 12.5 + modulation)
+      { delread4(&s->so2.echo[1].del, 3.5 - modulation)
+      , delread4(&s->so2.echo[0].del, 3.5 + modulation)
       };
     // pitchshift feedback
     for (int c = 0; c < 2; ++c) {
diff @ 2018-11-22 22:32:16 +0000
diff --git a/client/go.c b/client/go.c
index e3e122106..306e36b5c 100644
--- a/client/go.c
+++ b/client/go.c
@@ -128,7 +128,7 @@ go(S *s, int channels, const float *in, float *out)
         lop(&s->so2.lag[0], -12, 1e-4), feedback[c]);
       sample up   = pitchshift(&s->so2.shift[2 * c + 1], 2, 100,
         lop(&s->so2.lag[0],  19, 1e-4), down);
-      feedback[c] = 2 * feedback[c] - 3 * down + up;
+      feedback[c] = sin(2 * feedback[c] - 3 * down + up);
     }
     // compress feedback
     compress(so2, &s->so2.compress, 5, 10, 25, 48, feedback);
diff @ 2018-11-22 22:32:25 +0000
diff --git a/client/go.c b/client/go.c
index 306e36b5c..c46a041c9 100644
--- a/client/go.c
+++ b/client/go.c
@@ -128,7 +128,7 @@ go(S *s, int channels, const float *in, float *out)
         lop(&s->so2.lag[0], -12, 1e-4), feedback[c]);
       sample up   = pitchshift(&s->so2.shift[2 * c + 1], 2, 100,
         lop(&s->so2.lag[0],  19, 1e-4), down);
-      feedback[c] = sin(2 * feedback[c] - 3 * down + up);
+      feedback[c] = sin(1.4 *(2 * feedback[c] - 3 * down + up));
     }
     // compress feedback
     compress(so2, &s->so2.compress, 5, 10, 25, 48, feedback);
diff @ 2018-11-22 22:32:31 +0000
diff --git a/client/go.c b/client/go.c
index c46a041c9..9f57eb26e 100644
--- a/client/go.c
+++ b/client/go.c
@@ -128,7 +128,7 @@ go(S *s, int channels, const float *in, float *out)
         lop(&s->so2.lag[0], -12, 1e-4), feedback[c]);
       sample up   = pitchshift(&s->so2.shift[2 * c + 1], 2, 100,
         lop(&s->so2.lag[0],  19, 1e-4), down);
-      feedback[c] = sin(1.4 *(2 * feedback[c] - 3 * down + up));
+      feedback[c] = sin(1.5 *(2 * feedback[c] - 3 * down + up));
     }
     // compress feedback
     compress(so2, &s->so2.compress, 5, 10, 25, 48, feedback);
diff @ 2018-11-22 22:32:40 +0000
diff --git a/client/go.c b/client/go.c
index 9f57eb26e..62f658d23 100644
--- a/client/go.c
+++ b/client/go.c
@@ -128,7 +128,7 @@ go(S *s, int channels, const float *in, float *out)
         lop(&s->so2.lag[0], -12, 1e-4), feedback[c]);
       sample up   = pitchshift(&s->so2.shift[2 * c + 1], 2, 100,
         lop(&s->so2.lag[0],  19, 1e-4), down);
-      feedback[c] = sin(1.5 *(2 * feedback[c] - 3 * down + up));
+      feedback[c] = sin(1.5 * sin(1.5 *(2 * feedback[c] - 3 * down + up)));
     }
     // compress feedback
     compress(so2, &s->so2.compress, 5, 10, 25, 48, feedback);
diff @ 2018-11-22 22:32:51 +0000
diff --git a/client/go.c b/client/go.c
index 62f658d23..b7c3a5b07 100644
--- a/client/go.c
+++ b/client/go.c
@@ -137,7 +137,7 @@ go(S *s, int channels, const float *in, float *out)
     so2[1] *= gain;
     // write to delay lines
     for (int c = 0; c < 2; ++c) {
-      so2echo(&s->so2.echo[c], 50, 1500,
+      so2echo(&s->so2.echo[c], 50, 500,
         tanh(so2[c] + RESET*impulse[c]));
     }
     mixdown[0] += so2[0];
diff @ 2018-11-22 22:32:57 +0000
diff --git a/client/go.c b/client/go.c
index b7c3a5b07..7309d643b 100644
--- a/client/go.c
+++ b/client/go.c
@@ -137,7 +137,7 @@ go(S *s, int channels, const float *in, float *out)
     so2[1] *= gain;
     // write to delay lines
     for (int c = 0; c < 2; ++c) {
-      so2echo(&s->so2.echo[c], 50, 500,
+      so2echo(&s->so2.echo[c], 250, 500,
         tanh(so2[c] + RESET*impulse[c]));
     }
     mixdown[0] += so2[0];
diff @ 2018-11-22 22:33:06 +0000
diff --git a/client/go.c b/client/go.c
index 7309d643b..fa3ad29bb 100644
--- a/client/go.c
+++ b/client/go.c
@@ -119,8 +119,8 @@ go(S *s, int channels, const float *in, float *out)
     sample p = phasor(&s->so2.phase, 0.5);
     sample modulation = cos(twopi * p);
     sample feedback[2] =
-      { delread4(&s->so2.echo[1].del, 3.5 - modulation)
-      , delread4(&s->so2.echo[0].del, 3.5 + modulation)
+      { delread4(&s->so2.echo[1].del, 1.5 - modulation)
+      , delread4(&s->so2.echo[0].del, 1.5 + modulation)
       };
     // pitchshift feedback
     for (int c = 0; c < 2; ++c) {
diff @ 2018-11-22 22:33:13 +0000
diff --git a/client/go.c b/client/go.c
index fa3ad29bb..4c31353fb 100644
--- a/client/go.c
+++ b/client/go.c
@@ -124,9 +124,9 @@ go(S *s, int channels, const float *in, float *out)
       };
     // pitchshift feedback
     for (int c = 0; c < 2; ++c) {
-      sample down = pitchshift(&s->so2.shift[2 * c + 0], 2, 100,
+      sample down = pitchshift(&s->so2.shift[2 * c + 0], 2, 40,
         lop(&s->so2.lag[0], -12, 1e-4), feedback[c]);
-      sample up   = pitchshift(&s->so2.shift[2 * c + 1], 2, 100,
+      sample up   = pitchshift(&s->so2.shift[2 * c + 1], 2, 40,
         lop(&s->so2.lag[0],  19, 1e-4), down);
       feedback[c] = sin(1.5 * sin(1.5 *(2 * feedback[c] - 3 * down + up)));
     }
diff @ 2018-11-22 22:33:18 +0000
diff --git a/client/go.c b/client/go.c
index 4c31353fb..01c43016e 100644
--- a/client/go.c
+++ b/client/go.c
@@ -124,9 +124,9 @@ go(S *s, int channels, const float *in, float *out)
       };
     // pitchshift feedback
     for (int c = 0; c < 2; ++c) {
-      sample down = pitchshift(&s->so2.shift[2 * c + 0], 2, 40,
+      sample down = pitchshift(&s->so2.shift[2 * c + 0], 1, 40,
         lop(&s->so2.lag[0], -12, 1e-4), feedback[c]);
-      sample up   = pitchshift(&s->so2.shift[2 * c + 1], 2, 40,
+      sample up   = pitchshift(&s->so2.shift[2 * c + 1], 1, 40,
         lop(&s->so2.lag[0],  19, 1e-4), down);
       feedback[c] = sin(1.5 * sin(1.5 *(2 * feedback[c] - 3 * down + up)));
     }
diff @ 2018-11-22 22:33:26 +0000
diff --git a/client/go.c b/client/go.c
index 01c43016e..c73c9ad18 100644
--- a/client/go.c
+++ b/client/go.c
@@ -124,9 +124,9 @@ go(S *s, int channels, const float *in, float *out)
       };
     // pitchshift feedback
     for (int c = 0; c < 2; ++c) {
-      sample down = pitchshift(&s->so2.shift[2 * c + 0], 1, 40,
+      sample down = pitchshift(&s->so2.shift[2 * c + 0], 1, 10,
         lop(&s->so2.lag[0], -12, 1e-4), feedback[c]);
-      sample up   = pitchshift(&s->so2.shift[2 * c + 1], 1, 40,
+      sample up   = pitchshift(&s->so2.shift[2 * c + 1], 1, 10,
         lop(&s->so2.lag[0],  19, 1e-4), down);
       feedback[c] = sin(1.5 * sin(1.5 *(2 * feedback[c] - 3 * down + up)));
     }
diff @ 2018-11-22 22:33:34 +0000
diff --git a/client/go.c b/client/go.c
index c73c9ad18..f8ea23d95 100644
--- a/client/go.c
+++ b/client/go.c
@@ -137,7 +137,7 @@ go(S *s, int channels, const float *in, float *out)
     so2[1] *= gain;
     // write to delay lines
     for (int c = 0; c < 2; ++c) {
-      so2echo(&s->so2.echo[c], 250, 500,
+      so2echo(&s->so2.echo[c], 250, 250,
         tanh(so2[c] + RESET*impulse[c]));
     }
     mixdown[0] += so2[0];
diff @ 2018-11-22 22:33:39 +0000
diff --git a/client/go.c b/client/go.c
index f8ea23d95..37b3715c5 100644
--- a/client/go.c
+++ b/client/go.c
@@ -137,7 +137,7 @@ go(S *s, int channels, const float *in, float *out)
     so2[1] *= gain;
     // write to delay lines
     for (int c = 0; c < 2; ++c) {
-      so2echo(&s->so2.echo[c], 250, 250,
+      so2echo(&s->so2.echo[c], 250, 125,
         tanh(so2[c] + RESET*impulse[c]));
     }
     mixdown[0] += so2[0];
diff @ 2018-11-22 22:33:49 +0000
diff --git a/client/go.c b/client/go.c
index 37b3715c5..4e71aaeb7 100644
--- a/client/go.c
+++ b/client/go.c
@@ -128,7 +128,7 @@ go(S *s, int channels, const float *in, float *out)
         lop(&s->so2.lag[0], -12, 1e-4), feedback[c]);
       sample up   = pitchshift(&s->so2.shift[2 * c + 1], 1, 10,
         lop(&s->so2.lag[0],  19, 1e-4), down);
-      feedback[c] = sin(1.5 * sin(1.5 *(2 * feedback[c] - 3 * down + up)));
+      feedback[c] = sin(2.5 * sin(1.5 *(2 * feedback[c] - 3 * down + up)));
     }
     // compress feedback
     compress(so2, &s->so2.compress, 5, 10, 25, 48, feedback);
diff @ 2018-11-22 22:33:56 +0000
diff --git a/client/go.c b/client/go.c
index 4e71aaeb7..9d7f2cc0b 100644
--- a/client/go.c
+++ b/client/go.c
@@ -128,7 +128,7 @@ go(S *s, int channels, const float *in, float *out)
         lop(&s->so2.lag[0], -12, 1e-4), feedback[c]);
       sample up   = pitchshift(&s->so2.shift[2 * c + 1], 1, 10,
         lop(&s->so2.lag[0],  19, 1e-4), down);
-      feedback[c] = sin(2.5 * sin(1.5 *(2 * feedback[c] - 3 * down + up)));
+      feedback[c] = sin(2 * sin(1.5 *(2 * feedback[c] - 3 * down + up)));
     }
     // compress feedback
     compress(so2, &s->so2.compress, 5, 10, 25, 48, feedback);
diff @ 2018-11-22 22:34:03 +0000
diff --git a/client/go.c b/client/go.c
index 9d7f2cc0b..37b3715c5 100644
--- a/client/go.c
+++ b/client/go.c
@@ -128,7 +128,7 @@ go(S *s, int channels, const float *in, float *out)
         lop(&s->so2.lag[0], -12, 1e-4), feedback[c]);
       sample up   = pitchshift(&s->so2.shift[2 * c + 1], 1, 10,
         lop(&s->so2.lag[0],  19, 1e-4), down);
-      feedback[c] = sin(2 * sin(1.5 *(2 * feedback[c] - 3 * down + up)));
+      feedback[c] = sin(1.5 * sin(1.5 *(2 * feedback[c] - 3 * down + up)));
     }
     // compress feedback
     compress(so2, &s->so2.compress, 5, 10, 25, 48, feedback);
diff @ 2018-11-22 22:34:23 +0000
diff --git a/client/go.c b/client/go.c
index 37b3715c5..b6930b8d3 100644
--- a/client/go.c
+++ b/client/go.c
@@ -128,7 +128,7 @@ go(S *s, int channels, const float *in, float *out)
         lop(&s->so2.lag[0], -12, 1e-4), feedback[c]);
       sample up   = pitchshift(&s->so2.shift[2 * c + 1], 1, 10,
         lop(&s->so2.lag[0],  19, 1e-4), down);
-      feedback[c] = sin(1.5 * sin(1.5 *(2 * feedback[c] - 3 * down + up)));
+      feedback[c] = sin((1.5 + 0.5 * modulation) * sin(1.5 *(2 * feedback[c] - 3 * down + up)));
     }
     // compress feedback
     compress(so2, &s->so2.compress, 5, 10, 25, 48, feedback);
diff @ 2018-11-22 22:34:40 +0000
diff --git a/client/go.c b/client/go.c
index b6930b8d3..40edd42cb 100644
--- a/client/go.c
+++ b/client/go.c
@@ -116,7 +116,7 @@ go(S *s, int channels, const float *in, float *out)
     // trigger impulse on reload
     sample impulse[2] = { s->reloaded, s->reloaded };
     // modulate delay times
-    sample p = phasor(&s->so2.phase, 0.5);
+    sample p = phasor(&s->so2.phase, bpm / 60);
     sample modulation = cos(twopi * p);
     sample feedback[2] =
       { delread4(&s->so2.echo[1].del, 1.5 - modulation)
diff @ 2018-11-22 22:34:46 +0000
diff --git a/client/go.c b/client/go.c
index 40edd42cb..70ec0e10e 100644
--- a/client/go.c
+++ b/client/go.c
@@ -116,7 +116,7 @@ go(S *s, int channels, const float *in, float *out)
     // trigger impulse on reload
     sample impulse[2] = { s->reloaded, s->reloaded };
     // modulate delay times
-    sample p = phasor(&s->so2.phase, bpm / 60);
+    sample p = phasor(&s->so2.phase, bpm / 60 / 4);
     sample modulation = cos(twopi * p);
     sample feedback[2] =
       { delread4(&s->so2.echo[1].del, 1.5 - modulation)
diff @ 2018-11-22 22:34:59 +0000
diff --git a/client/go.c b/client/go.c
index 70ec0e10e..42a1c4c24 100644
--- a/client/go.c
+++ b/client/go.c
@@ -172,7 +172,7 @@ go(S *s, int channels, const float *in, float *out)
     sample crush = phasor(&s->tcrush, 2000);
     tilex[0] = samphold(&s->tcrushsh[0], noise() * hat, crush);
     tilex[1] = samphold(&s->tcrushsh[1], noise() * hat, crush);
-    sample kgain = 0;
+    sample kgain = 1;
     kgain = samphold(&s->tgate[0], kgain, p);
     tilex[0] += kgain * kick;
     tilex[1] += kgain * kick;
diff @ 2018-11-22 22:35:12 +0000
diff --git a/client/go.c b/client/go.c
index 42a1c4c24..21cc73333 100644
--- a/client/go.c
+++ b/client/go.c
@@ -166,7 +166,7 @@ go(S *s, int channels, const float *in, float *out)
     hat *= 0;
     sample khz = 50 + 10 * (wrap(8 * p) > 1) + 25 * (wrap(2 * p) > 1);
     kick +=tanh(vcf(&s->tkick[0], kick, khz, 5)*5)*2;
-    kick += sin(vcf(&s->tkick[1], kick, khz * 2, 5)*5);
+    kick += sin(vcf(&s->tkick[1], kick, khz * 3, 5)*5);
     kick += sin(vcf(&s->tkick[2], kick, khz*4-20, 5)*5)
          *  sin(vcf(&s->tkick[3], kick, khz*4+20, 5)*5);
     sample crush = phasor(&s->tcrush, 2000);
diff @ 2018-11-22 22:35:19 +0000
diff --git a/client/go.c b/client/go.c
index 21cc73333..35d521975 100644
--- a/client/go.c
+++ b/client/go.c
@@ -165,7 +165,7 @@ go(S *s, int channels, const float *in, float *out)
     sample hat = wrap(16 * p + 0.5) < 0.5;
     hat *= 0;
     sample khz = 50 + 10 * (wrap(8 * p) > 1) + 25 * (wrap(2 * p) > 1);
-    kick +=tanh(vcf(&s->tkick[0], kick, khz, 5)*5)*2;
+    kick +=tanh(vcf(&s->tkick[0], kick, khz, 10)*5)*2;
     kick += sin(vcf(&s->tkick[1], kick, khz * 3, 5)*5);
     kick += sin(vcf(&s->tkick[2], kick, khz*4-20, 5)*5)
          *  sin(vcf(&s->tkick[3], kick, khz*4+20, 5)*5);
diff @ 2018-11-22 22:35:25 +0000
diff --git a/client/go.c b/client/go.c
index 35d521975..72925941b 100644
--- a/client/go.c
+++ b/client/go.c
@@ -165,7 +165,7 @@ go(S *s, int channels, const float *in, float *out)
     sample hat = wrap(16 * p + 0.5) < 0.5;
     hat *= 0;
     sample khz = 50 + 10 * (wrap(8 * p) > 1) + 25 * (wrap(2 * p) > 1);
-    kick +=tanh(vcf(&s->tkick[0], kick, khz, 10)*5)*2;
+    kick +=tanh(vcf(&s->tkick[0], kick, khz, 15)*15)*2;
     kick += sin(vcf(&s->tkick[1], kick, khz * 3, 5)*5);
     kick += sin(vcf(&s->tkick[2], kick, khz*4-20, 5)*5)
          *  sin(vcf(&s->tkick[3], kick, khz*4+20, 5)*5);
diff @ 2018-11-22 22:35:32 +0000
diff --git a/client/go.c b/client/go.c
index 72925941b..bc80b3e3f 100644
--- a/client/go.c
+++ b/client/go.c
@@ -166,7 +166,7 @@ go(S *s, int channels, const float *in, float *out)
     hat *= 0;
     sample khz = 50 + 10 * (wrap(8 * p) > 1) + 25 * (wrap(2 * p) > 1);
     kick +=tanh(vcf(&s->tkick[0], kick, khz, 15)*15)*2;
-    kick += sin(vcf(&s->tkick[1], kick, khz * 3, 5)*5);
+    kick += sin(vcf(&s->tkick[1], kick, khz * 3, 10)*10);
     kick += sin(vcf(&s->tkick[2], kick, khz*4-20, 5)*5)
          *  sin(vcf(&s->tkick[3], kick, khz*4+20, 5)*5);
     sample crush = phasor(&s->tcrush, 2000);
diff @ 2018-11-22 22:35:40 +0000
diff --git a/client/go.c b/client/go.c
index bc80b3e3f..1481daa8b 100644
--- a/client/go.c
+++ b/client/go.c
@@ -162,8 +162,8 @@ go(S *s, int channels, const float *in, float *out)
     kick = sin(twopi * kick);
     kick *= 1 + kickenv;
     kick = tanh(kick);
-    sample hat = wrap(16 * p + 0.5) < 0.5;
-    hat *= 0;
+    sample hat = wrap(16 * p + 0.5) < 0.15;
+    hat *= 1;
     sample khz = 50 + 10 * (wrap(8 * p) > 1) + 25 * (wrap(2 * p) > 1);
     kick +=tanh(vcf(&s->tkick[0], kick, khz, 15)*15)*2;
     kick += sin(vcf(&s->tkick[1], kick, khz * 3, 10)*10);
diff @ 2018-11-22 22:35:47 +0000
diff --git a/client/go.c b/client/go.c
index 1481daa8b..59ab79b05 100644
--- a/client/go.c
+++ b/client/go.c
@@ -169,7 +169,7 @@ go(S *s, int channels, const float *in, float *out)
     kick += sin(vcf(&s->tkick[1], kick, khz * 3, 10)*10);
     kick += sin(vcf(&s->tkick[2], kick, khz*4-20, 5)*5)
          *  sin(vcf(&s->tkick[3], kick, khz*4+20, 5)*5);
-    sample crush = phasor(&s->tcrush, 2000);
+    sample crush = phasor(&s->tcrush, 4000);
     tilex[0] = samphold(&s->tcrushsh[0], noise() * hat, crush);
     tilex[1] = samphold(&s->tcrushsh[1], noise() * hat, crush);
     sample kgain = 1;
diff @ 2018-11-22 22:35:53 +0000
diff --git a/client/go.c b/client/go.c
index 59ab79b05..fd9fd0eac 100644
--- a/client/go.c
+++ b/client/go.c
@@ -162,7 +162,7 @@ go(S *s, int channels, const float *in, float *out)
     kick = sin(twopi * kick);
     kick *= 1 + kickenv;
     kick = tanh(kick);
-    sample hat = wrap(16 * p + 0.5) < 0.15;
+    sample hat = wrap(16 * p + 0.5) < 0.15 * p;
     hat *= 1;
     sample khz = 50 + 10 * (wrap(8 * p) > 1) + 25 * (wrap(2 * p) > 1);
     kick +=tanh(vcf(&s->tkick[0], kick, khz, 15)*15)*2;
diff @ 2018-11-22 22:36:07 +0000
diff --git a/client/go.c b/client/go.c
index fd9fd0eac..706de1c64 100644
--- a/client/go.c
+++ b/client/go.c
@@ -169,7 +169,7 @@ go(S *s, int channels, const float *in, float *out)
     kick += sin(vcf(&s->tkick[1], kick, khz * 3, 10)*10);
     kick += sin(vcf(&s->tkick[2], kick, khz*4-20, 5)*5)
          *  sin(vcf(&s->tkick[3], kick, khz*4+20, 5)*5);
-    sample crush = phasor(&s->tcrush, 4000);
+    sample crush = phasor(&s->tcrush, 4000 * pow(2, cos(p)));
     tilex[0] = samphold(&s->tcrushsh[0], noise() * hat, crush);
     tilex[1] = samphold(&s->tcrushsh[1], noise() * hat, crush);
     sample kgain = 1;
diff @ 2018-11-22 22:36:19 +0000
diff --git a/client/go.c b/client/go.c
index 706de1c64..23a16b587 100644
--- a/client/go.c
+++ b/client/go.c
@@ -169,7 +169,7 @@ go(S *s, int channels, const float *in, float *out)
     kick += sin(vcf(&s->tkick[1], kick, khz * 3, 10)*10);
     kick += sin(vcf(&s->tkick[2], kick, khz*4-20, 5)*5)
          *  sin(vcf(&s->tkick[3], kick, khz*4+20, 5)*5);
-    sample crush = phasor(&s->tcrush, 4000 * pow(2, cos(p)));
+    sample crush = phasor(&s->tcrush, 4000 * pow(2, cos(twopi * p)));
     tilex[0] = samphold(&s->tcrushsh[0], noise() * hat, crush);
     tilex[1] = samphold(&s->tcrushsh[1], noise() * hat, crush);
     sample kgain = 1;
diff @ 2018-11-22 22:36:31 +0000
diff --git a/client/go.c b/client/go.c
index 23a16b587..bc37e8cd3 100644
--- a/client/go.c
+++ b/client/go.c
@@ -165,7 +165,7 @@ go(S *s, int channels, const float *in, float *out)
     sample hat = wrap(16 * p + 0.5) < 0.15 * p;
     hat *= 1;
     sample khz = 50 + 10 * (wrap(8 * p) > 1) + 25 * (wrap(2 * p) > 1);
-    kick +=tanh(vcf(&s->tkick[0], kick, khz, 15)*15)*2;
+    kick +=tanh(vcf(&s->tkick[0], kick, khz, 5)*5)*2;
     kick += sin(vcf(&s->tkick[1], kick, khz * 3, 10)*10);
     kick += sin(vcf(&s->tkick[2], kick, khz*4-20, 5)*5)
          *  sin(vcf(&s->tkick[3], kick, khz*4+20, 5)*5);
diff @ 2018-11-22 22:36:34 +0000
diff --git a/client/go.c b/client/go.c
index bc37e8cd3..76326f88f 100644
--- a/client/go.c
+++ b/client/go.c
@@ -166,7 +166,7 @@ go(S *s, int channels, const float *in, float *out)
     hat *= 1;
     sample khz = 50 + 10 * (wrap(8 * p) > 1) + 25 * (wrap(2 * p) > 1);
     kick +=tanh(vcf(&s->tkick[0], kick, khz, 5)*5)*2;
-    kick += sin(vcf(&s->tkick[1], kick, khz * 3, 10)*10);
+    kick += sin(vcf(&s->tkick[1], kick, khz * 3, 15)*15);
     kick += sin(vcf(&s->tkick[2], kick, khz*4-20, 5)*5)
          *  sin(vcf(&s->tkick[3], kick, khz*4+20, 5)*5);
     sample crush = phasor(&s->tcrush, 4000 * pow(2, cos(twopi * p)));
diff @ 2018-11-22 22:36:39 +0000
diff --git a/client/go.c b/client/go.c
index 76326f88f..6cf92eae9 100644
--- a/client/go.c
+++ b/client/go.c
@@ -166,7 +166,7 @@ go(S *s, int channels, const float *in, float *out)
     hat *= 1;
     sample khz = 50 + 10 * (wrap(8 * p) > 1) + 25 * (wrap(2 * p) > 1);
     kick +=tanh(vcf(&s->tkick[0], kick, khz, 5)*5)*2;
-    kick += sin(vcf(&s->tkick[1], kick, khz * 3, 15)*15);
+    kick += sin(vcf(&s->tkick[1], kick, khz * 3, 25)*25);
     kick += sin(vcf(&s->tkick[2], kick, khz*4-20, 5)*5)
          *  sin(vcf(&s->tkick[3], kick, khz*4+20, 5)*5);
     sample crush = phasor(&s->tcrush, 4000 * pow(2, cos(twopi * p)));
diff @ 2018-11-22 22:36:48 +0000
diff --git a/client/go.c b/client/go.c
index 6cf92eae9..4d5b42d42 100644
--- a/client/go.c
+++ b/client/go.c
@@ -166,7 +166,7 @@ go(S *s, int channels, const float *in, float *out)
     hat *= 1;
     sample khz = 50 + 10 * (wrap(8 * p) > 1) + 25 * (wrap(2 * p) > 1);
     kick +=tanh(vcf(&s->tkick[0], kick, khz, 5)*5)*2;
-    kick += sin(vcf(&s->tkick[1], kick, khz * 3, 25)*25);
+    kick += sin(vcf(&s->tkick[1], kick, khz * 3, 50)*25);
     kick += sin(vcf(&s->tkick[2], kick, khz*4-20, 5)*5)
          *  sin(vcf(&s->tkick[3], kick, khz*4+20, 5)*5);
     sample crush = phasor(&s->tcrush, 4000 * pow(2, cos(twopi * p)));
diff @ 2018-11-22 22:36:51 +0000
diff --git a/client/go.c b/client/go.c
index 4d5b42d42..9853ca5fc 100644
--- a/client/go.c
+++ b/client/go.c
@@ -166,7 +166,7 @@ go(S *s, int channels, const float *in, float *out)
     hat *= 1;
     sample khz = 50 + 10 * (wrap(8 * p) > 1) + 25 * (wrap(2 * p) > 1);
     kick +=tanh(vcf(&s->tkick[0], kick, khz, 5)*5)*2;
-    kick += sin(vcf(&s->tkick[1], kick, khz * 3, 50)*25);
+    kick += sin(vcf(&s->tkick[1], kick, khz * 3, 50)*45);
     kick += sin(vcf(&s->tkick[2], kick, khz*4-20, 5)*5)
          *  sin(vcf(&s->tkick[3], kick, khz*4+20, 5)*5);
     sample crush = phasor(&s->tcrush, 4000 * pow(2, cos(twopi * p)));
diff @ 2018-11-22 22:36:54 +0000
diff --git a/client/go.c b/client/go.c
index 9853ca5fc..6a17d0fb8 100644
--- a/client/go.c
+++ b/client/go.c
@@ -166,7 +166,7 @@ go(S *s, int channels, const float *in, float *out)
     hat *= 1;
     sample khz = 50 + 10 * (wrap(8 * p) > 1) + 25 * (wrap(2 * p) > 1);
     kick +=tanh(vcf(&s->tkick[0], kick, khz, 5)*5)*2;
-    kick += sin(vcf(&s->tkick[1], kick, khz * 3, 50)*45);
+    kick += sin(vcf(&s->tkick[1], kick, khz * 3, 50)*35);
     kick += sin(vcf(&s->tkick[2], kick, khz*4-20, 5)*5)
          *  sin(vcf(&s->tkick[3], kick, khz*4+20, 5)*5);
     sample crush = phasor(&s->tcrush, 4000 * pow(2, cos(twopi * p)));
diff @ 2018-11-22 22:37:06 +0000
diff --git a/client/go.c b/client/go.c
index 6a17d0fb8..009ab5636 100644
--- a/client/go.c
+++ b/client/go.c
@@ -128,7 +128,7 @@ go(S *s, int channels, const float *in, float *out)
         lop(&s->so2.lag[0], -12, 1e-4), feedback[c]);
       sample up   = pitchshift(&s->so2.shift[2 * c + 1], 1, 10,
         lop(&s->so2.lag[0],  19, 1e-4), down);
-      feedback[c] = sin((1.5 + 0.5 * modulation) * sin(1.5 *(2 * feedback[c] - 3 * down + up)));
+      feedback[c] = sin((2 + 0.5 * modulation) * sin(1.5 *(2 * feedback[c] - 3 * down + up)));
     }
     // compress feedback
     compress(so2, &s->so2.compress, 5, 10, 25, 48, feedback);
diff @ 2018-11-22 22:38:02 +0000
diff --git a/client/go.h b/client/go.h
index 728ba7a1a..cbc88e291 100644
--- a/client/go.h
+++ b/client/go.h
@@ -56,6 +56,7 @@ typedef struct
   LOP clop;
   // = append only data structure ======================================
 
+  BIQUAD cut[2];
 
 } S;
 #endif
diff @ 2018-11-22 22:38:03 +0000
diff --git a/client/go.c b/client/go.c
index 009ab5636..1a5ae302a 100644
--- a/client/go.c
+++ b/client/go.c
@@ -169,6 +169,7 @@ go(S *s, int channels, const float *in, float *out)
     kick += sin(vcf(&s->tkick[1], kick, khz * 3, 50)*35);
     kick += sin(vcf(&s->tkick[2], kick, khz*4-20, 5)*5)
          *  sin(vcf(&s->tkick[3], kick, khz*4+20, 5)*5);
+    kick = biquad(highpass(&s->cut[0], 50, 3), kick);
     sample crush = phasor(&s->tcrush, 4000 * pow(2, cos(twopi * p)));
     tilex[0] = samphold(&s->tcrushsh[0], noise() * hat, crush);
     tilex[1] = samphold(&s->tcrushsh[1], noise() * hat, crush);
diff @ 2018-11-22 22:38:09 +0000
diff --git a/client/go.c b/client/go.c
index 1a5ae302a..0b71d7f44 100644
--- a/client/go.c
+++ b/client/go.c
@@ -169,7 +169,7 @@ go(S *s, int channels, const float *in, float *out)
     kick += sin(vcf(&s->tkick[1], kick, khz * 3, 50)*35);
     kick += sin(vcf(&s->tkick[2], kick, khz*4-20, 5)*5)
          *  sin(vcf(&s->tkick[3], kick, khz*4+20, 5)*5);
-    kick = biquad(highpass(&s->cut[0], 50, 3), kick);
+    kick = biquad(highpass(&s->cut[0], 50, 10), kick);
     sample crush = phasor(&s->tcrush, 4000 * pow(2, cos(twopi * p)));
     tilex[0] = samphold(&s->tcrushsh[0], noise() * hat, crush);
     tilex[1] = samphold(&s->tcrushsh[1], noise() * hat, crush);
diff @ 2018-11-22 22:38:26 +0000
diff --git a/client/go.c b/client/go.c
index 0b71d7f44..ba62ffa8d 100644
--- a/client/go.c
+++ b/client/go.c
@@ -202,8 +202,6 @@ go(S *s, int channels, const float *in, float *out)
     sample harmonic = 4 + clamp(N - zeroes, 0, 20);
     freq = 32 * samphold(&s->bsh, harmonic, 1 - trigger);
     freq = lop(&s->bfreq, freq, 20);
-    env = 0;
-    freq = 128;
   }
 
   // = 3 = one wobbly wave =============================================
diff @ 2018-11-22 22:38:33 +0000
diff --git a/client/go.c b/client/go.c
index ba62ffa8d..e6d14dff1 100644
--- a/client/go.c
+++ b/client/go.c
@@ -216,7 +216,7 @@ go(S *s, int channels, const float *in, float *out)
       + 0.0 * cos(twopi * 4 * p) * sin(twopi * 2 * q)
       + 0.0 * cos(twopi * 2 * p) * sin(twopi * 3 * q)
       + 0.0 * cos(twopi * 3 * p) * sin(twopi * 5 * q)
-      )) * pow(cos(twopi * 8 * p), 2);
+      ))// * pow(cos(twopi * 8 * p), 2);
     sample gain = env;
     o *= gain;
     sample os[2] =
diff @ 2018-11-22 22:38:35 +0000
diff --git a/client/go.c b/client/go.c
index e6d14dff1..a090f71ac 100644
--- a/client/go.c
+++ b/client/go.c
@@ -216,7 +216,7 @@ go(S *s, int channels, const float *in, float *out)
       + 0.0 * cos(twopi * 4 * p) * sin(twopi * 2 * q)
       + 0.0 * cos(twopi * 2 * p) * sin(twopi * 3 * q)
       + 0.0 * cos(twopi * 3 * p) * sin(twopi * 5 * q)
-      ))// * pow(cos(twopi * 8 * p), 2);
+      ));// * pow(cos(twopi * 8 * p), 2);
     sample gain = env;
     o *= gain;
     sample os[2] =
diff @ 2018-11-22 22:38:40 +0000
diff --git a/client/go.c b/client/go.c
index a090f71ac..9128a16e8 100644
--- a/client/go.c
+++ b/client/go.c
@@ -213,7 +213,7 @@ go(S *s, int channels, const float *in, float *out)
     sample q = wrap(freq * p);
     sample o = sin(twopi *
       ( q
-      + 0.0 * cos(twopi * 4 * p) * sin(twopi * 2 * q)
+      + 0.3 * cos(twopi * 4 * p) * sin(twopi * 2 * q)
       + 0.0 * cos(twopi * 2 * p) * sin(twopi * 3 * q)
       + 0.0 * cos(twopi * 3 * p) * sin(twopi * 5 * q)
       ));// * pow(cos(twopi * 8 * p), 2);
diff @ 2018-11-22 22:38:44 +0000
diff --git a/client/go.c b/client/go.c
index 9128a16e8..2b48144b4 100644
--- a/client/go.c
+++ b/client/go.c
@@ -193,7 +193,7 @@ go(S *s, int channels, const float *in, float *out)
     int n = (time / 5) & ((1 << N) - 1);
     sample zeroes = clamp(count_trailing_zeroes(n), 0, N);
     sample probability = pow(0.5, N - zeroes);
-    probability = (0.5 + 0 * (n >= 0xC001)) * probability - 0.5;
+    probability = (4.5 + 0 * (n >= 0xC001)) * probability - 0.5;
     probability = clamp(probability, 0, 1);
     sample uniform = rand() / (sample) RAND_MAX;
     sample trigger = uniform < probability;
diff @ 2018-11-22 22:38:53 +0000
diff --git a/client/go.c b/client/go.c
index 2b48144b4..56331fb1d 100644
--- a/client/go.c
+++ b/client/go.c
@@ -198,7 +198,7 @@ go(S *s, int channels, const float *in, float *out)
     sample uniform = rand() / (sample) RAND_MAX;
     sample trigger = uniform < probability;
     s->benv.y += trigger;
-    env = lop(&s->benv, 0, 5);
+    env = lop(&s->benv, 0, 3);
     sample harmonic = 4 + clamp(N - zeroes, 0, 20);
     freq = 32 * samphold(&s->bsh, harmonic, 1 - trigger);
     freq = lop(&s->bfreq, freq, 20);
diff @ 2018-11-22 22:39:00 +0000
diff --git a/client/go.c b/client/go.c
index 56331fb1d..da063a4a1 100644
--- a/client/go.c
+++ b/client/go.c
@@ -198,7 +198,7 @@ go(S *s, int channels, const float *in, float *out)
     sample uniform = rand() / (sample) RAND_MAX;
     sample trigger = uniform < probability;
     s->benv.y += trigger;
-    env = lop(&s->benv, 0, 3);
+    env = lop(&s->benv, 0, 2);
     sample harmonic = 4 + clamp(N - zeroes, 0, 20);
     freq = 32 * samphold(&s->bsh, harmonic, 1 - trigger);
     freq = lop(&s->bfreq, freq, 20);
diff @ 2018-11-22 22:39:03 +0000
diff --git a/client/go.c b/client/go.c
index da063a4a1..e7d33727c 100644
--- a/client/go.c
+++ b/client/go.c
@@ -198,7 +198,7 @@ go(S *s, int channels, const float *in, float *out)
     sample uniform = rand() / (sample) RAND_MAX;
     sample trigger = uniform < probability;
     s->benv.y += trigger;
-    env = lop(&s->benv, 0, 2);
+    env = lop(&s->benv, 0, 1);
     sample harmonic = 4 + clamp(N - zeroes, 0, 20);
     freq = 32 * samphold(&s->bsh, harmonic, 1 - trigger);
     freq = lop(&s->bfreq, freq, 20);
diff @ 2018-11-22 22:39:09 +0000
diff --git a/client/go.c b/client/go.c
index e7d33727c..8fcf610e5 100644
--- a/client/go.c
+++ b/client/go.c
@@ -197,7 +197,7 @@ go(S *s, int channels, const float *in, float *out)
     probability = clamp(probability, 0, 1);
     sample uniform = rand() / (sample) RAND_MAX;
     sample trigger = uniform < probability;
-    s->benv.y += trigger;
+    s->benv.y += trigger * 0.2;
     env = lop(&s->benv, 0, 1);
     sample harmonic = 4 + clamp(N - zeroes, 0, 20);
     freq = 32 * samphold(&s->bsh, harmonic, 1 - trigger);
diff @ 2018-11-22 22:39:13 +0000
diff --git a/client/go.c b/client/go.c
index 8fcf610e5..ebfc61d15 100644
--- a/client/go.c
+++ b/client/go.c
@@ -198,7 +198,7 @@ go(S *s, int channels, const float *in, float *out)
     sample uniform = rand() / (sample) RAND_MAX;
     sample trigger = uniform < probability;
     s->benv.y += trigger * 0.2;
-    env = lop(&s->benv, 0, 1);
+    env = lop(&s->benv, 0, 0.5);
     sample harmonic = 4 + clamp(N - zeroes, 0, 20);
     freq = 32 * samphold(&s->bsh, harmonic, 1 - trigger);
     freq = lop(&s->bfreq, freq, 20);
diff @ 2018-11-22 22:39:18 +0000
diff --git a/client/go.c b/client/go.c
index ebfc61d15..0b437dbc6 100644
--- a/client/go.c
+++ b/client/go.c
@@ -193,7 +193,7 @@ go(S *s, int channels, const float *in, float *out)
     int n = (time / 5) & ((1 << N) - 1);
     sample zeroes = clamp(count_trailing_zeroes(n), 0, N);
     sample probability = pow(0.5, N - zeroes);
-    probability = (4.5 + 0 * (n >= 0xC001)) * probability - 0.5;
+    probability = (8.5 + 0 * (n >= 0xC001)) * probability - 0.5;
     probability = clamp(probability, 0, 1);
     sample uniform = rand() / (sample) RAND_MAX;
     sample trigger = uniform < probability;
diff @ 2018-11-22 22:39:30 +0000
diff --git a/client/go.c b/client/go.c
index 0b437dbc6..77f3fbe1c 100644
--- a/client/go.c
+++ b/client/go.c
@@ -201,7 +201,7 @@ go(S *s, int channels, const float *in, float *out)
     env = lop(&s->benv, 0, 0.5);
     sample harmonic = 4 + clamp(N - zeroes, 0, 20);
     freq = 32 * samphold(&s->bsh, harmonic, 1 - trigger);
-    freq = lop(&s->bfreq, freq, 20);
+    freq = lop(&s->bfreq, freq, 10);
   }
 
   // = 3 = one wobbly wave =============================================
diff @ 2018-11-22 22:39:38 +0000
diff --git a/client/go.c b/client/go.c
index 77f3fbe1c..248e26a23 100644
--- a/client/go.c
+++ b/client/go.c
@@ -214,7 +214,7 @@ go(S *s, int channels, const float *in, float *out)
     sample o = sin(twopi *
       ( q
       + 0.3 * cos(twopi * 4 * p) * sin(twopi * 2 * q)
-      + 0.0 * cos(twopi * 2 * p) * sin(twopi * 3 * q)
+      - 0.5 * cos(twopi * 2 * p) * sin(twopi * 3 * q)
       + 0.0 * cos(twopi * 3 * p) * sin(twopi * 5 * q)
       ));// * pow(cos(twopi * 8 * p), 2);
     sample gain = env;
diff @ 2018-11-22 22:39:47 +0000
diff --git a/client/go.c b/client/go.c
index 248e26a23..b95b523b5 100644
--- a/client/go.c
+++ b/client/go.c
@@ -220,8 +220,8 @@ go(S *s, int channels, const float *in, float *out)
     sample gain = env;
     o *= gain;
     sample os[2] =
-      { samphold(&s->wwsh[0], o, wrap(400 * q + 0.25))
-      , samphold(&s->wwsh[1], o, wrap(400 * q + 0.75))
+      { samphold(&s->wwsh[0], o, wrap(40 * q + 0.25))
+      , samphold(&s->wwsh[1], o, wrap(40 * q + 0.75))
       };
     wwave[0] = os[0];
     wwave[1] = os[1];
diff @ 2018-11-22 22:40:06 +0000
diff --git a/client/go.c b/client/go.c
index b95b523b5..88368aee4 100644
--- a/client/go.c
+++ b/client/go.c
@@ -213,7 +213,7 @@ go(S *s, int channels, const float *in, float *out)
     sample q = wrap(freq * p);
     sample o = sin(twopi *
       ( q
-      + 0.3 * cos(twopi * 4 * p) * sin(twopi * 2 * q)
+      + 0.3 * cos(twopi * (p < 0.5 ? 4 : 8) * p) * sin(twopi * 2 * q)
       - 0.5 * cos(twopi * 2 * p) * sin(twopi * 3 * q)
       + 0.0 * cos(twopi * 3 * p) * sin(twopi * 5 * q)
       ));// * pow(cos(twopi * 8 * p), 2);
diff @ 2018-11-22 22:40:24 +0000
diff --git a/client/go.c b/client/go.c
index 88368aee4..2d6c00265 100644
--- a/client/go.c
+++ b/client/go.c
@@ -214,7 +214,7 @@ go(S *s, int channels, const float *in, float *out)
     sample o = sin(twopi *
       ( q
       + 0.3 * cos(twopi * (p < 0.5 ? 4 : 8) * p) * sin(twopi * 2 * q)
-      - 0.5 * cos(twopi * 2 * p) * sin(twopi * 3 * q)
+      - 0.5 * cos(twopi * (p < 0.75 ? 2 : 4)* p) * sin(twopi * 3 * q)
       + 0.0 * cos(twopi * 3 * p) * sin(twopi * 5 * q)
       ));// * pow(cos(twopi * 8 * p), 2);
     sample gain = env;
diff @ 2018-11-22 22:40:38 +0000
diff --git a/client/go.c b/client/go.c
index 2d6c00265..b374b7e5d 100644
--- a/client/go.c
+++ b/client/go.c
@@ -173,7 +173,7 @@ go(S *s, int channels, const float *in, float *out)
     sample crush = phasor(&s->tcrush, 4000 * pow(2, cos(twopi * p)));
     tilex[0] = samphold(&s->tcrushsh[0], noise() * hat, crush);
     tilex[1] = samphold(&s->tcrushsh[1], noise() * hat, crush);
-    sample kgain = 1;
+    sample kgain = 0;
     kgain = samphold(&s->tgate[0], kgain, p);
     tilex[0] += kgain * kick;
     tilex[1] += kgain * kick;
diff @ 2018-11-22 22:40:48 +0000
diff --git a/client/go.c b/client/go.c
index b374b7e5d..8c9d14180 100644
--- a/client/go.c
+++ b/client/go.c
@@ -215,7 +215,7 @@ go(S *s, int channels, const float *in, float *out)
       ( q
       + 0.3 * cos(twopi * (p < 0.5 ? 4 : 8) * p) * sin(twopi * 2 * q)
       - 0.5 * cos(twopi * (p < 0.75 ? 2 : 4)* p) * sin(twopi * 3 * q)
-      + 0.0 * cos(twopi * 3 * p) * sin(twopi * 5 * q)
+      + 0.2 * cos(twopi * 3 * p) * sin(twopi * 5 * q)
       ));// * pow(cos(twopi * 8 * p), 2);
     sample gain = env;
     o *= gain;
diff @ 2018-11-22 22:41:07 +0000
diff --git a/client/go.c b/client/go.c
index 8c9d14180..907cb4201 100644
--- a/client/go.c
+++ b/client/go.c
@@ -169,7 +169,7 @@ go(S *s, int channels, const float *in, float *out)
     kick += sin(vcf(&s->tkick[1], kick, khz * 3, 50)*35);
     kick += sin(vcf(&s->tkick[2], kick, khz*4-20, 5)*5)
          *  sin(vcf(&s->tkick[3], kick, khz*4+20, 5)*5);
-    kick = biquad(highpass(&s->cut[0], 50, 10), kick);
+    kick = biquad(highpass(&s->cut[0], 50, 1), kick);
     sample crush = phasor(&s->tcrush, 4000 * pow(2, cos(twopi * p)));
     tilex[0] = samphold(&s->tcrushsh[0], noise() * hat, crush);
     tilex[1] = samphold(&s->tcrushsh[1], noise() * hat, crush);
diff @ 2018-11-22 22:41:12 +0000
diff --git a/client/go.c b/client/go.c
index 907cb4201..a0ed857a1 100644
--- a/client/go.c
+++ b/client/go.c
@@ -165,7 +165,7 @@ go(S *s, int channels, const float *in, float *out)
     sample hat = wrap(16 * p + 0.5) < 0.15 * p;
     hat *= 1;
     sample khz = 50 + 10 * (wrap(8 * p) > 1) + 25 * (wrap(2 * p) > 1);
-    kick +=tanh(vcf(&s->tkick[0], kick, khz, 5)*5)*2;
+    kick +=tanh(vcf(&s->tkick[0], kick, khz, 25)*25)*2;
     kick += sin(vcf(&s->tkick[1], kick, khz * 3, 50)*35);
     kick += sin(vcf(&s->tkick[2], kick, khz*4-20, 5)*5)
          *  sin(vcf(&s->tkick[3], kick, khz*4+20, 5)*5);
@@ -173,7 +173,7 @@ go(S *s, int channels, const float *in, float *out)
     sample crush = phasor(&s->tcrush, 4000 * pow(2, cos(twopi * p)));
     tilex[0] = samphold(&s->tcrushsh[0], noise() * hat, crush);
     tilex[1] = samphold(&s->tcrushsh[1], noise() * hat, crush);
-    sample kgain = 0;
+    sample kgain = 1;
     kgain = samphold(&s->tgate[0], kgain, p);
     tilex[0] += kgain * kick;
     tilex[1] += kgain * kick;
diff @ 2018-11-22 22:41:25 +0000
diff --git a/client/go.c b/client/go.c
index a0ed857a1..67dc3031b 100644
--- a/client/go.c
+++ b/client/go.c
@@ -167,8 +167,8 @@ go(S *s, int channels, const float *in, float *out)
     sample khz = 50 + 10 * (wrap(8 * p) > 1) + 25 * (wrap(2 * p) > 1);
     kick +=tanh(vcf(&s->tkick[0], kick, khz, 25)*25)*2;
     kick += sin(vcf(&s->tkick[1], kick, khz * 3, 50)*35);
-    kick += sin(vcf(&s->tkick[2], kick, khz*4-20, 5)*5)
-         *  sin(vcf(&s->tkick[3], kick, khz*4+20, 5)*5);
+    kick += sin(vcf(&s->tkick[2], kick, khz*7, 5)*5)
+         *  sin(vcf(&s->tkick[3], kick, khz*9, 5)*5);
     kick = biquad(highpass(&s->cut[0], 50, 1), kick);
     sample crush = phasor(&s->tcrush, 4000 * pow(2, cos(twopi * p)));
     tilex[0] = samphold(&s->tcrushsh[0], noise() * hat, crush);
diff @ 2018-11-22 22:41:34 +0000
diff --git a/client/go.c b/client/go.c
index 67dc3031b..09d6191d9 100644
--- a/client/go.c
+++ b/client/go.c
@@ -167,8 +167,8 @@ go(S *s, int channels, const float *in, float *out)
     sample khz = 50 + 10 * (wrap(8 * p) > 1) + 25 * (wrap(2 * p) > 1);
     kick +=tanh(vcf(&s->tkick[0], kick, khz, 25)*25)*2;
     kick += sin(vcf(&s->tkick[1], kick, khz * 3, 50)*35);
-    kick += sin(vcf(&s->tkick[2], kick, khz*7, 5)*5)
-         *  sin(vcf(&s->tkick[3], kick, khz*9, 5)*5);
+    kick += sin(vcf(&s->tkick[2], kick, khz*7, 159)*59)
+         *  sin(vcf(&s->tkick[3], kick, khz*9, 159)*59);
     kick = biquad(highpass(&s->cut[0], 50, 1), kick);
     sample crush = phasor(&s->tcrush, 4000 * pow(2, cos(twopi * p)));
     tilex[0] = samphold(&s->tcrushsh[0], noise() * hat, crush);
diff @ 2018-11-22 22:41:41 +0000
diff --git a/client/go.c b/client/go.c
index 09d6191d9..89c79c9b4 100644
--- a/client/go.c
+++ b/client/go.c
@@ -164,7 +164,7 @@ go(S *s, int channels, const float *in, float *out)
     kick = tanh(kick);
     sample hat = wrap(16 * p + 0.5) < 0.15 * p;
     hat *= 1;
-    sample khz = 50 + 10 * (wrap(8 * p) > 1) + 25 * (wrap(2 * p) > 1);
+    sample khz = 50 + 10 * (wrap(8 * p) > 0.6) + 25 * (wrap(2 * p) > 1);
     kick +=tanh(vcf(&s->tkick[0], kick, khz, 25)*25)*2;
     kick += sin(vcf(&s->tkick[1], kick, khz * 3, 50)*35);
     kick += sin(vcf(&s->tkick[2], kick, khz*7, 159)*59)
diff @ 2018-11-22 22:41:44 +0000
diff --git a/client/go.c b/client/go.c
index 89c79c9b4..d02f28e9b 100644
--- a/client/go.c
+++ b/client/go.c
@@ -164,7 +164,7 @@ go(S *s, int channels, const float *in, float *out)
     kick = tanh(kick);
     sample hat = wrap(16 * p + 0.5) < 0.15 * p;
     hat *= 1;
-    sample khz = 50 + 10 * (wrap(8 * p) > 0.6) + 25 * (wrap(2 * p) > 1);
+    sample khz = 50 + 10 * (wrap(8 * p) > 0.5) + 25 * (wrap(2 * p) > 1);
     kick +=tanh(vcf(&s->tkick[0], kick, khz, 25)*25)*2;
     kick += sin(vcf(&s->tkick[1], kick, khz * 3, 50)*35);
     kick += sin(vcf(&s->tkick[2], kick, khz*7, 159)*59)
diff @ 2018-11-22 22:41:50 +0000
diff --git a/client/go.c b/client/go.c
index d02f28e9b..b8e51a2b5 100644
--- a/client/go.c
+++ b/client/go.c
@@ -164,7 +164,7 @@ go(S *s, int channels, const float *in, float *out)
     kick = tanh(kick);
     sample hat = wrap(16 * p + 0.5) < 0.15 * p;
     hat *= 1;
-    sample khz = 50 + 10 * (wrap(8 * p) > 0.5) + 25 * (wrap(2 * p) > 1);
+    sample khz = 50 + 10 * (wrap(8 * p) > 0.5) + 25 * (wrap(2 * p) > 0.87);
     kick +=tanh(vcf(&s->tkick[0], kick, khz, 25)*25)*2;
     kick += sin(vcf(&s->tkick[1], kick, khz * 3, 50)*35);
     kick += sin(vcf(&s->tkick[2], kick, khz*7, 159)*59)
diff @ 2018-11-22 22:41:52 +0000
diff --git a/client/go.c b/client/go.c
index b8e51a2b5..6742312f9 100644
--- a/client/go.c
+++ b/client/go.c
@@ -164,7 +164,7 @@ go(S *s, int channels, const float *in, float *out)
     kick = tanh(kick);
     sample hat = wrap(16 * p + 0.5) < 0.15 * p;
     hat *= 1;
-    sample khz = 50 + 10 * (wrap(8 * p) > 0.5) + 25 * (wrap(2 * p) > 0.87);
+    sample khz = 50 + 10 * (wrap(8 * p) > 0.5) + 25 * (wrap(2 * p) > 0.75);
     kick +=tanh(vcf(&s->tkick[0], kick, khz, 25)*25)*2;
     kick += sin(vcf(&s->tkick[1], kick, khz * 3, 50)*35);
     kick += sin(vcf(&s->tkick[2], kick, khz*7, 159)*59)
diff @ 2018-11-22 22:42:08 +0000
diff --git a/client/go.c b/client/go.c
index 6742312f9..fffac431f 100644
--- a/client/go.c
+++ b/client/go.c
@@ -132,7 +132,7 @@ go(S *s, int channels, const float *in, float *out)
     }
     // compress feedback
     compress(so2, &s->so2.compress, 5, 10, 25, 48, feedback);
-    sample gain = 1;
+    sample gain = 0.0000001;
     so2[0] *= gain;
     so2[1] *= gain;
     // write to delay lines
diff @ 2018-11-22 22:42:19 +0000
diff --git a/client/go.c b/client/go.c
index fffac431f..93fce27b8 100644
--- a/client/go.c
+++ b/client/go.c
@@ -192,7 +192,7 @@ go(S *s, int channels, const float *in, float *out)
     int N = 16;
     int n = (time / 5) & ((1 << N) - 1);
     sample zeroes = clamp(count_trailing_zeroes(n), 0, N);
-    sample probability = pow(0.5, N - zeroes);
+    sample probability = pow(0.55, N - zeroes);
     probability = (8.5 + 0 * (n >= 0xC001)) * probability - 0.5;
     probability = clamp(probability, 0, 1);
     sample uniform = rand() / (sample) RAND_MAX;
diff @ 2018-11-22 22:42:23 +0000
diff --git a/client/go.c b/client/go.c
index 93fce27b8..b167730a7 100644
--- a/client/go.c
+++ b/client/go.c
@@ -193,7 +193,7 @@ go(S *s, int channels, const float *in, float *out)
     int n = (time / 5) & ((1 << N) - 1);
     sample zeroes = clamp(count_trailing_zeroes(n), 0, N);
     sample probability = pow(0.55, N - zeroes);
-    probability = (8.5 + 0 * (n >= 0xC001)) * probability - 0.5;
+    probability = (8.5 + 4 * (n >= 0xC001)) * probability - 0.5;
     probability = clamp(probability, 0, 1);
     sample uniform = rand() / (sample) RAND_MAX;
     sample trigger = uniform < probability;
diff @ 2018-11-22 22:42:32 +0000
diff --git a/client/go.c b/client/go.c
index b167730a7..514c40181 100644
--- a/client/go.c
+++ b/client/go.c
@@ -193,7 +193,7 @@ go(S *s, int channels, const float *in, float *out)
     int n = (time / 5) & ((1 << N) - 1);
     sample zeroes = clamp(count_trailing_zeroes(n), 0, N);
     sample probability = pow(0.55, N - zeroes);
-    probability = (8.5 + 4 * (n >= 0xC001)) * probability - 0.5;
+    probability = (8.5 + 6 * (n >= 0xC001)) * probability - 0.5;
     probability = clamp(probability, 0, 1);
     sample uniform = rand() / (sample) RAND_MAX;
     sample trigger = uniform < probability;
diff @ 2018-11-22 22:42:50 +0000
diff --git a/client/go.c b/client/go.c
index 514c40181..6c7de6e87 100644
--- a/client/go.c
+++ b/client/go.c
@@ -191,7 +191,7 @@ go(S *s, int channels, const float *in, float *out)
   {
     int N = 16;
     int n = (time / 5) & ((1 << N) - 1);
-    sample zeroes = clamp(count_trailing_zeroes(n), 0, N);
+    sample zeroes = clamp(count_trailing_zeroes(n), 4, N);
     sample probability = pow(0.55, N - zeroes);
     probability = (8.5 + 6 * (n >= 0xC001)) * probability - 0.5;
     probability = clamp(probability, 0, 1);
diff @ 2018-11-22 22:42:57 +0000
diff --git a/client/go.c b/client/go.c
index 6c7de6e87..2563fae04 100644
--- a/client/go.c
+++ b/client/go.c
@@ -201,7 +201,7 @@ go(S *s, int channels, const float *in, float *out)
     env = lop(&s->benv, 0, 0.5);
     sample harmonic = 4 + clamp(N - zeroes, 0, 20);
     freq = 32 * samphold(&s->bsh, harmonic, 1 - trigger);
-    freq = lop(&s->bfreq, freq, 10);
+    freq = lop(&s->bfreq, freq, 1);
   }
 
   // = 3 = one wobbly wave =============================================
diff @ 2018-11-22 22:43:10 +0000
diff --git a/client/go.c b/client/go.c
index 2563fae04..905c92d23 100644
--- a/client/go.c
+++ b/client/go.c
@@ -198,7 +198,7 @@ go(S *s, int channels, const float *in, float *out)
     sample uniform = rand() / (sample) RAND_MAX;
     sample trigger = uniform < probability;
     s->benv.y += trigger * 0.2;
-    env = lop(&s->benv, 0, 0.5);
+    env = lop(&s->benv, 0, 0.05);
     sample harmonic = 4 + clamp(N - zeroes, 0, 20);
     freq = 32 * samphold(&s->bsh, harmonic, 1 - trigger);
     freq = lop(&s->bfreq, freq, 1);
diff @ 2018-11-22 22:43:14 +0000
diff --git a/client/go.c b/client/go.c
index 905c92d23..29da69bfa 100644
--- a/client/go.c
+++ b/client/go.c
@@ -197,7 +197,7 @@ go(S *s, int channels, const float *in, float *out)
     probability = clamp(probability, 0, 1);
     sample uniform = rand() / (sample) RAND_MAX;
     sample trigger = uniform < probability;
-    s->benv.y += trigger * 0.2;
+    s->benv.y += trigger * 0;
     env = lop(&s->benv, 0, 0.05);
     sample harmonic = 4 + clamp(N - zeroes, 0, 20);
     freq = 32 * samphold(&s->bsh, harmonic, 1 - trigger);
diff @ 2018-11-22 22:43:37 +0000
diff --git a/client/go.c b/client/go.c
index 29da69bfa..b580f54bf 100644
--- a/client/go.c
+++ b/client/go.c
@@ -250,8 +250,8 @@ go(S *s, int channels, const float *in, float *out)
     sample er = delread4(&s->edelay2, rdelms + si);
     sample es[2] = { co * el + si * er, -si * el + co * er };
     compress(es, &s->ecompress1, 5, 10, 25, 48, es);
-    es[0] = mix(mixdown[0], es[0], mix(0, pow(wrap(8 * p), 0.25), 0));
-    es[1] = mix(mixdown[1], es[1], mix(0, pow(wrap(8 * p), 0.25), 0));
+    es[0] = mix(mixdown[0], es[0], mix(0.5, pow(wrap(8 * p), 0.25), 0));
+    es[1] = mix(mixdown[1], es[1], mix(0.5, pow(wrap(8 * p), 0.25), 0));
     compress(es, &s->ecompress2, 5, 10, 25, 48, es);
     delwrite(&s->edelay1, es[0]);
     delwrite(&s->edelay2, es[1]);
diff @ 2018-11-22 22:43:44 +0000
diff --git a/client/go.c b/client/go.c
index b580f54bf..f97699612 100644
--- a/client/go.c
+++ b/client/go.c
@@ -242,7 +242,7 @@ go(S *s, int channels, const float *in, float *out)
     sample t = twopi * p;
     sample co = cos(t);
     sample si = sin(t);
-    sample ldelms = 60000 / bpm * (p < 0.75 ? 1 : 2);
+    sample ldelms = 60000 / bpm * (p < 0.75 ? 1 : 1/64);
     sample rdelms = ldelms;
     ldelms = lop(&s->elop[0], ldelms, 5);
     rdelms = lop(&s->elop[1], rdelms, 5);
diff @ 2018-11-22 22:43:44 +0000
diff --git a/client/go.c b/client/go.c
index f97699612..1e69453ad 100644
--- a/client/go.c
+++ b/client/go.c
@@ -242,7 +242,7 @@ go(S *s, int channels, const float *in, float *out)
     sample t = twopi * p;
     sample co = cos(t);
     sample si = sin(t);
-    sample ldelms = 60000 / bpm * (p < 0.75 ? 1 : 1/64);
+    sample ldelms = 60000 / bpm * (p < 0.75 ? 1 : 1//64);
     sample rdelms = ldelms;
     ldelms = lop(&s->elop[0], ldelms, 5);
     rdelms = lop(&s->elop[1], rdelms, 5);
diff @ 2018-11-22 22:43:45 +0000
diff --git a/client/go.c b/client/go.c
index 1e69453ad..0b1a2df16 100644
--- a/client/go.c
+++ b/client/go.c
@@ -242,7 +242,7 @@ go(S *s, int channels, const float *in, float *out)
     sample t = twopi * p;
     sample co = cos(t);
     sample si = sin(t);
-    sample ldelms = 60000 / bpm * (p < 0.75 ? 1 : 1//64);
+    sample ldelms = 60000 / bpm * (p < 0.75 ? 1 : ./64);
     sample rdelms = ldelms;
     ldelms = lop(&s->elop[0], ldelms, 5);
     rdelms = lop(&s->elop[1], rdelms, 5);
diff @ 2018-11-22 22:43:48 +0000
diff --git a/client/go.c b/client/go.c
index 0b1a2df16..f0ad2137e 100644
--- a/client/go.c
+++ b/client/go.c
@@ -242,7 +242,7 @@ go(S *s, int channels, const float *in, float *out)
     sample t = twopi * p;
     sample co = cos(t);
     sample si = sin(t);
-    sample ldelms = 60000 / bpm * (p < 0.75 ? 1 : ./64);
+    sample ldelms = 60000 / bpm * (p < 0.75 ? 1 : 1./64);
     sample rdelms = ldelms;
     ldelms = lop(&s->elop[0], ldelms, 5);
     rdelms = lop(&s->elop[1], rdelms, 5);
diff @ 2018-11-22 22:44:09 +0000
diff --git a/client/go.c b/client/go.c
index f0ad2137e..7482a8a4f 100644
--- a/client/go.c
+++ b/client/go.c
@@ -243,7 +243,7 @@ go(S *s, int channels, const float *in, float *out)
     sample co = cos(t);
     sample si = sin(t);
     sample ldelms = 60000 / bpm * (p < 0.75 ? 1 : 1./64);
-    sample rdelms = ldelms;
+    sample rdelms = 60000 / bpm * (p < 0.50 ? 1./2 : 1./48);
     ldelms = lop(&s->elop[0], ldelms, 5);
     rdelms = lop(&s->elop[1], rdelms, 5);
     sample el = delread4(&s->edelay1, ldelms + co);
diff @ 2018-11-22 22:44:15 +0000
diff --git a/client/go.c b/client/go.c
index 7482a8a4f..5c0ac9282 100644
--- a/client/go.c
+++ b/client/go.c
@@ -250,8 +250,8 @@ go(S *s, int channels, const float *in, float *out)
     sample er = delread4(&s->edelay2, rdelms + si);
     sample es[2] = { co * el + si * er, -si * el + co * er };
     compress(es, &s->ecompress1, 5, 10, 25, 48, es);
-    es[0] = mix(mixdown[0], es[0], mix(0.5, pow(wrap(8 * p), 0.25), 0));
-    es[1] = mix(mixdown[1], es[1], mix(0.5, pow(wrap(8 * p), 0.25), 0));
+    es[0] = mix(mixdown[0], es[0], mix(0.75, pow(wrap(8 * p), 0.25), 0));
+    es[1] = mix(mixdown[1], es[1], mix(0.75, pow(wrap(8 * p), 0.25), 0));
     compress(es, &s->ecompress2, 5, 10, 25, 48, es);
     delwrite(&s->edelay1, es[0]);
     delwrite(&s->edelay2, es[1]);
diff @ 2018-11-22 22:44:27 +0000
diff --git a/client/go.c b/client/go.c
index 5c0ac9282..f72bf9973 100644
--- a/client/go.c
+++ b/client/go.c
@@ -250,8 +250,8 @@ go(S *s, int channels, const float *in, float *out)
     sample er = delread4(&s->edelay2, rdelms + si);
     sample es[2] = { co * el + si * er, -si * el + co * er };
     compress(es, &s->ecompress1, 5, 10, 25, 48, es);
-    es[0] = mix(mixdown[0], es[0], mix(0.75, pow(wrap(8 * p), 0.25), 0));
-    es[1] = mix(mixdown[1], es[1], mix(0.75, pow(wrap(8 * p), 0.25), 0));
+    es[0] = mix(mixdown[0], es[0], mix(0.875, pow(wrap(8 * p), 0.25), 0));
+    es[1] = mix(mixdown[1], es[1], mix(0.875, pow(wrap(8 * p), 0.25), 0));
     compress(es, &s->ecompress2, 5, 10, 25, 48, es);
     delwrite(&s->edelay1, es[0]);
     delwrite(&s->edelay2, es[1]);
diff @ 2018-11-22 22:44:34 +0000
diff --git a/client/go.c b/client/go.c
index f72bf9973..1dca31f0f 100644
--- a/client/go.c
+++ b/client/go.c
@@ -244,8 +244,8 @@ go(S *s, int channels, const float *in, float *out)
     sample si = sin(t);
     sample ldelms = 60000 / bpm * (p < 0.75 ? 1 : 1./64);
     sample rdelms = 60000 / bpm * (p < 0.50 ? 1./2 : 1./48);
-    ldelms = lop(&s->elop[0], ldelms, 5);
-    rdelms = lop(&s->elop[1], rdelms, 5);
+    ldelms = lop(&s->elop[0], ldelms, 15);
+    rdelms = lop(&s->elop[1], rdelms, 15);
     sample el = delread4(&s->edelay1, ldelms + co);
     sample er = delread4(&s->edelay2, rdelms + si);
     sample es[2] = { co * el + si * er, -si * el + co * er };
diff @ 2018-11-22 22:44:45 +0000
diff --git a/client/go.c b/client/go.c
index 1dca31f0f..e0e3cbd66 100644
--- a/client/go.c
+++ b/client/go.c
@@ -250,8 +250,8 @@ go(S *s, int channels, const float *in, float *out)
     sample er = delread4(&s->edelay2, rdelms + si);
     sample es[2] = { co * el + si * er, -si * el + co * er };
     compress(es, &s->ecompress1, 5, 10, 25, 48, es);
-    es[0] = mix(mixdown[0], es[0], mix(0.875, pow(wrap(8 * p), 0.25), 0));
-    es[1] = mix(mixdown[1], es[1], mix(0.875, pow(wrap(8 * p), 0.25), 0));
+    es[0] = mix(mixdown[0], es[0], mix(0.875, pow(wrap(8 * p), 0.25), 1));
+    es[1] = mix(mixdown[1], es[1], mix(0.875, pow(wrap(8 * p), 0.25), 1));
     compress(es, &s->ecompress2, 5, 10, 25, 48, es);
     delwrite(&s->edelay1, es[0]);
     delwrite(&s->edelay2, es[1]);
diff @ 2018-11-22 22:46:00 +0000
diff --git a/client/go.h b/client/go.h
index cbc88e291..db9ea30d9 100644
--- a/client/go.h
+++ b/client/go.h
@@ -58,5 +58,7 @@ typedef struct
 
   BIQUAD cut[2];
 
+  BIQUAD efilter[4];
+
 } S;
 #endif
diff @ 2018-11-22 22:46:01 +0000
diff --git a/client/go.c b/client/go.c
index e0e3cbd66..21a1b9cf3 100644
--- a/client/go.c
+++ b/client/go.c
@@ -248,6 +248,8 @@ go(S *s, int channels, const float *in, float *out)
     rdelms = lop(&s->elop[1], rdelms, 15);
     sample el = delread4(&s->edelay1, ldelms + co);
     sample er = delread4(&s->edelay2, rdelms + si);
+    el = biquad(bandpass(&s->efilter[0], 100, flatq), el);
+    er = biquad(bandpass(&s->efilter[1], 1000, flatq), er);
     sample es[2] = { co * el + si * er, -si * el + co * er };
     compress(es, &s->ecompress1, 5, 10, 25, 48, es);
     es[0] = mix(mixdown[0], es[0], mix(0.875, pow(wrap(8 * p), 0.25), 1));
diff @ 2018-11-22 22:46:19 +0000
diff --git a/client/go.c b/client/go.c
index 21a1b9cf3..325c63cda 100644
--- a/client/go.c
+++ b/client/go.c
@@ -252,8 +252,8 @@ go(S *s, int channels, const float *in, float *out)
     er = biquad(bandpass(&s->efilter[1], 1000, flatq), er);
     sample es[2] = { co * el + si * er, -si * el + co * er };
     compress(es, &s->ecompress1, 5, 10, 25, 48, es);
-    es[0] = mix(mixdown[0], es[0], mix(0.875, pow(wrap(8 * p), 0.25), 1));
-    es[1] = mix(mixdown[1], es[1], mix(0.875, pow(wrap(8 * p), 0.25), 1));
+    es[0] = mix(mixdown[0], es[0], mix(0.875, pow(wrap(8 * p), 0.25), 0.6));
+    es[1] = mix(mixdown[1], es[1], mix(0.875, pow(wrap(8 * p), 0.25), 0.6));
     compress(es, &s->ecompress2, 5, 10, 25, 48, es);
     delwrite(&s->edelay1, es[0]);
     delwrite(&s->edelay2, es[1]);
diff @ 2018-11-22 22:46:25 +0000
diff --git a/client/go.c b/client/go.c
index 325c63cda..a2ee56ede 100644
--- a/client/go.c
+++ b/client/go.c
@@ -252,8 +252,8 @@ go(S *s, int channels, const float *in, float *out)
     er = biquad(bandpass(&s->efilter[1], 1000, flatq), er);
     sample es[2] = { co * el + si * er, -si * el + co * er };
     compress(es, &s->ecompress1, 5, 10, 25, 48, es);
-    es[0] = mix(mixdown[0], es[0], mix(0.875, pow(wrap(8 * p), 0.25), 0.6));
-    es[1] = mix(mixdown[1], es[1], mix(0.875, pow(wrap(8 * p), 0.25), 0.6));
+    es[0] = mix(mixdown[0], es[0], mix(0.5, pow(wrap(8 * p), 0.25), 0.6));
+    es[1] = mix(mixdown[1], es[1], mix(0.5, pow(wrap(8 * p), 0.25), 0.6));
     compress(es, &s->ecompress2, 5, 10, 25, 48, es);
     delwrite(&s->edelay1, es[0]);
     delwrite(&s->edelay2, es[1]);
diff @ 2018-11-22 22:46:31 +0000
diff --git a/client/go.c b/client/go.c
index a2ee56ede..5cea16dcf 100644
--- a/client/go.c
+++ b/client/go.c
@@ -252,8 +252,8 @@ go(S *s, int channels, const float *in, float *out)
     er = biquad(bandpass(&s->efilter[1], 1000, flatq), er);
     sample es[2] = { co * el + si * er, -si * el + co * er };
     compress(es, &s->ecompress1, 5, 10, 25, 48, es);
-    es[0] = mix(mixdown[0], es[0], mix(0.5, pow(wrap(8 * p), 0.25), 0.6));
-    es[1] = mix(mixdown[1], es[1], mix(0.5, pow(wrap(8 * p), 0.25), 0.6));
+    es[0] = mix(mixdown[0], es[0], mix(0.95, pow(wrap(8 * p), 0.25), 0.6));
+    es[1] = mix(mixdown[1], es[1], mix(0.95, pow(wrap(8 * p), 0.25), 0.6));
     compress(es, &s->ecompress2, 5, 10, 25, 48, es);
     delwrite(&s->edelay1, es[0]);
     delwrite(&s->edelay2, es[1]);
diff @ 2018-11-22 22:46:39 +0000
diff --git a/client/go.c b/client/go.c
index 5cea16dcf..64822bb5e 100644
--- a/client/go.c
+++ b/client/go.c
@@ -248,7 +248,7 @@ go(S *s, int channels, const float *in, float *out)
     rdelms = lop(&s->elop[1], rdelms, 15);
     sample el = delread4(&s->edelay1, ldelms + co);
     sample er = delread4(&s->edelay2, rdelms + si);
-    el = biquad(bandpass(&s->efilter[0], 100, flatq), el);
+    el = biquad(bandpass(&s->efilter[0], 100 * pow(2, p), flatq), el);
     er = biquad(bandpass(&s->efilter[1], 1000, flatq), er);
     sample es[2] = { co * el + si * er, -si * el + co * er };
     compress(es, &s->ecompress1, 5, 10, 25, 48, es);
diff @ 2018-11-22 22:46:48 +0000
diff --git a/client/go.c b/client/go.c
index 64822bb5e..f99bb48e6 100644
--- a/client/go.c
+++ b/client/go.c
@@ -249,7 +249,7 @@ go(S *s, int channels, const float *in, float *out)
     sample el = delread4(&s->edelay1, ldelms + co);
     sample er = delread4(&s->edelay2, rdelms + si);
     el = biquad(bandpass(&s->efilter[0], 100 * pow(2, p), flatq), el);
-    er = biquad(bandpass(&s->efilter[1], 1000, flatq), er);
+    er = biquad(bandpass(&s->efilter[1], 1000 * pow(0.5, p), flatq), er);
     sample es[2] = { co * el + si * er, -si * el + co * er };
     compress(es, &s->ecompress1, 5, 10, 25, 48, es);
     es[0] = mix(mixdown[0], es[0], mix(0.95, pow(wrap(8 * p), 0.25), 0.6));
diff @ 2018-11-22 22:46:59 +0000
diff --git a/client/go.c b/client/go.c
index f99bb48e6..50e91ce5b 100644
--- a/client/go.c
+++ b/client/go.c
@@ -249,7 +249,7 @@ go(S *s, int channels, const float *in, float *out)
     sample el = delread4(&s->edelay1, ldelms + co);
     sample er = delread4(&s->edelay2, rdelms + si);
     el = biquad(bandpass(&s->efilter[0], 100 * pow(2, p), flatq), el);
-    er = biquad(bandpass(&s->efilter[1], 1000 * pow(0.5, p), flatq), er);
+    er = biquad(bandpass(&s->efilter[1], 1000 * pow(0.5, wrap(4 * p)), flatq), er);
     sample es[2] = { co * el + si * er, -si * el + co * er };
     compress(es, &s->ecompress1, 5, 10, 25, 48, es);
     es[0] = mix(mixdown[0], es[0], mix(0.95, pow(wrap(8 * p), 0.25), 0.6));
diff @ 2018-11-22 22:47:06 +0000
diff --git a/client/go.c b/client/go.c
index 50e91ce5b..f0ac69ecb 100644
--- a/client/go.c
+++ b/client/go.c
@@ -249,7 +249,7 @@ go(S *s, int channels, const float *in, float *out)
     sample el = delread4(&s->edelay1, ldelms + co);
     sample er = delread4(&s->edelay2, rdelms + si);
     el = biquad(bandpass(&s->efilter[0], 100 * pow(2, p), flatq), el);
-    er = biquad(bandpass(&s->efilter[1], 1000 * pow(0.5, wrap(4 * p)), flatq), er);
+    er = biquad(bandpass(&s->efilter[1], 1000 * pow(0.5, wrap(8 * p)), flatq), er);
     sample es[2] = { co * el + si * er, -si * el + co * er };
     compress(es, &s->ecompress1, 5, 10, 25, 48, es);
     es[0] = mix(mixdown[0], es[0], mix(0.95, pow(wrap(8 * p), 0.25), 0.6));
diff @ 2018-11-22 22:47:13 +0000
diff --git a/client/go.c b/client/go.c
index f0ac69ecb..9ee040a12 100644
--- a/client/go.c
+++ b/client/go.c
@@ -249,7 +249,7 @@ go(S *s, int channels, const float *in, float *out)
     sample el = delread4(&s->edelay1, ldelms + co);
     sample er = delread4(&s->edelay2, rdelms + si);
     el = biquad(bandpass(&s->efilter[0], 100 * pow(2, p), flatq), el);
-    er = biquad(bandpass(&s->efilter[1], 1000 * pow(0.5, wrap(8 * p)), flatq), er);
+    er = biquad(bandpass(&s->efilter[1], 1000 * pow(0.5, wrap(16 * p)), flatq), er);
     sample es[2] = { co * el + si * er, -si * el + co * er };
     compress(es, &s->ecompress1, 5, 10, 25, 48, es);
     es[0] = mix(mixdown[0], es[0], mix(0.95, pow(wrap(8 * p), 0.25), 0.6));
diff @ 2018-11-22 22:48:16 +0000
diff --git a/client/go.h b/client/go.h
index db9ea30d9..b59aab969 100644
--- a/client/go.h
+++ b/client/go.h
@@ -57,8 +57,8 @@ typedef struct
   // = append only data structure ======================================
 
   BIQUAD cut[2];
-
   BIQUAD efilter[4];
+  SAMPHOLD eseq[4];
 
 } S;
 #endif
diff @ 2018-11-22 22:48:17 +0000
diff --git a/client/go.c b/client/go.c
index 9ee040a12..a958b8bcb 100644
--- a/client/go.c
+++ b/client/go.c
@@ -242,6 +242,9 @@ go(S *s, int channels, const float *in, float *out)
     sample t = twopi * p;
     sample co = cos(t);
     sample si = sin(t);
+    sample seq[4];
+    for (int i = 0;i< 4; ++i)
+      seq[i] = samphold(&s->eseq[i], rand() & 0xF, p) + 1;
     sample ldelms = 60000 / bpm * (p < 0.75 ? 1 : 1./64);
     sample rdelms = 60000 / bpm * (p < 0.50 ? 1./2 : 1./48);
     ldelms = lop(&s->elop[0], ldelms, 15);
diff @ 2018-11-22 22:48:29 +0000
diff --git a/client/go.c b/client/go.c
index a958b8bcb..18e48630a 100644
--- a/client/go.c
+++ b/client/go.c
@@ -245,7 +245,7 @@ go(S *s, int channels, const float *in, float *out)
     sample seq[4];
     for (int i = 0;i< 4; ++i)
       seq[i] = samphold(&s->eseq[i], rand() & 0xF, p) + 1;
-    sample ldelms = 60000 / bpm * (p < 0.75 ? 1 : 1./64);
+    sample ldelms = 60000 / bpm * (p < 0.75 ? 1 : 0.25/seq[1]);
     sample rdelms = 60000 / bpm * (p < 0.50 ? 1./2 : 1./48);
     ldelms = lop(&s->elop[0], ldelms, 15);
     rdelms = lop(&s->elop[1], rdelms, 15);
diff @ 2018-11-22 22:48:39 +0000
diff --git a/client/go.c b/client/go.c
index 18e48630a..24572db1b 100644
--- a/client/go.c
+++ b/client/go.c
@@ -246,7 +246,7 @@ go(S *s, int channels, const float *in, float *out)
     for (int i = 0;i< 4; ++i)
       seq[i] = samphold(&s->eseq[i], rand() & 0xF, p) + 1;
     sample ldelms = 60000 / bpm * (p < 0.75 ? 1 : 0.25/seq[1]);
-    sample rdelms = 60000 / bpm * (p < 0.50 ? 1./2 : 1./48);
+    sample rdelms = 60000 / bpm * (p < 0.50 ? 1./2 : 1./seq[3]);
     ldelms = lop(&s->elop[0], ldelms, 15);
     rdelms = lop(&s->elop[1], rdelms, 15);
     sample el = delread4(&s->edelay1, ldelms + co);
diff @ 2018-11-22 22:48:47 +0000
diff --git a/client/go.c b/client/go.c
index 24572db1b..e94b30271 100644
--- a/client/go.c
+++ b/client/go.c
@@ -246,7 +246,7 @@ go(S *s, int channels, const float *in, float *out)
     for (int i = 0;i< 4; ++i)
       seq[i] = samphold(&s->eseq[i], rand() & 0xF, p) + 1;
     sample ldelms = 60000 / bpm * (p < 0.75 ? 1 : 0.25/seq[1]);
-    sample rdelms = 60000 / bpm * (p < 0.50 ? 1./2 : 1./seq[3]);
+    sample rdelms = 60000 / bpm * (p < 0.50 ? 1./seq[2] : 1./seq[3]);
     ldelms = lop(&s->elop[0], ldelms, 15);
     rdelms = lop(&s->elop[1], rdelms, 15);
     sample el = delread4(&s->edelay1, ldelms + co);
diff @ 2018-11-22 22:48:52 +0000
diff --git a/client/go.c b/client/go.c
index e94b30271..bad95f530 100644
--- a/client/go.c
+++ b/client/go.c
@@ -245,7 +245,7 @@ go(S *s, int channels, const float *in, float *out)
     sample seq[4];
     for (int i = 0;i< 4; ++i)
       seq[i] = samphold(&s->eseq[i], rand() & 0xF, p) + 1;
-    sample ldelms = 60000 / bpm * (p < 0.75 ? 1 : 0.25/seq[1]);
+    sample ldelms = 60000 / bpm * (p < 0.75 ? 1./seq[0] : 0.25/seq[1]);
     sample rdelms = 60000 / bpm * (p < 0.50 ? 1./seq[2] : 1./seq[3]);
     ldelms = lop(&s->elop[0], ldelms, 15);
     rdelms = lop(&s->elop[1], rdelms, 15);
diff @ 2018-11-22 22:48:58 +0000
diff --git a/client/go.c b/client/go.c
index bad95f530..4008fb51a 100644
--- a/client/go.c
+++ b/client/go.c
@@ -246,7 +246,7 @@ go(S *s, int channels, const float *in, float *out)
     for (int i = 0;i< 4; ++i)
       seq[i] = samphold(&s->eseq[i], rand() & 0xF, p) + 1;
     sample ldelms = 60000 / bpm * (p < 0.75 ? 1./seq[0] : 0.25/seq[1]);
-    sample rdelms = 60000 / bpm * (p < 0.50 ? 1./seq[2] : 1./seq[3]);
+    sample rdelms = 60000 / bpm * (p < 0.50 ? 1./seq[2] : 0.25./seq[3]);
     ldelms = lop(&s->elop[0], ldelms, 15);
     rdelms = lop(&s->elop[1], rdelms, 15);
     sample el = delread4(&s->edelay1, ldelms + co);
diff @ 2018-11-22 22:48:59 +0000
diff --git a/client/go.c b/client/go.c
index 4008fb51a..cf12fbac5 100644
--- a/client/go.c
+++ b/client/go.c
@@ -246,7 +246,7 @@ go(S *s, int channels, const float *in, float *out)
     for (int i = 0;i< 4; ++i)
       seq[i] = samphold(&s->eseq[i], rand() & 0xF, p) + 1;
     sample ldelms = 60000 / bpm * (p < 0.75 ? 1./seq[0] : 0.25/seq[1]);
-    sample rdelms = 60000 / bpm * (p < 0.50 ? 1./seq[2] : 0.25./seq[3]);
+    sample rdelms = 60000 / bpm * (p < 0.50 ? 1./seq[2] : 0.25/seq[3]);
     ldelms = lop(&s->elop[0], ldelms, 15);
     rdelms = lop(&s->elop[1], rdelms, 15);
     sample el = delread4(&s->edelay1, ldelms + co);
diff @ 2018-11-22 22:49:04 +0000
diff --git a/client/go.c b/client/go.c
index cf12fbac5..1a4cad3e4 100644
--- a/client/go.c
+++ b/client/go.c
@@ -245,8 +245,8 @@ go(S *s, int channels, const float *in, float *out)
     sample seq[4];
     for (int i = 0;i< 4; ++i)
       seq[i] = samphold(&s->eseq[i], rand() & 0xF, p) + 1;
-    sample ldelms = 60000 / bpm * (p < 0.75 ? 1./seq[0] : 0.25/seq[1]);
-    sample rdelms = 60000 / bpm * (p < 0.50 ? 1./seq[2] : 0.25/seq[3]);
+    sample ldelms = 60000 / bpm * (p < 0.75 ? 1./seq[0] : 0.125/seq[1]);
+    sample rdelms = 60000 / bpm * (p < 0.50 ? 1./seq[2] : 0.125/seq[3]);
     ldelms = lop(&s->elop[0], ldelms, 15);
     rdelms = lop(&s->elop[1], rdelms, 15);
     sample el = delread4(&s->edelay1, ldelms + co);
diff @ 2018-11-22 22:49:20 +0000
diff --git a/client/go.c b/client/go.c
index 1a4cad3e4..eae3c94db 100644
--- a/client/go.c
+++ b/client/go.c
@@ -255,8 +255,8 @@ go(S *s, int channels, const float *in, float *out)
     er = biquad(bandpass(&s->efilter[1], 1000 * pow(0.5, wrap(16 * p)), flatq), er);
     sample es[2] = { co * el + si * er, -si * el + co * er };
     compress(es, &s->ecompress1, 5, 10, 25, 48, es);
-    es[0] = mix(mixdown[0], es[0], mix(0.95, pow(wrap(8 * p), 0.25), 0.6));
-    es[1] = mix(mixdown[1], es[1], mix(0.95, pow(wrap(8 * p), 0.25), 0.6));
+    es[0] = mix(mixdown[0], es[0], mix(!, pow(wrap(8 * p), 0.25), 0.));
+    es[1] = mix(mixdown[1], es[1], mix(1, pow(wrap(8 * p), 0.25), 0.));
     compress(es, &s->ecompress2, 5, 10, 25, 48, es);
     delwrite(&s->edelay1, es[0]);
     delwrite(&s->edelay2, es[1]);
diff @ 2018-11-22 22:49:22 +0000
diff --git a/client/go.c b/client/go.c
index eae3c94db..8332663c3 100644
--- a/client/go.c
+++ b/client/go.c
@@ -255,7 +255,7 @@ go(S *s, int channels, const float *in, float *out)
     er = biquad(bandpass(&s->efilter[1], 1000 * pow(0.5, wrap(16 * p)), flatq), er);
     sample es[2] = { co * el + si * er, -si * el + co * er };
     compress(es, &s->ecompress1, 5, 10, 25, 48, es);
-    es[0] = mix(mixdown[0], es[0], mix(!, pow(wrap(8 * p), 0.25), 0.));
+    es[0] = mix(mixdown[0], es[0], mix(1, pow(wrap(8 * p), 0.25), 0.));
     es[1] = mix(mixdown[1], es[1], mix(1, pow(wrap(8 * p), 0.25), 0.));
     compress(es, &s->ecompress2, 5, 10, 25, 48, es);
     delwrite(&s->edelay1, es[0]);
diff @ 2018-11-22 22:49:26 +0000
diff --git a/client/go.c b/client/go.c
index 8332663c3..184605f11 100644
--- a/client/go.c
+++ b/client/go.c
@@ -251,7 +251,7 @@ go(S *s, int channels, const float *in, float *out)
     rdelms = lop(&s->elop[1], rdelms, 15);
     sample el = delread4(&s->edelay1, ldelms + co);
     sample er = delread4(&s->edelay2, rdelms + si);
-    el = biquad(bandpass(&s->efilter[0], 100 * pow(2, p), flatq), el);
+    el = biquad(bandpass(&s->efilter[0], 200 * pow(2, p), flatq), el);
     er = biquad(bandpass(&s->efilter[1], 1000 * pow(0.5, wrap(16 * p)), flatq), er);
     sample es[2] = { co * el + si * er, -si * el + co * er };
     compress(es, &s->ecompress1, 5, 10, 25, 48, es);
diff @ 2018-11-22 22:49:36 +0000
diff --git a/client/go.c b/client/go.c
index 184605f11..ead9bef95 100644
--- a/client/go.c
+++ b/client/go.c
@@ -252,7 +252,7 @@ go(S *s, int channels, const float *in, float *out)
     sample el = delread4(&s->edelay1, ldelms + co);
     sample er = delread4(&s->edelay2, rdelms + si);
     el = biquad(bandpass(&s->efilter[0], 200 * pow(2, p), flatq), el);
-    er = biquad(bandpass(&s->efilter[1], 1000 * pow(0.5, wrap(16 * p)), flatq), er);
+    er = biquad(bandpass(&s->efilter[1], 200 * pow(0.5, wrap(16 * p)), flatq), er);
     sample es[2] = { co * el + si * er, -si * el + co * er };
     compress(es, &s->ecompress1, 5, 10, 25, 48, es);
     es[0] = mix(mixdown[0], es[0], mix(1, pow(wrap(8 * p), 0.25), 0.));
diff @ 2018-11-22 22:49:42 +0000
diff --git a/client/go.c b/client/go.c
index ead9bef95..123a76c38 100644
--- a/client/go.c
+++ b/client/go.c
@@ -252,7 +252,7 @@ go(S *s, int channels, const float *in, float *out)
     sample el = delread4(&s->edelay1, ldelms + co);
     sample er = delread4(&s->edelay2, rdelms + si);
     el = biquad(bandpass(&s->efilter[0], 200 * pow(2, p), flatq), el);
-    er = biquad(bandpass(&s->efilter[1], 200 * pow(0.5, wrap(16 * p)), flatq), er);
+    er = biquad(bandpass(&s->efilter[1], 400 * pow(0.5, wrap(16 * p)), flatq), er);
     sample es[2] = { co * el + si * er, -si * el + co * er };
     compress(es, &s->ecompress1, 5, 10, 25, 48, es);
     es[0] = mix(mixdown[0], es[0], mix(1, pow(wrap(8 * p), 0.25), 0.));
diff @ 2018-11-22 22:49:49 +0000
diff --git a/client/go.c b/client/go.c
index 123a76c38..e0e914af9 100644
--- a/client/go.c
+++ b/client/go.c
@@ -251,7 +251,7 @@ go(S *s, int channels, const float *in, float *out)
     rdelms = lop(&s->elop[1], rdelms, 15);
     sample el = delread4(&s->edelay1, ldelms + co);
     sample er = delread4(&s->edelay2, rdelms + si);
-    el = biquad(bandpass(&s->efilter[0], 200 * pow(2, p), flatq), el);
+    el = biquad(bandpass(&s->efilter[0], 200 * pow(2, wrap(4 * p)), flatq), el);
     er = biquad(bandpass(&s->efilter[1], 400 * pow(0.5, wrap(16 * p)), flatq), er);
     sample es[2] = { co * el + si * er, -si * el + co * er };
     compress(es, &s->ecompress1, 5, 10, 25, 48, es);
diff @ 2018-11-22 22:50:01 +0000
diff --git a/client/go.c b/client/go.c
index e0e914af9..db630bef8 100644
--- a/client/go.c
+++ b/client/go.c
@@ -251,6 +251,8 @@ go(S *s, int channels, const float *in, float *out)
     rdelms = lop(&s->elop[1], rdelms, 15);
     sample el = delread4(&s->edelay1, ldelms + co);
     sample er = delread4(&s->edelay2, rdelms + si);
+    el = sin(el);
+    er = sin(er);
     el = biquad(bandpass(&s->efilter[0], 200 * pow(2, wrap(4 * p)), flatq), el);
     er = biquad(bandpass(&s->efilter[1], 400 * pow(0.5, wrap(16 * p)), flatq), er);
     sample es[2] = { co * el + si * er, -si * el + co * er };
diff @ 2018-11-22 22:50:04 +0000
diff --git a/client/go.c b/client/go.c
index db630bef8..24c087b99 100644
--- a/client/go.c
+++ b/client/go.c
@@ -251,8 +251,8 @@ go(S *s, int channels, const float *in, float *out)
     rdelms = lop(&s->elop[1], rdelms, 15);
     sample el = delread4(&s->edelay1, ldelms + co);
     sample er = delread4(&s->edelay2, rdelms + si);
-    el = sin(el);
-    er = sin(er);
+    el = sin(2 * el);
+    er = sin(2 8 er);
     el = biquad(bandpass(&s->efilter[0], 200 * pow(2, wrap(4 * p)), flatq), el);
     er = biquad(bandpass(&s->efilter[1], 400 * pow(0.5, wrap(16 * p)), flatq), er);
     sample es[2] = { co * el + si * er, -si * el + co * er };
diff @ 2018-11-22 22:50:06 +0000
diff --git a/client/go.c b/client/go.c
index 24c087b99..a4fa1adff 100644
--- a/client/go.c
+++ b/client/go.c
@@ -252,7 +252,7 @@ go(S *s, int channels, const float *in, float *out)
     sample el = delread4(&s->edelay1, ldelms + co);
     sample er = delread4(&s->edelay2, rdelms + si);
     el = sin(2 * el);
-    er = sin(2 8 er);
+    er = sin(2 * er);
     el = biquad(bandpass(&s->efilter[0], 200 * pow(2, wrap(4 * p)), flatq), el);
     er = biquad(bandpass(&s->efilter[1], 400 * pow(0.5, wrap(16 * p)), flatq), er);
     sample es[2] = { co * el + si * er, -si * el + co * er };
diff @ 2018-11-22 22:50:13 +0000
diff --git a/client/go.c b/client/go.c
index a4fa1adff..31fe3d84c 100644
--- a/client/go.c
+++ b/client/go.c
@@ -251,8 +251,8 @@ go(S *s, int channels, const float *in, float *out)
     rdelms = lop(&s->elop[1], rdelms, 15);
     sample el = delread4(&s->edelay1, ldelms + co);
     sample er = delread4(&s->edelay2, rdelms + si);
-    el = sin(2 * el);
-    er = sin(2 * er);
+    el = sin(3 * el);
+    er = sin(3 * er);
     el = biquad(bandpass(&s->efilter[0], 200 * pow(2, wrap(4 * p)), flatq), el);
     er = biquad(bandpass(&s->efilter[1], 400 * pow(0.5, wrap(16 * p)), flatq), er);
     sample es[2] = { co * el + si * er, -si * el + co * er };
diff @ 2018-11-22 22:50:16 +0000
diff --git a/client/go.c b/client/go.c
index 31fe3d84c..d08b56f66 100644
--- a/client/go.c
+++ b/client/go.c
@@ -251,8 +251,8 @@ go(S *s, int channels, const float *in, float *out)
     rdelms = lop(&s->elop[1], rdelms, 15);
     sample el = delread4(&s->edelay1, ldelms + co);
     sample er = delread4(&s->edelay2, rdelms + si);
-    el = sin(3 * el);
-    er = sin(3 * er);
+    el = sin(4 * el);
+    er = sin(4 * er);
     el = biquad(bandpass(&s->efilter[0], 200 * pow(2, wrap(4 * p)), flatq), el);
     er = biquad(bandpass(&s->efilter[1], 400 * pow(0.5, wrap(16 * p)), flatq), er);
     sample es[2] = { co * el + si * er, -si * el + co * er };
diff @ 2018-11-22 22:50:30 +0000
diff --git a/client/go.c b/client/go.c
index d08b56f66..c90b12c29 100644
--- a/client/go.c
+++ b/client/go.c
@@ -251,10 +251,10 @@ go(S *s, int channels, const float *in, float *out)
     rdelms = lop(&s->elop[1], rdelms, 15);
     sample el = delread4(&s->edelay1, ldelms + co);
     sample er = delread4(&s->edelay2, rdelms + si);
-    el = sin(4 * el);
-    er = sin(4 * er);
     el = biquad(bandpass(&s->efilter[0], 200 * pow(2, wrap(4 * p)), flatq), el);
     er = biquad(bandpass(&s->efilter[1], 400 * pow(0.5, wrap(16 * p)), flatq), er);
+    el = sin(el);
+    er = sin(er);
     sample es[2] = { co * el + si * er, -si * el + co * er };
     compress(es, &s->ecompress1, 5, 10, 25, 48, es);
     es[0] = mix(mixdown[0], es[0], mix(1, pow(wrap(8 * p), 0.25), 0.));
diff @ 2018-11-22 22:50:34 +0000
diff --git a/client/go.c b/client/go.c
index c90b12c29..0a7b75a8d 100644
--- a/client/go.c
+++ b/client/go.c
@@ -253,8 +253,8 @@ go(S *s, int channels, const float *in, float *out)
     sample er = delread4(&s->edelay2, rdelms + si);
     el = biquad(bandpass(&s->efilter[0], 200 * pow(2, wrap(4 * p)), flatq), el);
     er = biquad(bandpass(&s->efilter[1], 400 * pow(0.5, wrap(16 * p)), flatq), er);
-    el = sin(el);
-    er = sin(er);
+    el = sin(2 * el);
+    er = sin(2 8 er);
     sample es[2] = { co * el + si * er, -si * el + co * er };
     compress(es, &s->ecompress1, 5, 10, 25, 48, es);
     es[0] = mix(mixdown[0], es[0], mix(1, pow(wrap(8 * p), 0.25), 0.));
diff @ 2018-11-22 22:50:35 +0000
diff --git a/client/go.c b/client/go.c
index 0a7b75a8d..ae4e8c575 100644
--- a/client/go.c
+++ b/client/go.c
@@ -254,7 +254,7 @@ go(S *s, int channels, const float *in, float *out)
     el = biquad(bandpass(&s->efilter[0], 200 * pow(2, wrap(4 * p)), flatq), el);
     er = biquad(bandpass(&s->efilter[1], 400 * pow(0.5, wrap(16 * p)), flatq), er);
     el = sin(2 * el);
-    er = sin(2 8 er);
+    er = sin(2 * er);
     sample es[2] = { co * el + si * er, -si * el + co * er };
     compress(es, &s->ecompress1, 5, 10, 25, 48, es);
     es[0] = mix(mixdown[0], es[0], mix(1, pow(wrap(8 * p), 0.25), 0.));
diff @ 2018-11-22 22:50:47 +0000
diff --git a/client/go.c b/client/go.c
index ae4e8c575..f40c06cda 100644
--- a/client/go.c
+++ b/client/go.c
@@ -291,7 +291,7 @@ go(S *s, int channels, const float *in, float *out)
       sample kick = sin(twopi * phasor(&s->kick59[1], env + mod));
       env2 = env2 + env2 * env2 * env2 * env2;
       kick = 4 * hip(&s->hip59[0], tanh(env2 * kick), 5);
-      kick *= 0;
+      kick *= 1;
       o[0] += kick;
       o[1] += kick;
     }
diff @ 2018-11-22 22:51:01 +0000
diff --git a/client/go.c b/client/go.c
index f40c06cda..7ba848037 100644
--- a/client/go.c
+++ b/client/go.c
@@ -309,7 +309,7 @@ go(S *s, int channels, const float *in, float *out)
       open   *= open;
       sample env = open + closed;
       sample h = noise();
-      h *= 0;
+      h *= 1;
       o[0] += 4 * tanh(env * hip(&s->hip59[2], hip(&s->hip59[3],
               h * noise(), 3000), 1500));
       o[1] += 4 * tanh(env * hip(&s->hip59[4], hip(&s->hip59[5],
diff @ 2018-11-22 22:51:14 +0000
diff --git a/client/go.c b/client/go.c
index 7ba848037..65f5a025b 100644
--- a/client/go.c
+++ b/client/go.c
@@ -257,8 +257,8 @@ go(S *s, int channels, const float *in, float *out)
     er = sin(2 * er);
     sample es[2] = { co * el + si * er, -si * el + co * er };
     compress(es, &s->ecompress1, 5, 10, 25, 48, es);
-    es[0] = mix(mixdown[0], es[0], mix(1, pow(wrap(8 * p), 0.25), 0.));
-    es[1] = mix(mixdown[1], es[1], mix(1, pow(wrap(8 * p), 0.25), 0.));
+    es[0] = mix(mixdown[0], es[0], mix(0, pow(wrap(8 * p), 0.25), 0.));
+    es[1] = mix(mixdown[1], es[1], mix(0, pow(wrap(8 * p), 0.25), 0.));
     compress(es, &s->ecompress2, 5, 10, 25, 48, es);
     delwrite(&s->edelay1, es[0]);
     delwrite(&s->edelay2, es[1]);
@@ -326,7 +326,7 @@ go(S *s, int channels, const float *in, float *out)
         + sin(4 * twopi * vcf(&s->vcf59[0], bosc, 4 * hz, 6))
         + sin(2 * twopi * vcf(&s->vcf59[1], bosc, 8 * hz, 4)) * 0.7;
       bass *= 1.5;
-      bass *= 0;
+      bass *= 1;
       o[0] += bass;
       o[1] += bass;
     }
diff @ 2018-11-22 22:51:27 +0000
diff --git a/client/go.c b/client/go.c
index 65f5a025b..d2a983794 100644
--- a/client/go.c
+++ b/client/go.c
@@ -262,8 +262,8 @@ go(S *s, int channels, const float *in, float *out)
     compress(es, &s->ecompress2, 5, 10, 25, 48, es);
     delwrite(&s->edelay1, es[0]);
     delwrite(&s->edelay2, es[1]);
-    mixdown[0] = es[0];
-    mixdown[1] = es[1];
+    mixdown[0] = 0*es[0];
+    mixdown[1] = 0*es[1];
   }
 
   // = 5 = fifty-nine stellations ======================================
@@ -332,7 +332,7 @@ go(S *s, int channels, const float *in, float *out)
     }
     { // bell
       sample env = lop(&s->lop59[4],
-        0 * clamp(2 * (0.5 - wrap(0.5 + 4 * t)), 0, 1), 15);
+        1 * clamp(2 * (0.5 - wrap(0.5 + 4 * t)), 0, 1), 15);
       sample env2 = lop(&s->lop59[5], clamp
         ( 2
         * (0.5 - wrap(8 * t))
diff @ 2018-11-22 22:51:47 +0000
diff --git a/client/go.c b/client/go.c
index d2a983794..c0bc006e1 100644
--- a/client/go.c
+++ b/client/go.c
@@ -323,7 +323,7 @@ go(S *s, int channels, const float *in, float *out)
       sample bass
         = sub
         + lop(&s->lop59[1], lop(&s->lop59[2], bosc, 1000), 1000)
-        + sin(4 * twopi * vcf(&s->vcf59[0], bosc, 4 * hz, 6))
+        + sin(8 * twopi * vcf(&s->vcf59[0], bosc, 4 * hz, 6))
         + sin(2 * twopi * vcf(&s->vcf59[1], bosc, 8 * hz, 4)) * 0.7;
       bass *= 1.5;
       bass *= 1;
diff @ 2018-11-22 22:51:57 +0000
diff --git a/client/go.c b/client/go.c
index c0bc006e1..94d9a47d7 100644
--- a/client/go.c
+++ b/client/go.c
@@ -323,7 +323,7 @@ go(S *s, int channels, const float *in, float *out)
       sample bass
         = sub
         + lop(&s->lop59[1], lop(&s->lop59[2], bosc, 1000), 1000)
-        + sin(8 * twopi * vcf(&s->vcf59[0], bosc, 4 * hz, 6))
+        + (p < 0.5) * sin(8 * twopi * vcf(&s->vcf59[0], bosc, 4 * hz, 6))
         + sin(2 * twopi * vcf(&s->vcf59[1], bosc, 8 * hz, 4)) * 0.7;
       bass *= 1.5;
       bass *= 1;
diff @ 2018-11-22 22:52:06 +0000
diff --git a/client/go.c b/client/go.c
index 94d9a47d7..72cbc5e0b 100644
--- a/client/go.c
+++ b/client/go.c
@@ -323,7 +323,7 @@ go(S *s, int channels, const float *in, float *out)
       sample bass
         = sub
         + lop(&s->lop59[1], lop(&s->lop59[2], bosc, 1000), 1000)
-        + (p < 0.5) * sin(8 * twopi * vcf(&s->vcf59[0], bosc, 4 * hz, 6))
+        + (t < 0.5) * sin(8 * twopi * vcf(&s->vcf59[0], bosc, 4 * hz, 6))
         + sin(2 * twopi * vcf(&s->vcf59[1], bosc, 8 * hz, 4)) * 0.7;
       bass *= 1.5;
       bass *= 1;
diff @ 2018-11-22 22:52:13 +0000
diff --git a/client/go.c b/client/go.c
index 72cbc5e0b..03a6528f8 100644
--- a/client/go.c
+++ b/client/go.c
@@ -324,7 +324,7 @@ go(S *s, int channels, const float *in, float *out)
         = sub
         + lop(&s->lop59[1], lop(&s->lop59[2], bosc, 1000), 1000)
         + (t < 0.5) * sin(8 * twopi * vcf(&s->vcf59[0], bosc, 4 * hz, 6))
-        + sin(2 * twopi * vcf(&s->vcf59[1], bosc, 8 * hz, 4)) * 0.7;
+        + (t > 0.5) * sin(2 * twopi * vcf(&s->vcf59[1], bosc, 8 * hz, 4)) * 0.7;
       bass *= 1.5;
       bass *= 1;
       o[0] += bass;
diff @ 2018-11-22 22:52:29 +0000
diff --git a/client/go.c b/client/go.c
index 03a6528f8..0cd242dc4 100644
--- a/client/go.c
+++ b/client/go.c
@@ -339,7 +339,7 @@ go(S *s, int channels, const float *in, float *out)
         * (wrap(4 * t) < 0.5)
         , 0, 1), 15);
       sample bell
-        = sin(4 * twopi * osc)
+        = sin(4 * twopi * osc * pow(2, t > 0.4))
         * sin(5 * twopi * osc)
         * sin(7 * twopi * osc)
         * env
diff @ 2018-11-22 22:52:31 +0000
diff --git a/client/go.c b/client/go.c
index 0cd242dc4..591a1398f 100644
--- a/client/go.c
+++ b/client/go.c
@@ -339,7 +339,7 @@ go(S *s, int channels, const float *in, float *out)
         * (wrap(4 * t) < 0.5)
         , 0, 1), 15);
       sample bell
-        = sin(4 * twopi * osc * pow(2, t > 0.4))
+        = sin(4 * twopi * osc * pow(2, t > 0.5))
         * sin(5 * twopi * osc)
         * sin(7 * twopi * osc)
         * env
diff @ 2018-11-22 22:52:43 +0000
diff --git a/client/go.c b/client/go.c
index 591a1398f..ae0fecdac 100644
--- a/client/go.c
+++ b/client/go.c
@@ -340,7 +340,7 @@ go(S *s, int channels, const float *in, float *out)
         , 0, 1), 15);
       sample bell
         = sin(4 * twopi * osc * pow(2, t > 0.5))
-        * sin(5 * twopi * osc)
+        * sin(5 * twopi * osc * pow(2, wrap(2 * t) > 0.5))
         * sin(7 * twopi * osc)
         * env
         * 4;
diff @ 2018-11-22 22:52:49 +0000
diff --git a/client/go.c b/client/go.c
index ae0fecdac..991075201 100644
--- a/client/go.c
+++ b/client/go.c
@@ -341,7 +341,7 @@ go(S *s, int channels, const float *in, float *out)
       sample bell
         = sin(4 * twopi * osc * pow(2, t > 0.5))
         * sin(5 * twopi * osc * pow(2, wrap(2 * t) > 0.5))
-        * sin(7 * twopi * osc)
+        * sin(7 * twopi * osc * pow(2, wrap(4 * t) > 0.5))
         * env
         * 4;
       sample bell1 = pitchshift(&s->ps59[0], 2, 100, 3, bell);
diff @ 2018-11-22 22:53:04 +0000
diff --git a/client/go.c b/client/go.c
index 991075201..05fdae523 100644
--- a/client/go.c
+++ b/client/go.c
@@ -291,7 +291,7 @@ go(S *s, int channels, const float *in, float *out)
       sample kick = sin(twopi * phasor(&s->kick59[1], env + mod));
       env2 = env2 + env2 * env2 * env2 * env2;
       kick = 4 * hip(&s->hip59[0], tanh(env2 * kick), 5);
-      kick *= 1;
+      kick *= -0;
       o[0] += kick;
       o[1] += kick;
     }
diff @ 2018-11-22 22:53:05 +0000
diff --git a/client/go.c b/client/go.c
index 05fdae523..a0f4422a2 100644
--- a/client/go.c
+++ b/client/go.c
@@ -291,7 +291,7 @@ go(S *s, int channels, const float *in, float *out)
       sample kick = sin(twopi * phasor(&s->kick59[1], env + mod));
       env2 = env2 + env2 * env2 * env2 * env2;
       kick = 4 * hip(&s->hip59[0], tanh(env2 * kick), 5);
-      kick *= -0;
+      kick *= 0;
       o[0] += kick;
       o[1] += kick;
     }
diff @ 2018-11-22 22:53:14 +0000
diff --git a/client/go.c b/client/go.c
index a0f4422a2..e6b4142b7 100644
--- a/client/go.c
+++ b/client/go.c
@@ -357,8 +357,8 @@ go(S *s, int channels, const float *in, float *out)
       bell += becho;
       bell *= 4;
       sample lfo = 11 * sin(16 * twopi * t);
-      sample l = 0.3 * delread4(&s->del59l, ms4 + lfo) + bell;
-      sample r = 0.3 * delread4(&s->del59r, ms4 - lfo) + bell;
+      sample l = 0.53 * delread4(&s->del59l, ms4 + lfo) + bell;
+      sample r = 0.53 * delread4(&s->del59r, ms4 - lfo) + bell;
       delwrite(&s->del59l, -r);
       delwrite(&s->del59r,  l);
       o[0] += l;
diff @ 2018-11-22 22:53:20 +0000
diff --git a/client/go.c b/client/go.c
index e6b4142b7..553bb45ea 100644
--- a/client/go.c
+++ b/client/go.c
@@ -356,7 +356,7 @@ go(S *s, int channels, const float *in, float *out)
       becho *= env2;
       bell += becho;
       bell *= 4;
-      sample lfo = 11 * sin(16 * twopi * t);
+      sample lfo = 5 * sin(16 * twopi * t);
       sample l = 0.53 * delread4(&s->del59l, ms4 + lfo) + bell;
       sample r = 0.53 * delread4(&s->del59r, ms4 - lfo) + bell;
       delwrite(&s->del59l, -r);
diff @ 2018-11-22 22:53:22 +0000
diff --git a/client/go.c b/client/go.c
index 553bb45ea..a367af893 100644
--- a/client/go.c
+++ b/client/go.c
@@ -356,7 +356,7 @@ go(S *s, int channels, const float *in, float *out)
       becho *= env2;
       bell += becho;
       bell *= 4;
-      sample lfo = 5 * sin(16 * twopi * t);
+      sample lfo = 3 * sin(16 * twopi * t);
       sample l = 0.53 * delread4(&s->del59l, ms4 + lfo) + bell;
       sample r = 0.53 * delread4(&s->del59r, ms4 - lfo) + bell;
       delwrite(&s->del59l, -r);
diff @ 2018-11-22 22:53:26 +0000
diff --git a/client/go.c b/client/go.c
index a367af893..465ceb867 100644
--- a/client/go.c
+++ b/client/go.c
@@ -356,7 +356,7 @@ go(S *s, int channels, const float *in, float *out)
       becho *= env2;
       bell += becho;
       bell *= 4;
-      sample lfo = 3 * sin(16 * twopi * t);
+      sample lfo = 2 * sin(16 * twopi * t);
       sample l = 0.53 * delread4(&s->del59l, ms4 + lfo) + bell;
       sample r = 0.53 * delread4(&s->del59r, ms4 - lfo) + bell;
       delwrite(&s->del59l, -r);
diff @ 2018-11-22 22:53:27 +0000
diff --git a/client/go.c b/client/go.c
index 465ceb867..ccdf22141 100644
--- a/client/go.c
+++ b/client/go.c
@@ -356,7 +356,7 @@ go(S *s, int channels, const float *in, float *out)
       becho *= env2;
       bell += becho;
       bell *= 4;
-      sample lfo = 2 * sin(16 * twopi * t);
+      sample lfo = 1 * sin(16 * twopi * t);
       sample l = 0.53 * delread4(&s->del59l, ms4 + lfo) + bell;
       sample r = 0.53 * delread4(&s->del59r, ms4 - lfo) + bell;
       delwrite(&s->del59l, -r);
diff @ 2018-11-22 22:53:30 +0000
diff --git a/client/go.c b/client/go.c
index ccdf22141..f19cb3dd2 100644
--- a/client/go.c
+++ b/client/go.c
@@ -356,7 +356,7 @@ go(S *s, int channels, const float *in, float *out)
       becho *= env2;
       bell += becho;
       bell *= 4;
-      sample lfo = 1 * sin(16 * twopi * t);
+      sample lfo = 0.01 * sin(16 * twopi * t);
       sample l = 0.53 * delread4(&s->del59l, ms4 + lfo) + bell;
       sample r = 0.53 * delread4(&s->del59r, ms4 - lfo) + bell;
       delwrite(&s->del59l, -r);
diff @ 2018-11-22 22:53:37 +0000
diff --git a/client/go.c b/client/go.c
index f19cb3dd2..c0001ffed 100644
--- a/client/go.c
+++ b/client/go.c
@@ -309,7 +309,8 @@ go(S *s, int channels, const float *in, float *out)
       open   *= open;
       sample env = open + closed;
       sample h = noise();
-      h *= 1;
+      h *= 
+      0;
       o[0] += 4 * tanh(env * hip(&s->hip59[2], hip(&s->hip59[3],
               h * noise(), 3000), 1500));
       o[1] += 4 * tanh(env * hip(&s->hip59[4], hip(&s->hip59[5],
diff @ 2018-11-22 22:53:52 +0000
diff --git a/client/go.c b/client/go.c
index c0001ffed..4e8ade121 100644
--- a/client/go.c
+++ b/client/go.c
@@ -351,7 +351,7 @@ go(S *s, int channels, const float *in, float *out)
       bell += bell1 + bell2 + bell3;
       bell *= env;
       sample becho = delread1(&s->del59, ms4);
-      becho = lop(&s->lop59[3], becho, 1000) * 0.5;
+      becho = lop(&s->lop59[3], becho, 1000) * 0.75;
       delwrite(&s->del59,
         bell3 + pitchshift(&s->ps59[3], 2, 100, 3, becho));
       becho *= env2;
diff @ 2018-11-22 22:53:58 +0000
diff --git a/client/go.c b/client/go.c
index 4e8ade121..ff9b8928f 100644
--- a/client/go.c
+++ b/client/go.c
@@ -351,7 +351,7 @@ go(S *s, int channels, const float *in, float *out)
       bell += bell1 + bell2 + bell3;
       bell *= env;
       sample becho = delread1(&s->del59, ms4);
-      becho = lop(&s->lop59[3], becho, 1000) * 0.75;
+      becho = lop(&s->lop59[3], becho, 1000) * 0.875;
       delwrite(&s->del59,
         bell3 + pitchshift(&s->ps59[3], 2, 100, 3, becho));
       becho *= env2;
diff @ 2018-11-22 22:54:15 +0000
diff --git a/client/go.c b/client/go.c
index ff9b8928f..60940eafa 100644
--- a/client/go.c
+++ b/client/go.c
@@ -291,7 +291,7 @@ go(S *s, int channels, const float *in, float *out)
       sample kick = sin(twopi * phasor(&s->kick59[1], env + mod));
       env2 = env2 + env2 * env2 * env2 * env2;
       kick = 4 * hip(&s->hip59[0], tanh(env2 * kick), 5);
-      kick *= 0;
+      kick *= 1;
       o[0] += kick;
       o[1] += kick;
     }
diff @ 2018-11-22 22:54:29 +0000
diff --git a/client/go.c b/client/go.c
index 60940eafa..3d9654d35 100644
--- a/client/go.c
+++ b/client/go.c
@@ -351,7 +351,7 @@ go(S *s, int channels, const float *in, float *out)
       bell += bell1 + bell2 + bell3;
       bell *= env;
       sample becho = delread1(&s->del59, ms4);
-      becho = lop(&s->lop59[3], becho, 1000) * 0.875;
+      becho = lop(&s->lop59[3], becho, 1000) * -0.875;
       delwrite(&s->del59,
         bell3 + pitchshift(&s->ps59[3], 2, 100, 3, becho));
       becho *= env2;
diff @ 2018-11-22 22:54:36 +0000
diff --git a/client/go.c b/client/go.c
index 3d9654d35..a25b862cb 100644
--- a/client/go.c
+++ b/client/go.c
@@ -351,7 +351,7 @@ go(S *s, int channels, const float *in, float *out)
       bell += bell1 + bell2 + bell3;
       bell *= env;
       sample becho = delread1(&s->del59, ms4);
-      becho = lop(&s->lop59[3], becho, 1000) * -0.875;
+      becho = lop(&s->lop59[3], becho, 1000) * -0.5;
       delwrite(&s->del59,
         bell3 + pitchshift(&s->ps59[3], 2, 100, 3, becho));
       becho *= env2;
diff @ 2018-11-22 22:55:00 +0000
diff --git a/client/go.c b/client/go.c
index a25b862cb..ec1534648 100644
--- a/client/go.c
+++ b/client/go.c
@@ -420,7 +420,7 @@ go(S *s, int channels, const float *in, float *out)
 
   // = m = mixdown =====================================================
   {
-    if (! next)
+    //if (! next)
       compress(mixdown, &s->mixdown, 5, 10, 25, 48, mixdown);
     sample volume = 1;
     mixdown[0] *= volume;
diff @ 2018-11-22 22:55:12 +0000
diff --git a/client/go.c b/client/go.c
index ec1534648..df97cc8a2 100644
--- a/client/go.c
+++ b/client/go.c
@@ -278,8 +278,8 @@ go(S *s, int channels, const float *in, float *out)
     sample osc = phasor(&s->osc59, hz);
     sample o[2] = { 0, 0 };
     { // kick
-      sample peak = hz * 8;
-      sample env = 1 - wrap(2 * t);
+      sample peak = hz * 4;
+      sample env = 1 - wrap(4 * t);
       sample env2 = env * 2;
       env *= env;
       env *= env;
diff @ 2018-11-22 22:55:20 +0000
diff --git a/client/go.c b/client/go.c
index df97cc8a2..390d364ec 100644
--- a/client/go.c
+++ b/client/go.c
@@ -282,7 +282,6 @@ go(S *s, int channels, const float *in, float *out)
       sample env = 1 - wrap(4 * t);
       sample env2 = env * 2;
       env *= env;
-      env *= env;
       env *= sqrt(sqrt(peak));
       sample env3 = env * env * env;
       sample mod = sin(twopi * phasor(&s->kick59[0], env * peak)) * env3;
diff @ 2018-11-22 22:55:25 +0000
diff --git a/client/go.c b/client/go.c
index 390d364ec..05a84e774 100644
--- a/client/go.c
+++ b/client/go.c
@@ -281,7 +281,6 @@ go(S *s, int channels, const float *in, float *out)
       sample peak = hz * 4;
       sample env = 1 - wrap(4 * t);
       sample env2 = env * 2;
-      env *= env;
       env *= sqrt(sqrt(peak));
       sample env3 = env * env * env;
       sample mod = sin(twopi * phasor(&s->kick59[0], env * peak)) * env3;
diff @ 2018-11-22 22:55:29 +0000
diff --git a/client/go.c b/client/go.c
index 05a84e774..e7240ecee 100644
--- a/client/go.c
+++ b/client/go.c
@@ -280,7 +280,7 @@ go(S *s, int channels, const float *in, float *out)
     { // kick
       sample peak = hz * 4;
       sample env = 1 - wrap(4 * t);
-      sample env2 = env * 2;
+      sample env2 = env * 4;
       env *= sqrt(sqrt(peak));
       sample env3 = env * env * env;
       sample mod = sin(twopi * phasor(&s->kick59[0], env * peak)) * env3;
diff @ 2018-11-22 22:55:33 +0000
diff --git a/client/go.c b/client/go.c
index e7240ecee..e56b31109 100644
--- a/client/go.c
+++ b/client/go.c
@@ -280,7 +280,7 @@ go(S *s, int channels, const float *in, float *out)
     { // kick
       sample peak = hz * 4;
       sample env = 1 - wrap(4 * t);
-      sample env2 = env * 4;
+      sample env2 = env * 3;
       env *= sqrt(sqrt(peak));
       sample env3 = env * env * env;
       sample mod = sin(twopi * phasor(&s->kick59[0], env * peak)) * env3;
diff @ 2018-11-22 22:55:46 +0000
diff --git a/client/go.c b/client/go.c
index e56b31109..91a2dea0f 100644
--- a/client/go.c
+++ b/client/go.c
@@ -294,7 +294,7 @@ go(S *s, int channels, const float *in, float *out)
       o[1] += kick;
     }
     { // hihat
-      sample closed = 1 - wrap(8 * t - 0.58);
+      sample closed = 0;//1 - wrap(8 * t - 0.58);
       sample open   = 1 - wrap(4 * t - 0.50);
       closed *= closed;
       closed *= closed;
diff @ 2018-11-22 22:55:51 +0000
diff --git a/client/go.c b/client/go.c
index 91a2dea0f..7d85b144d 100644
--- a/client/go.c
+++ b/client/go.c
@@ -308,7 +308,7 @@ go(S *s, int channels, const float *in, float *out)
       sample env = open + closed;
       sample h = noise();
       h *= 
-      0;
+      1;
       o[0] += 4 * tanh(env * hip(&s->hip59[2], hip(&s->hip59[3],
               h * noise(), 3000), 1500));
       o[1] += 4 * tanh(env * hip(&s->hip59[4], hip(&s->hip59[5],
diff @ 2018-11-22 22:55:59 +0000
diff --git a/client/go.c b/client/go.c
index 7d85b144d..6426cce23 100644
--- a/client/go.c
+++ b/client/go.c
@@ -298,6 +298,8 @@ go(S *s, int channels, const float *in, float *out)
       sample open   = 1 - wrap(4 * t - 0.50);
       closed *= closed;
       closed *= closed;
+      open   *= open;
+      open   *= open;
       closed *= 1.3;
       open   *= 1.3;
       closed *= closed;
diff @ 2018-11-22 22:56:09 +0000
diff --git a/client/go.c b/client/go.c
index 6426cce23..555bf82ad 100644
--- a/client/go.c
+++ b/client/go.c
@@ -327,7 +327,7 @@ go(S *s, int channels, const float *in, float *out)
         + (t < 0.5) * sin(8 * twopi * vcf(&s->vcf59[0], bosc, 4 * hz, 6))
         + (t > 0.5) * sin(2 * twopi * vcf(&s->vcf59[1], bosc, 8 * hz, 4)) * 0.7;
       bass *= 1.5;
-      bass *= 1;
+      bass *= 0;
       o[0] += bass;
       o[1] += bass;
     }
diff @ 2018-11-22 22:56:19 +0000
diff --git a/client/go.c b/client/go.c
index 555bf82ad..13c91e2d7 100644
--- a/client/go.c
+++ b/client/go.c
@@ -333,7 +333,7 @@ go(S *s, int channels, const float *in, float *out)
     }
     { // bell
       sample env = lop(&s->lop59[4],
-        1 * clamp(2 * (0.5 - wrap(0.5 + 4 * t)), 0, 1), 15);
+        1 * clamp(2 * (0.5 - wrap(0.25 + 4 * t)), 0, 1), 15);
       sample env2 = lop(&s->lop59[5], clamp
         ( 2
         * (0.5 - wrap(8 * t))
diff @ 2018-11-22 22:56:24 +0000
diff --git a/client/go.c b/client/go.c
index 13c91e2d7..555bf82ad 100644
--- a/client/go.c
+++ b/client/go.c
@@ -333,7 +333,7 @@ go(S *s, int channels, const float *in, float *out)
     }
     { // bell
       sample env = lop(&s->lop59[4],
-        1 * clamp(2 * (0.5 - wrap(0.25 + 4 * t)), 0, 1), 15);
+        1 * clamp(2 * (0.5 - wrap(0.5 + 4 * t)), 0, 1), 15);
       sample env2 = lop(&s->lop59[5], clamp
         ( 2
         * (0.5 - wrap(8 * t))
diff @ 2018-11-22 22:56:29 +0000
diff --git a/client/go.c b/client/go.c
index 555bf82ad..feab13007 100644
--- a/client/go.c
+++ b/client/go.c
@@ -333,7 +333,7 @@ go(S *s, int channels, const float *in, float *out)
     }
     { // bell
       sample env = lop(&s->lop59[4],
-        1 * clamp(2 * (0.5 - wrap(0.5 + 4 * t)), 0, 1), 15);
+        1 * clamp(2 * (0.5 - wrap(0.5 + 6 * t)), 0, 1), 15);
       sample env2 = lop(&s->lop59[5], clamp
         ( 2
         * (0.5 - wrap(8 * t))
diff @ 2018-11-22 22:56:34 +0000
diff --git a/client/go.c b/client/go.c
index feab13007..a5bda6d99 100644
--- a/client/go.c
+++ b/client/go.c
@@ -333,7 +333,7 @@ go(S *s, int channels, const float *in, float *out)
     }
     { // bell
       sample env = lop(&s->lop59[4],
-        1 * clamp(2 * (0.5 - wrap(0.5 + 6 * t)), 0, 1), 15);
+        1 * clamp(2 * (0.5 - wrap(0.25 + 6 * t)), 0, 1), 15);
       sample env2 = lop(&s->lop59[5], clamp
         ( 2
         * (0.5 - wrap(8 * t))
diff @ 2018-11-22 22:56:41 +0000
diff --git a/client/go.c b/client/go.c
index a5bda6d99..4646ef586 100644
--- a/client/go.c
+++ b/client/go.c
@@ -336,7 +336,7 @@ go(S *s, int channels, const float *in, float *out)
         1 * clamp(2 * (0.5 - wrap(0.25 + 6 * t)), 0, 1), 15);
       sample env2 = lop(&s->lop59[5], clamp
         ( 2
-        * (0.5 - wrap(8 * t))
+        * (0.5 - wrap(12 * t))
         * (wrap(4 * t) < 0.5)
         , 0, 1), 15);
       sample bell
diff @ 2018-11-22 22:56:52 +0000
diff --git a/client/go.c b/client/go.c
index 4646ef586..a98dce42d 100644
--- a/client/go.c
+++ b/client/go.c
@@ -289,7 +289,7 @@ go(S *s, int channels, const float *in, float *out)
       sample kick = sin(twopi * phasor(&s->kick59[1], env + mod));
       env2 = env2 + env2 * env2 * env2 * env2;
       kick = 4 * hip(&s->hip59[0], tanh(env2 * kick), 5);
-      kick *= 1;
+      kick *= 0;
       o[0] += kick;
       o[1] += kick;
     }
@@ -327,7 +327,7 @@ go(S *s, int channels, const float *in, float *out)
         + (t < 0.5) * sin(8 * twopi * vcf(&s->vcf59[0], bosc, 4 * hz, 6))
         + (t > 0.5) * sin(2 * twopi * vcf(&s->vcf59[1], bosc, 8 * hz, 4)) * 0.7;
       bass *= 1.5;
-      bass *= 0;
+      bass *= 1;
       o[0] += bass;
       o[1] += bass;
     }
diff @ 2018-11-22 22:56:58 +0000
diff --git a/client/go.c b/client/go.c
index a98dce42d..5429bc000 100644
--- a/client/go.c
+++ b/client/go.c
@@ -322,7 +322,7 @@ go(S *s, int channels, const float *in, float *out)
       sample bosc = hip(&s->hip59[1],
           wrap(samphold(&s->sh59, lfo, osc) + osc) - osc, 5);
       sample bass
-        = sub
+        = sub * 3
         + lop(&s->lop59[1], lop(&s->lop59[2], bosc, 1000), 1000)
         + (t < 0.5) * sin(8 * twopi * vcf(&s->vcf59[0], bosc, 4 * hz, 6))
         + (t > 0.5) * sin(2 * twopi * vcf(&s->vcf59[1], bosc, 8 * hz, 4)) * 0.7;
diff @ 2018-11-22 22:57:03 +0000
diff --git a/client/go.c b/client/go.c
index 5429bc000..a98dce42d 100644
--- a/client/go.c
+++ b/client/go.c
@@ -322,7 +322,7 @@ go(S *s, int channels, const float *in, float *out)
       sample bosc = hip(&s->hip59[1],
           wrap(samphold(&s->sh59, lfo, osc) + osc) - osc, 5);
       sample bass
-        = sub * 3
+        = sub
         + lop(&s->lop59[1], lop(&s->lop59[2], bosc, 1000), 1000)
         + (t < 0.5) * sin(8 * twopi * vcf(&s->vcf59[0], bosc, 4 * hz, 6))
         + (t > 0.5) * sin(2 * twopi * vcf(&s->vcf59[1], bosc, 8 * hz, 4)) * 0.7;
diff @ 2018-11-22 22:57:18 +0000
diff --git a/client/go.c b/client/go.c
index a98dce42d..d146fb519 100644
--- a/client/go.c
+++ b/client/go.c
@@ -371,7 +371,7 @@ go(S *s, int channels, const float *in, float *out)
   }
 
   // = 6 = falling leaves ==============================================
-  int next = 0, t;
+  int next = 1, t;
   sample fl;
   {
     t = (s->leaves += next) / 6;
@@ -383,7 +383,7 @@ go(S *s, int channels, const float *in, float *out)
         ((t & 0x1) << (t & 0xa))) >> 20))
     );
     o *= 0.3;
-    o = hip1(&s->leaveshi, o, 1);
+    o = hip1(&s->leaveshi, o, 40);
     o = lop1(&s->leaveslo, o, 4000);
     fl = o;
   }
diff @ 2018-11-22 22:57:31 +0000
diff --git a/client/go.c b/client/go.c
index d146fb519..06fc1079c 100644
--- a/client/go.c
+++ b/client/go.c
@@ -391,7 +391,7 @@ go(S *s, int channels, const float *in, float *out)
   // = 7 = cavitation ==================================================
   {
     int n = 12;
-    int k = (t >> n) & 0x0;
+    int k = (t >> n) & 0xF;
     sample x = bytebeat(hash(k) ^ hash(0)) * 0.4 + 0.5;
     sample w = lop(&s->clop, 1/*28*/, 0.0001);
     vec4 size = {{ 1, 2, 4, 128 }};
diff @ 2018-11-22 22:57:35 +0000
diff --git a/client/go.c b/client/go.c
index 06fc1079c..d68846056 100644
--- a/client/go.c
+++ b/client/go.c
@@ -396,8 +396,8 @@ go(S *s, int channels, const float *in, float *out)
     sample w = lop(&s->clop, 1/*28*/, 0.0001);
     vec4 size = {{ 1, 2, 4, 128 }};
     vec4 source = {{ x, 1, 2, w }};
-    vec4 earl = {{ 0.45, 1, 2, 1 }};
-    vec4 earr = {{ 0.55, 1, 2, 1 }};
+    vec4 earl = {{ 0.05, 1, 2, 1 }};
+    vec4 earr = {{ 0.95, 1, 2, 1 }};
     if ((next && (t & ((1 << n) - 1)) == 0) || (RESET && s->reloaded))
     {
       reverb_init(&s->cverb, &size);
diff @ 2018-11-22 22:57:39 +0000
diff --git a/client/go.c b/client/go.c
index d68846056..86e0c71af 100644
--- a/client/go.c
+++ b/client/go.c
@@ -393,7 +393,7 @@ go(S *s, int channels, const float *in, float *out)
     int n = 12;
     int k = (t >> n) & 0xF;
     sample x = bytebeat(hash(k) ^ hash(0)) * 0.4 + 0.5;
-    sample w = lop(&s->clop, 1/*28*/, 0.0001);
+    sample w = lop(&s->clop, 1/*28*/, 0.1);
     vec4 size = {{ 1, 2, 4, 128 }};
     vec4 source = {{ x, 1, 2, w }};
     vec4 earl = {{ 0.05, 1, 2, 1 }};
diff @ 2018-11-22 22:57:43 +0000
diff --git a/client/go.c b/client/go.c
index 86e0c71af..dd947afe6 100644
--- a/client/go.c
+++ b/client/go.c
@@ -393,7 +393,7 @@ go(S *s, int channels, const float *in, float *out)
     int n = 12;
     int k = (t >> n) & 0xF;
     sample x = bytebeat(hash(k) ^ hash(0)) * 0.4 + 0.5;
-    sample w = lop(&s->clop, 1/*28*/, 0.1);
+    sample w = lop(&s->clop, 2/*28*/, 0.1);
     vec4 size = {{ 1, 2, 4, 128 }};
     vec4 source = {{ x, 1, 2, w }};
     vec4 earl = {{ 0.05, 1, 2, 1 }};
diff @ 2018-11-22 22:57:47 +0000
diff --git a/client/go.c b/client/go.c
index dd947afe6..22dd483af 100644
--- a/client/go.c
+++ b/client/go.c
@@ -393,7 +393,7 @@ go(S *s, int channels, const float *in, float *out)
     int n = 12;
     int k = (t >> n) & 0xF;
     sample x = bytebeat(hash(k) ^ hash(0)) * 0.4 + 0.5;
-    sample w = lop(&s->clop, 2/*28*/, 0.1);
+    sample w = lop(&s->clop, 3/*28*/, 0.1);
     vec4 size = {{ 1, 2, 4, 128 }};
     vec4 source = {{ x, 1, 2, w }};
     vec4 earl = {{ 0.05, 1, 2, 1 }};
diff @ 2018-11-22 22:57:49 +0000
diff --git a/client/go.c b/client/go.c
index 22dd483af..821f45a50 100644
--- a/client/go.c
+++ b/client/go.c
@@ -393,7 +393,7 @@ go(S *s, int channels, const float *in, float *out)
     int n = 12;
     int k = (t >> n) & 0xF;
     sample x = bytebeat(hash(k) ^ hash(0)) * 0.4 + 0.5;
-    sample w = lop(&s->clop, 3/*28*/, 0.1);
+    sample w = lop(&s->clop, 8/*28*/, 0.1);
     vec4 size = {{ 1, 2, 4, 128 }};
     vec4 source = {{ x, 1, 2, w }};
     vec4 earl = {{ 0.05, 1, 2, 1 }};
diff @ 2018-11-22 22:57:57 +0000
diff --git a/client/go.c b/client/go.c
index 821f45a50..d1a439b95 100644
--- a/client/go.c
+++ b/client/go.c
@@ -393,7 +393,7 @@ go(S *s, int channels, const float *in, float *out)
     int n = 12;
     int k = (t >> n) & 0xF;
     sample x = bytebeat(hash(k) ^ hash(0)) * 0.4 + 0.5;
-    sample w = lop(&s->clop, 8/*28*/, 0.1);
+    sample w = lop(&s->clop, 32/*28*/, 0.1);
     vec4 size = {{ 1, 2, 4, 128 }};
     vec4 source = {{ x, 1, 2, w }};
     vec4 earl = {{ 0.05, 1, 2, 1 }};
diff @ 2018-11-22 22:58:07 +0000
diff --git a/client/go.c b/client/go.c
index d1a439b95..88dbb3800 100644
--- a/client/go.c
+++ b/client/go.c
@@ -393,7 +393,7 @@ go(S *s, int channels, const float *in, float *out)
     int n = 12;
     int k = (t >> n) & 0xF;
     sample x = bytebeat(hash(k) ^ hash(0)) * 0.4 + 0.5;
-    sample w = lop(&s->clop, 32/*28*/, 0.1);
+    sample w = lop(&s->clop, 64, 0.1);
     vec4 size = {{ 1, 2, 4, 128 }};
     vec4 source = {{ x, 1, 2, w }};
     vec4 earl = {{ 0.05, 1, 2, 1 }};
diff @ 2018-11-22 22:58:12 +0000
diff --git a/client/go.c b/client/go.c
index 88dbb3800..383e053c2 100644
--- a/client/go.c
+++ b/client/go.c
@@ -408,7 +408,7 @@ go(S *s, int channels, const float *in, float *out)
     o[0] = early_ref(&s->cerefl, fl, 0.2);
     o[1] = early_ref(&s->cerefr, fl, 0.2);
     sample tail[2];
-    reverb(tail, &s->cverb, o, 500);
+    reverb(tail, &s->cverb, o, 1500);
     o[0] += 0.25 * tail[0];
     o[1] += 0.25 * tail[1];
     if (next)
diff @ 2018-11-22 22:58:21 +0000
diff --git a/client/go.c b/client/go.c
index 383e053c2..73d9eeee0 100644
--- a/client/go.c
+++ b/client/go.c
@@ -408,7 +408,7 @@ go(S *s, int channels, const float *in, float *out)
     o[0] = early_ref(&s->cerefl, fl, 0.2);
     o[1] = early_ref(&s->cerefr, fl, 0.2);
     sample tail[2];
-    reverb(tail, &s->cverb, o, 1500);
+    reverb(tail, &s->cverb, o, 5000);
     o[0] += 0.25 * tail[0];
     o[1] += 0.25 * tail[1];
     if (next)
diff @ 2018-11-22 22:58:24 +0000
diff --git a/client/go.c b/client/go.c
index 73d9eeee0..34928439a 100644
--- a/client/go.c
+++ b/client/go.c
@@ -409,8 +409,8 @@ go(S *s, int channels, const float *in, float *out)
     o[1] = early_ref(&s->cerefr, fl, 0.2);
     sample tail[2];
     reverb(tail, &s->cverb, o, 5000);
-    o[0] += 0.25 * tail[0];
-    o[1] += 0.25 * tail[1];
+    o[0] += 0.5 * tail[0];
+    o[1] += 0.5 * tail[1];
     if (next)
     {
       mixdown[0] = o[0];
diff @ 2018-11-22 22:58:29 +0000
diff --git a/client/go.c b/client/go.c
index 34928439a..e58711e6d 100644
--- a/client/go.c
+++ b/client/go.c
@@ -377,7 +377,7 @@ go(S *s, int channels, const float *in, float *out)
     t = (s->leaves += next) / 6;
     sample o = bytebeat
     (
-      (0x1111 * (((6 * (t >> 10)) & 0xf)|8) * t) >>
+      (0x1111111 * (((6 * (t >> 10)) & 0xf)|8) * t) >>
         ((20 - ((t >> 11) & 0xF)) +
      ((0x1111 * (((2 * (t >> 12)) & 0xf) | 8) *
         ((t & 0x1) << (t & 0xa))) >> 20))
diff @ 2018-11-22 22:58:31 +0000
diff --git a/client/go.c b/client/go.c
index e58711e6d..ea084ad57 100644
--- a/client/go.c
+++ b/client/go.c
@@ -379,7 +379,7 @@ go(S *s, int channels, const float *in, float *out)
     (
       (0x1111111 * (((6 * (t >> 10)) & 0xf)|8) * t) >>
         ((20 - ((t >> 11) & 0xF)) +
-     ((0x1111 * (((2 * (t >> 12)) & 0xf) | 8) *
+     ((0x1111111 * (((2 * (t >> 12)) & 0xf) | 8) *
         ((t & 0x1) << (t & 0xa))) >> 20))
     );
     o *= 0.3;
diff @ 2018-11-22 22:58:37 +0000
diff --git a/client/go.c b/client/go.c
index ea084ad57..743ce84f2 100644
--- a/client/go.c
+++ b/client/go.c
@@ -379,7 +379,7 @@ go(S *s, int channels, const float *in, float *out)
     (
       (0x1111111 * (((6 * (t >> 10)) & 0xf)|8) * t) >>
         ((20 - ((t >> 11) & 0xF)) +
-     ((0x1111111 * (((2 * (t >> 12)) & 0xf) | 8) *
+     ((0x1111111 * (((2 * (t >> 11)) & 0xf) | 8) *
         ((t & 0x1) << (t & 0xa))) >> 20))
     );
     o *= 0.3;
diff @ 2018-11-22 22:58:59 +0000
diff --git a/client/go.c b/client/go.c
index 743ce84f2..eb1283966 100644
--- a/client/go.c
+++ b/client/go.c
@@ -376,11 +376,12 @@ go(S *s, int channels, const float *in, float *out)
   {
     t = (s->leaves += next) / 6;
     sample o = bytebeat
-    (
+    ( (
       (0x1111111 * (((6 * (t >> 10)) & 0xf)|8) * t) >>
         ((20 - ((t >> 11) & 0xF)) +
      ((0x1111111 * (((2 * (t >> 11)) & 0xf) | 8) *
-        ((t & 0x1) << (t & 0xa))) >> 20))
+        ((t & 0x1) << (t & 0xa))) >> 20)))
+     * (t & 0x300)
     );
     o *= 0.3;
     o = hip1(&s->leaveshi, o, 40);
diff @ 2018-11-22 22:59:03 +0000
diff --git a/client/go.c b/client/go.c
index eb1283966..f85143d36 100644
--- a/client/go.c
+++ b/client/go.c
@@ -381,7 +381,7 @@ go(S *s, int channels, const float *in, float *out)
         ((20 - ((t >> 11) & 0xF)) +
      ((0x1111111 * (((2 * (t >> 11)) & 0xf) | 8) *
         ((t & 0x1) << (t & 0xa))) >> 20)))
-     * (t & 0x300)
+     * (t & 0x100)
     );
     o *= 0.3;
     o = hip1(&s->leaveshi, o, 40);
diff @ 2018-11-22 22:59:06 +0000
diff --git a/client/go.c b/client/go.c
index f85143d36..153a9e402 100644
--- a/client/go.c
+++ b/client/go.c
@@ -381,7 +381,7 @@ go(S *s, int channels, const float *in, float *out)
         ((20 - ((t >> 11) & 0xF)) +
      ((0x1111111 * (((2 * (t >> 11)) & 0xf) | 8) *
         ((t & 0x1) << (t & 0xa))) >> 20)))
-     * (t & 0x100)
+     * (t & 0x000)
     );
     o *= 0.3;
     o = hip1(&s->leaveshi, o, 40);
diff @ 2018-11-22 22:59:15 +0000
diff --git a/client/go.c b/client/go.c
index 153a9e402..53226a76f 100644
--- a/client/go.c
+++ b/client/go.c
@@ -423,7 +423,7 @@ go(S *s, int channels, const float *in, float *out)
   {
     //if (! next)
       compress(mixdown, &s->mixdown, 5, 10, 25, 48, mixdown);
-    sample volume = 1;
+    sample volume = 0;
     mixdown[0] *= volume;
     mixdown[1] *= volume;
     for (int c = 0; c < channels && c < 2; ++c)

the end