a C audio live-coding skeleton
diff @ 2018-03-18 17:29:03 +0000 diff --git a/src/go.c b/src/go.c index 24f3b9d9..7e03dfbd 100644 --- a/src/go.c +++ b/src/go.c @@ -10,7 +10,7 @@ // ===================================================================== // ===================================================================== -#define RESET 1 +#define RESET 0 #define SR 48000 #include "dsp.h"
diff @ 2018-03-18 17:29:13 +0000 diff --git a/src/go.c b/src/go.c index 7e03dfbd..1d0f2bd7 100644 --- a/src/go.c +++ b/src/go.c @@ -191,7 +191,7 @@ go(S *s, int channels, const float *in, float *out) } double na = env * pink(&s->pink[0]); double nb = env * pink(&s->pink[1]); - double q = 10; + double q = 20; na *= 10; nb *= 10; na = vcf(&s->pvcf[0], na * q, freq, q);
diff @ 2018-03-18 17:29:21 +0000 diff --git a/src/go.c b/src/go.c index 1d0f2bd7..ca8fd2eb 100644 --- a/src/go.c +++ b/src/go.c @@ -191,7 +191,7 @@ go(S *s, int channels, const float *in, float *out) } double na = env * pink(&s->pink[0]); double nb = env * pink(&s->pink[1]); - double q = 20; + double q = 50; na *= 10; nb *= 10; na = vcf(&s->pvcf[0], na * q, freq, q);
diff @ 2018-03-18 17:30:19 +0000 diff --git a/src/go.c b/src/go.c index ca8fd2eb..79b3967b 100644 --- a/src/go.c +++ b/src/go.c @@ -191,7 +191,7 @@ go(S *s, int channels, const float *in, float *out) } double na = env * pink(&s->pink[0]); double nb = env * pink(&s->pink[1]); - double q = 50; + double q = 80; na *= 10; nb *= 10; na = vcf(&s->pvcf[0], na * q, freq, q);
diff @ 2018-03-18 17:30:24 +0000 diff --git a/src/go.c b/src/go.c index 79b3967b..c6c1e069 100644 --- a/src/go.c +++ b/src/go.c @@ -192,8 +192,8 @@ go(S *s, int channels, const float *in, float *out) double na = env * pink(&s->pink[0]); double nb = env * pink(&s->pink[1]); double q = 80; - na *= 10; - nb *= 10; + na *= 8; + nb *= 8; na = vcf(&s->pvcf[0], na * q, freq, q); nb = vcf(&s->pvcf[1], nb * q, freq, q); na = sin(na);
diff @ 2018-03-18 17:30:28 +0000 diff --git a/src/go.c b/src/go.c index c6c1e069..9696b667 100644 --- a/src/go.c +++ b/src/go.c @@ -191,7 +191,7 @@ go(S *s, int channels, const float *in, float *out) } double na = env * pink(&s->pink[0]); double nb = env * pink(&s->pink[1]); - double q = 80; + double q = 100; na *= 8; nb *= 8; na = vcf(&s->pvcf[0], na * q, freq, q);
diff @ 2018-03-18 17:30:33 +0000 diff --git a/src/go.c b/src/go.c index 9696b667..2b487314 100644 --- a/src/go.c +++ b/src/go.c @@ -192,8 +192,8 @@ go(S *s, int channels, const float *in, float *out) double na = env * pink(&s->pink[0]); double nb = env * pink(&s->pink[1]); double q = 100; - na *= 8; - nb *= 8; + na *= 7; + nb *= 7; na = vcf(&s->pvcf[0], na * q, freq, q); nb = vcf(&s->pvcf[1], nb * q, freq, q); na = sin(na);
diff @ 2018-03-18 17:30:36 +0000 diff --git a/src/go.c b/src/go.c index 2b487314..f0405510 100644 --- a/src/go.c +++ b/src/go.c @@ -191,7 +191,7 @@ go(S *s, int channels, const float *in, float *out) } double na = env * pink(&s->pink[0]); double nb = env * pink(&s->pink[1]); - double q = 100; + double q = 150; na *= 7; nb *= 7; na = vcf(&s->pvcf[0], na * q, freq, q);
diff @ 2018-03-18 17:30:42 +0000 diff --git a/src/go.c b/src/go.c index f0405510..83cb050f 100644 --- a/src/go.c +++ b/src/go.c @@ -192,8 +192,8 @@ go(S *s, int channels, const float *in, float *out) double na = env * pink(&s->pink[0]); double nb = env * pink(&s->pink[1]); double q = 150; - na *= 7; - nb *= 7; + na *= 6; + nb *= 6; na = vcf(&s->pvcf[0], na * q, freq, q); nb = vcf(&s->pvcf[1], nb * q, freq, q); na = sin(na);
diff @ 2018-03-18 17:30:46 +0000 diff --git a/src/go.c b/src/go.c index 83cb050f..b2e2b368 100644 --- a/src/go.c +++ b/src/go.c @@ -191,7 +191,7 @@ go(S *s, int channels, const float *in, float *out) } double na = env * pink(&s->pink[0]); double nb = env * pink(&s->pink[1]); - double q = 150; + double q = 180; na *= 6; nb *= 6; na = vcf(&s->pvcf[0], na * q, freq, q);
diff @ 2018-03-18 17:30:49 +0000 diff --git a/src/go.c b/src/go.c index b2e2b368..92e6a693 100644 --- a/src/go.c +++ b/src/go.c @@ -191,7 +191,7 @@ go(S *s, int channels, const float *in, float *out) } double na = env * pink(&s->pink[0]); double nb = env * pink(&s->pink[1]); - double q = 180; + double q = 200; na *= 6; nb *= 6; na = vcf(&s->pvcf[0], na * q, freq, q);
diff @ 2018-03-18 17:30:52 +0000 diff --git a/src/go.c b/src/go.c index 92e6a693..e03ac4b8 100644 --- a/src/go.c +++ b/src/go.c @@ -192,8 +192,8 @@ go(S *s, int channels, const float *in, float *out) double na = env * pink(&s->pink[0]); double nb = env * pink(&s->pink[1]); double q = 200; - na *= 6; - nb *= 6; + na *= 5; + nb *= 5; na = vcf(&s->pvcf[0], na * q, freq, q); nb = vcf(&s->pvcf[1], nb * q, freq, q); na = sin(na);
diff @ 2018-03-18 17:31:08 +0000 diff --git a/src/go.c b/src/go.c index e03ac4b8..1508007b 100644 --- a/src/go.c +++ b/src/go.c @@ -107,7 +107,7 @@ go(S *s, int channels, const float *in, float *out) int n = (time / 5) & ((1 << N) - 1); double zeroes = clamp(count_trailing_zeroes(n), 0, N); double probability = pow(0.5, N - zeroes); - probability = (0.5 + 0 * (n >= 0xC001)) * probability - 0.5; + probability = (4 + 0 * (n >= 0xC001)) * probability - 0.5; probability = clamp(probability, 0, 1); double uniform = rand() / (double) RAND_MAX; double trigger = uniform < probability; @@ -117,7 +117,7 @@ go(S *s, int channels, const float *in, float *out) freq = 10 * samphold(&s->bsh, harmonic, 1 - trigger); freq = lop(&s->bfreq, freq, 20); } - env = 0.5; +// env = 0.5; freq = 50; // ===================================================================
diff @ 2018-03-18 17:31:34 +0000 diff --git a/src/go.c b/src/go.c index 1508007b..5be5072c 100644 --- a/src/go.c +++ b/src/go.c @@ -107,7 +107,7 @@ go(S *s, int channels, const float *in, float *out) int n = (time / 5) & ((1 << N) - 1); double zeroes = clamp(count_trailing_zeroes(n), 0, N); double probability = pow(0.5, N - zeroes); - probability = (4 + 0 * (n >= 0xC001)) * probability - 0.5; + probability = (4 + 4 * (n >= 0xC001)) * probability - 0.5; probability = clamp(probability, 0, 1); double uniform = rand() / (double) RAND_MAX; double trigger = uniform < probability;
diff @ 2018-03-18 17:31:38 +0000 diff --git a/src/go.c b/src/go.c index 5be5072c..a6d07d91 100644 --- a/src/go.c +++ b/src/go.c @@ -107,7 +107,7 @@ go(S *s, int channels, const float *in, float *out) int n = (time / 5) & ((1 << N) - 1); double zeroes = clamp(count_trailing_zeroes(n), 0, N); double probability = pow(0.5, N - zeroes); - probability = (4 + 4 * (n >= 0xC001)) * probability - 0.5; + probability = (6 + 4 * (n >= 0xC001)) * probability - 0.5; probability = clamp(probability, 0, 1); double uniform = rand() / (double) RAND_MAX; double trigger = uniform < probability;
diff @ 2018-03-18 17:31:43 +0000 diff --git a/src/go.c b/src/go.c index a6d07d91..8974e7cf 100644 --- a/src/go.c +++ b/src/go.c @@ -118,7 +118,7 @@ go(S *s, int channels, const float *in, float *out) freq = lop(&s->bfreq, freq, 20); } // env = 0.5; - freq = 50; +// freq = 50; // =================================================================== // = 3 = total intraliminal extraction
diff @ 2018-03-18 17:31:52 +0000 diff --git a/src/go.c b/src/go.c index 8974e7cf..69981f72 100644 --- a/src/go.c +++ b/src/go.c @@ -113,7 +113,7 @@ go(S *s, int channels, const float *in, float *out) double trigger = uniform < probability; s->benv.y += trigger; env = lop(&s->benv, 0, 5); - double harmonic = 5 + clamp(N - zeroes, 0, 20); + double harmonic = 5 + clamp(N - zeroes - 3, 0, 20); freq = 10 * samphold(&s->bsh, harmonic, 1 - trigger); freq = lop(&s->bfreq, freq, 20); }
diff @ 2018-03-18 17:32:01 +0000 diff --git a/src/go.c b/src/go.c index 69981f72..25ecc23d 100644 --- a/src/go.c +++ b/src/go.c @@ -107,7 +107,7 @@ go(S *s, int channels, const float *in, float *out) int n = (time / 5) & ((1 << N) - 1); double zeroes = clamp(count_trailing_zeroes(n), 0, N); double probability = pow(0.5, N - zeroes); - probability = (6 + 4 * (n >= 0xC001)) * probability - 0.5; + probability = (8 + 4 * (n >= 0xC001)) * probability - 0.5; probability = clamp(probability, 0, 1); double uniform = rand() / (double) RAND_MAX; double trigger = uniform < probability;
diff @ 2018-03-18 17:32:15 +0000 diff --git a/src/go.c b/src/go.c index 25ecc23d..21cb2e3d 100644 --- a/src/go.c +++ b/src/go.c @@ -106,7 +106,7 @@ go(S *s, int channels, const float *in, float *out) int N = 16; int n = (time / 5) & ((1 << N) - 1); double zeroes = clamp(count_trailing_zeroes(n), 0, N); - double probability = pow(0.5, N - zeroes); + double probability = pow(0.51, N - zeroes); probability = (8 + 4 * (n >= 0xC001)) * probability - 0.5; probability = clamp(probability, 0, 1); double uniform = rand() / (double) RAND_MAX;
diff @ 2018-03-18 17:32:26 +0000 diff --git a/src/go.c b/src/go.c index 21cb2e3d..0cc4e441 100644 --- a/src/go.c +++ b/src/go.c @@ -106,7 +106,7 @@ go(S *s, int channels, const float *in, float *out) int N = 16; int n = (time / 5) & ((1 << N) - 1); double zeroes = clamp(count_trailing_zeroes(n), 0, N); - double probability = pow(0.51, N - zeroes); + double probability = pow(0.52, N - zeroes); probability = (8 + 4 * (n >= 0xC001)) * probability - 0.5; probability = clamp(probability, 0, 1); double uniform = rand() / (double) RAND_MAX;
diff @ 2018-03-18 17:32:40 +0000 diff --git a/src/go.c b/src/go.c index 0cc4e441..bdfff33a 100644 --- a/src/go.c +++ b/src/go.c @@ -107,7 +107,7 @@ go(S *s, int channels, const float *in, float *out) int n = (time / 5) & ((1 << N) - 1); double zeroes = clamp(count_trailing_zeroes(n), 0, N); double probability = pow(0.52, N - zeroes); - probability = (8 + 4 * (n >= 0xC001)) * probability - 0.5; + probability = (8 + 8 * (n >= 0xC001)) * probability - 0.5; probability = clamp(probability, 0, 1); double uniform = rand() / (double) RAND_MAX; double trigger = uniform < probability;
diff @ 2018-03-18 17:32:49 +0000 diff --git a/src/go.c b/src/go.c index bdfff33a..95024b13 100644 --- a/src/go.c +++ b/src/go.c @@ -106,7 +106,7 @@ go(S *s, int channels, const float *in, float *out) int N = 16; int n = (time / 5) & ((1 << N) - 1); double zeroes = clamp(count_trailing_zeroes(n), 0, N); - double probability = pow(0.52, N - zeroes); + double probability = pow(0.53, N - zeroes); probability = (8 + 8 * (n >= 0xC001)) * probability - 0.5; probability = clamp(probability, 0, 1); double uniform = rand() / (double) RAND_MAX;
diff @ 2018-03-18 17:32:54 +0000 diff --git a/src/go.c b/src/go.c index 95024b13..f523e53d 100644 --- a/src/go.c +++ b/src/go.c @@ -106,7 +106,7 @@ go(S *s, int channels, const float *in, float *out) int N = 16; int n = (time / 5) & ((1 << N) - 1); double zeroes = clamp(count_trailing_zeroes(n), 0, N); - double probability = pow(0.53, N - zeroes); + double probability = pow(0.54, N - zeroes); probability = (8 + 8 * (n >= 0xC001)) * probability - 0.5; probability = clamp(probability, 0, 1); double uniform = rand() / (double) RAND_MAX;
diff @ 2018-03-18 17:32:58 +0000 diff --git a/src/go.c b/src/go.c index f523e53d..ebe294ea 100644 --- a/src/go.c +++ b/src/go.c @@ -106,7 +106,7 @@ go(S *s, int channels, const float *in, float *out) int N = 16; int n = (time / 5) & ((1 << N) - 1); double zeroes = clamp(count_trailing_zeroes(n), 0, N); - double probability = pow(0.54, N - zeroes); + double probability = pow(0.55, N - zeroes); probability = (8 + 8 * (n >= 0xC001)) * probability - 0.5; probability = clamp(probability, 0, 1); double uniform = rand() / (double) RAND_MAX;
diff @ 2018-03-18 17:33:05 +0000 diff --git a/src/go.c b/src/go.c index ebe294ea..4a6a95c1 100644 --- a/src/go.c +++ b/src/go.c @@ -112,7 +112,7 @@ go(S *s, int channels, const float *in, float *out) double uniform = rand() / (double) RAND_MAX; double trigger = uniform < probability; s->benv.y += trigger; - env = lop(&s->benv, 0, 5); + env = lop(&s->benv, 0, 10); double harmonic = 5 + clamp(N - zeroes - 3, 0, 20); freq = 10 * samphold(&s->bsh, harmonic, 1 - trigger); freq = lop(&s->bfreq, freq, 20);
diff @ 2018-03-18 17:33:13 +0000 diff --git a/src/go.c b/src/go.c index 4a6a95c1..e13a8405 100644 --- a/src/go.c +++ b/src/go.c @@ -112,7 +112,7 @@ go(S *s, int channels, const float *in, float *out) double uniform = rand() / (double) RAND_MAX; double trigger = uniform < probability; s->benv.y += trigger; - env = lop(&s->benv, 0, 10); + env = lop(&s->benv, 0, 15); double harmonic = 5 + clamp(N - zeroes - 3, 0, 20); freq = 10 * samphold(&s->bsh, harmonic, 1 - trigger); freq = lop(&s->bfreq, freq, 20);
diff @ 2018-03-18 17:33:35 +0000 diff --git a/src/go.c b/src/go.c index e13a8405..2fdb8544 100644 --- a/src/go.c +++ b/src/go.c @@ -114,7 +114,7 @@ go(S *s, int channels, const float *in, float *out) s->benv.y += trigger; env = lop(&s->benv, 0, 15); double harmonic = 5 + clamp(N - zeroes - 3, 0, 20); - freq = 10 * samphold(&s->bsh, harmonic, 1 - trigger); + freq = (n < 0xC001 ? 10 : 20) * samphold(&s->bsh, harmonic, 1 - trigger); freq = lop(&s->bfreq, freq, 20); } // env = 0.5;
diff @ 2018-03-18 17:33:46 +0000 diff --git a/src/go.c b/src/go.c index 2fdb8544..e164134f 100644 --- a/src/go.c +++ b/src/go.c @@ -114,7 +114,7 @@ go(S *s, int channels, const float *in, float *out) s->benv.y += trigger; env = lop(&s->benv, 0, 15); double harmonic = 5 + clamp(N - zeroes - 3, 0, 20); - freq = (n < 0xC001 ? 10 : 20) * samphold(&s->bsh, harmonic, 1 - trigger); + freq = (n < 0xC001 ? 10 : 15) * samphold(&s->bsh, harmonic, 1 - trigger); freq = lop(&s->bfreq, freq, 20); } // env = 0.5;
diff @ 2018-03-18 17:33:51 +0000 diff --git a/src/go.c b/src/go.c index e164134f..2324c8a2 100644 --- a/src/go.c +++ b/src/go.c @@ -115,7 +115,7 @@ go(S *s, int channels, const float *in, float *out) env = lop(&s->benv, 0, 15); double harmonic = 5 + clamp(N - zeroes - 3, 0, 20); freq = (n < 0xC001 ? 10 : 15) * samphold(&s->bsh, harmonic, 1 - trigger); - freq = lop(&s->bfreq, freq, 20); + freq = lop(&s->bfreq, freq, 12); } // env = 0.5; // freq = 50;
diff @ 2018-03-18 17:34:33 +0000 diff --git a/src/go.c b/src/go.c index 2324c8a2..b8a54e40 100644 --- a/src/go.c +++ b/src/go.c @@ -86,6 +86,9 @@ typedef struct LOP elop[2]; PHASOR ephase; + + BIQUAD ffilt; + } S; // ===================================================================== @@ -115,7 +118,7 @@ go(S *s, int channels, const float *in, float *out) env = lop(&s->benv, 0, 15); double harmonic = 5 + clamp(N - zeroes - 3, 0, 20); freq = (n < 0xC001 ? 10 : 15) * samphold(&s->bsh, harmonic, 1 - trigger); - freq = lop(&s->bfreq, freq, 12); + freq = biquad(lowpass(&s->ffilt, 10, flatq), freq); } // env = 0.5; // freq = 50;
diff @ 2018-03-18 17:34:38 +0000 diff --git a/src/go.c b/src/go.c index b8a54e40..c771fa72 100644 --- a/src/go.c +++ b/src/go.c @@ -118,7 +118,7 @@ go(S *s, int channels, const float *in, float *out) env = lop(&s->benv, 0, 15); double harmonic = 5 + clamp(N - zeroes - 3, 0, 20); freq = (n < 0xC001 ? 10 : 15) * samphold(&s->bsh, harmonic, 1 - trigger); - freq = biquad(lowpass(&s->ffilt, 10, flatq), freq); + freq = biquad(lowpass(&s->ffilt, 10, 3), freq); } // env = 0.5; // freq = 50;
diff @ 2018-03-18 17:34:43 +0000 diff --git a/src/go.c b/src/go.c index c771fa72..44ee56f2 100644 --- a/src/go.c +++ b/src/go.c @@ -118,7 +118,7 @@ go(S *s, int channels, const float *in, float *out) env = lop(&s->benv, 0, 15); double harmonic = 5 + clamp(N - zeroes - 3, 0, 20); freq = (n < 0xC001 ? 10 : 15) * samphold(&s->bsh, harmonic, 1 - trigger); - freq = biquad(lowpass(&s->ffilt, 10, 3), freq); + freq = biquad(lowpass(&s->ffilt, 12, 3), freq); } // env = 0.5; // freq = 50;
diff @ 2018-03-18 17:34:46 +0000 diff --git a/src/go.c b/src/go.c index 44ee56f2..1bff72e7 100644 --- a/src/go.c +++ b/src/go.c @@ -118,7 +118,7 @@ go(S *s, int channels, const float *in, float *out) env = lop(&s->benv, 0, 15); double harmonic = 5 + clamp(N - zeroes - 3, 0, 20); freq = (n < 0xC001 ? 10 : 15) * samphold(&s->bsh, harmonic, 1 - trigger); - freq = biquad(lowpass(&s->ffilt, 12, 3), freq); + freq = biquad(lowpass(&s->ffilt, 12, 5), freq); } // env = 0.5; // freq = 50;
diff @ 2018-03-18 17:34:56 +0000 diff --git a/src/go.c b/src/go.c index 1bff72e7..676a9623 100644 --- a/src/go.c +++ b/src/go.c @@ -118,7 +118,7 @@ go(S *s, int channels, const float *in, float *out) env = lop(&s->benv, 0, 15); double harmonic = 5 + clamp(N - zeroes - 3, 0, 20); freq = (n < 0xC001 ? 10 : 15) * samphold(&s->bsh, harmonic, 1 - trigger); - freq = biquad(lowpass(&s->ffilt, 12, 5), freq); + freq = biquad(lowpass(&s->ffilt, 12, 10), freq); } // env = 0.5; // freq = 50;
diff @ 2018-03-18 17:35:00 +0000 diff --git a/src/go.c b/src/go.c index 676a9623..8e3c807a 100644 --- a/src/go.c +++ b/src/go.c @@ -118,7 +118,7 @@ go(S *s, int channels, const float *in, float *out) env = lop(&s->benv, 0, 15); double harmonic = 5 + clamp(N - zeroes - 3, 0, 20); freq = (n < 0xC001 ? 10 : 15) * samphold(&s->bsh, harmonic, 1 - trigger); - freq = biquad(lowpass(&s->ffilt, 12, 10), freq); + freq = biquad(lowpass(&s->ffilt, 12, 12), freq); } // env = 0.5; // freq = 50;
diff @ 2018-03-18 17:35:06 +0000 diff --git a/src/go.c b/src/go.c index 8e3c807a..f6f6681b 100644 --- a/src/go.c +++ b/src/go.c @@ -110,7 +110,7 @@ go(S *s, int channels, const float *in, float *out) int n = (time / 5) & ((1 << N) - 1); double zeroes = clamp(count_trailing_zeroes(n), 0, N); double probability = pow(0.55, N - zeroes); - probability = (8 + 8 * (n >= 0xC001)) * probability - 0.5; + probability = (4 + 4 * (n >= 0xC001)) * probability - 0.5; probability = clamp(probability, 0, 1); double uniform = rand() / (double) RAND_MAX; double trigger = uniform < probability;
diff @ 2018-03-18 17:35:19 +0000 diff --git a/src/go.c b/src/go.c index f6f6681b..a65e1986 100644 --- a/src/go.c +++ b/src/go.c @@ -167,7 +167,7 @@ go(S *s, int channels, const float *in, float *out) tilex[0] = fb1; tilex[1] = fb2; compress(tilex, &s->tcompress1, 5, 10, 25, 48, tilex); - double hgain = 0; + double hgain = 1; tilex[0] *= hgain; tilex[1] *= hgain; double kgain = 0;
diff @ 2018-03-18 17:35:33 +0000 diff --git a/src/go.c b/src/go.c index a65e1986..7899ca39 100644 --- a/src/go.c +++ b/src/go.c @@ -156,7 +156,7 @@ go(S *s, int channels, const float *in, float *out) double sfb2 = delread4(&s->tcomb2, 1000 / hz2); double fb1 = mix(sfb1, -sfb2, 0); double fb2 = mix(sfb2, -sfb1, 0); - double fb = 0; + double fb = -0.5; fb = samphold(&s->tgate[2], fb, wrap(4 * p)); delwrite(&s->tcomb1, sin(hat * noise() - fb * fb1)); delwrite(&s->tcomb2, sin(hat * noise() - fb * fb2));
diff @ 2018-03-18 17:35:42 +0000 diff --git a/src/go.c b/src/go.c index 7899ca39..ac1f004c 100644 --- a/src/go.c +++ b/src/go.c @@ -156,7 +156,7 @@ go(S *s, int channels, const float *in, float *out) double sfb2 = delread4(&s->tcomb2, 1000 / hz2); double fb1 = mix(sfb1, -sfb2, 0); double fb2 = mix(sfb2, -sfb1, 0); - double fb = -0.5; + double fb = -0.75; fb = samphold(&s->tgate[2], fb, wrap(4 * p)); delwrite(&s->tcomb1, sin(hat * noise() - fb * fb1)); delwrite(&s->tcomb2, sin(hat * noise() - fb * fb2));
diff @ 2018-03-18 17:35:52 +0000 diff --git a/src/go.c b/src/go.c index ac1f004c..ef9a04cc 100644 --- a/src/go.c +++ b/src/go.c @@ -150,8 +150,8 @@ go(S *s, int channels, const float *in, float *out) s->tcomb1.length = SR; s->tcomb2.length = SR; double khz = 50 + 10 * (wrap(8 * p) > 1) + 25 * (wrap(2 * p) > 1); - double hz1 = 2 * khz * floor(pow(2, wrap(4 * p + 0.0))); - double hz2 = 2 * khz * floor(pow(2, wrap(4 * p + 0.5))); + double hz1 = 2 * khz * floor(pow(2, wrap(4 * p + 0.0))) + 1; + double hz2 = 2 * khz * floor(pow(2, wrap(4 * p + 0.5))) - 1; double sfb1 = delread4(&s->tcomb1, 1000 / hz1); double sfb2 = delread4(&s->tcomb2, 1000 / hz2); double fb1 = mix(sfb1, -sfb2, 0);
diff @ 2018-03-18 17:36:49 +0000 diff --git a/src/go.c b/src/go.c index ef9a04cc..11dd6215 100644 --- a/src/go.c +++ b/src/go.c @@ -88,6 +88,7 @@ typedef struct BIQUAD ffilt; + BIQUAD hatfilt[2]; } S; @@ -154,6 +155,8 @@ go(S *s, int channels, const float *in, float *out) double hz2 = 2 * khz * floor(pow(2, wrap(4 * p + 0.5))) - 1; double sfb1 = delread4(&s->tcomb1, 1000 / hz1); double sfb2 = delread4(&s->tcomb2, 1000 / hz2); + sfb1 = biquad(highpass(&s->hatfilt[0], 200, flatq), sfb1); + sfb2 = biquad(highpass(&s->hatfilt[1], 200, flatq), sfb2); double fb1 = mix(sfb1, -sfb2, 0); double fb2 = mix(sfb2, -sfb1, 0); double fb = -0.75;
diff @ 2018-03-18 17:36:58 +0000 diff --git a/src/go.c b/src/go.c index 11dd6215..dfc19ceb 100644 --- a/src/go.c +++ b/src/go.c @@ -155,8 +155,8 @@ go(S *s, int channels, const float *in, float *out) double hz2 = 2 * khz * floor(pow(2, wrap(4 * p + 0.5))) - 1; double sfb1 = delread4(&s->tcomb1, 1000 / hz1); double sfb2 = delread4(&s->tcomb2, 1000 / hz2); - sfb1 = biquad(highpass(&s->hatfilt[0], 200, flatq), sfb1); - sfb2 = biquad(highpass(&s->hatfilt[1], 200, flatq), sfb2); + sfb1 = biquad(highpass(&s->hatfilt[0], 1000, flatq), sfb1); + sfb2 = biquad(highpass(&s->hatfilt[1], 1000, flatq), sfb2); double fb1 = mix(sfb1, -sfb2, 0); double fb2 = mix(sfb2, -sfb1, 0); double fb = -0.75;
diff @ 2018-03-18 17:37:05 +0000 diff --git a/src/go.c b/src/go.c index dfc19ceb..cad7e003 100644 --- a/src/go.c +++ b/src/go.c @@ -155,8 +155,8 @@ go(S *s, int channels, const float *in, float *out) double hz2 = 2 * khz * floor(pow(2, wrap(4 * p + 0.5))) - 1; double sfb1 = delread4(&s->tcomb1, 1000 / hz1); double sfb2 = delread4(&s->tcomb2, 1000 / hz2); - sfb1 = biquad(highpass(&s->hatfilt[0], 1000, flatq), sfb1); - sfb2 = biquad(highpass(&s->hatfilt[1], 1000, flatq), sfb2); + sfb1 = biquad(highpass(&s->hatfilt[0], 1000, 2), sfb1); + sfb2 = biquad(highpass(&s->hatfilt[1], 1000, 2), sfb2); double fb1 = mix(sfb1, -sfb2, 0); double fb2 = mix(sfb2, -sfb1, 0); double fb = -0.75;
diff @ 2018-03-18 17:37:12 +0000 diff --git a/src/go.c b/src/go.c index cad7e003..d3f1171f 100644 --- a/src/go.c +++ b/src/go.c @@ -159,7 +159,7 @@ go(S *s, int channels, const float *in, float *out) sfb2 = biquad(highpass(&s->hatfilt[1], 1000, 2), sfb2); double fb1 = mix(sfb1, -sfb2, 0); double fb2 = mix(sfb2, -sfb1, 0); - double fb = -0.75; + double fb = -0.5; fb = samphold(&s->tgate[2], fb, wrap(4 * p)); delwrite(&s->tcomb1, sin(hat * noise() - fb * fb1)); delwrite(&s->tcomb2, sin(hat * noise() - fb * fb2));
diff @ 2018-03-18 17:37:15 +0000 diff --git a/src/go.c b/src/go.c index d3f1171f..a9f058f0 100644 --- a/src/go.c +++ b/src/go.c @@ -159,7 +159,7 @@ go(S *s, int channels, const float *in, float *out) sfb2 = biquad(highpass(&s->hatfilt[1], 1000, 2), sfb2); double fb1 = mix(sfb1, -sfb2, 0); double fb2 = mix(sfb2, -sfb1, 0); - double fb = -0.5; + double fb = -0.2; fb = samphold(&s->tgate[2], fb, wrap(4 * p)); delwrite(&s->tcomb1, sin(hat * noise() - fb * fb1)); delwrite(&s->tcomb2, sin(hat * noise() - fb * fb2));
diff @ 2018-03-18 17:37:16 +0000 diff --git a/src/go.c b/src/go.c index a9f058f0..0d81b684 100644 --- a/src/go.c +++ b/src/go.c @@ -159,7 +159,7 @@ go(S *s, int channels, const float *in, float *out) sfb2 = biquad(highpass(&s->hatfilt[1], 1000, 2), sfb2); double fb1 = mix(sfb1, -sfb2, 0); double fb2 = mix(sfb2, -sfb1, 0); - double fb = -0.2; + double fb = -0.1; fb = samphold(&s->tgate[2], fb, wrap(4 * p)); delwrite(&s->tcomb1, sin(hat * noise() - fb * fb1)); delwrite(&s->tcomb2, sin(hat * noise() - fb * fb2));
diff @ 2018-03-18 17:37:19 +0000 diff --git a/src/go.c b/src/go.c index 0d81b684..a9f058f0 100644 --- a/src/go.c +++ b/src/go.c @@ -159,7 +159,7 @@ go(S *s, int channels, const float *in, float *out) sfb2 = biquad(highpass(&s->hatfilt[1], 1000, 2), sfb2); double fb1 = mix(sfb1, -sfb2, 0); double fb2 = mix(sfb2, -sfb1, 0); - double fb = -0.1; + double fb = -0.2; fb = samphold(&s->tgate[2], fb, wrap(4 * p)); delwrite(&s->tcomb1, sin(hat * noise() - fb * fb1)); delwrite(&s->tcomb2, sin(hat * noise() - fb * fb2));
diff @ 2018-03-18 17:37:23 +0000 diff --git a/src/go.c b/src/go.c index a9f058f0..155b4dcc 100644 --- a/src/go.c +++ b/src/go.c @@ -159,7 +159,7 @@ go(S *s, int channels, const float *in, float *out) sfb2 = biquad(highpass(&s->hatfilt[1], 1000, 2), sfb2); double fb1 = mix(sfb1, -sfb2, 0); double fb2 = mix(sfb2, -sfb1, 0); - double fb = -0.2; + double fb = -0.25; fb = samphold(&s->tgate[2], fb, wrap(4 * p)); delwrite(&s->tcomb1, sin(hat * noise() - fb * fb1)); delwrite(&s->tcomb2, sin(hat * noise() - fb * fb2));
diff @ 2018-03-18 17:37:32 +0000 diff --git a/src/go.c b/src/go.c index 155b4dcc..f86ff230 100644 --- a/src/go.c +++ b/src/go.c @@ -159,7 +159,7 @@ go(S *s, int channels, const float *in, float *out) sfb2 = biquad(highpass(&s->hatfilt[1], 1000, 2), sfb2); double fb1 = mix(sfb1, -sfb2, 0); double fb2 = mix(sfb2, -sfb1, 0); - double fb = -0.25; + double fb = -0.26; fb = samphold(&s->tgate[2], fb, wrap(4 * p)); delwrite(&s->tcomb1, sin(hat * noise() - fb * fb1)); delwrite(&s->tcomb2, sin(hat * noise() - fb * fb2));
diff @ 2018-03-18 17:37:34 +0000 diff --git a/src/go.c b/src/go.c index f86ff230..d3f1171f 100644 --- a/src/go.c +++ b/src/go.c @@ -159,7 +159,7 @@ go(S *s, int channels, const float *in, float *out) sfb2 = biquad(highpass(&s->hatfilt[1], 1000, 2), sfb2); double fb1 = mix(sfb1, -sfb2, 0); double fb2 = mix(sfb2, -sfb1, 0); - double fb = -0.26; + double fb = -0.5; fb = samphold(&s->tgate[2], fb, wrap(4 * p)); delwrite(&s->tcomb1, sin(hat * noise() - fb * fb1)); delwrite(&s->tcomb2, sin(hat * noise() - fb * fb2));
diff @ 2018-03-18 17:37:46 +0000 diff --git a/src/go.c b/src/go.c index d3f1171f..347b665d 100644 --- a/src/go.c +++ b/src/go.c @@ -157,8 +157,8 @@ go(S *s, int channels, const float *in, float *out) double sfb2 = delread4(&s->tcomb2, 1000 / hz2); sfb1 = biquad(highpass(&s->hatfilt[0], 1000, 2), sfb1); sfb2 = biquad(highpass(&s->hatfilt[1], 1000, 2), sfb2); - double fb1 = mix(sfb1, -sfb2, 0); - double fb2 = mix(sfb2, -sfb1, 0); + double fb1 = mix(sfb1, -sfb2, 0.1); + double fb2 = mix(sfb2, -sfb1, 0.1); double fb = -0.5; fb = samphold(&s->tgate[2], fb, wrap(4 * p)); delwrite(&s->tcomb1, sin(hat * noise() - fb * fb1));
diff @ 2018-03-18 17:37:55 +0000 diff --git a/src/go.c b/src/go.c index 347b665d..15a954e8 100644 --- a/src/go.c +++ b/src/go.c @@ -151,8 +151,8 @@ go(S *s, int channels, const float *in, float *out) s->tcomb1.length = SR; s->tcomb2.length = SR; double khz = 50 + 10 * (wrap(8 * p) > 1) + 25 * (wrap(2 * p) > 1); - double hz1 = 2 * khz * floor(pow(2, wrap(4 * p + 0.0))) + 1; - double hz2 = 2 * khz * floor(pow(2, wrap(4 * p + 0.5))) - 1; + double hz1 = 2 * khz * floor(pow(4, wrap(4 * p + 0.0))) + 1; + double hz2 = 2 * khz * floor(pow(4, wrap(4 * p + 0.5))) - 1; double sfb1 = delread4(&s->tcomb1, 1000 / hz1); double sfb2 = delread4(&s->tcomb2, 1000 / hz2); sfb1 = biquad(highpass(&s->hatfilt[0], 1000, 2), sfb1);
diff @ 2018-03-18 17:38:03 +0000 diff --git a/src/go.c b/src/go.c index 15a954e8..fab944a0 100644 --- a/src/go.c +++ b/src/go.c @@ -151,8 +151,8 @@ go(S *s, int channels, const float *in, float *out) s->tcomb1.length = SR; s->tcomb2.length = SR; double khz = 50 + 10 * (wrap(8 * p) > 1) + 25 * (wrap(2 * p) > 1); - double hz1 = 2 * khz * floor(pow(4, wrap(4 * p + 0.0))) + 1; - double hz2 = 2 * khz * floor(pow(4, wrap(4 * p + 0.5))) - 1; + double hz1 = khz * floor(pow(4, wrap(4 * p + 0.0))) + 1; + double hz2 = khz * floor(pow(4, wrap(4 * p + 0.5))) - 1; double sfb1 = delread4(&s->tcomb1, 1000 / hz1); double sfb2 = delread4(&s->tcomb2, 1000 / hz2); sfb1 = biquad(highpass(&s->hatfilt[0], 1000, 2), sfb1);
diff @ 2018-03-18 17:38:23 +0000 diff --git a/src/go.c b/src/go.c index fab944a0..d7e7a340 100644 --- a/src/go.c +++ b/src/go.c @@ -130,7 +130,7 @@ go(S *s, int channels, const float *in, float *out) { if (phase_reset) { - s->tphase.phase = 0; +// s->tphase.phase = 0; s->ttempo = SR * 1.0 / (5 << 16); } double p = phasor(&s->tphase, s->ttempo);
diff @ 2018-03-18 17:38:32 +0000 diff --git a/src/go.c b/src/go.c index d7e7a340..53274b97 100644 --- a/src/go.c +++ b/src/go.c @@ -150,7 +150,7 @@ go(S *s, int channels, const float *in, float *out) hat *= hat; s->tcomb1.length = SR; s->tcomb2.length = SR; - double khz = 50 + 10 * (wrap(8 * p) > 1) + 25 * (wrap(2 * p) > 1); + double khz = 50 + 10 * (wrap(8 * p) > 0.5) + 25 * (wrap(2 * p) > 1); double hz1 = khz * floor(pow(4, wrap(4 * p + 0.0))) + 1; double hz2 = khz * floor(pow(4, wrap(4 * p + 0.5))) - 1; double sfb1 = delread4(&s->tcomb1, 1000 / hz1);
diff @ 2018-03-18 17:38:38 +0000 diff --git a/src/go.c b/src/go.c index 53274b97..801206a6 100644 --- a/src/go.c +++ b/src/go.c @@ -150,7 +150,7 @@ go(S *s, int channels, const float *in, float *out) hat *= hat; s->tcomb1.length = SR; s->tcomb2.length = SR; - double khz = 50 + 10 * (wrap(8 * p) > 0.5) + 25 * (wrap(2 * p) > 1); + double khz = 50 + 10 * (wrap(8 * p) > 0.5) + 25 * (wrap(2 * p) > 0.75); double hz1 = khz * floor(pow(4, wrap(4 * p + 0.0))) + 1; double hz2 = khz * floor(pow(4, wrap(4 * p + 0.5))) - 1; double sfb1 = delread4(&s->tcomb1, 1000 / hz1);
diff @ 2018-03-18 17:38:48 +0000 diff --git a/src/go.c b/src/go.c index 801206a6..142c4368 100644 --- a/src/go.c +++ b/src/go.c @@ -173,7 +173,7 @@ go(S *s, int channels, const float *in, float *out) double hgain = 1; tilex[0] *= hgain; tilex[1] *= hgain; - double kgain = 0; + double kgain = 1; kgain = samphold(&s->tgate[0], kgain, p); tilex[0] += kgain * kick; tilex[1] += kgain * kick;
diff @ 2018-03-18 17:39:03 +0000 diff --git a/src/go.c b/src/go.c index 142c4368..bae16921 100644 --- a/src/go.c +++ b/src/go.c @@ -164,7 +164,7 @@ go(S *s, int channels, const float *in, float *out) delwrite(&s->tcomb1, sin(hat * noise() - fb * fb1)); delwrite(&s->tcomb2, sin(hat * noise() - fb * fb2)); 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 * 2, 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); tilex[0] = fb1;
diff @ 2018-03-18 17:39:10 +0000 diff --git a/src/go.c b/src/go.c index bae16921..33968d48 100644 --- a/src/go.c +++ b/src/go.c @@ -164,7 +164,7 @@ go(S *s, int channels, const float *in, float *out) delwrite(&s->tcomb1, sin(hat * noise() - fb * fb1)); delwrite(&s->tcomb2, sin(hat * noise() - fb * fb2)); kick +=tanh(vcf(&s->tkick[0], kick, khz, 5)*5)*2; - kick += sin(vcf(&s->tkick[1], kick, khz * 2, 15)*15); + kick += sin(vcf(&s->tkick[1], kick, khz * 2, 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); tilex[0] = fb1;
diff @ 2018-03-18 17:39:16 +0000 diff --git a/src/go.c b/src/go.c index 33968d48..0e487b9b 100644 --- a/src/go.c +++ b/src/go.c @@ -164,7 +164,7 @@ go(S *s, int channels, const float *in, float *out) delwrite(&s->tcomb1, sin(hat * noise() - fb * fb1)); delwrite(&s->tcomb2, sin(hat * noise() - fb * fb2)); kick +=tanh(vcf(&s->tkick[0], kick, khz, 5)*5)*2; - kick += sin(vcf(&s->tkick[1], kick, khz * 2, 25)*25); + kick += sin(vcf(&s->tkick[1], kick, khz * 2, 50)*50); kick += sin(vcf(&s->tkick[2], kick, khz*4-20, 5)*5) * sin(vcf(&s->tkick[3], kick, khz*4+20, 5)*5); tilex[0] = fb1;
diff @ 2018-03-18 17:39:24 +0000 diff --git a/src/go.c b/src/go.c index 0e487b9b..7794fdef 100644 --- a/src/go.c +++ b/src/go.c @@ -150,7 +150,7 @@ go(S *s, int channels, const float *in, float *out) hat *= hat; s->tcomb1.length = SR; s->tcomb2.length = SR; - double khz = 50 + 10 * (wrap(8 * p) > 0.5) + 25 * (wrap(2 * p) > 0.75); + double khz = 50 + 10 * (wrap(8 * p) > 0.5) - 25 * (wrap(2 * p) > 0.75); double hz1 = khz * floor(pow(4, wrap(4 * p + 0.0))) + 1; double hz2 = khz * floor(pow(4, wrap(4 * p + 0.5))) - 1; double sfb1 = delread4(&s->tcomb1, 1000 / hz1);
diff @ 2018-03-18 17:39:30 +0000 diff --git a/src/go.c b/src/go.c index 7794fdef..9219db98 100644 --- a/src/go.c +++ b/src/go.c @@ -164,7 +164,7 @@ go(S *s, int channels, const float *in, float *out) delwrite(&s->tcomb1, sin(hat * noise() - fb * fb1)); delwrite(&s->tcomb2, sin(hat * noise() - fb * fb2)); kick +=tanh(vcf(&s->tkick[0], kick, khz, 5)*5)*2; - kick += sin(vcf(&s->tkick[1], kick, khz * 2, 50)*50); + kick += sin(vcf(&s->tkick[1], kick, khz * 3, 50)*50); kick += sin(vcf(&s->tkick[2], kick, khz*4-20, 5)*5) * sin(vcf(&s->tkick[3], kick, khz*4+20, 5)*5); tilex[0] = fb1;
diff @ 2018-03-18 17:39:43 +0000 diff --git a/src/go.c b/src/go.c index 9219db98..5d05fd24 100644 --- a/src/go.c +++ b/src/go.c @@ -164,7 +164,7 @@ go(S *s, int channels, const float *in, float *out) delwrite(&s->tcomb1, sin(hat * noise() - fb * fb1)); delwrite(&s->tcomb2, sin(hat * noise() - fb * fb2)); kick +=tanh(vcf(&s->tkick[0], kick, khz, 5)*5)*2; - kick += sin(vcf(&s->tkick[1], kick, khz * 3, 50)*50); + kick += sin(vcf(&s->tkick[1], kick, khz * (wrap(4 * p) < 0.5 ? 3 : 2), 50)*50); kick += sin(vcf(&s->tkick[2], kick, khz*4-20, 5)*5) * sin(vcf(&s->tkick[3], kick, khz*4+20, 5)*5); tilex[0] = fb1;
diff @ 2018-03-18 17:39:48 +0000 diff --git a/src/go.c b/src/go.c index 5d05fd24..665362a2 100644 --- a/src/go.c +++ b/src/go.c @@ -164,7 +164,7 @@ go(S *s, int channels, const float *in, float *out) delwrite(&s->tcomb1, sin(hat * noise() - fb * fb1)); delwrite(&s->tcomb2, sin(hat * noise() - fb * fb2)); kick +=tanh(vcf(&s->tkick[0], kick, khz, 5)*5)*2; - kick += sin(vcf(&s->tkick[1], kick, khz * (wrap(4 * p) < 0.5 ? 3 : 2), 50)*50); + kick += sin(vcf(&s->tkick[1], kick, khz * (wrap(8 * p) < 0.5 ? 3 : 2), 50)*50); kick += sin(vcf(&s->tkick[2], kick, khz*4-20, 5)*5) * sin(vcf(&s->tkick[3], kick, khz*4+20, 5)*5); tilex[0] = fb1;
diff @ 2018-03-18 17:39:58 +0000 diff --git a/src/go.c b/src/go.c index 665362a2..62aa016b 100644 --- a/src/go.c +++ b/src/go.c @@ -163,7 +163,7 @@ go(S *s, int channels, const float *in, float *out) fb = samphold(&s->tgate[2], fb, wrap(4 * p)); delwrite(&s->tcomb1, sin(hat * noise() - fb * fb1)); delwrite(&s->tcomb2, sin(hat * noise() - fb * fb2)); - kick +=tanh(vcf(&s->tkick[0], kick, khz, 5)*5)*2; + kick +=tanh(vcf(&s->tkick[0], kick, khz, 15)*15)*2; kick += sin(vcf(&s->tkick[1], kick, khz * (wrap(8 * p) < 0.5 ? 3 : 2), 50)*50); 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-03-18 17:40:06 +0000 diff --git a/src/go.c b/src/go.c index 62aa016b..9c5d0342 100644 --- a/src/go.c +++ b/src/go.c @@ -165,8 +165,8 @@ go(S *s, int channels, const float *in, float *out) delwrite(&s->tcomb2, sin(hat * noise() - fb * fb2)); kick +=tanh(vcf(&s->tkick[0], kick, khz, 15)*15)*2; kick += sin(vcf(&s->tkick[1], kick, khz * (wrap(8 * p) < 0.5 ? 3 : 2), 50)*50); - 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*6-20, 15)*15) + * sin(vcf(&s->tkick[3], kick, khz*6+20, 15)*15); tilex[0] = fb1; tilex[1] = fb2; compress(tilex, &s->tcompress1, 5, 10, 25, 48, tilex);
diff @ 2018-03-18 17:40:13 +0000 diff --git a/src/go.c b/src/go.c index 9c5d0342..7fca0578 100644 --- a/src/go.c +++ b/src/go.c @@ -165,8 +165,8 @@ go(S *s, int channels, const float *in, float *out) delwrite(&s->tcomb2, sin(hat * noise() - fb * fb2)); kick +=tanh(vcf(&s->tkick[0], kick, khz, 15)*15)*2; kick += sin(vcf(&s->tkick[1], kick, khz * (wrap(8 * p) < 0.5 ? 3 : 2), 50)*50); - kick += sin(vcf(&s->tkick[2], kick, khz*6-20, 15)*15) - * sin(vcf(&s->tkick[3], kick, khz*6+20, 15)*15); + kick += sin(vcf(&s->tkick[2], kick, khz*6-20, 150)*100) + * sin(vcf(&s->tkick[3], kick, khz*6+20, 150)*100); tilex[0] = fb1; tilex[1] = fb2; compress(tilex, &s->tcompress1, 5, 10, 25, 48, tilex);
diff @ 2018-03-18 17:40:20 +0000 diff --git a/src/go.c b/src/go.c index 7fca0578..37889d8f 100644 --- a/src/go.c +++ b/src/go.c @@ -165,8 +165,8 @@ go(S *s, int channels, const float *in, float *out) delwrite(&s->tcomb2, sin(hat * noise() - fb * fb2)); kick +=tanh(vcf(&s->tkick[0], kick, khz, 15)*15)*2; kick += sin(vcf(&s->tkick[1], kick, khz * (wrap(8 * p) < 0.5 ? 3 : 2), 50)*50); - kick += sin(vcf(&s->tkick[2], kick, khz*6-20, 150)*100) - * sin(vcf(&s->tkick[3], kick, khz*6+20, 150)*100); + kick += sin(vcf(&s->tkick[2], kick, khz*6-2, 150)*100) + * sin(vcf(&s->tkick[3], kick, khz*6+2, 150)*100); tilex[0] = fb1; tilex[1] = fb2; compress(tilex, &s->tcompress1, 5, 10, 25, 48, tilex);
diff @ 2018-03-18 17:40:26 +0000 diff --git a/src/go.c b/src/go.c index 37889d8f..eb556a78 100644 --- a/src/go.c +++ b/src/go.c @@ -165,8 +165,8 @@ go(S *s, int channels, const float *in, float *out) delwrite(&s->tcomb2, sin(hat * noise() - fb * fb2)); kick +=tanh(vcf(&s->tkick[0], kick, khz, 15)*15)*2; kick += sin(vcf(&s->tkick[1], kick, khz * (wrap(8 * p) < 0.5 ? 3 : 2), 50)*50); - kick += sin(vcf(&s->tkick[2], kick, khz*6-2, 150)*100) - * sin(vcf(&s->tkick[3], kick, khz*6+2, 150)*100); + kick += sin(vcf(&s->tkick[2], kick, khz*6-8, 150)*100) + * sin(vcf(&s->tkick[3], kick, khz*6+8, 150)*100); tilex[0] = fb1; tilex[1] = fb2; compress(tilex, &s->tcompress1, 5, 10, 25, 48, tilex);
diff @ 2018-03-18 17:40:33 +0000 diff --git a/src/go.c b/src/go.c index eb556a78..f041c010 100644 --- a/src/go.c +++ b/src/go.c @@ -165,8 +165,8 @@ go(S *s, int channels, const float *in, float *out) delwrite(&s->tcomb2, sin(hat * noise() - fb * fb2)); kick +=tanh(vcf(&s->tkick[0], kick, khz, 15)*15)*2; kick += sin(vcf(&s->tkick[1], kick, khz * (wrap(8 * p) < 0.5 ? 3 : 2), 50)*50); - kick += sin(vcf(&s->tkick[2], kick, khz*6-8, 150)*100) - * sin(vcf(&s->tkick[3], kick, khz*6+8, 150)*100); + kick += sin(vcf(&s->tkick[2], kick, khz*6-40, 150)*100) + * sin(vcf(&s->tkick[3], kick, khz*6+20, 150)*100); tilex[0] = fb1; tilex[1] = fb2; compress(tilex, &s->tcompress1, 5, 10, 25, 48, tilex);
diff @ 2018-03-18 17:40:38 +0000 diff --git a/src/go.c b/src/go.c index f041c010..2697fe7c 100644 --- a/src/go.c +++ b/src/go.c @@ -165,7 +165,7 @@ go(S *s, int channels, const float *in, float *out) delwrite(&s->tcomb2, sin(hat * noise() - fb * fb2)); kick +=tanh(vcf(&s->tkick[0], kick, khz, 15)*15)*2; kick += sin(vcf(&s->tkick[1], kick, khz * (wrap(8 * p) < 0.5 ? 3 : 2), 50)*50); - kick += sin(vcf(&s->tkick[2], kick, khz*6-40, 150)*100) + kick += sin(vcf(&s->tkick[2], kick, khz*6-30, 150)*100) * sin(vcf(&s->tkick[3], kick, khz*6+20, 150)*100); tilex[0] = fb1; tilex[1] = fb2;
diff @ 2018-03-18 17:40:45 +0000 diff --git a/src/go.c b/src/go.c index 2697fe7c..c08b5c5d 100644 --- a/src/go.c +++ b/src/go.c @@ -165,8 +165,8 @@ go(S *s, int channels, const float *in, float *out) delwrite(&s->tcomb2, sin(hat * noise() - fb * fb2)); kick +=tanh(vcf(&s->tkick[0], kick, khz, 15)*15)*2; kick += sin(vcf(&s->tkick[1], kick, khz * (wrap(8 * p) < 0.5 ? 3 : 2), 50)*50); - kick += sin(vcf(&s->tkick[2], kick, khz*6-30, 150)*100) - * sin(vcf(&s->tkick[3], kick, khz*6+20, 150)*100); + kick += sin(vcf(&s->tkick[2], kick, khz*6-30, 500)*200) + * sin(vcf(&s->tkick[3], kick, khz*6+20, 500)*200); tilex[0] = fb1; tilex[1] = fb2; compress(tilex, &s->tcompress1, 5, 10, 25, 48, tilex);
diff @ 2018-03-18 17:41:28 +0000 diff --git a/src/go.c b/src/go.c index c08b5c5d..ebae8981 100644 --- a/src/go.c +++ b/src/go.c @@ -165,8 +165,8 @@ go(S *s, int channels, const float *in, float *out) delwrite(&s->tcomb2, sin(hat * noise() - fb * fb2)); kick +=tanh(vcf(&s->tkick[0], kick, khz, 15)*15)*2; kick += sin(vcf(&s->tkick[1], kick, khz * (wrap(8 * p) < 0.5 ? 3 : 2), 50)*50); - kick += sin(vcf(&s->tkick[2], kick, khz*6-30, 500)*200) - * sin(vcf(&s->tkick[3], kick, khz*6+20, 500)*200); + kick += sin(vcf(&s->tkick[2], kick, khz*(3 + floor(8 * p))-30, 500)*200) + * sin(vcf(&s->tkick[3], kick, khz*(3 + (floor(16 * p) % 8))+20, 500)*200); tilex[0] = fb1; tilex[1] = fb2; compress(tilex, &s->tcompress1, 5, 10, 25, 48, tilex);
diff @ 2018-03-18 17:41:35 +0000 diff --git a/src/go.c b/src/go.c index ebae8981..6b174cce 100644 --- a/src/go.c +++ b/src/go.c @@ -166,7 +166,7 @@ go(S *s, int channels, const float *in, float *out) kick +=tanh(vcf(&s->tkick[0], kick, khz, 15)*15)*2; kick += sin(vcf(&s->tkick[1], kick, khz * (wrap(8 * p) < 0.5 ? 3 : 2), 50)*50); kick += sin(vcf(&s->tkick[2], kick, khz*(3 + floor(8 * p))-30, 500)*200) - * sin(vcf(&s->tkick[3], kick, khz*(3 + (floor(16 * p) % 8))+20, 500)*200); + * sin(vcf(&s->tkick[3], kick, khz*(3 + ((int)floor(16 * p) % 8))+20, 500)*200); tilex[0] = fb1; tilex[1] = fb2; compress(tilex, &s->tcompress1, 5, 10, 25, 48, tilex);
diff @ 2018-03-18 17:41:56 +0000 diff --git a/src/go.c b/src/go.c index 6b174cce..b5a7abc7 100644 --- a/src/go.c +++ b/src/go.c @@ -165,7 +165,7 @@ go(S *s, int channels, const float *in, float *out) delwrite(&s->tcomb2, sin(hat * noise() - fb * fb2)); kick +=tanh(vcf(&s->tkick[0], kick, khz, 15)*15)*2; kick += sin(vcf(&s->tkick[1], kick, khz * (wrap(8 * p) < 0.5 ? 3 : 2), 50)*50); - kick += sin(vcf(&s->tkick[2], kick, khz*(3 + floor(8 * p))-30, 500)*200) + kick += sin(vcf(&s->tkick[2], kick, khz*(3 + (((int)floor(8 * p) * 5)%8))-30, 500)*200) * sin(vcf(&s->tkick[3], kick, khz*(3 + ((int)floor(16 * p) % 8))+20, 500)*200); tilex[0] = fb1; tilex[1] = fb2;
diff @ 2018-03-18 17:42:07 +0000 diff --git a/src/go.c b/src/go.c index b5a7abc7..a271f191 100644 --- a/src/go.c +++ b/src/go.c @@ -163,7 +163,7 @@ go(S *s, int channels, const float *in, float *out) fb = samphold(&s->tgate[2], fb, wrap(4 * p)); delwrite(&s->tcomb1, sin(hat * noise() - fb * fb1)); delwrite(&s->tcomb2, sin(hat * noise() - fb * fb2)); - kick +=tanh(vcf(&s->tkick[0], kick, khz, 15)*15)*2; + kick +=tanh(vcf(&s->tkick[0], kick, khz, 50)*50)*2; kick += sin(vcf(&s->tkick[1], kick, khz * (wrap(8 * p) < 0.5 ? 3 : 2), 50)*50); kick += sin(vcf(&s->tkick[2], kick, khz*(3 + (((int)floor(8 * p) * 5)%8))-30, 500)*200) * sin(vcf(&s->tkick[3], kick, khz*(3 + ((int)floor(16 * p) % 8))+20, 500)*200);
diff @ 2018-03-18 17:42:15 +0000 diff --git a/src/go.c b/src/go.c index a271f191..57a7b8a6 100644 --- a/src/go.c +++ b/src/go.c @@ -163,7 +163,7 @@ go(S *s, int channels, const float *in, float *out) fb = samphold(&s->tgate[2], fb, wrap(4 * p)); delwrite(&s->tcomb1, sin(hat * noise() - fb * fb1)); delwrite(&s->tcomb2, sin(hat * noise() - fb * fb2)); - kick +=tanh(vcf(&s->tkick[0], kick, khz, 50)*50)*2; + kick +=tanh(vcf(&s->tkick[0], kick, khz, 50)*50)*4; kick += sin(vcf(&s->tkick[1], kick, khz * (wrap(8 * p) < 0.5 ? 3 : 2), 50)*50); kick += sin(vcf(&s->tkick[2], kick, khz*(3 + (((int)floor(8 * p) * 5)%8))-30, 500)*200) * sin(vcf(&s->tkick[3], kick, khz*(3 + ((int)floor(16 * p) % 8))+20, 500)*200);
diff @ 2018-03-18 17:42:35 +0000 diff --git a/src/go.c b/src/go.c index 57a7b8a6..9011a54b 100644 --- a/src/go.c +++ b/src/go.c @@ -210,8 +210,8 @@ go(S *s, int channels, const float *in, float *out) hilbert(pb, &s->philbert[1], pb); pa[0] = wrap(atan2(pa[0], pa[1]) / twopi); pb[0] = wrap(atan2(pb[0], pb[1]) / twopi); - na += 0*samphold(&s->psh[0], na, wrap(3 * pa[0])); - nb += 0*samphold(&s->psh[1], nb, wrap(3 * pb[0])); + na = samphold(&s->psh[0], na, wrap(3 * pa[0])); + nb = samphold(&s->psh[1], nb, wrap(3 * pb[0])); pnoise[0] = na; pnoise[1] = nb; compress(pnoise, &s->pcompress, 5, 10, 25, 48, pnoise);
diff @ 2018-03-18 17:42:48 +0000 diff --git a/src/go.c b/src/go.c index 9011a54b..80307a27 100644 --- a/src/go.c +++ b/src/go.c @@ -210,8 +210,8 @@ go(S *s, int channels, const float *in, float *out) hilbert(pb, &s->philbert[1], pb); pa[0] = wrap(atan2(pa[0], pa[1]) / twopi); pb[0] = wrap(atan2(pb[0], pb[1]) / twopi); - na = samphold(&s->psh[0], na, wrap(3 * pa[0])); - nb = samphold(&s->psh[1], nb, wrap(3 * pb[0])); + na = samphold(&s->psh[0], na, wrap(5 * pa[0])); + nb = samphold(&s->psh[1], nb, wrap(5 * pb[0])); pnoise[0] = na; pnoise[1] = nb; compress(pnoise, &s->pcompress, 5, 10, 25, 48, pnoise);
diff @ 2018-03-18 17:43:02 +0000 diff --git a/src/go.c b/src/go.c index 80307a27..c5ffd493 100644 --- a/src/go.c +++ b/src/go.c @@ -197,9 +197,9 @@ go(S *s, int channels, const float *in, float *out) } double na = env * pink(&s->pink[0]); double nb = env * pink(&s->pink[1]); - double q = 200; - na *= 5; - nb *= 5; + double q = 100; + na *= 8; + nb *= 8; na = vcf(&s->pvcf[0], na * q, freq, q); nb = vcf(&s->pvcf[1], nb * q, freq, q); na = sin(na);
diff @ 2018-03-18 17:43:09 +0000 diff --git a/src/go.c b/src/go.c index c5ffd493..5beeffc3 100644 --- a/src/go.c +++ b/src/go.c @@ -197,7 +197,7 @@ go(S *s, int channels, const float *in, float *out) } double na = env * pink(&s->pink[0]); double nb = env * pink(&s->pink[1]); - double q = 100; + double q = 50; na *= 8; nb *= 8; na = vcf(&s->pvcf[0], na * q, freq, q);
diff @ 2018-03-18 17:43:13 +0000 diff --git a/src/go.c b/src/go.c index 5beeffc3..d823cdde 100644 --- a/src/go.c +++ b/src/go.c @@ -198,8 +198,8 @@ go(S *s, int channels, const float *in, float *out) double na = env * pink(&s->pink[0]); double nb = env * pink(&s->pink[1]); double q = 50; - na *= 8; - nb *= 8; + na *= 16; + nb *= 16; na = vcf(&s->pvcf[0], na * q, freq, q); nb = vcf(&s->pvcf[1], nb * q, freq, q); na = sin(na);
diff @ 2018-03-18 17:43:21 +0000 diff --git a/src/go.c b/src/go.c index d823cdde..e71abf4f 100644 --- a/src/go.c +++ b/src/go.c @@ -173,7 +173,7 @@ go(S *s, int channels, const float *in, float *out) double hgain = 1; tilex[0] *= hgain; tilex[1] *= hgain; - double kgain = 1; + double kgain = 0; kgain = samphold(&s->tgate[0], kgain, p); tilex[0] += kgain * kick; tilex[1] += kgain * kick;
diff @ 2018-03-18 17:43:30 +0000 diff --git a/src/go.c b/src/go.c index e71abf4f..37d7e252 100644 --- a/src/go.c +++ b/src/go.c @@ -111,7 +111,7 @@ go(S *s, int channels, const float *in, float *out) int n = (time / 5) & ((1 << N) - 1); double zeroes = clamp(count_trailing_zeroes(n), 0, N); double probability = pow(0.55, N - zeroes); - probability = (4 + 4 * (n >= 0xC001)) * probability - 0.5; + probability = (16 + 4 * (n >= 0xC001)) * probability - 0.5; probability = clamp(probability, 0, 1); double uniform = rand() / (double) RAND_MAX; double trigger = uniform < probability;
diff @ 2018-03-18 17:43:35 +0000 diff --git a/src/go.c b/src/go.c index 37d7e252..dd24b505 100644 --- a/src/go.c +++ b/src/go.c @@ -111,7 +111,7 @@ go(S *s, int channels, const float *in, float *out) int n = (time / 5) & ((1 << N) - 1); double zeroes = clamp(count_trailing_zeroes(n), 0, N); double probability = pow(0.55, N - zeroes); - probability = (16 + 4 * (n >= 0xC001)) * probability - 0.5; + probability = (16 + 0 * (n >= 0xC001)) * probability - 0.5; probability = clamp(probability, 0, 1); double uniform = rand() / (double) RAND_MAX; double trigger = uniform < probability;
diff @ 2018-03-18 17:43:44 +0000 diff --git a/src/go.c b/src/go.c index dd24b505..e26b2f70 100644 --- a/src/go.c +++ b/src/go.c @@ -197,7 +197,7 @@ go(S *s, int channels, const float *in, float *out) } double na = env * pink(&s->pink[0]); double nb = env * pink(&s->pink[1]); - double q = 50; + double q = 500; na *= 16; nb *= 16; na = vcf(&s->pvcf[0], na * q, freq, q);
diff @ 2018-03-18 17:43:50 +0000 diff --git a/src/go.c b/src/go.c index e26b2f70..a699abd3 100644 --- a/src/go.c +++ b/src/go.c @@ -198,8 +198,8 @@ go(S *s, int channels, const float *in, float *out) double na = env * pink(&s->pink[0]); double nb = env * pink(&s->pink[1]); double q = 500; - na *= 16; - nb *= 16; + na *= 1; + nb *= 1; na = vcf(&s->pvcf[0], na * q, freq, q); nb = vcf(&s->pvcf[1], nb * q, freq, q); na = sin(na);
diff @ 2018-03-18 17:44:15 +0000 diff --git a/src/go.c b/src/go.c index a699abd3..c350bc79 100644 --- a/src/go.c +++ b/src/go.c @@ -134,7 +134,8 @@ go(S *s, int channels, const float *in, float *out) s->ttempo = SR * 1.0 / (5 << 16); } double p = phasor(&s->tphase, s->ttempo); - double kick = 1 - wrap(16 * p); + double kick = 1 - wrap(8 * p); + kick *= kick; kick *= kick; kick *= kick; kick *= kick; @@ -173,7 +174,7 @@ go(S *s, int channels, const float *in, float *out) double hgain = 1; tilex[0] *= hgain; tilex[1] *= hgain; - double kgain = 0; + double kgain = 1; kgain = samphold(&s->tgate[0], kgain, p); tilex[0] += kgain * kick; tilex[1] += kgain * kick;
diff @ 2018-03-18 17:44:28 +0000 diff --git a/src/go.c b/src/go.c index c350bc79..e266bb1a 100644 --- a/src/go.c +++ b/src/go.c @@ -171,7 +171,7 @@ go(S *s, int channels, const float *in, float *out) tilex[0] = fb1; tilex[1] = fb2; compress(tilex, &s->tcompress1, 5, 10, 25, 48, tilex); - double hgain = 1; + double hgain = 4; tilex[0] *= hgain; tilex[1] *= hgain; double kgain = 1;
diff @ 2018-03-18 17:44:38 +0000 diff --git a/src/go.c b/src/go.c index e266bb1a..1e7ce62d 100644 --- a/src/go.c +++ b/src/go.c @@ -144,7 +144,7 @@ go(S *s, int channels, const float *in, float *out) kick = sin(twopi * kick); kick *= 1 + kickenv; kick = tanh(kick); - double hat = 1 - wrap(32 * p + 0.0); + double hat = 1 - wrap(16 * p + 0.5); hat *= hat; hat *= hat; hat *= hat;
diff @ 2018-03-18 17:44:46 +0000 diff --git a/src/go.c b/src/go.c index 1e7ce62d..0f285006 100644 --- a/src/go.c +++ b/src/go.c @@ -144,7 +144,7 @@ go(S *s, int channels, const float *in, float *out) kick = sin(twopi * kick); kick *= 1 + kickenv; kick = tanh(kick); - double hat = 1 - wrap(16 * p + 0.5); + double hat = 1 - wrap(8 * p + 0.5); hat *= hat; hat *= hat; hat *= hat;
diff @ 2018-03-18 17:45:00 +0000 diff --git a/src/go.c b/src/go.c index 0f285006..d40bfc3d 100644 --- a/src/go.c +++ b/src/go.c @@ -162,8 +162,8 @@ go(S *s, int channels, const float *in, float *out) double fb2 = mix(sfb2, -sfb1, 0.1); double fb = -0.5; fb = samphold(&s->tgate[2], fb, wrap(4 * p)); - delwrite(&s->tcomb1, sin(hat * noise() - fb * fb1)); - delwrite(&s->tcomb2, sin(hat * noise() - fb * fb2)); + delwrite(&s->tcomb1, tanh(hat * noise() - fb * fb1)); + delwrite(&s->tcomb2, tanh(hat * noise() - fb * fb2)); kick +=tanh(vcf(&s->tkick[0], kick, khz, 50)*50)*4; kick += sin(vcf(&s->tkick[1], kick, khz * (wrap(8 * p) < 0.5 ? 3 : 2), 50)*50); kick += sin(vcf(&s->tkick[2], kick, khz*(3 + (((int)floor(8 * p) * 5)%8))-30, 500)*200)
diff @ 2018-03-18 17:45:07 +0000 diff --git a/src/go.c b/src/go.c index d40bfc3d..2b179d62 100644 --- a/src/go.c +++ b/src/go.c @@ -156,8 +156,8 @@ go(S *s, int channels, const float *in, float *out) double hz2 = khz * floor(pow(4, wrap(4 * p + 0.5))) - 1; double sfb1 = delread4(&s->tcomb1, 1000 / hz1); double sfb2 = delread4(&s->tcomb2, 1000 / hz2); - sfb1 = biquad(highpass(&s->hatfilt[0], 1000, 2), sfb1); - sfb2 = biquad(highpass(&s->hatfilt[1], 1000, 2), sfb2); + sfb1 = biquad(highpass(&s->hatfilt[0], 500, 2), sfb1); + sfb2 = biquad(highpass(&s->hatfilt[1], 500, 2), sfb2); double fb1 = mix(sfb1, -sfb2, 0.1); double fb2 = mix(sfb2, -sfb1, 0.1); double fb = -0.5;
diff @ 2018-03-18 17:45:12 +0000 diff --git a/src/go.c b/src/go.c index 2b179d62..d9712f80 100644 --- a/src/go.c +++ b/src/go.c @@ -156,8 +156,8 @@ go(S *s, int channels, const float *in, float *out) double hz2 = khz * floor(pow(4, wrap(4 * p + 0.5))) - 1; double sfb1 = delread4(&s->tcomb1, 1000 / hz1); double sfb2 = delread4(&s->tcomb2, 1000 / hz2); - sfb1 = biquad(highpass(&s->hatfilt[0], 500, 2), sfb1); - sfb2 = biquad(highpass(&s->hatfilt[1], 500, 2), sfb2); + sfb1 = biquad(highpass(&s->hatfilt[0], 500, 8), sfb1); + sfb2 = biquad(highpass(&s->hatfilt[1], 500, 8), sfb2); double fb1 = mix(sfb1, -sfb2, 0.1); double fb2 = mix(sfb2, -sfb1, 0.1); double fb = -0.5;
diff @ 2018-03-18 17:45:23 +0000 diff --git a/src/go.c b/src/go.c index d9712f80..92ec1d8a 100644 --- a/src/go.c +++ b/src/go.c @@ -156,8 +156,8 @@ go(S *s, int channels, const float *in, float *out) double hz2 = khz * floor(pow(4, wrap(4 * p + 0.5))) - 1; double sfb1 = delread4(&s->tcomb1, 1000 / hz1); double sfb2 = delread4(&s->tcomb2, 1000 / hz2); - sfb1 = biquad(highpass(&s->hatfilt[0], 500, 8), sfb1); - sfb2 = biquad(highpass(&s->hatfilt[1], 500, 8), sfb2); + sfb1 = biquad(highpass(&s->hatfilt[0], 1000 / hz1, 8), sfb1); + sfb2 = biquad(highpass(&s->hatfilt[1], 1000 / hz2, 8), sfb2); double fb1 = mix(sfb1, -sfb2, 0.1); double fb2 = mix(sfb2, -sfb1, 0.1); double fb = -0.5;
diff @ 2018-03-18 17:45:34 +0000 diff --git a/src/go.c b/src/go.c index 92ec1d8a..6371f7b5 100644 --- a/src/go.c +++ b/src/go.c @@ -156,8 +156,8 @@ go(S *s, int channels, const float *in, float *out) double hz2 = khz * floor(pow(4, wrap(4 * p + 0.5))) - 1; double sfb1 = delread4(&s->tcomb1, 1000 / hz1); double sfb2 = delread4(&s->tcomb2, 1000 / hz2); - sfb1 = biquad(highpass(&s->hatfilt[0], 1000 / hz1, 8), sfb1); - sfb2 = biquad(highpass(&s->hatfilt[1], 1000 / hz2, 8), sfb2); + sfb1 = biquad(highpass(&s->hatfilt[0], 16 * 1000 / hz1, 8), sfb1); + sfb2 = biquad(highpass(&s->hatfilt[1], 16* 1000 / hz2, 8), sfb2); double fb1 = mix(sfb1, -sfb2, 0.1); double fb2 = mix(sfb2, -sfb1, 0.1); double fb = -0.5;
diff @ 2018-03-18 17:45:40 +0000 diff --git a/src/go.c b/src/go.c index 6371f7b5..c142d61e 100644 --- a/src/go.c +++ b/src/go.c @@ -156,8 +156,8 @@ go(S *s, int channels, const float *in, float *out) double hz2 = khz * floor(pow(4, wrap(4 * p + 0.5))) - 1; double sfb1 = delread4(&s->tcomb1, 1000 / hz1); double sfb2 = delread4(&s->tcomb2, 1000 / hz2); - sfb1 = biquad(highpass(&s->hatfilt[0], 16 * 1000 / hz1, 8), sfb1); - sfb2 = biquad(highpass(&s->hatfilt[1], 16* 1000 / hz2, 8), sfb2); + sfb1 = biquad(highpass(&s->hatfilt[0], 32 * 1000 / hz1, 8), sfb1); + sfb2 = biquad(highpass(&s->hatfilt[1], 32 * 1000 / hz2, 8), sfb2); double fb1 = mix(sfb1, -sfb2, 0.1); double fb2 = mix(sfb2, -sfb1, 0.1); double fb = -0.5;
diff @ 2018-03-18 17:45:47 +0000 diff --git a/src/go.c b/src/go.c index c142d61e..a61e3ecf 100644 --- a/src/go.c +++ b/src/go.c @@ -158,8 +158,8 @@ go(S *s, int channels, const float *in, float *out) double sfb2 = delread4(&s->tcomb2, 1000 / hz2); sfb1 = biquad(highpass(&s->hatfilt[0], 32 * 1000 / hz1, 8), sfb1); sfb2 = biquad(highpass(&s->hatfilt[1], 32 * 1000 / hz2, 8), sfb2); - double fb1 = mix(sfb1, -sfb2, 0.1); - double fb2 = mix(sfb2, -sfb1, 0.1); + double fb1 = mix(sfb1, -sfb2, 0.01); + double fb2 = mix(sfb2, -sfb1, 0.01); double fb = -0.5; fb = samphold(&s->tgate[2], fb, wrap(4 * p)); delwrite(&s->tcomb1, tanh(hat * noise() - fb * fb1));
diff @ 2018-03-18 17:45:58 +0000 diff --git a/src/go.c b/src/go.c index a61e3ecf..b99580f0 100644 --- a/src/go.c +++ b/src/go.c @@ -158,8 +158,8 @@ go(S *s, int channels, const float *in, float *out) double sfb2 = delread4(&s->tcomb2, 1000 / hz2); sfb1 = biquad(highpass(&s->hatfilt[0], 32 * 1000 / hz1, 8), sfb1); sfb2 = biquad(highpass(&s->hatfilt[1], 32 * 1000 / hz2, 8), sfb2); - double fb1 = mix(sfb1, -sfb2, 0.01); - double fb2 = mix(sfb2, -sfb1, 0.01); + double fb1 = mix(sfb1, -sfb2, 0.5); + double fb2 = mix(sfb2, -sfb1, 0.5); double fb = -0.5; fb = samphold(&s->tgate[2], fb, wrap(4 * p)); delwrite(&s->tcomb1, tanh(hat * noise() - fb * fb1));
diff @ 2018-03-18 17:46:00 +0000 diff --git a/src/go.c b/src/go.c index b99580f0..1c8e6d1f 100644 --- a/src/go.c +++ b/src/go.c @@ -158,8 +158,8 @@ go(S *s, int channels, const float *in, float *out) double sfb2 = delread4(&s->tcomb2, 1000 / hz2); sfb1 = biquad(highpass(&s->hatfilt[0], 32 * 1000 / hz1, 8), sfb1); sfb2 = biquad(highpass(&s->hatfilt[1], 32 * 1000 / hz2, 8), sfb2); - double fb1 = mix(sfb1, -sfb2, 0.5); - double fb2 = mix(sfb2, -sfb1, 0.5); + double fb1 = mix(sfb1, -sfb2, 0.25); + double fb2 = mix(sfb2, -sfb1, 0.25); double fb = -0.5; fb = samphold(&s->tgate[2], fb, wrap(4 * p)); delwrite(&s->tcomb1, tanh(hat * noise() - fb * fb1));
diff @ 2018-03-18 17:46:08 +0000 diff --git a/src/go.c b/src/go.c index 1c8e6d1f..eab8d872 100644 --- a/src/go.c +++ b/src/go.c @@ -164,7 +164,7 @@ go(S *s, int channels, const float *in, float *out) fb = samphold(&s->tgate[2], fb, wrap(4 * p)); delwrite(&s->tcomb1, tanh(hat * noise() - fb * fb1)); delwrite(&s->tcomb2, tanh(hat * noise() - fb * fb2)); - kick +=tanh(vcf(&s->tkick[0], kick, khz, 50)*50)*4; + kick +=tanh(vcf(&s->tkick[0], kick, khz, 5)*5)*4; kick += sin(vcf(&s->tkick[1], kick, khz * (wrap(8 * p) < 0.5 ? 3 : 2), 50)*50); kick += sin(vcf(&s->tkick[2], kick, khz*(3 + (((int)floor(8 * p) * 5)%8))-30, 500)*200) * sin(vcf(&s->tkick[3], kick, khz*(3 + ((int)floor(16 * p) % 8))+20, 500)*200);
diff @ 2018-03-18 17:46:14 +0000 diff --git a/src/go.c b/src/go.c index eab8d872..88d55bb3 100644 --- a/src/go.c +++ b/src/go.c @@ -165,7 +165,7 @@ go(S *s, int channels, const float *in, float *out) delwrite(&s->tcomb1, tanh(hat * noise() - fb * fb1)); delwrite(&s->tcomb2, tanh(hat * noise() - fb * fb2)); kick +=tanh(vcf(&s->tkick[0], kick, khz, 5)*5)*4; - kick += sin(vcf(&s->tkick[1], kick, khz * (wrap(8 * p) < 0.5 ? 3 : 2), 50)*50); + kick += sin(vcf(&s->tkick[1], kick, khz * (wrap(8 * p) < 0.5 ? 3 : 2), 5)*5); kick += sin(vcf(&s->tkick[2], kick, khz*(3 + (((int)floor(8 * p) * 5)%8))-30, 500)*200) * sin(vcf(&s->tkick[3], kick, khz*(3 + ((int)floor(16 * p) % 8))+20, 500)*200); tilex[0] = fb1;
diff @ 2018-03-18 17:46:19 +0000 diff --git a/src/go.c b/src/go.c index 88d55bb3..20437122 100644 --- a/src/go.c +++ b/src/go.c @@ -166,8 +166,8 @@ go(S *s, int channels, const float *in, float *out) delwrite(&s->tcomb2, tanh(hat * noise() - fb * fb2)); kick +=tanh(vcf(&s->tkick[0], kick, khz, 5)*5)*4; kick += sin(vcf(&s->tkick[1], kick, khz * (wrap(8 * p) < 0.5 ? 3 : 2), 5)*5); - kick += sin(vcf(&s->tkick[2], kick, khz*(3 + (((int)floor(8 * p) * 5)%8))-30, 500)*200) - * sin(vcf(&s->tkick[3], kick, khz*(3 + ((int)floor(16 * p) % 8))+20, 500)*200); + kick += sin(vcf(&s->tkick[2], kick, khz*(3 + (((int)floor(8 * p) * 5)%8))-30, 50)*20) + * sin(vcf(&s->tkick[3], kick, khz*(3 + ((int)floor(16 * p) % 8))+20, 50)*20); tilex[0] = fb1; tilex[1] = fb2; compress(tilex, &s->tcompress1, 5, 10, 25, 48, tilex);
diff @ 2018-03-18 17:46:32 +0000 diff --git a/src/go.c b/src/go.c index 20437122..311072dc 100644 --- a/src/go.c +++ b/src/go.c @@ -211,8 +211,8 @@ go(S *s, int channels, const float *in, float *out) hilbert(pb, &s->philbert[1], pb); pa[0] = wrap(atan2(pa[0], pa[1]) / twopi); pb[0] = wrap(atan2(pb[0], pb[1]) / twopi); - na = samphold(&s->psh[0], na, wrap(5 * pa[0])); - nb = samphold(&s->psh[1], nb, wrap(5 * pb[0])); + na += samphold(&s->psh[0], na, wrap(5 * pa[0])); + nb += samphold(&s->psh[1], nb, wrap(5 * pb[0])); pnoise[0] = na; pnoise[1] = nb; compress(pnoise, &s->pcompress, 5, 10, 25, 48, pnoise);
diff @ 2018-03-18 17:46:39 +0000 diff --git a/src/go.c b/src/go.c index 311072dc..e2d55e57 100644 --- a/src/go.c +++ b/src/go.c @@ -199,8 +199,8 @@ go(S *s, int channels, const float *in, float *out) double na = env * pink(&s->pink[0]); double nb = env * pink(&s->pink[1]); double q = 500; - na *= 1; - nb *= 1; + na *= 3; + nb *= 3; na = vcf(&s->pvcf[0], na * q, freq, q); nb = vcf(&s->pvcf[1], nb * q, freq, q); na = sin(na);
diff @ 2018-03-18 17:46:50 +0000 diff --git a/src/go.c b/src/go.c index e2d55e57..36e82087 100644 --- a/src/go.c +++ b/src/go.c @@ -119,7 +119,7 @@ go(S *s, int channels, const float *in, float *out) env = lop(&s->benv, 0, 15); double harmonic = 5 + clamp(N - zeroes - 3, 0, 20); freq = (n < 0xC001 ? 10 : 15) * samphold(&s->bsh, harmonic, 1 - trigger); - freq = biquad(lowpass(&s->ffilt, 12, 12), freq); + freq = biquad(lowpass(&s->ffilt, 24, 12), freq); } // env = 0.5; // freq = 50;
diff @ 2018-03-18 17:46:56 +0000 diff --git a/src/go.c b/src/go.c index 36e82087..e6385626 100644 --- a/src/go.c +++ b/src/go.c @@ -119,7 +119,7 @@ go(S *s, int channels, const float *in, float *out) env = lop(&s->benv, 0, 15); double harmonic = 5 + clamp(N - zeroes - 3, 0, 20); freq = (n < 0xC001 ? 10 : 15) * samphold(&s->bsh, harmonic, 1 - trigger); - freq = biquad(lowpass(&s->ffilt, 24, 12), freq); + freq = biquad(lowpass(&s->ffilt, 50, 12), freq); } // env = 0.5; // freq = 50;
diff @ 2018-03-18 17:47:06 +0000 diff --git a/src/go.c b/src/go.c index e6385626..deba5989 100644 --- a/src/go.c +++ b/src/go.c @@ -119,7 +119,7 @@ go(S *s, int channels, const float *in, float *out) env = lop(&s->benv, 0, 15); double harmonic = 5 + clamp(N - zeroes - 3, 0, 20); freq = (n < 0xC001 ? 10 : 15) * samphold(&s->bsh, harmonic, 1 - trigger); - freq = biquad(lowpass(&s->ffilt, 50, 12), freq); + freq = biquad(lowpass(&s->ffilt, 50, 50), freq); } // env = 0.5; // freq = 50;
diff @ 2018-03-18 17:47:47 +0000 diff --git a/src/go.c b/src/go.c index deba5989..768290e1 100644 --- a/src/go.c +++ b/src/go.c @@ -160,7 +160,7 @@ go(S *s, int channels, const float *in, float *out) sfb2 = biquad(highpass(&s->hatfilt[1], 32 * 1000 / hz2, 8), sfb2); double fb1 = mix(sfb1, -sfb2, 0.25); double fb2 = mix(sfb2, -sfb1, 0.25); - double fb = -0.5; + double fb = p; fb = samphold(&s->tgate[2], fb, wrap(4 * p)); delwrite(&s->tcomb1, tanh(hat * noise() - fb * fb1)); delwrite(&s->tcomb2, tanh(hat * noise() - fb * fb2));
diff @ 2018-03-18 17:47:50 +0000 diff --git a/src/go.c b/src/go.c index 768290e1..5b2e0a78 100644 --- a/src/go.c +++ b/src/go.c @@ -160,7 +160,7 @@ go(S *s, int channels, const float *in, float *out) sfb2 = biquad(highpass(&s->hatfilt[1], 32 * 1000 / hz2, 8), sfb2); double fb1 = mix(sfb1, -sfb2, 0.25); double fb2 = mix(sfb2, -sfb1, 0.25); - double fb = p; + double fb = -p; fb = samphold(&s->tgate[2], fb, wrap(4 * p)); delwrite(&s->tcomb1, tanh(hat * noise() - fb * fb1)); delwrite(&s->tcomb2, tanh(hat * noise() - fb * fb2));
diff @ 2018-03-18 17:48:12 +0000 diff --git a/src/go.c b/src/go.c index 5b2e0a78..46633418 100644 --- a/src/go.c +++ b/src/go.c @@ -160,7 +160,7 @@ go(S *s, int channels, const float *in, float *out) sfb2 = biquad(highpass(&s->hatfilt[1], 32 * 1000 / hz2, 8), sfb2); double fb1 = mix(sfb1, -sfb2, 0.25); double fb2 = mix(sfb2, -sfb1, 0.25); - double fb = -p; + double fb = -pow(p, 4); fb = samphold(&s->tgate[2], fb, wrap(4 * p)); delwrite(&s->tcomb1, tanh(hat * noise() - fb * fb1)); delwrite(&s->tcomb2, tanh(hat * noise() - fb * fb2));
diff @ 2018-03-18 17:48:21 +0000 diff --git a/src/go.c b/src/go.c index 46633418..43d2e507 100644 --- a/src/go.c +++ b/src/go.c @@ -160,7 +160,7 @@ go(S *s, int channels, const float *in, float *out) sfb2 = biquad(highpass(&s->hatfilt[1], 32 * 1000 / hz2, 8), sfb2); double fb1 = mix(sfb1, -sfb2, 0.25); double fb2 = mix(sfb2, -sfb1, 0.25); - double fb = -pow(p, 4); + double fb = -pow(wrap(p * 2), 4); fb = samphold(&s->tgate[2], fb, wrap(4 * p)); delwrite(&s->tcomb1, tanh(hat * noise() - fb * fb1)); delwrite(&s->tcomb2, tanh(hat * noise() - fb * fb2));
diff @ 2018-03-18 17:48:28 +0000 diff --git a/src/go.c b/src/go.c index 43d2e507..b71b82be 100644 --- a/src/go.c +++ b/src/go.c @@ -160,7 +160,7 @@ go(S *s, int channels, const float *in, float *out) sfb2 = biquad(highpass(&s->hatfilt[1], 32 * 1000 / hz2, 8), sfb2); double fb1 = mix(sfb1, -sfb2, 0.25); double fb2 = mix(sfb2, -sfb1, 0.25); - double fb = -pow(wrap(p * 2), 4); + double fb = -pow(wrap(p * 2), 0.25); fb = samphold(&s->tgate[2], fb, wrap(4 * p)); delwrite(&s->tcomb1, tanh(hat * noise() - fb * fb1)); delwrite(&s->tcomb2, tanh(hat * noise() - fb * fb2));
diff @ 2018-03-18 17:48:38 +0000 diff --git a/src/go.c b/src/go.c index b71b82be..f3be8f4f 100644 --- a/src/go.c +++ b/src/go.c @@ -161,7 +161,7 @@ go(S *s, int channels, const float *in, float *out) double fb1 = mix(sfb1, -sfb2, 0.25); double fb2 = mix(sfb2, -sfb1, 0.25); double fb = -pow(wrap(p * 2), 0.25); - fb = samphold(&s->tgate[2], fb, wrap(4 * p)); +// fb = samphold(&s->tgate[2], fb, wrap(4 * p)); delwrite(&s->tcomb1, tanh(hat * noise() - fb * fb1)); delwrite(&s->tcomb2, tanh(hat * noise() - fb * fb2)); kick +=tanh(vcf(&s->tkick[0], kick, khz, 5)*5)*4;
diff @ 2018-03-18 17:48:49 +0000 diff --git a/src/go.c b/src/go.c index f3be8f4f..f3c07835 100644 --- a/src/go.c +++ b/src/go.c @@ -160,7 +160,7 @@ go(S *s, int channels, const float *in, float *out) sfb2 = biquad(highpass(&s->hatfilt[1], 32 * 1000 / hz2, 8), sfb2); double fb1 = mix(sfb1, -sfb2, 0.25); double fb2 = mix(sfb2, -sfb1, 0.25); - double fb = -pow(wrap(p * 2), 0.25); + double fb = -pow(wrap(p * 2), 0.4); // fb = samphold(&s->tgate[2], fb, wrap(4 * p)); delwrite(&s->tcomb1, tanh(hat * noise() - fb * fb1)); delwrite(&s->tcomb2, tanh(hat * noise() - fb * fb2));
diff @ 2018-03-18 17:48:50 +0000 diff --git a/src/go.c b/src/go.c index f3c07835..5b716cdc 100644 --- a/src/go.c +++ b/src/go.c @@ -160,7 +160,7 @@ go(S *s, int channels, const float *in, float *out) sfb2 = biquad(highpass(&s->hatfilt[1], 32 * 1000 / hz2, 8), sfb2); double fb1 = mix(sfb1, -sfb2, 0.25); double fb2 = mix(sfb2, -sfb1, 0.25); - double fb = -pow(wrap(p * 2), 0.4); + double fb = -pow(wrap(p * 2), 4); // fb = samphold(&s->tgate[2], fb, wrap(4 * p)); delwrite(&s->tcomb1, tanh(hat * noise() - fb * fb1)); delwrite(&s->tcomb2, tanh(hat * noise() - fb * fb2));
diff @ 2018-03-18 17:48:55 +0000 diff --git a/src/go.c b/src/go.c index 5b716cdc..7525780c 100644 --- a/src/go.c +++ b/src/go.c @@ -160,7 +160,7 @@ go(S *s, int channels, const float *in, float *out) sfb2 = biquad(highpass(&s->hatfilt[1], 32 * 1000 / hz2, 8), sfb2); double fb1 = mix(sfb1, -sfb2, 0.25); double fb2 = mix(sfb2, -sfb1, 0.25); - double fb = -pow(wrap(p * 2), 4); + double fb = 1-pow(wrap(p * 2), 4); // fb = samphold(&s->tgate[2], fb, wrap(4 * p)); delwrite(&s->tcomb1, tanh(hat * noise() - fb * fb1)); delwrite(&s->tcomb2, tanh(hat * noise() - fb * fb2));
diff @ 2018-03-18 17:49:06 +0000 diff --git a/src/go.c b/src/go.c index 7525780c..9ffc055b 100644 --- a/src/go.c +++ b/src/go.c @@ -174,7 +174,7 @@ go(S *s, int channels, const float *in, float *out) double hgain = 4; tilex[0] *= hgain; tilex[1] *= hgain; - double kgain = 1; + double kgain = 0; kgain = samphold(&s->tgate[0], kgain, p); tilex[0] += kgain * kick; tilex[1] += kgain * kick;
diff @ 2018-03-18 17:49:24 +0000 diff --git a/src/go.c b/src/go.c index 9ffc055b..5b5eb150 100644 --- a/src/go.c +++ b/src/go.c @@ -245,8 +245,8 @@ go(S *s, int channels, const float *in, float *out) double er = delread4(&s->edelay2, rdelms + si); double 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.1, pow(wrap(8 * p), 0.25), 0)); + es[1] = mix(mixdown[1], es[1], mix(0.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-03-18 17:49:31 +0000 diff --git a/src/go.c b/src/go.c index 5b5eb150..c803e330 100644 --- a/src/go.c +++ b/src/go.c @@ -245,8 +245,8 @@ go(S *s, int channels, const float *in, float *out) double er = delread4(&s->edelay2, rdelms + si); double 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.1, pow(wrap(8 * p), 0.25), 0)); - es[1] = mix(mixdown[1], es[1], mix(0.1, pow(wrap(8 * p), 0.25), 0)); + es[0] = mix(mixdown[0], es[0], mix(0.2, pow(wrap(8 * p), 0.25), 0)); + es[1] = mix(mixdown[1], es[1], mix(0.2, 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-03-18 17:49:37 +0000 diff --git a/src/go.c b/src/go.c index c803e330..a9b7936b 100644 --- a/src/go.c +++ b/src/go.c @@ -245,8 +245,8 @@ go(S *s, int channels, const float *in, float *out) double er = delread4(&s->edelay2, rdelms + si); double 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.2, pow(wrap(8 * p), 0.25), 0)); - es[1] = mix(mixdown[1], es[1], mix(0.2, pow(wrap(8 * p), 0.25), 0)); + es[0] = mix(mixdown[0], es[0], mix(0.25, pow(wrap(8 * p), 0.25), 0)); + es[1] = mix(mixdown[1], es[1], mix(0.25, 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-03-18 17:49:45 +0000 diff --git a/src/go.c b/src/go.c index a9b7936b..72d9ef96 100644 --- a/src/go.c +++ b/src/go.c @@ -245,8 +245,8 @@ go(S *s, int channels, const float *in, float *out) double er = delread4(&s->edelay2, rdelms + si); double 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.25, pow(wrap(8 * p), 0.25), 0)); - es[1] = mix(mixdown[1], es[1], mix(0.25, 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-03-18 17:49:52 +0000 diff --git a/src/go.c b/src/go.c index 72d9ef96..6900d73d 100644 --- a/src/go.c +++ b/src/go.c @@ -232,7 +232,7 @@ go(S *s, int channels, const float *in, float *out) } s->edelay1.length = 4 * SR; s->edelay2.length = 4 * SR; - double hz = 0 * bpm / 60; + double hz = 0.125 * bpm / 60; double p = phasor(&s->ephase, hz); double t = twopi * p; double co = cos(t);
diff @ 2018-03-18 17:50:13 +0000 diff --git a/src/go.c b/src/go.c index 6900d73d..26378c37 100644 --- a/src/go.c +++ b/src/go.c @@ -237,7 +237,7 @@ go(S *s, int channels, const float *in, float *out) double t = twopi * p; double co = cos(t); double si = sin(t); - double ldelms = 60000 / bpm * (p < 0.75 ? 1 : 2); + double ldelms = 60000 / bpm * (p < 0.75 ? 1 : 0.125); double rdelms = ldelms; ldelms = lop(&s->elop[0], ldelms, 5); rdelms = lop(&s->elop[1], rdelms, 5);
diff @ 2018-03-18 17:50:28 +0000 diff --git a/src/go.c b/src/go.c index 26378c37..2c3eca9a 100644 --- a/src/go.c +++ b/src/go.c @@ -245,8 +245,8 @@ go(S *s, int channels, const float *in, float *out) double er = delread4(&s->edelay2, rdelms + si); double 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-03-18 17:50:52 +0000 diff --git a/src/go.c b/src/go.c index 2c3eca9a..c4933892 100644 --- a/src/go.c +++ b/src/go.c @@ -237,7 +237,7 @@ go(S *s, int channels, const float *in, float *out) double t = twopi * p; double co = cos(t); double si = sin(t); - double ldelms = 60000 / bpm * (p < 0.75 ? 1 : 0.125); + double ldelms = 60000 / bpm * (p < 0.75 ? 1./(1 << ((rand() % 8) + 1) : 0.125); double rdelms = ldelms; ldelms = lop(&s->elop[0], ldelms, 5); rdelms = lop(&s->elop[1], rdelms, 5);
diff @ 2018-03-18 17:50:57 +0000 diff --git a/src/go.c b/src/go.c index c4933892..cdb992fc 100644 --- a/src/go.c +++ b/src/go.c @@ -237,7 +237,7 @@ go(S *s, int channels, const float *in, float *out) double t = twopi * p; double co = cos(t); double si = sin(t); - double ldelms = 60000 / bpm * (p < 0.75 ? 1./(1 << ((rand() % 8) + 1) : 0.125); + double ldelms = 60000 / bpm * (p < 0.75 ? 1./(1 << ((rand() % 8) + 1)) : 0.125); double rdelms = ldelms; ldelms = lop(&s->elop[0], ldelms, 5); rdelms = lop(&s->elop[1], rdelms, 5);
diff @ 2018-03-18 17:51:05 +0000 diff --git a/src/go.c b/src/go.c index cdb992fc..9dcf6408 100644 --- a/src/go.c +++ b/src/go.c @@ -237,7 +237,7 @@ go(S *s, int channels, const float *in, float *out) double t = twopi * p; double co = cos(t); double si = sin(t); - double ldelms = 60000 / bpm * (p < 0.75 ? 1./(1 << ((rand() % 8) + 1)) : 0.125); + double ldelms = 60000 / bpm * (p < 0.75 ? 0.125./(1 << ((rand() % 8) + 1)) : 0.125); double rdelms = ldelms; ldelms = lop(&s->elop[0], ldelms, 5); rdelms = lop(&s->elop[1], rdelms, 5);
diff @ 2018-03-18 17:51:07 +0000 diff --git a/src/go.c b/src/go.c index 9dcf6408..3e24ef4e 100644 --- a/src/go.c +++ b/src/go.c @@ -237,7 +237,7 @@ go(S *s, int channels, const float *in, float *out) double t = twopi * p; double co = cos(t); double si = sin(t); - double ldelms = 60000 / bpm * (p < 0.75 ? 0.125./(1 << ((rand() % 8) + 1)) : 0.125); + double ldelms = 60000 / bpm * (p < 0.75 ? 0.125/(1 << ((rand() % 8) + 1)) : 0.125); double rdelms = ldelms; ldelms = lop(&s->elop[0], ldelms, 5); rdelms = lop(&s->elop[1], rdelms, 5);
diff @ 2018-03-18 17:51:37 +0000 diff --git a/src/go.c b/src/go.c index 3e24ef4e..812a2555 100644 --- a/src/go.c +++ b/src/go.c @@ -90,6 +90,8 @@ typedef struct BIQUAD ffilt; BIQUAD hatfilt[2]; + SAMPHOLD esh[4]; + } S; // =====================================================================
diff @ 2018-03-18 17:51:59 +0000 diff --git a/src/go.c b/src/go.c index 812a2555..50c55f43 100644 --- a/src/go.c +++ b/src/go.c @@ -239,7 +239,7 @@ go(S *s, int channels, const float *in, float *out) double t = twopi * p; double co = cos(t); double si = sin(t); - double ldelms = 60000 / bpm * (p < 0.75 ? 0.125/(1 << ((rand() % 8) + 1)) : 0.125); + double ldelms = 60000 / bpm * (p < 0.75 ? samphold(&s->esh[0], 0.125/(1 << ((rand() % 8) + 1)), p) : 0.125); double rdelms = ldelms; ldelms = lop(&s->elop[0], ldelms, 5); rdelms = lop(&s->elop[1], rdelms, 5);
diff @ 2018-03-18 17:52:16 +0000 diff --git a/src/go.c b/src/go.c index 50c55f43..5dd9d712 100644 --- a/src/go.c +++ b/src/go.c @@ -247,8 +247,8 @@ go(S *s, int channels, const float *in, float *out) double er = delread4(&s->edelay2, rdelms + si); double 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(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]); delwrite(&s->edelay2, es[1]);
diff @ 2018-03-18 17:52:26 +0000 diff --git a/src/go.c b/src/go.c index 5dd9d712..390e1462 100644 --- a/src/go.c +++ b/src/go.c @@ -239,7 +239,7 @@ go(S *s, int channels, const float *in, float *out) double t = twopi * p; double co = cos(t); double si = sin(t); - double ldelms = 60000 / bpm * (p < 0.75 ? samphold(&s->esh[0], 0.125/(1 << ((rand() % 8) + 1)), p) : 0.125); + double ldelms = 60000 / bpm * (p < 0.75 ? samphold(&s->esh[0], 1.0/(1 << ((rand() % 8) + 1)), p) : 0.125); double rdelms = ldelms; ldelms = lop(&s->elop[0], ldelms, 5); rdelms = lop(&s->elop[1], rdelms, 5);
diff @ 2018-03-18 17:53:05 +0000 diff --git a/src/go.c b/src/go.c index 390e1462..e8e2caa2 100644 --- a/src/go.c +++ b/src/go.c @@ -239,7 +239,7 @@ go(S *s, int channels, const float *in, float *out) double t = twopi * p; double co = cos(t); double si = sin(t); - double ldelms = 60000 / bpm * (p < 0.75 ? samphold(&s->esh[0], 1.0/(1 << ((rand() % 8) + 1)), p) : 0.125); + double ldelms = 60000 / bpm * (p < 0.75 ? samphold(&s->esh[0], 1.0/(1 << ((rand() % 8) + 1)), p) : samphold(&s->esh[1], 0.125 * (1 + (rand() % 8)), p); double rdelms = ldelms; ldelms = lop(&s->elop[0], ldelms, 5); rdelms = lop(&s->elop[1], rdelms, 5);
diff @ 2018-03-18 17:53:06 +0000 diff --git a/src/go.c b/src/go.c index e8e2caa2..c061f1b1 100644 --- a/src/go.c +++ b/src/go.c @@ -239,7 +239,7 @@ go(S *s, int channels, const float *in, float *out) double t = twopi * p; double co = cos(t); double si = sin(t); - double ldelms = 60000 / bpm * (p < 0.75 ? samphold(&s->esh[0], 1.0/(1 << ((rand() % 8) + 1)), p) : samphold(&s->esh[1], 0.125 * (1 + (rand() % 8)), p); + double ldelms = 60000 / bpm * (p < 0.75 ? samphold(&s->esh[0], 1.0/(1 << ((rand() % 8) + 1)), p) : samphold(&s->esh[1], 0.125 * (1 + (rand() % 8)), p)); double rdelms = ldelms; ldelms = lop(&s->elop[0], ldelms, 5); rdelms = lop(&s->elop[1], rdelms, 5);
diff @ 2018-03-18 17:53:33 +0000 diff --git a/src/go.c b/src/go.c index c061f1b1..9325a38c 100644 --- a/src/go.c +++ b/src/go.c @@ -239,8 +239,12 @@ go(S *s, int channels, const float *in, float *out) double t = twopi * p; double co = cos(t); double si = sin(t); - double ldelms = 60000 / bpm * (p < 0.75 ? samphold(&s->esh[0], 1.0/(1 << ((rand() % 8) + 1)), p) : samphold(&s->esh[1], 0.125 * (1 + (rand() % 8)), p)); - double rdelms = ldelms; + double ldelms = 60000 / bpm * + (p < 0.75 ? samphold(&s->esh[0], 1.0/(1 << ((rand() % 8) + 1)), p) + : samphold(&s->esh[1], 0.125 * (1 + (rand() % 8)), p)); + double rdelms = 60000 / bpm * + (p < 0.75 ? samphold(&s->esh[2], 1.0/(1 << ((rand() % 8) + 1)), p) + : samphold(&s->esh[3], 0.125 * (1 + (rand() % 8)), p)); ldelms = lop(&s->elop[0], ldelms, 5); rdelms = lop(&s->elop[1], rdelms, 5); double el = delread4(&s->edelay1, ldelms + co);
diff @ 2018-03-18 17:53:47 +0000 diff --git a/src/go.c b/src/go.c index 9325a38c..818d2092 100644 --- a/src/go.c +++ b/src/go.c @@ -234,7 +234,7 @@ go(S *s, int channels, const float *in, float *out) } s->edelay1.length = 4 * SR; s->edelay2.length = 4 * SR; - double hz = 0.125 * bpm / 60; + double hz = 0.25 * bpm / 60; double p = phasor(&s->ephase, hz); double t = twopi * p; double co = cos(t);
diff @ 2018-03-18 17:54:02 +0000 diff --git a/src/go.c b/src/go.c index 818d2092..f62525fc 100644 --- a/src/go.c +++ b/src/go.c @@ -251,8 +251,8 @@ go(S *s, int channels, const float *in, float *out) double er = delread4(&s->edelay2, rdelms + si); double 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(1, pow(wrap(8 * p), 0.25), 0.25)); + es[1] = mix(mixdown[1], es[1], mix(1, pow(wrap(8 * p), 0.25), 0.25)); compress(es, &s->ecompress2, 5, 10, 25, 48, es); delwrite(&s->edelay1, es[0]); delwrite(&s->edelay2, es[1]);
diff @ 2018-03-18 17:54:09 +0000 diff --git a/src/go.c b/src/go.c index f62525fc..9fab5da3 100644 --- a/src/go.c +++ b/src/go.c @@ -251,8 +251,8 @@ go(S *s, int channels, const float *in, float *out) double er = delread4(&s->edelay2, rdelms + si); double 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.25)); - es[1] = mix(mixdown[1], es[1], mix(1, pow(wrap(8 * p), 0.25), 0.25)); + es[0] = mix(mixdown[0], es[0], mix(1, pow(wrap(8 * p), 0.25), 0.5)); + es[1] = mix(mixdown[1], es[1], mix(1, pow(wrap(8 * p), 0.25), 0.5)); compress(es, &s->ecompress2, 5, 10, 25, 48, es); delwrite(&s->edelay1, es[0]); delwrite(&s->edelay2, es[1]);
diff @ 2018-03-18 17:54:26 +0000 diff --git a/src/go.c b/src/go.c index 9fab5da3..9223e511 100644 --- a/src/go.c +++ b/src/go.c @@ -213,8 +213,8 @@ go(S *s, int channels, const float *in, float *out) hilbert(pb, &s->philbert[1], pb); pa[0] = wrap(atan2(pa[0], pa[1]) / twopi); pb[0] = wrap(atan2(pb[0], pb[1]) / twopi); - na += samphold(&s->psh[0], na, wrap(5 * pa[0])); - nb += samphold(&s->psh[1], nb, wrap(5 * pb[0])); + na = samphold(&s->psh[0], na, wrap(5 * pa[0])); + nb = samphold(&s->psh[1], nb, wrap(5 * pb[0])); pnoise[0] = na; pnoise[1] = nb; compress(pnoise, &s->pcompress, 5, 10, 25, 48, pnoise);
diff @ 2018-03-18 17:54:30 +0000 diff --git a/src/go.c b/src/go.c index 9223e511..a992e52f 100644 --- a/src/go.c +++ b/src/go.c @@ -200,7 +200,7 @@ go(S *s, int channels, const float *in, float *out) } double na = env * pink(&s->pink[0]); double nb = env * pink(&s->pink[1]); - double q = 500; + double q = 5000; na *= 3; nb *= 3; na = vcf(&s->pvcf[0], na * q, freq, q);
diff @ 2018-03-18 17:54:41 +0000 diff --git a/src/go.c b/src/go.c index a992e52f..50d302f6 100644 --- a/src/go.c +++ b/src/go.c @@ -158,8 +158,8 @@ go(S *s, int channels, const float *in, float *out) double hz2 = khz * floor(pow(4, wrap(4 * p + 0.5))) - 1; double sfb1 = delread4(&s->tcomb1, 1000 / hz1); double sfb2 = delread4(&s->tcomb2, 1000 / hz2); - sfb1 = biquad(highpass(&s->hatfilt[0], 32 * 1000 / hz1, 8), sfb1); - sfb2 = biquad(highpass(&s->hatfilt[1], 32 * 1000 / hz2, 8), sfb2); + sfb1 = biquad(highpass(&s->hatfilt[0], 32 * 1000 / hz1, 16), sfb1); + sfb2 = biquad(highpass(&s->hatfilt[1], 32 * 1000 / hz2, 16), sfb2); double fb1 = mix(sfb1, -sfb2, 0.25); double fb2 = mix(sfb2, -sfb1, 0.25); double fb = 1-pow(wrap(p * 2), 4);
diff @ 2018-03-18 17:55:02 +0000 diff --git a/src/go.c b/src/go.c index 50d302f6..75290080 100644 --- a/src/go.c +++ b/src/go.c @@ -128,6 +128,7 @@ go(S *s, int channels, const float *in, float *out) // =================================================================== // = 3 = total intraliminal extraction + double kick; double tilex[2] = { 0, 0 }; { if (phase_reset) @@ -136,7 +137,7 @@ go(S *s, int channels, const float *in, float *out) s->ttempo = SR * 1.0 / (5 << 16); } double p = phasor(&s->tphase, s->ttempo); - double kick = 1 - wrap(8 * p); + kick = 1 - wrap(8 * p); kick *= kick; kick *= kick; kick *= kick;
diff @ 2018-03-18 17:55:14 +0000 diff --git a/src/go.c b/src/go.c index 75290080..da058072 100644 --- a/src/go.c +++ b/src/go.c @@ -257,8 +257,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] = es[0] + kick; + mixdown[1] = es[1] + kick; } // ===================================================================
diff @ 2018-03-18 17:55:32 +0000 diff --git a/src/go.c b/src/go.c index da058072..2fc8384e 100644 --- a/src/go.c +++ b/src/go.c @@ -142,8 +142,9 @@ go(S *s, int channels, const float *in, float *out) kick *= kick; kick *= kick; kick *= kick; + kick *= kick; double kickenv = kick; - kick *= 16; + kick *= 8; kick = sin(twopi * kick); kick *= 1 + kickenv; kick = tanh(kick);
diff @ 2018-03-18 17:55:52 +0000 diff --git a/src/go.c b/src/go.c index 2fc8384e..70130758 100644 --- a/src/go.c +++ b/src/go.c @@ -160,8 +160,8 @@ go(S *s, int channels, const float *in, float *out) double hz2 = khz * floor(pow(4, wrap(4 * p + 0.5))) - 1; double sfb1 = delread4(&s->tcomb1, 1000 / hz1); double sfb2 = delread4(&s->tcomb2, 1000 / hz2); - sfb1 = biquad(highpass(&s->hatfilt[0], 32 * 1000 / hz1, 16), sfb1); - sfb2 = biquad(highpass(&s->hatfilt[1], 32 * 1000 / hz2, 16), sfb2); + sfb1 = biquad(highpass(&s->hatfilt[0], 32 * 1000 / hz1, flatq), sfb1); + sfb2 = biquad(highpass(&s->hatfilt[1], 32 * 1000 / hz2, flatq), sfb2); double fb1 = mix(sfb1, -sfb2, 0.25); double fb2 = mix(sfb2, -sfb1, 0.25); double fb = 1-pow(wrap(p * 2), 4);
diff @ 2018-03-18 17:56:23 +0000 diff --git a/src/go.c b/src/go.c index 70130758..55ed0768 100644 --- a/src/go.c +++ b/src/go.c @@ -129,6 +129,7 @@ go(S *s, int channels, const float *in, float *out) // =================================================================== // = 3 = total intraliminal extraction double kick; + double hat; double tilex[2] = { 0, 0 }; { if (phase_reset) @@ -148,7 +149,7 @@ go(S *s, int channels, const float *in, float *out) kick = sin(twopi * kick); kick *= 1 + kickenv; kick = tanh(kick); - double hat = 1 - wrap(8 * p + 0.5); + hat = 1 - wrap(8 * p + 0.5); hat *= hat; hat *= hat; hat *= hat; @@ -256,8 +257,8 @@ go(S *s, int channels, const float *in, float *out) es[0] = mix(mixdown[0], es[0], mix(1, pow(wrap(8 * p), 0.25), 0.5)); es[1] = mix(mixdown[1], es[1], mix(1, pow(wrap(8 * p), 0.25), 0.5)); compress(es, &s->ecompress2, 5, 10, 25, 48, es); - delwrite(&s->edelay1, es[0]); - delwrite(&s->edelay2, es[1]); + delwrite(&s->edelay1, es[0] + hat * noise()); + delwrite(&s->edelay2, es[1] + hat * noise()); mixdown[0] = es[0] + kick; mixdown[1] = es[1] + kick; }
diff @ 2018-03-18 17:56:34 +0000 diff --git a/src/go.c b/src/go.c index 55ed0768..44f6378a 100644 --- a/src/go.c +++ b/src/go.c @@ -254,8 +254,8 @@ go(S *s, int channels, const float *in, float *out) double er = delread4(&s->edelay2, rdelms + si); double 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.5)); - es[1] = mix(mixdown[1], es[1], mix(1, pow(wrap(8 * p), 0.25), 0.5)); + es[0] = mix(mixdown[0], es[0], mix(1, pow(wrap(8 * p), 0.25), 1)); + es[1] = mix(mixdown[1], es[1], mix(1, pow(wrap(8 * p), 0.25), 1)); compress(es, &s->ecompress2, 5, 10, 25, 48, es); delwrite(&s->edelay1, es[0] + hat * noise()); delwrite(&s->edelay2, es[1] + hat * noise());
diff @ 2018-03-18 17:56:58 +0000 diff --git a/src/go.c b/src/go.c index 44f6378a..0b977b4b 100644 --- a/src/go.c +++ b/src/go.c @@ -237,7 +237,7 @@ go(S *s, int channels, const float *in, float *out) } s->edelay1.length = 4 * SR; s->edelay2.length = 4 * SR; - double hz = 0.25 * bpm / 60; + double hz = 0.5 * bpm / 60; double p = phasor(&s->ephase, hz); double t = twopi * p; double co = cos(t);
diff @ 2018-03-18 17:57:04 +0000 diff --git a/src/go.c b/src/go.c index 0b977b4b..1713e7e2 100644 --- a/src/go.c +++ b/src/go.c @@ -237,7 +237,7 @@ go(S *s, int channels, const float *in, float *out) } s->edelay1.length = 4 * SR; s->edelay2.length = 4 * SR; - double hz = 0.5 * bpm / 60; + double hz = bpm / 60; double p = phasor(&s->ephase, hz); double t = twopi * p; double co = cos(t);
diff @ 2018-03-18 17:57:16 +0000 diff --git a/src/go.c b/src/go.c index 1713e7e2..590e1162 100644 --- a/src/go.c +++ b/src/go.c @@ -135,7 +135,7 @@ go(S *s, int channels, const float *in, float *out) if (phase_reset) { // s->tphase.phase = 0; - s->ttempo = SR * 1.0 / (5 << 16); + s->ttempo = SR * 1.0 / (7 << 16); } double p = phasor(&s->tphase, s->ttempo); kick = 1 - wrap(8 * p);
diff @ 2018-03-18 17:57:24 +0000 diff --git a/src/go.c b/src/go.c index 590e1162..f85c501a 100644 --- a/src/go.c +++ b/src/go.c @@ -100,7 +100,7 @@ int go(S *s, int channels, const float *in, float *out) { double mixdown[2] = { 0, 0 }; - double bpm = 60 * SR * 16.0 / (5 << 16); + double bpm = 60 * SR * 16.0 / (7 << 16); int time = s->time++; int phase_reset = ((time / 5) & ((1 << 16) - 1)) == 0;
diff @ 2018-03-18 17:58:01 +0000 diff --git a/src/go.c b/src/go.c index f85c501a..6a9e9791 100644 --- a/src/go.c +++ b/src/go.c @@ -91,7 +91,7 @@ typedef struct BIQUAD hatfilt[2]; SAMPHOLD esh[4]; - + double M; } S; // ===================================================================== @@ -99,8 +99,9 @@ typedef struct int go(S *s, int channels, const float *in, float *out) { + double M = s->M = 1; double mixdown[2] = { 0, 0 }; - double bpm = 60 * SR * 16.0 / (7 << 16); + double bpm = 60 * SR * 16.0 / (7 << 16) / M; int time = s->time++; int phase_reset = ((time / 5) & ((1 << 16) - 1)) == 0;
diff @ 2018-03-18 17:58:20 +0000 diff --git a/src/go.c b/src/go.c index 6a9e9791..6f5ba3df 100644 --- a/src/go.c +++ b/src/go.c @@ -110,7 +110,7 @@ go(S *s, int channels, const float *in, float *out) double env; double freq; { - int N = 16; + int N = 1; int n = (time / 5) & ((1 << N) - 1); double zeroes = clamp(count_trailing_zeroes(n), 0, N); double probability = pow(0.55, N - zeroes);
diff @ 2018-03-18 17:58:34 +0000 diff --git a/src/go.c b/src/go.c index 6f5ba3df..e06e169f 100644 --- a/src/go.c +++ b/src/go.c @@ -99,7 +99,7 @@ typedef struct int go(S *s, int channels, const float *in, float *out) { - double M = s->M = 1; + double M = s->M *= 1.000001; double mixdown[2] = { 0, 0 }; double bpm = 60 * SR * 16.0 / (7 << 16) / M; int time = s->time++;
diff @ 2018-03-18 17:58:52 +0000 diff --git a/src/go.c b/src/go.c index e06e169f..a2e43970 100644 --- a/src/go.c +++ b/src/go.c @@ -260,14 +260,14 @@ go(S *s, int channels, const float *in, float *out) compress(es, &s->ecompress2, 5, 10, 25, 48, es); delwrite(&s->edelay1, es[0] + hat * noise()); delwrite(&s->edelay2, es[1] + hat * noise()); - mixdown[0] = es[0] + kick; - mixdown[1] = es[1] + kick; + mixdown[0] = kick; + mixdown[1] = kick; } // =================================================================== // = 0 = mixdown compress(mixdown, &s->mixdown, 5, 10, 25, 48, mixdown); - double volume = 1; + double volume = ; mixdown[0] *= volume; mixdown[1] *= volume; for (int c = 0; c < channels && c < 2; ++c)
diff @ 2018-03-18 17:58:54 +0000 diff --git a/src/go.c b/src/go.c index a2e43970..165280f0 100644 --- a/src/go.c +++ b/src/go.c @@ -267,7 +267,7 @@ go(S *s, int channels, const float *in, float *out) // =================================================================== // = 0 = mixdown compress(mixdown, &s->mixdown, 5, 10, 25, 48, mixdown); - double volume = ; + double volume = 1; mixdown[0] *= volume; mixdown[1] *= volume; for (int c = 0; c < channels && c < 2; ++c)