clive is a C audio live-coding skeleton. It allows you to hot-swap DSP processing callbacks, providing not much more than automatic C code recompilation, object code reloading, and state preservation.
diff @ 2016-08-06 18:20:22 +0100 diff --git a/src/go.c b/src/go.c index 06cb1b1..510c558 100644 --- a/src/go.c +++ b/src/go.c @@ -44,6 +44,7 @@ typedef struct { int reloaded; COMPRESS compress; FLY fly[16]; + PHASOR time; } S; int go @@ -51,6 +52,7 @@ int go if (s->reloaded) { s->reloaded = 0; } + double t = phasor(&s->time, 133 / 60.0 / 64); double flies[2] = { 0, 0 }; for (int i = 0; i < 16; ++i) { flies[i & 1] += fly(&s->fly[i], 220);
diff @ 2016-08-06 18:20:41 +0100 diff --git a/src/go.c b/src/go.c index 510c558..56d0d23 100644 --- a/src/go.c +++ b/src/go.c @@ -53,13 +53,14 @@ int go s->reloaded = 0; } double t = phasor(&s->time, 133 / 60.0 / 64); + double e = 1 - wrap(32 * t); double flies[2] = { 0, 0 }; for (int i = 0; i < 16; ++i) { flies[i & 1] += fly(&s->fly[i], 220); } double mixdown[2] = - { flies[0] / 8 - , flies[1] / 8 + { flies[0] / 8 * e + , flies[1] / 8 * e }; compress(mixdown, &s->compress, 5, 15, 25, 60, mixdown); for (int c = 0; c < channels; ++c) {
diff @ 2016-08-06 18:20:54 +0100 diff --git a/src/go.c b/src/go.c index 56d0d23..cdde66d 100644 --- a/src/go.c +++ b/src/go.c @@ -53,7 +53,7 @@ int go s->reloaded = 0; } double t = phasor(&s->time, 133 / 60.0 / 64); - double e = 1 - wrap(32 * t); + double e = 1 - wrap(2.6666 * wrap(16 * t)); double flies[2] = { 0, 0 }; for (int i = 0; i < 16; ++i) { flies[i & 1] += fly(&s->fly[i], 220);
diff @ 2016-08-06 18:21:18 +0100 diff --git a/src/go.c b/src/go.c index cdde66d..d8af2f1 100644 --- a/src/go.c +++ b/src/go.c @@ -54,13 +54,14 @@ int go } double t = phasor(&s->time, 133 / 60.0 / 64); double e = 1 - wrap(2.6666 * wrap(16 * t)); + double e2 = wrap(e + 0.5) double flies[2] = { 0, 0 }; for (int i = 0; i < 16; ++i) { flies[i & 1] += fly(&s->fly[i], 220); } double mixdown[2] = { flies[0] / 8 * e - , flies[1] / 8 * e + , flies[1] / 8 * e2 }; compress(mixdown, &s->compress, 5, 15, 25, 60, mixdown); for (int c = 0; c < channels; ++c) {
diff @ 2016-08-06 18:21:20 +0100 diff --git a/src/go.c b/src/go.c index d8af2f1..bb45b79 100644 --- a/src/go.c +++ b/src/go.c @@ -54,7 +54,7 @@ int go } double t = phasor(&s->time, 133 / 60.0 / 64); double e = 1 - wrap(2.6666 * wrap(16 * t)); - double e2 = wrap(e + 0.5) + double e2 = wrap(e + 0.5); double flies[2] = { 0, 0 }; for (int i = 0; i < 16; ++i) { flies[i & 1] += fly(&s->fly[i], 220);
diff @ 2016-08-06 18:21:52 +0100 diff --git a/src/go.c b/src/go.c index bb45b79..46b056b 100644 --- a/src/go.c +++ b/src/go.c @@ -55,9 +55,10 @@ int go double t = phasor(&s->time, 133 / 60.0 / 64); double e = 1 - wrap(2.6666 * wrap(16 * t)); double e2 = wrap(e + 0.5); + double pitch = 220 - 20 * wrap(8 * t); double flies[2] = { 0, 0 }; for (int i = 0; i < 16; ++i) { - flies[i & 1] += fly(&s->fly[i], 220); + flies[i & 1] += fly(&s->fly[i], pitch); } double mixdown[2] = { flies[0] / 8 * e
diff @ 2016-08-06 18:22:51 +0100 diff --git a/src/go.c b/src/go.c index 46b056b..7fdf5d5 100644 --- a/src/go.c +++ b/src/go.c @@ -45,6 +45,7 @@ typedef struct { COMPRESS compress; FLY fly[16]; PHASOR time; + PHASOR bass; } S; int go @@ -60,9 +61,13 @@ int go for (int i = 0; i < 16; ++i) { flies[i & 1] += fly(&s->fly[i], pitch); } + + double b = phasor(&s->bass, 55); + double bass = sin(twopi * b); + double mixdown[2] = - { flies[0] / 8 * e - , flies[1] / 8 * e2 + { flies[0] / 8 * e + bass + , flies[1] / 8 * e2 + bass }; compress(mixdown, &s->compress, 5, 15, 25, 60, mixdown); for (int c = 0; c < channels; ++c) {
diff @ 2016-08-06 18:22:58 +0100 diff --git a/src/go.c b/src/go.c index 7fdf5d5..9d580d0 100644 --- a/src/go.c +++ b/src/go.c @@ -66,8 +66,8 @@ int go double bass = sin(twopi * b); double mixdown[2] = - { flies[0] / 8 * e + bass - , flies[1] / 8 * e2 + bass + { flies[0] / 3 * e + bass + , flies[1] / 3 * e2 + bass }; compress(mixdown, &s->compress, 5, 15, 25, 60, mixdown); for (int c = 0; c < channels; ++c) {
diff @ 2016-08-06 18:23:02 +0100 diff --git a/src/go.c b/src/go.c index 9d580d0..ed4c8b9 100644 --- a/src/go.c +++ b/src/go.c @@ -66,8 +66,8 @@ int go double bass = sin(twopi * b); double mixdown[2] = - { flies[0] / 3 * e + bass - , flies[1] / 3 * e2 + bass + { flies[0] * e + bass + , flies[1] * e2 + bass }; compress(mixdown, &s->compress, 5, 15, 25, 60, mixdown); for (int c = 0; c < channels; ++c) {
diff @ 2016-08-06 18:23:41 +0100 diff --git a/src/go.c b/src/go.c index ed4c8b9..0dd604b 100644 --- a/src/go.c +++ b/src/go.c @@ -63,7 +63,7 @@ int go } double b = phasor(&s->bass, 55); - double bass = sin(twopi * b); + double bass = sin(twopi * b + sin(twopi * 48 * t) * sin(twopi * 3 * b)); double mixdown[2] = { flies[0] * e + bass
diff @ 2016-08-06 18:24:17 +0100 diff --git a/src/go.c b/src/go.c index 0dd604b..f28e137 100644 --- a/src/go.c +++ b/src/go.c @@ -63,7 +63,9 @@ int go } double b = phasor(&s->bass, 55); - double bass = sin(twopi * b + sin(twopi * 48 * t) * sin(twopi * 3 * b)); + double bass = sin(twopi * b + + 2 * sin(twopi * 4 * t) * sin(twopi * 48 * t) * + sin(twopi * 3 * b)); double mixdown[2] = { flies[0] * e + bass
diff @ 2016-08-06 18:24:59 +0100 diff --git a/src/go.c b/src/go.c index f28e137..f9fc4bd 100644 --- a/src/go.c +++ b/src/go.c @@ -65,7 +65,10 @@ int go double b = phasor(&s->bass, 55); double bass = sin(twopi * b + 2 * sin(twopi * 4 * t) * sin(twopi * 48 * t) * - sin(twopi * 3 * b)); + sin(twopi * 3 * b) + + 2 * cos(twopi * 4 * t) * sin(twopi * 96 * t) * + sin(twopi * 5 * b) + ); double mixdown[2] = { flies[0] * e + bass
diff @ 2016-08-06 18:26:18 +0100 diff --git a/src/go.c b/src/go.c index f9fc4bd..4ea9881 100644 --- a/src/go.c +++ b/src/go.c @@ -46,6 +46,7 @@ typedef struct { FLY fly[16]; PHASOR time; PHASOR bass; + SAMPHOLD crush[2]; } S; int go @@ -71,8 +72,8 @@ int go ); double mixdown[2] = - { flies[0] * e + bass - , flies[1] * e2 + bass + { flies[0] * e + samphold(&s->crush[0], bass, wrap(36 * b + 0.25)) + , flies[1] * e2 + samphold(&s->crush[1], bass, wrap(36 * b + 0.75)) }; compress(mixdown, &s->compress, 5, 15, 25, 60, mixdown); for (int c = 0; c < channels; ++c) {
diff @ 2016-08-06 18:26:41 +0100 diff --git a/src/go.c b/src/go.c index 4ea9881..9ddac73 100644 --- a/src/go.c +++ b/src/go.c @@ -63,7 +63,7 @@ int go flies[i & 1] += fly(&s->fly[i], pitch); } - double b = phasor(&s->bass, 55); + double b = phasor(&s->bass, 55 - 5 * wrap(2 * t)); double bass = sin(twopi * b + 2 * sin(twopi * 4 * t) * sin(twopi * 48 * t) * sin(twopi * 3 * b) +
diff @ 2016-08-06 18:27:49 +0100 diff --git a/src/go.c b/src/go.c index 9ddac73..da08187 100644 --- a/src/go.c +++ b/src/go.c @@ -70,10 +70,20 @@ int go 2 * cos(twopi * 4 * t) * sin(twopi * 96 * t) * sin(twopi * 5 * b) ); + + double kick = 1 - wrap(64 * t); + kick *= kick; + kick *= kick; + kick *= kick; + kick *= kick; + kick *= 16; + kick = sin(twopi * kick); + kick *= 3; + kick = tanh(kick); double mixdown[2] = - { flies[0] * e + samphold(&s->crush[0], bass, wrap(36 * b + 0.25)) - , flies[1] * e2 + samphold(&s->crush[1], bass, wrap(36 * b + 0.75)) + { flies[0] * e + samphold(&s->crush[0], bass, wrap(36 * b + 0.25)) + kick + , flies[1] * e2 + samphold(&s->crush[1], bass, wrap(36 * b + 0.75)) + kick }; compress(mixdown, &s->compress, 5, 15, 25, 60, mixdown); for (int c = 0; c < channels; ++c) {
diff @ 2016-08-06 18:27:57 +0100 diff --git a/src/go.c b/src/go.c index da08187..7b1141f 100644 --- a/src/go.c +++ b/src/go.c @@ -79,7 +79,7 @@ int go kick *= 16; kick = sin(twopi * kick); kick *= 3; - kick = tanh(kick); + kick = 2 * tanh(kick); double mixdown[2] = { flies[0] * e + samphold(&s->crush[0], bass, wrap(36 * b + 0.25)) + kick
diff @ 2016-08-06 18:28:03 +0100 diff --git a/src/go.c b/src/go.c index 7b1141f..a05a9e1 100644 --- a/src/go.c +++ b/src/go.c @@ -76,7 +76,7 @@ int go kick *= kick; kick *= kick; kick *= kick; - kick *= 16; + kick *= 12; kick = sin(twopi * kick); kick *= 3; kick = 2 * tanh(kick);
diff @ 2016-08-06 18:29:17 +0100 diff --git a/src/go.c b/src/go.c index a05a9e1..45b6138 100644 --- a/src/go.c +++ b/src/go.c @@ -80,10 +80,25 @@ int go kick = sin(twopi * kick); kick *= 3; kick = 2 * tanh(kick); - + + double snare = 1 - wrap(32 * t + 0.5) + snare *= snare; + snare *= snare; + snare *= snare; + snare *= snare; + snare *= snare; + snare *= noise(); + snare *= 4; + snare = tanh(snare); + snare *= 1.5; + double mixdown[2] = - { flies[0] * e + samphold(&s->crush[0], bass, wrap(36 * b + 0.25)) + kick - , flies[1] * e2 + samphold(&s->crush[1], bass, wrap(36 * b + 0.75)) + kick + { flies[0] * e + + samphold(&s->crush[0], bass, wrap(36 * b + 0.25)) + + kick + snare + , flies[1] * e2 + + samphold(&s->crush[1], bass, wrap(36 * b + 0.75)) + + kick + snare }; compress(mixdown, &s->compress, 5, 15, 25, 60, mixdown); for (int c = 0; c < channels; ++c) {
diff @ 2016-08-06 18:29:23 +0100 diff --git a/src/go.c b/src/go.c index 45b6138..b3099ed 100644 --- a/src/go.c +++ b/src/go.c @@ -81,7 +81,7 @@ int go kick *= 3; kick = 2 * tanh(kick); - double snare = 1 - wrap(32 * t + 0.5) + double snare = 1 - wrap(32 * t + 0.5); snare *= snare; snare *= snare; snare *= snare;
diff @ 2016-08-06 18:30:01 +0100 diff --git a/src/go.c b/src/go.c index b3099ed..eb7361a 100644 --- a/src/go.c +++ b/src/go.c @@ -47,6 +47,7 @@ typedef struct { PHASOR time; PHASOR bass; SAMPHOLD crush[2]; + VCF snare; } S; int go @@ -89,6 +90,7 @@ int go snare *= snare; snare *= noise(); snare *= 4; + snare += 16 * vcf(&s->snare, snare, 330, 10); snare = tanh(snare); snare *= 1.5;
diff @ 2016-08-06 18:30:09 +0100 diff --git a/src/go.c b/src/go.c index eb7361a..679f212 100644 --- a/src/go.c +++ b/src/go.c @@ -90,7 +90,7 @@ int go snare *= snare; snare *= noise(); snare *= 4; - snare += 16 * vcf(&s->snare, snare, 330, 10); + snare += 32 * vcf(&s->snare, snare, 330, 10); snare = tanh(snare); snare *= 1.5;
diff @ 2016-08-06 18:30:13 +0100 diff --git a/src/go.c b/src/go.c index 679f212..2a6ea68 100644 --- a/src/go.c +++ b/src/go.c @@ -90,7 +90,7 @@ int go snare *= snare; snare *= noise(); snare *= 4; - snare += 32 * vcf(&s->snare, snare, 330, 10); + snare += 64 * vcf(&s->snare, snare, 330, 10); snare = tanh(snare); snare *= 1.5;
diff @ 2016-08-06 18:30:25 +0100 diff --git a/src/go.c b/src/go.c index 2a6ea68..28b90b8 100644 --- a/src/go.c +++ b/src/go.c @@ -90,7 +90,7 @@ int go snare *= snare; snare *= noise(); snare *= 4; - snare += 64 * vcf(&s->snare, snare, 330, 10); + snare += 64 * vcf(&s->snare, snare, 550, 10); snare = tanh(snare); snare *= 1.5;
diff @ 2016-08-06 18:32:14 +0100 diff --git a/src/go.c b/src/go.c index 28b90b8..86ed650 100644 --- a/src/go.c +++ b/src/go.c @@ -48,12 +48,18 @@ typedef struct { PHASOR bass; SAMPHOLD crush[2]; VCF snare; + DELAY del1; + float del1buf[SR]; + DELAY del2; + float del2buf[SR]; } S; int go (S *s, int channels, const float *in, float *out) { if (s->reloaded) { s->reloaded = 0; + s->del1.length = SR; + s->del2.length = SR; } double t = phasor(&s->time, 133 / 60.0 / 64); double e = 1 - wrap(2.6666 * wrap(16 * t)); @@ -94,10 +100,15 @@ int go snare = tanh(snare); snare *= 1.5; + double echo1 = delread4(&s->del1, 133.0 / 60.0 * 1.0 / 3.0 * 1000.0); + + + delwrite(&s->del1, sin(snare + echo1); + double mixdown[2] = { flies[0] * e + samphold(&s->crush[0], bass, wrap(36 * b + 0.25)) + - kick + snare + kick + snare + echo1 , flies[1] * e2 + samphold(&s->crush[1], bass, wrap(36 * b + 0.75)) + kick + snare
diff @ 2016-08-06 18:32:33 +0100 diff --git a/src/go.c b/src/go.c index 86ed650..f0c59de 100644 --- a/src/go.c +++ b/src/go.c @@ -103,7 +103,7 @@ int go double echo1 = delread4(&s->del1, 133.0 / 60.0 * 1.0 / 3.0 * 1000.0); - delwrite(&s->del1, sin(snare + echo1); + delwrite(&s->del1, sin(snare + echo1)); double mixdown[2] = { flies[0] * e +
diff @ 2016-08-06 18:33:08 +0100 diff --git a/src/go.c b/src/go.c index f0c59de..9ae2257 100644 --- a/src/go.c +++ b/src/go.c @@ -101,9 +101,10 @@ int go snare *= 1.5; double echo1 = delread4(&s->del1, 133.0 / 60.0 * 1.0 / 3.0 * 1000.0); + double echo2 = delread4(&s->del2, 133.0 / 60.0 * 1.0 / 3.0 * 1000.0); - - delwrite(&s->del1, sin(snare + echo1)); + delwrite(&s->del2, sin(snare - echo1)); + delwrite(&s->del1, sin(snare + echo2)); double mixdown[2] = { flies[0] * e + @@ -111,7 +112,7 @@ int go kick + snare + echo1 , flies[1] * e2 + samphold(&s->crush[1], bass, wrap(36 * b + 0.75)) + - kick + snare + kick + snare + echo2 }; compress(mixdown, &s->compress, 5, 15, 25, 60, mixdown); for (int c = 0; c < channels; ++c) {
diff @ 2016-08-06 18:33:58 +0100 diff --git a/src/go.c b/src/go.c index 9ae2257..6969ff4 100644 --- a/src/go.c +++ b/src/go.c @@ -100,8 +100,10 @@ int go snare = tanh(snare); snare *= 1.5; - double echo1 = delread4(&s->del1, 133.0 / 60.0 * 1.0 / 3.0 * 1000.0); - double echo2 = delread4(&s->del2, 133.0 / 60.0 * 1.0 / 3.0 * 1000.0); + double echo1 = delread4(&s->del1, 133.0 / 60.0 * 1.0 / 3.0 * 1000.0 * + (1 + 0.1 * sin(twopi * 4 * t))); + double echo2 = delread4(&s->del2, 133.0 / 60.0 * 1.0 / 3.0 * 1000.0 * + (1 + 0.1 * sin(twopi * 4 * t))); delwrite(&s->del2, sin(snare - echo1)); delwrite(&s->del1, sin(snare + echo2));
diff @ 2016-08-06 18:34:03 +0100 diff --git a/src/go.c b/src/go.c index 6969ff4..87aa22f 100644 --- a/src/go.c +++ b/src/go.c @@ -103,7 +103,7 @@ int go double echo1 = delread4(&s->del1, 133.0 / 60.0 * 1.0 / 3.0 * 1000.0 * (1 + 0.1 * sin(twopi * 4 * t))); double echo2 = delread4(&s->del2, 133.0 / 60.0 * 1.0 / 3.0 * 1000.0 * - (1 + 0.1 * sin(twopi * 4 * t))); + (1 + 0.1 * cos(twopi * 4 * t))); delwrite(&s->del2, sin(snare - echo1)); delwrite(&s->del1, sin(snare + echo2));
diff @ 2016-08-06 18:34:13 +0100 diff --git a/src/go.c b/src/go.c index 87aa22f..b3618f5 100644 --- a/src/go.c +++ b/src/go.c @@ -86,7 +86,7 @@ int go kick *= 12; kick = sin(twopi * kick); kick *= 3; - kick = 2 * tanh(kick); + kick = 0 * tanh(kick); double snare = 1 - wrap(32 * t + 0.5); snare *= snare;
diff @ 2016-08-06 18:34:25 +0100 diff --git a/src/go.c b/src/go.c index b3618f5..85b35d0 100644 --- a/src/go.c +++ b/src/go.c @@ -72,7 +72,7 @@ int go double b = phasor(&s->bass, 55 - 5 * wrap(2 * t)); double bass = sin(twopi * b + - 2 * sin(twopi * 4 * t) * sin(twopi * 48 * t) * + 3 * sin(twopi * 4 * t) * sin(twopi * 48 * t) * sin(twopi * 3 * b) + 2 * cos(twopi * 4 * t) * sin(twopi * 96 * t) * sin(twopi * 5 * b)
diff @ 2016-08-06 18:34:30 +0100 diff --git a/src/go.c b/src/go.c index 85b35d0..eb58711 100644 --- a/src/go.c +++ b/src/go.c @@ -73,7 +73,7 @@ int go double b = phasor(&s->bass, 55 - 5 * wrap(2 * t)); double bass = sin(twopi * b + 3 * sin(twopi * 4 * t) * sin(twopi * 48 * t) * - sin(twopi * 3 * b) + + sin(twopi * 7 * b) + 2 * cos(twopi * 4 * t) * sin(twopi * 96 * t) * sin(twopi * 5 * b) );
diff @ 2016-08-06 18:34:36 +0100 diff --git a/src/go.c b/src/go.c index eb58711..c9f57cb 100644 --- a/src/go.c +++ b/src/go.c @@ -72,7 +72,7 @@ int go double b = phasor(&s->bass, 55 - 5 * wrap(2 * t)); double bass = sin(twopi * b + - 3 * sin(twopi * 4 * t) * sin(twopi * 48 * t) * + 3 * sin(twopi * 8 * t) * sin(twopi * 48 * t) * sin(twopi * 7 * b) + 2 * cos(twopi * 4 * t) * sin(twopi * 96 * t) * sin(twopi * 5 * b)
diff @ 2016-08-06 18:34:57 +0100 diff --git a/src/go.c b/src/go.c index c9f57cb..23effd8 100644 --- a/src/go.c +++ b/src/go.c @@ -73,9 +73,9 @@ int go double b = phasor(&s->bass, 55 - 5 * wrap(2 * t)); double bass = sin(twopi * b + 3 * sin(twopi * 8 * t) * sin(twopi * 48 * t) * - sin(twopi * 7 * b) + - 2 * cos(twopi * 4 * t) * sin(twopi * 96 * t) * - sin(twopi * 5 * b) + sin(twopi * 4 * b) + + 4 * cos(twopi * 8 * t) * sin(twopi * 96 * t) * + sin(twopi * 2 * b) ); double kick = 1 - wrap(64 * t);
diff @ 2016-08-06 18:35:27 +0100 diff --git a/src/go.c b/src/go.c index 23effd8..8c5598a 100644 --- a/src/go.c +++ b/src/go.c @@ -101,9 +101,9 @@ int go snare *= 1.5; double echo1 = delread4(&s->del1, 133.0 / 60.0 * 1.0 / 3.0 * 1000.0 * - (1 + 0.1 * sin(twopi * 4 * t))); + (1 + 0.1 * sin(twopi * 4 * t)) / 16); double echo2 = delread4(&s->del2, 133.0 / 60.0 * 1.0 / 3.0 * 1000.0 * - (1 + 0.1 * cos(twopi * 4 * t))); + (1 + 0.1 * cos(twopi * 4 * t)) / 16); delwrite(&s->del2, sin(snare - echo1)); delwrite(&s->del1, sin(snare + echo2));
diff @ 2016-08-06 18:35:35 +0100 diff --git a/src/go.c b/src/go.c index 8c5598a..e8601c8 100644 --- a/src/go.c +++ b/src/go.c @@ -101,9 +101,9 @@ int go snare *= 1.5; double echo1 = delread4(&s->del1, 133.0 / 60.0 * 1.0 / 3.0 * 1000.0 * - (1 + 0.1 * sin(twopi * 4 * t)) / 16); + (1 + 0.1 * sin(twopi * 4 * t)) / 64); double echo2 = delread4(&s->del2, 133.0 / 60.0 * 1.0 / 3.0 * 1000.0 * - (1 + 0.1 * cos(twopi * 4 * t)) / 16); + (1 + 0.1 * cos(twopi * 4 * t)) / 64); delwrite(&s->del2, sin(snare - echo1)); delwrite(&s->del1, sin(snare + echo2));
diff @ 2016-08-06 18:35:50 +0100 diff --git a/src/go.c b/src/go.c index e8601c8..766153d 100644 --- a/src/go.c +++ b/src/go.c @@ -74,7 +74,7 @@ int go double bass = sin(twopi * b + 3 * sin(twopi * 8 * t) * sin(twopi * 48 * t) * sin(twopi * 4 * b) + - 4 * cos(twopi * 8 * t) * sin(twopi * 96 * t) * + 4 * cos(twopi * 8 * t) * sin(twopi * 24 * t) * sin(twopi * 2 * b) );
diff @ 2016-08-06 18:35:55 +0100 diff --git a/src/go.c b/src/go.c index 766153d..6815bc5 100644 --- a/src/go.c +++ b/src/go.c @@ -72,7 +72,7 @@ int go double b = phasor(&s->bass, 55 - 5 * wrap(2 * t)); double bass = sin(twopi * b + - 3 * sin(twopi * 8 * t) * sin(twopi * 48 * t) * + 3 * sin(twopi * 8 * t) * sin(twopi * 12 * t) * sin(twopi * 4 * b) + 4 * cos(twopi * 8 * t) * sin(twopi * 24 * t) * sin(twopi * 2 * b)
diff @ 2016-08-06 18:36:09 +0100 diff --git a/src/go.c b/src/go.c index 6815bc5..eb80256 100644 --- a/src/go.c +++ b/src/go.c @@ -88,7 +88,7 @@ int go kick *= 3; kick = 0 * tanh(kick); - double snare = 1 - wrap(32 * t + 0.5); + double snare = 1 - wrap(16 * t + 0.5); snare *= snare; snare *= snare; snare *= snare;
diff @ 2016-08-06 18:36:23 +0100 diff --git a/src/go.c b/src/go.c index eb80256..5b3f07c 100644 --- a/src/go.c +++ b/src/go.c @@ -105,8 +105,8 @@ int go double echo2 = delread4(&s->del2, 133.0 / 60.0 * 1.0 / 3.0 * 1000.0 * (1 + 0.1 * cos(twopi * 4 * t)) / 64); - delwrite(&s->del2, sin(snare - echo1)); - delwrite(&s->del1, sin(snare + echo2)); + delwrite(&s->del2, sin( - echo1)); + delwrite(&s->del1, sin( + echo2)); double mixdown[2] = { flies[0] * e +
diff @ 2016-08-06 18:36:39 +0100 diff --git a/src/go.c b/src/go.c index 5b3f07c..27044ec 100644 --- a/src/go.c +++ b/src/go.c @@ -105,8 +105,8 @@ int go double echo2 = delread4(&s->del2, 133.0 / 60.0 * 1.0 / 3.0 * 1000.0 * (1 + 0.1 * cos(twopi * 4 * t)) / 64); - delwrite(&s->del2, sin( - echo1)); - delwrite(&s->del1, sin( + echo2)); + delwrite(&s->del2, sin(snare - 1.5 * echo1)); + delwrite(&s->del1, sin(snare + 1.5 * echo2)); double mixdown[2] = { flies[0] * e +
diff @ 2016-08-06 18:36:50 +0100 diff --git a/src/go.c b/src/go.c index 27044ec..b40f81e 100644 --- a/src/go.c +++ b/src/go.c @@ -101,9 +101,9 @@ int go snare *= 1.5; double echo1 = delread4(&s->del1, 133.0 / 60.0 * 1.0 / 3.0 * 1000.0 * - (1 + 0.1 * sin(twopi * 4 * t)) / 64); + (1 + 0.1 * sin(twopi * 8 * t)) / 64); double echo2 = delread4(&s->del2, 133.0 / 60.0 * 1.0 / 3.0 * 1000.0 * - (1 + 0.1 * cos(twopi * 4 * t)) / 64); + (1 + 0.1 * cos(twopi * 8 * t)) / 64); delwrite(&s->del2, sin(snare - 1.5 * echo1)); delwrite(&s->del1, sin(snare + 1.5 * echo2));
diff @ 2016-08-06 18:36:54 +0100 diff --git a/src/go.c b/src/go.c index b40f81e..7c5ebde 100644 --- a/src/go.c +++ b/src/go.c @@ -101,9 +101,9 @@ int go snare *= 1.5; double echo1 = delread4(&s->del1, 133.0 / 60.0 * 1.0 / 3.0 * 1000.0 * - (1 + 0.1 * sin(twopi * 8 * t)) / 64); + (1 + 0.25 * sin(twopi * 8 * t)) / 64); double echo2 = delread4(&s->del2, 133.0 / 60.0 * 1.0 / 3.0 * 1000.0 * - (1 + 0.1 * cos(twopi * 8 * t)) / 64); + (1 + 0.25 * cos(twopi * 8 * t)) / 64); delwrite(&s->del2, sin(snare - 1.5 * echo1)); delwrite(&s->del1, sin(snare + 1.5 * echo2));
diff @ 2016-08-06 18:37:04 +0100 diff --git a/src/go.c b/src/go.c index 7c5ebde..dd82739 100644 --- a/src/go.c +++ b/src/go.c @@ -105,8 +105,8 @@ int go double echo2 = delread4(&s->del2, 133.0 / 60.0 * 1.0 / 3.0 * 1000.0 * (1 + 0.25 * cos(twopi * 8 * t)) / 64); - delwrite(&s->del2, sin(snare - 1.5 * echo1)); - delwrite(&s->del1, sin(snare + 1.5 * echo2)); + delwrite(&s->del2, sin(- 1.5 * echo1)); + delwrite(&s->del1, sin(+ 1.5 * echo2)); double mixdown[2] = { flies[0] * e +
diff @ 2016-08-06 18:37:20 +0100 diff --git a/src/go.c b/src/go.c index dd82739..e476e5b 100644 --- a/src/go.c +++ b/src/go.c @@ -98,7 +98,7 @@ int go snare *= 4; snare += 64 * vcf(&s->snare, snare, 550, 10); snare = tanh(snare); - snare *= 1.5; + snare *= 0; double echo1 = delread4(&s->del1, 133.0 / 60.0 * 1.0 / 3.0 * 1000.0 * (1 + 0.25 * sin(twopi * 8 * t)) / 64);
diff @ 2016-08-06 18:37:47 +0100 diff --git a/src/go.c b/src/go.c index e476e5b..12722c1 100644 --- a/src/go.c +++ b/src/go.c @@ -70,7 +70,7 @@ int go flies[i & 1] += fly(&s->fly[i], pitch); } - double b = phasor(&s->bass, 55 - 5 * wrap(2 * t)); + double b = phasor(&s->bass, 55 - 10 * (wrap(32 * t) > 0.5)); double bass = sin(twopi * b + 3 * sin(twopi * 8 * t) * sin(twopi * 12 * t) * sin(twopi * 4 * b) +
diff @ 2016-08-06 18:38:15 +0100 diff --git a/src/go.c b/src/go.c index 12722c1..4d3b998 100644 --- a/src/go.c +++ b/src/go.c @@ -70,7 +70,7 @@ int go flies[i & 1] += fly(&s->fly[i], pitch); } - double b = phasor(&s->bass, 55 - 10 * (wrap(32 * t) > 0.5)); + double b = phasor(&s->bass, 55 - 10 * (wrap(32 * t) > 0.5) + 5 * (wrap(16 * t) > 0.5)); double bass = sin(twopi * b + 3 * sin(twopi * 8 * t) * sin(twopi * 12 * t) * sin(twopi * 4 * b) +
diff @ 2016-08-06 18:38:31 +0100 diff --git a/src/go.c b/src/go.c index 4d3b998..1781fed 100644 --- a/src/go.c +++ b/src/go.c @@ -111,10 +111,10 @@ int go double mixdown[2] = { flies[0] * e + samphold(&s->crush[0], bass, wrap(36 * b + 0.25)) + - kick + snare + echo1 + kick + snare + echo1 * e , flies[1] * e2 + samphold(&s->crush[1], bass, wrap(36 * b + 0.75)) + - kick + snare + echo2 + kick + snare + echo2 * e2 }; compress(mixdown, &s->compress, 5, 15, 25, 60, mixdown); for (int c = 0; c < channels; ++c) {
diff @ 2016-08-06 18:38:57 +0100 diff --git a/src/go.c b/src/go.c index 1781fed..b387714 100644 --- a/src/go.c +++ b/src/go.c @@ -78,7 +78,7 @@ int go sin(twopi * 2 * b) ); - double kick = 1 - wrap(64 * t); + double kick = 1 - wrap(2.666 * wrap(32 * t)); kick *= kick; kick *= kick; kick *= kick;
diff @ 2016-08-06 18:39:06 +0100 diff --git a/src/go.c b/src/go.c index b387714..755f32f 100644 --- a/src/go.c +++ b/src/go.c @@ -86,7 +86,7 @@ int go kick *= 12; kick = sin(twopi * kick); kick *= 3; - kick = 0 * tanh(kick); + kick = 3 * tanh(kick); double snare = 1 - wrap(16 * t + 0.5); snare *= snare;
diff @ 2016-08-06 18:39:32 +0100 diff --git a/src/go.c b/src/go.c index 755f32f..f44180d 100644 --- a/src/go.c +++ b/src/go.c @@ -88,7 +88,7 @@ int go kick *= 3; kick = 3 * tanh(kick); - double snare = 1 - wrap(16 * t + 0.5); + double snare = 1 - wrap(5.3333 * wrap(16 * t + 0.5)); snare *= snare; snare *= snare; snare *= snare; @@ -98,7 +98,7 @@ int go snare *= 4; snare += 64 * vcf(&s->snare, snare, 550, 10); snare = tanh(snare); - snare *= 0; + snare *= 2; double echo1 = delread4(&s->del1, 133.0 / 60.0 * 1.0 / 3.0 * 1000.0 * (1 + 0.25 * sin(twopi * 8 * t)) / 64);
diff @ 2016-08-06 18:39:54 +0100 diff --git a/src/go.c b/src/go.c index f44180d..0aaf8c1 100644 --- a/src/go.c +++ b/src/go.c @@ -96,7 +96,7 @@ int go snare *= snare; snare *= noise(); snare *= 4; - snare += 64 * vcf(&s->snare, snare, 550, 10); + snare += 64 * vcf(&s->snare, snare, 550 + 110 * (wrap(16 * t) > 0.5), 10); snare = tanh(snare); snare *= 2;
diff @ 2016-08-06 18:40:06 +0100 diff --git a/src/go.c b/src/go.c index 0aaf8c1..09f81a9 100644 --- a/src/go.c +++ b/src/go.c @@ -96,7 +96,8 @@ int go snare *= snare; snare *= noise(); snare *= 4; - snare += 64 * vcf(&s->snare, snare, 550 + 110 * (wrap(16 * t) > 0.5), 10); + snare += 64 * vcf(&s->snare, snare, 550 + 330 * (wrap(16 * t) > 0.5), 10); + snare += 64 * vcf(&s->snare, snare, 550 + 330 * (wrap(16 * t) > 0.5), 10); snare = tanh(snare); snare *= 2;
diff @ 2016-08-06 18:40:09 +0100 diff --git a/src/go.c b/src/go.c index 09f81a9..ea0f967 100644 --- a/src/go.c +++ b/src/go.c @@ -97,7 +97,6 @@ int go snare *= noise(); snare *= 4; snare += 64 * vcf(&s->snare, snare, 550 + 330 * (wrap(16 * t) > 0.5), 10); - snare += 64 * vcf(&s->snare, snare, 550 + 330 * (wrap(16 * t) > 0.5), 10); snare = tanh(snare); snare *= 2;
diff @ 2016-08-06 18:40:39 +0100 diff --git a/src/go.c b/src/go.c index ea0f967..ab804f3 100644 --- a/src/go.c +++ b/src/go.c @@ -57,9 +57,11 @@ typedef struct { int go (S *s, int channels, const float *in, float *out) { if (s->reloaded) { + memset(S, 0, sizeof(S)); s->reloaded = 0; s->del1.length = SR; s->del2.length = SR; + } double t = phasor(&s->time, 133 / 60.0 / 64); double e = 1 - wrap(2.6666 * wrap(16 * t));
diff @ 2016-08-06 18:40:40 +0100 diff --git a/src/go.c b/src/go.c index ab804f3..945692d 100644 --- a/src/go.c +++ b/src/go.c @@ -57,7 +57,7 @@ typedef struct { int go (S *s, int channels, const float *in, float *out) { if (s->reloaded) { - memset(S, 0, sizeof(S)); + memset(s, 0, sizeof(S)); s->reloaded = 0; s->del1.length = SR; s->del2.length = SR;
diff @ 2016-08-06 18:40:59 +0100 diff --git a/src/go.c b/src/go.c index 945692d..faa4ba7 100644 --- a/src/go.c +++ b/src/go.c @@ -57,7 +57,7 @@ typedef struct { int go (S *s, int channels, const float *in, float *out) { if (s->reloaded) { - memset(s, 0, sizeof(S)); + //memset(s, 0, sizeof(S)); s->reloaded = 0; s->del1.length = SR; s->del2.length = SR; @@ -107,7 +107,7 @@ int go double echo2 = delread4(&s->del2, 133.0 / 60.0 * 1.0 / 3.0 * 1000.0 * (1 + 0.25 * cos(twopi * 8 * t)) / 64); - delwrite(&s->del2, sin(- 1.5 * echo1)); + delwrite(&s->del2, sin(kick - 1.5 * echo1)); delwrite(&s->del1, sin(+ 1.5 * echo2)); double mixdown[2] =
diff @ 2016-08-06 18:41:04 +0100 diff --git a/src/go.c b/src/go.c index faa4ba7..b13d6ab 100644 --- a/src/go.c +++ b/src/go.c @@ -108,7 +108,7 @@ int go (1 + 0.25 * cos(twopi * 8 * t)) / 64); delwrite(&s->del2, sin(kick - 1.5 * echo1)); - delwrite(&s->del1, sin(+ 1.5 * echo2)); + delwrite(&s->del1, sin(kick + 1.5 * echo2)); double mixdown[2] = { flies[0] * e +
diff @ 2016-08-06 18:41:18 +0100 diff --git a/src/go.c b/src/go.c index b13d6ab..214912e 100644 --- a/src/go.c +++ b/src/go.c @@ -103,9 +103,9 @@ int go snare *= 2; double echo1 = delread4(&s->del1, 133.0 / 60.0 * 1.0 / 3.0 * 1000.0 * - (1 + 0.25 * sin(twopi * 8 * t)) / 64); + (1 + 0.25 * sin(twopi * 8 * t))); double echo2 = delread4(&s->del2, 133.0 / 60.0 * 1.0 / 3.0 * 1000.0 * - (1 + 0.25 * cos(twopi * 8 * t)) / 64); + (1 + 0.25 * cos(twopi * 8 * t))); delwrite(&s->del2, sin(kick - 1.5 * echo1)); delwrite(&s->del1, sin(kick + 1.5 * echo2));
diff @ 2016-08-06 18:42:28 +0100 diff --git a/src/go.c b/src/go.c index 214912e..8ab52cf 100644 --- a/src/go.c +++ b/src/go.c @@ -52,6 +52,7 @@ typedef struct { float del1buf[SR]; DELAY del2; float del2buf[SR]; + PITCHSHIFT ps[4]; } S; int go @@ -107,6 +108,11 @@ int go double echo2 = delread4(&s->del2, 133.0 / 60.0 * 1.0 / 3.0 * 1000.0 * (1 + 0.25 * cos(twopi * 8 * t))); + echo1 += pitchshift(&s->ps[0], 5, 100, 3, echo1); + echo1 += pitchshift(&s->ps[1], 5, 100, -6, echo1); + echo2 += pitchshift(&s->ps[2], 5, 100, 3, echo2); + echo2 += pitchshift(&s->ps[3], 5, 100, -6, echo2); + delwrite(&s->del2, sin(kick - 1.5 * echo1)); delwrite(&s->del1, sin(kick + 1.5 * echo2));
diff @ 2016-08-06 18:42:34 +0100 diff --git a/src/go.c b/src/go.c index 8ab52cf..37a463e 100644 --- a/src/go.c +++ b/src/go.c @@ -113,8 +113,8 @@ int go echo2 += pitchshift(&s->ps[2], 5, 100, 3, echo2); echo2 += pitchshift(&s->ps[3], 5, 100, -6, echo2); - delwrite(&s->del2, sin(kick - 1.5 * echo1)); - delwrite(&s->del1, sin(kick + 1.5 * echo2)); + delwrite(&s->del2, sin(kick - echo1)); + delwrite(&s->del1, sin(kick + echo2)); double mixdown[2] = { flies[0] * e +
diff @ 2016-08-06 18:42:48 +0100 diff --git a/src/go.c b/src/go.c index 37a463e..93ff5ce 100644 --- a/src/go.c +++ b/src/go.c @@ -113,8 +113,8 @@ int go echo2 += pitchshift(&s->ps[2], 5, 100, 3, echo2); echo2 += pitchshift(&s->ps[3], 5, 100, -6, echo2); - delwrite(&s->del2, sin(kick - echo1)); - delwrite(&s->del1, sin(kick + echo2)); + delwrite(&s->del2, sin(-echo1)); + delwrite(&s->del1, sin(echo2)); double mixdown[2] = { flies[0] * e +
diff @ 2016-08-06 18:43:00 +0100 diff --git a/src/go.c b/src/go.c index 93ff5ce..cd8172b 100644 --- a/src/go.c +++ b/src/go.c @@ -104,9 +104,9 @@ int go snare *= 2; double echo1 = delread4(&s->del1, 133.0 / 60.0 * 1.0 / 3.0 * 1000.0 * - (1 + 0.25 * sin(twopi * 8 * t))); + (1 + 0. * sin(twopi * 8 * t))); double echo2 = delread4(&s->del2, 133.0 / 60.0 * 1.0 / 3.0 * 1000.0 * - (1 + 0.25 * cos(twopi * 8 * t))); + (1 + 0. * cos(twopi * 8 * t))); echo1 += pitchshift(&s->ps[0], 5, 100, 3, echo1); echo1 += pitchshift(&s->ps[1], 5, 100, -6, echo1);
diff @ 2016-08-06 18:43:09 +0100 diff --git a/src/go.c b/src/go.c index cd8172b..516b096 100644 --- a/src/go.c +++ b/src/go.c @@ -103,9 +103,9 @@ int go snare = tanh(snare); snare *= 2; - double echo1 = delread4(&s->del1, 133.0 / 60.0 * 1.0 / 3.0 * 1000.0 * + double echo1 = delread4(&s->del1, 133.0 / 60.0 * 1.0 * 1000.0 * (1 + 0. * sin(twopi * 8 * t))); - double echo2 = delread4(&s->del2, 133.0 / 60.0 * 1.0 / 3.0 * 1000.0 * + double echo2 = delread4(&s->del2, 133.0 / 60.0 * 1.0 * 1000.0 * (1 + 0. * cos(twopi * 8 * t))); echo1 += pitchshift(&s->ps[0], 5, 100, 3, echo1);
diff @ 2016-08-06 18:43:26 +0100 diff --git a/src/go.c b/src/go.c index 516b096..7bcaa28 100644 --- a/src/go.c +++ b/src/go.c @@ -79,7 +79,7 @@ int go sin(twopi * 4 * b) + 4 * cos(twopi * 8 * t) * sin(twopi * 24 * t) * sin(twopi * 2 * b) - ); + ) * 0; double kick = 1 - wrap(2.666 * wrap(32 * t)); kick *= kick;
diff @ 2016-08-06 18:43:36 +0100 diff --git a/src/go.c b/src/go.c index 7bcaa28..4cdeed9 100644 --- a/src/go.c +++ b/src/go.c @@ -119,10 +119,10 @@ int go double mixdown[2] = { flies[0] * e + samphold(&s->crush[0], bass, wrap(36 * b + 0.25)) + - kick + snare + echo1 * e + kick + snare + echo1 , flies[1] * e2 + samphold(&s->crush[1], bass, wrap(36 * b + 0.75)) + - kick + snare + echo2 * e2 + kick + snare + echo2 }; compress(mixdown, &s->compress, 5, 15, 25, 60, mixdown); for (int c = 0; c < channels; ++c) {
diff @ 2016-08-06 18:43:50 +0100 diff --git a/src/go.c b/src/go.c index 4cdeed9..078855a 100644 --- a/src/go.c +++ b/src/go.c @@ -113,8 +113,8 @@ int go echo2 += pitchshift(&s->ps[2], 5, 100, 3, echo2); echo2 += pitchshift(&s->ps[3], 5, 100, -6, echo2); - delwrite(&s->del2, sin(-echo1)); - delwrite(&s->del1, sin(echo2)); + delwrite(&s->del2, tanh(-echo1)); + delwrite(&s->del1, tanh(echo2)); double mixdown[2] = { flies[0] * e +
diff @ 2016-08-06 18:44:31 +0100 diff --git a/src/go.c b/src/go.c index 078855a..a1ef65f 100644 --- a/src/go.c +++ b/src/go.c @@ -53,6 +53,7 @@ typedef struct { DELAY del2; float del2buf[SR]; PITCHSHIFT ps[4]; + HIP hip[2]; } S; int go @@ -113,8 +114,8 @@ int go echo2 += pitchshift(&s->ps[2], 5, 100, 3, echo2); echo2 += pitchshift(&s->ps[3], 5, 100, -6, echo2); - delwrite(&s->del2, tanh(-echo1)); - delwrite(&s->del1, tanh(echo2)); + delwrite(&s->del2, tanh(hip(&s->hip[0], -echo1, 10))); + delwrite(&s->del1, tanh(hip(&s->hip[1], echo2, 10))); double mixdown[2] = { flies[0] * e +
diff @ 2016-08-06 18:44:53 +0100 diff --git a/src/go.c b/src/go.c index a1ef65f..60913ca 100644 --- a/src/go.c +++ b/src/go.c @@ -118,10 +118,10 @@ int go delwrite(&s->del1, tanh(hip(&s->hip[1], echo2, 10))); double mixdown[2] = - { flies[0] * e + + { flies[0] * e * 0 + samphold(&s->crush[0], bass, wrap(36 * b + 0.25)) + kick + snare + echo1 - , flies[1] * e2 + + , flies[1] * e2 * 0 + samphold(&s->crush[1], bass, wrap(36 * b + 0.75)) + kick + snare + echo2 };
diff @ 2016-08-06 18:45:08 +0100 diff --git a/src/go.c b/src/go.c index 60913ca..ef2f952 100644 --- a/src/go.c +++ b/src/go.c @@ -120,10 +120,10 @@ int go double mixdown[2] = { flies[0] * e * 0 + samphold(&s->crush[0], bass, wrap(36 * b + 0.25)) + - kick + snare + echo1 + echo1 , flies[1] * e2 * 0 + samphold(&s->crush[1], bass, wrap(36 * b + 0.75)) + - kick + snare + echo2 + echo2 }; compress(mixdown, &s->compress, 5, 15, 25, 60, mixdown); for (int c = 0; c < channels; ++c) {
diff @ 2016-08-06 18:46:08 +0100 diff --git a/src/go.c b/src/go.c index ef2f952..8c4231a 100644 --- a/src/go.c +++ b/src/go.c @@ -54,6 +54,7 @@ typedef struct { float del2buf[SR]; PITCHSHIFT ps[4]; HIP hip[2]; + LOP lop[2]; } S; int go @@ -114,8 +115,10 @@ int go echo2 += pitchshift(&s->ps[2], 5, 100, 3, echo2); echo2 += pitchshift(&s->ps[3], 5, 100, -6, echo2); - delwrite(&s->del2, tanh(hip(&s->hip[0], -echo1, 10))); - delwrite(&s->del1, tanh(hip(&s->hip[1], echo2, 10))); + delwrite(&s->del2, tanh( + lop(&s->lop[0], hip(&s->hip[0], -echo1, 10), 4000)); + delwrite(&s->del1, tanh( + lop(&s->lop[1], hip(&s->hip[1], echo2, 10), 4000)); double mixdown[2] = { flies[0] * e * 0 +
diff @ 2016-08-06 18:46:15 +0100 diff --git a/src/go.c b/src/go.c index 8c4231a..a21266e 100644 --- a/src/go.c +++ b/src/go.c @@ -116,9 +116,9 @@ int go echo2 += pitchshift(&s->ps[3], 5, 100, -6, echo2); delwrite(&s->del2, tanh( - lop(&s->lop[0], hip(&s->hip[0], -echo1, 10), 4000)); + lop(&s->lop[0], hip(&s->hip[0], -echo1, 10), 4000))); delwrite(&s->del1, tanh( - lop(&s->lop[1], hip(&s->hip[1], echo2, 10), 4000)); + lop(&s->lop[1], hip(&s->hip[1], echo2, 10), 4000))); double mixdown[2] = { flies[0] * e * 0 +
diff @ 2016-08-06 18:46:32 +0100 diff --git a/src/go.c b/src/go.c index a21266e..e4b0f88 100644 --- a/src/go.c +++ b/src/go.c @@ -110,10 +110,10 @@ int go double echo2 = delread4(&s->del2, 133.0 / 60.0 * 1.0 * 1000.0 * (1 + 0. * cos(twopi * 8 * t))); - echo1 += pitchshift(&s->ps[0], 5, 100, 3, echo1); - echo1 += pitchshift(&s->ps[1], 5, 100, -6, echo1); - echo2 += pitchshift(&s->ps[2], 5, 100, 3, echo2); - echo2 += pitchshift(&s->ps[3], 5, 100, -6, echo2); + echo1 += pitchshift(&s->ps[0], 5, 100, 4, echo1); + echo1 += pitchshift(&s->ps[1], 5, 100, -8, echo1); + echo2 += pitchshift(&s->ps[2], 5, 100, 4, echo2); + echo2 += pitchshift(&s->ps[3], 5, 100, -8, echo2); delwrite(&s->del2, tanh( lop(&s->lop[0], hip(&s->hip[0], -echo1, 10), 4000)));
diff @ 2016-08-06 18:46:49 +0100 diff --git a/src/go.c b/src/go.c index e4b0f88..a60265c 100644 --- a/src/go.c +++ b/src/go.c @@ -110,10 +110,10 @@ int go double echo2 = delread4(&s->del2, 133.0 / 60.0 * 1.0 * 1000.0 * (1 + 0. * cos(twopi * 8 * t))); - echo1 += pitchshift(&s->ps[0], 5, 100, 4, echo1); - echo1 += pitchshift(&s->ps[1], 5, 100, -8, echo1); - echo2 += pitchshift(&s->ps[2], 5, 100, 4, echo2); - echo2 += pitchshift(&s->ps[3], 5, 100, -8, echo2); + echo1 += pitchshift(&s->ps[0], 5, 100, 4.1, echo1); + echo1 += pitchshift(&s->ps[1], 5, 100, -8.1, echo1); + echo2 += pitchshift(&s->ps[2], 5, 100, 4.1, echo2); + echo2 += pitchshift(&s->ps[3], 5, 100, -8.1, echo2); delwrite(&s->del2, tanh( lop(&s->lop[0], hip(&s->hip[0], -echo1, 10), 4000)));
diff @ 2016-08-06 18:47:03 +0100 diff --git a/src/go.c b/src/go.c index a60265c..c1a2307 100644 --- a/src/go.c +++ b/src/go.c @@ -110,9 +110,9 @@ int go double echo2 = delread4(&s->del2, 133.0 / 60.0 * 1.0 * 1000.0 * (1 + 0. * cos(twopi * 8 * t))); - echo1 += pitchshift(&s->ps[0], 5, 100, 4.1, echo1); + echo1 += pitchshift(&s->ps[0], 5, 100, 4.2, echo1); echo1 += pitchshift(&s->ps[1], 5, 100, -8.1, echo1); - echo2 += pitchshift(&s->ps[2], 5, 100, 4.1, echo2); + echo2 += pitchshift(&s->ps[2], 5, 100, 4.2, echo2); echo2 += pitchshift(&s->ps[3], 5, 100, -8.1, echo2); delwrite(&s->del2, tanh(
diff @ 2016-08-06 18:47:57 +0100 diff --git a/src/go.c b/src/go.c index c1a2307..0549eff 100644 --- a/src/go.c +++ b/src/go.c @@ -83,7 +83,7 @@ int go sin(twopi * 2 * b) ) * 0; - double kick = 1 - wrap(2.666 * wrap(32 * t)); + double kick = 1 - wrap(128 * t); kick *= kick; kick *= kick; kick *= kick; @@ -110,10 +110,10 @@ int go double echo2 = delread4(&s->del2, 133.0 / 60.0 * 1.0 * 1000.0 * (1 + 0. * cos(twopi * 8 * t))); - echo1 += pitchshift(&s->ps[0], 5, 100, 4.2, echo1); - echo1 += pitchshift(&s->ps[1], 5, 100, -8.1, echo1); - echo2 += pitchshift(&s->ps[2], 5, 100, 4.2, echo2); - echo2 += pitchshift(&s->ps[3], 5, 100, -8.1, echo2); + echo1 += pitchshift(&s->ps[0], 5, 100, 6, echo1); + echo1 += pitchshift(&s->ps[1], 5, 100, -12, echo1); + echo2 += pitchshift(&s->ps[2], 5, 100, 6, echo2); + echo2 += pitchshift(&s->ps[3], 5, 100, -12, echo2); delwrite(&s->del2, tanh( lop(&s->lop[0], hip(&s->hip[0], -echo1, 10), 4000))); @@ -123,10 +123,10 @@ int go double mixdown[2] = { flies[0] * e * 0 + samphold(&s->crush[0], bass, wrap(36 * b + 0.25)) + - echo1 + echo1// + kick , flies[1] * e2 * 0 + samphold(&s->crush[1], bass, wrap(36 * b + 0.75)) + - echo2 + echo2// + kick }; compress(mixdown, &s->compress, 5, 15, 25, 60, mixdown); for (int c = 0; c < channels; ++c) {
diff @ 2016-08-06 18:48:33 +0100 diff --git a/src/go.c b/src/go.c index 0549eff..b427b06 100644 --- a/src/go.c +++ b/src/go.c @@ -123,10 +123,10 @@ int go double mixdown[2] = { flies[0] * e * 0 + samphold(&s->crush[0], bass, wrap(36 * b + 0.25)) + - echo1// + kick + echo1 + kick , flies[1] * e2 * 0 + samphold(&s->crush[1], bass, wrap(36 * b + 0.75)) + - echo2// + kick + echo2 + kick }; compress(mixdown, &s->compress, 5, 15, 25, 60, mixdown); for (int c = 0; c < channels; ++c) {
diff @ 2016-08-06 18:48:40 +0100 diff --git a/src/go.c b/src/go.c index b427b06..9b66924 100644 --- a/src/go.c +++ b/src/go.c @@ -87,7 +87,6 @@ int go kick *= kick; kick *= kick; kick *= kick; - kick *= kick; kick *= 12; kick = sin(twopi * kick); kick *= 3;
diff @ 2016-08-06 18:48:47 +0100 diff --git a/src/go.c b/src/go.c index 9b66924..0e24ade 100644 --- a/src/go.c +++ b/src/go.c @@ -86,8 +86,7 @@ int go double kick = 1 - wrap(128 * t); kick *= kick; kick *= kick; - kick *= kick; - kick *= 12; + kick *= 24; kick = sin(twopi * kick); kick *= 3; kick = 3 * tanh(kick);
diff @ 2016-08-06 18:48:56 +0100 diff --git a/src/go.c b/src/go.c index 0e24ade..5250395 100644 --- a/src/go.c +++ b/src/go.c @@ -89,7 +89,7 @@ int go kick *= 24; kick = sin(twopi * kick); kick *= 3; - kick = 3 * tanh(kick); + kick = sin(3 * tanh(kick)); double snare = 1 - wrap(5.3333 * wrap(16 * t + 0.5)); snare *= snare;
diff @ 2016-08-06 18:49:02 +0100 diff --git a/src/go.c b/src/go.c index 5250395..cbbfad2 100644 --- a/src/go.c +++ b/src/go.c @@ -89,7 +89,7 @@ int go kick *= 24; kick = sin(twopi * kick); kick *= 3; - kick = sin(3 * tanh(kick)); + kick = 3 * sin(3 * tanh(kick)); double snare = 1 - wrap(5.3333 * wrap(16 * t + 0.5)); snare *= snare;
diff @ 2016-08-06 18:49:08 +0100 diff --git a/src/go.c b/src/go.c index cbbfad2..1896f0e 100644 --- a/src/go.c +++ b/src/go.c @@ -89,7 +89,7 @@ int go kick *= 24; kick = sin(twopi * kick); kick *= 3; - kick = 3 * sin(3 * tanh(kick)); + kick = 4 * sin(3 * tanh(kick)); double snare = 1 - wrap(5.3333 * wrap(16 * t + 0.5)); snare *= snare;
diff @ 2016-08-06 18:49:13 +0100 diff --git a/src/go.c b/src/go.c index 1896f0e..5dd7ed1 100644 --- a/src/go.c +++ b/src/go.c @@ -89,7 +89,7 @@ int go kick *= 24; kick = sin(twopi * kick); kick *= 3; - kick = 4 * sin(3 * tanh(kick)); + kick = 4 * sin(3 * sin(kick)); double snare = 1 - wrap(5.3333 * wrap(16 * t + 0.5)); snare *= snare;
diff @ 2016-08-06 18:49:26 +0100 diff --git a/src/go.c b/src/go.c index 5dd7ed1..d8a5bdd 100644 --- a/src/go.c +++ b/src/go.c @@ -89,7 +89,7 @@ int go kick *= 24; kick = sin(twopi * kick); kick *= 3; - kick = 4 * sin(3 * sin(kick)); + kick = 5 * tanh(4 * sin(3 * sin(kick))); double snare = 1 - wrap(5.3333 * wrap(16 * t + 0.5)); snare *= snare;
diff @ 2016-08-06 18:49:53 +0100 diff --git a/src/go.c b/src/go.c index d8a5bdd..cfe85a1 100644 --- a/src/go.c +++ b/src/go.c @@ -83,7 +83,8 @@ int go sin(twopi * 2 * b) ) * 0; - double kick = 1 - wrap(128 * t); + double kick = 1 - wrap((wrap(16 * t > 0.75 ? 256) : 128) * t); + kick *= kick; kick *= kick; kick *= kick; kick *= 24;
diff @ 2016-08-06 18:50:01 +0100 diff --git a/src/go.c b/src/go.c index cfe85a1..670cbb6 100644 --- a/src/go.c +++ b/src/go.c @@ -83,7 +83,7 @@ int go sin(twopi * 2 * b) ) * 0; - double kick = 1 - wrap((wrap(16 * t > 0.75 ? 256) : 128) * t); + double kick = 1 - wrap((wrap(16 * t) > 0.75 ? 256 : 128) * t); kick *= kick; kick *= kick; kick *= kick;
diff @ 2016-08-06 18:50:12 +0100 diff --git a/src/go.c b/src/go.c index 670cbb6..8eb101a 100644 --- a/src/go.c +++ b/src/go.c @@ -87,7 +87,7 @@ int go kick *= kick; kick *= kick; kick *= kick; - kick *= 24; + kick *= 6; kick = sin(twopi * kick); kick *= 3; kick = 5 * tanh(4 * sin(3 * sin(kick)));
diff @ 2016-08-06 18:50:46 +0100 diff --git a/src/go.c b/src/go.c index 8eb101a..7b0fadb 100644 --- a/src/go.c +++ b/src/go.c @@ -55,6 +55,7 @@ typedef struct { PITCHSHIFT ps[4]; HIP hip[2]; LOP lop[2]; + double bpm; } S; int go @@ -64,9 +65,9 @@ int go s->reloaded = 0; s->del1.length = SR; s->del2.length = SR; - + s->bpm = 133; } - double t = phasor(&s->time, 133 / 60.0 / 64); + double t = phasor(&s->time, s->bpm / 60.0 / 64); double e = 1 - wrap(2.6666 * wrap(16 * t)); double e2 = wrap(e + 0.5); double pitch = 220 - 20 * wrap(8 * t);
diff @ 2016-08-06 18:51:01 +0100 diff --git a/src/go.c b/src/go.c index 7b0fadb..1928462 100644 --- a/src/go.c +++ b/src/go.c @@ -67,6 +67,7 @@ int go s->del2.length = SR; s->bpm = 133; } + s->bpm *= 1.0000001; double t = phasor(&s->time, s->bpm / 60.0 / 64); double e = 1 - wrap(2.6666 * wrap(16 * t)); double e2 = wrap(e + 0.5);
diff @ 2016-08-06 18:51:56 +0100 diff --git a/src/go.c b/src/go.c index 1928462..b36f4cc 100644 --- a/src/go.c +++ b/src/go.c @@ -65,7 +65,7 @@ int go s->reloaded = 0; s->del1.length = SR; s->del2.length = SR; - s->bpm = 133; + //s->bpm = 133; } s->bpm *= 1.0000001; double t = phasor(&s->time, s->bpm / 60.0 / 64); @@ -111,9 +111,9 @@ int go double echo2 = delread4(&s->del2, 133.0 / 60.0 * 1.0 * 1000.0 * (1 + 0. * cos(twopi * 8 * t))); - echo1 += pitchshift(&s->ps[0], 5, 100, 6, echo1); + echo1 += pitchshift(&s->ps[0], 5, 100, 12, echo1); echo1 += pitchshift(&s->ps[1], 5, 100, -12, echo1); - echo2 += pitchshift(&s->ps[2], 5, 100, 6, echo2); + echo2 += pitchshift(&s->ps[2], 5, 100, 12, echo2); echo2 += pitchshift(&s->ps[3], 5, 100, -12, echo2); delwrite(&s->del2, tanh( @@ -124,10 +124,10 @@ int go double mixdown[2] = { flies[0] * e * 0 + samphold(&s->crush[0], bass, wrap(36 * b + 0.25)) + - echo1 + kick + echo1 + kick + snare , flies[1] * e2 * 0 + samphold(&s->crush[1], bass, wrap(36 * b + 0.75)) + - echo2 + kick + echo2 + kick + snare }; compress(mixdown, &s->compress, 5, 15, 25, 60, mixdown); for (int c = 0; c < channels; ++c) {
diff @ 2016-08-06 18:52:13 +0100 diff --git a/src/go.c b/src/go.c index b36f4cc..fcdd906 100644 --- a/src/go.c +++ b/src/go.c @@ -112,9 +112,9 @@ int go (1 + 0. * cos(twopi * 8 * t))); echo1 += pitchshift(&s->ps[0], 5, 100, 12, echo1); - echo1 += pitchshift(&s->ps[1], 5, 100, -12, echo1); + echo1 += pitchshift(&s->ps[1], 5, 100, -24, echo1); echo2 += pitchshift(&s->ps[2], 5, 100, 12, echo2); - echo2 += pitchshift(&s->ps[3], 5, 100, -12, echo2); + echo2 += pitchshift(&s->ps[3], 5, 100, -24, echo2); delwrite(&s->del2, tanh( lop(&s->lop[0], hip(&s->hip[0], -echo1, 10), 4000)));
diff @ 2016-08-06 18:52:47 +0100 diff --git a/src/go.c b/src/go.c index fcdd906..f8e3c96 100644 --- a/src/go.c +++ b/src/go.c @@ -85,7 +85,7 @@ int go sin(twopi * 2 * b) ) * 0; - double kick = 1 - wrap((wrap(16 * t) > 0.75 ? 256 : 128) * t); + double kick = 1 - wrap((wrap(16 * t) > 0.75 ? 256 : 512) * t); kick *= kick; kick *= kick; kick *= kick; @@ -124,10 +124,10 @@ int go double mixdown[2] = { flies[0] * e * 0 + samphold(&s->crush[0], bass, wrap(36 * b + 0.25)) + - echo1 + kick + snare + echo1 * 0 + kick + snare * 0 , flies[1] * e2 * 0 + samphold(&s->crush[1], bass, wrap(36 * b + 0.75)) + - echo2 + kick + snare + echo2 * 0 + kick + snare * 0 }; compress(mixdown, &s->compress, 5, 15, 25, 60, mixdown); for (int c = 0; c < channels; ++c) {
diff @ 2016-08-06 18:52:52 +0100 diff --git a/src/go.c b/src/go.c index f8e3c96..8708365 100644 --- a/src/go.c +++ b/src/go.c @@ -85,7 +85,7 @@ int go sin(twopi * 2 * b) ) * 0; - double kick = 1 - wrap((wrap(16 * t) > 0.75 ? 256 : 512) * t); + double kick = 1 - wrap((wrap(16 * t) > 0.75 ? 1024 : 512) * t); kick *= kick; kick *= kick; kick *= kick;
diff @ 2016-08-06 18:53:01 +0100 diff --git a/src/go.c b/src/go.c index 8708365..8956d00 100644 --- a/src/go.c +++ b/src/go.c @@ -85,7 +85,7 @@ int go sin(twopi * 2 * b) ) * 0; - double kick = 1 - wrap((wrap(16 * t) > 0.75 ? 1024 : 512) * t); + double kick = 1 - wrap((wrap(16 * t) > 0.75 ? 1024 : 1) * t); kick *= kick; kick *= kick; kick *= kick;
diff @ 2016-08-06 18:53:08 +0100 diff --git a/src/go.c b/src/go.c index 8956d00..ffe99d7 100644 --- a/src/go.c +++ b/src/go.c @@ -85,7 +85,7 @@ int go sin(twopi * 2 * b) ) * 0; - double kick = 1 - wrap((wrap(16 * t) > 0.75 ? 1024 : 1) * t); + double kick = 1 - wrap((wrap(16 * t) > 0.75 ? 1024 : 8) * t); kick *= kick; kick *= kick; kick *= kick;
diff @ 2016-08-06 18:53:20 +0100 diff --git a/src/go.c b/src/go.c index ffe99d7..0a2198f 100644 --- a/src/go.c +++ b/src/go.c @@ -85,7 +85,7 @@ int go sin(twopi * 2 * b) ) * 0; - double kick = 1 - wrap((wrap(16 * t) > 0.75 ? 1024 : 8) * t); + double kick = 1 - wrap((wrap(16 * t) > 0.75 ? 1024 : 0) * t); kick *= kick; kick *= kick; kick *= kick;
diff @ 2016-08-06 18:53:27 +0100 diff --git a/src/go.c b/src/go.c index 0a2198f..ba19194 100644 --- a/src/go.c +++ b/src/go.c @@ -67,7 +67,7 @@ int go s->del2.length = SR; //s->bpm = 133; } - s->bpm *= 1.0000001; + s->bpm *= 1.000001; double t = phasor(&s->time, s->bpm / 60.0 / 64); double e = 1 - wrap(2.6666 * wrap(16 * t)); double e2 = wrap(e + 0.5);
diff @ 2016-08-06 18:53:54 +0100 diff --git a/src/go.c b/src/go.c index ba19194..a57c373 100644 --- a/src/go.c +++ b/src/go.c @@ -65,9 +65,9 @@ int go s->reloaded = 0; s->del1.length = SR; s->del2.length = SR; - //s->bpm = 133; + s->bpm =30; } - s->bpm *= 1.000001; + //s->bpm *= 1.000001; double t = phasor(&s->time, s->bpm / 60.0 / 64); double e = 1 - wrap(2.6666 * wrap(16 * t)); double e2 = wrap(e + 0.5);