a C audio live-coding skeleton
diff @ 2019-01-27 15:26:25 +0000 diff --git a/client/go.c b/client/go.c index 0955f5c39..8c9524d49 100644 --- a/client/go.c +++ b/client/go.c @@ -33,7 +33,7 @@ ///========================================================================== ///========================================================================== -#define RESET 1 +#define RESET 0 typedef float sample; #define SR 48000
diff @ 2019-01-27 15:26:38 +0000 diff --git a/client/go.c b/client/go.c index 8c9524d49..f6efe22d9 100644 --- a/client/go.c +++ b/client/go.c @@ -125,9 +125,9 @@ go(S *s, int channels, const float *in, float *out) // pitchshift feedback for (int c = 0; c < 2; ++c) { sample down = pitchshift(&s->so2.shift[2 * c + 0], 2, 100, - lop(&s->so2.lag[0], -12, 1e-3), feedback[c]); + lop(&s->so2.lag[0], -12, 1e-4), feedback[c]); sample up = pitchshift(&s->so2.shift[2 * c + 1], 2, 100, - lop(&s->so2.lag[0], 19, 1e-3), down); + lop(&s->so2.lag[0], 19, 1e-4), down); feedback[c] = feedback[c] - down - up; } // compress feedback
diff @ 2019-01-27 15:27:56 +0000 diff --git a/client/go.h b/client/go.h index 728ba7a1a..1558ab23f 100644 --- a/client/go.h +++ b/client/go.h @@ -55,7 +55,9 @@ typedef struct REVERB cverb; LOP clop; // = append only data structure ====================================== - +#define OCTAVES 10 + BIQUAD multiband[OCTAVES][2]; + COMPRESS multicomp[OCTAVES]; } S; #endif
diff @ 2019-01-27 15:27:57 +0000 diff --git a/client/go.c b/client/go.c index f6efe22d9..b9a679ab6 100644 --- a/client/go.c +++ b/client/go.c @@ -130,6 +130,9 @@ go(S *s, int channels, const float *in, float *out) lop(&s->so2.lag[0], 19, 1e-4), down); feedback[c] = feedback[c] - down - up; } + // multiband compressor + sample input[2] = { feedback[0], feedback[1] }; + // compress feedback compress(so2, &s->so2.compress, 5, 10, 25, 48, feedback); sample gain = 1;
diff @ 2019-01-27 15:28:26 +0000 diff --git a/client/go.c b/client/go.c index b9a679ab6..e9e2a8d47 100644 --- a/client/go.c +++ b/client/go.c @@ -132,6 +132,9 @@ go(S *s, int channels, const float *in, float *out) } // multiband compressor sample input[2] = { feedback[0], feedback[1] }; + for (int o = 0; o < OCTAVES; ++o) + { + } // compress feedback compress(so2, &s->so2.compress, 5, 10, 25, 48, feedback); @@ -140,7 +143,7 @@ go(S *s, int channels, const float *in, float *out) so2[1] *= gain; // write to delay lines for (int c = 0; c < 2; ++c) { - so2echo(&s->so2.echo[c], 20, 500, + so2echo(&s->so2.echo[c], 10, 500, tanh(so2[c] + RESET*impulse[c])); } mixdown[0] += so2[0];
diff @ 2019-01-27 15:29:29 +0000 diff --git a/client/go.c b/client/go.c index e9e2a8d47..88ea3d10e 100644 --- a/client/go.c +++ b/client/go.c @@ -134,6 +134,10 @@ go(S *s, int channels, const float *in, float *out) sample input[2] = { feedback[0], feedback[1] }; for (int o = 0; o < OCTAVES; ++o) { + sample band[2]; + for (int c = 0; c < 2; ++c) + { + band[c] = biquad(bandpass(&s->multiband[o][c], 20 * pow(2, o), flatq)); } // compress feedback
diff @ 2019-01-27 15:29:30 +0000 diff --git a/client/go.c b/client/go.c index 88ea3d10e..a93c9d63d 100644 --- a/client/go.c +++ b/client/go.c @@ -138,6 +138,7 @@ go(S *s, int channels, const float *in, float *out) for (int c = 0; c < 2; ++c) { band[c] = biquad(bandpass(&s->multiband[o][c], 20 * pow(2, o), flatq)); + } } // compress feedback
diff @ 2019-01-27 15:29:40 +0000 diff --git a/client/go.c b/client/go.c index a93c9d63d..1322c4b4b 100644 --- a/client/go.c +++ b/client/go.c @@ -137,7 +137,7 @@ go(S *s, int channels, const float *in, float *out) sample band[2]; for (int c = 0; c < 2; ++c) { - band[c] = biquad(bandpass(&s->multiband[o][c], 20 * pow(2, o), flatq)); + band[c] = biquad(bandpass(&s->multiband[o][c], 20 * pow(2, o), flatq), input[c]); } }
diff @ 2019-01-27 15:30:01 +0000 diff --git a/client/go.c b/client/go.c index 1322c4b4b..33b28f4b7 100644 --- a/client/go.c +++ b/client/go.c @@ -139,6 +139,7 @@ go(S *s, int channels, const float *in, float *out) { band[c] = biquad(bandpass(&s->multiband[o][c], 20 * pow(2, o), flatq), input[c]); } + compress(band, &s->multicomp[o], 5, 10, 25, 48, band); } // compress feedback
diff @ 2019-01-27 15:30:26 +0000 diff --git a/client/go.c b/client/go.c index 33b28f4b7..a5c3f2b59 100644 --- a/client/go.c +++ b/client/go.c @@ -140,6 +140,8 @@ go(S *s, int channels, const float *in, float *out) band[c] = biquad(bandpass(&s->multiband[o][c], 20 * pow(2, o), flatq), input[c]); } compress(band, &s->multicomp[o], 5, 10, 25, 48, band); + feedback[0] += band[0]; + feedback[1] += band[1]' } // compress feedback
diff @ 2019-01-27 15:30:28 +0000 diff --git a/client/go.c b/client/go.c index a5c3f2b59..8f6bd5de3 100644 --- a/client/go.c +++ b/client/go.c @@ -141,7 +141,7 @@ go(S *s, int channels, const float *in, float *out) } compress(band, &s->multicomp[o], 5, 10, 25, 48, band); feedback[0] += band[0]; - feedback[1] += band[1]' + feedback[1] += band[1]; } // compress feedback
diff @ 2019-01-27 15:30:42 +0000 diff --git a/client/go.c b/client/go.c index 8f6bd5de3..69a8340d5 100644 --- a/client/go.c +++ b/client/go.c @@ -127,9 +127,10 @@ go(S *s, int channels, const float *in, float *out) sample down = pitchshift(&s->so2.shift[2 * c + 0], 2, 100, lop(&s->so2.lag[0], -12, 1e-4), feedback[c]); sample up = pitchshift(&s->so2.shift[2 * c + 1], 2, 100, - lop(&s->so2.lag[0], 19, 1e-4), down); + lop(&s->so2.lag[0], 12, 1e-4), down); feedback[c] = feedback[c] - down - up; } + // multiband compressor sample input[2] = { feedback[0], feedback[1] }; for (int o = 0; o < OCTAVES; ++o)
diff @ 2019-01-27 15:30:45 +0000 diff --git a/client/go.c b/client/go.c index 69a8340d5..95a84ff8f 100644 --- a/client/go.c +++ b/client/go.c @@ -127,7 +127,7 @@ go(S *s, int channels, const float *in, float *out) sample down = pitchshift(&s->so2.shift[2 * c + 0], 2, 100, lop(&s->so2.lag[0], -12, 1e-4), feedback[c]); sample up = pitchshift(&s->so2.shift[2 * c + 1], 2, 100, - lop(&s->so2.lag[0], 12, 1e-4), down); + lop(&s->so2.lag[0], 12, 1e-3), down); feedback[c] = feedback[c] - down - up; }
diff @ 2019-01-27 15:30:54 +0000 diff --git a/client/go.c b/client/go.c index 95a84ff8f..63eb8b406 100644 --- a/client/go.c +++ b/client/go.c @@ -125,7 +125,7 @@ go(S *s, int channels, const float *in, float *out) // pitchshift feedback for (int c = 0; c < 2; ++c) { sample down = pitchshift(&s->so2.shift[2 * c + 0], 2, 100, - lop(&s->so2.lag[0], -12, 1e-4), feedback[c]); + lop(&s->so2.lag[0], -6, 1e-3), feedback[c]); sample up = pitchshift(&s->so2.shift[2 * c + 1], 2, 100, lop(&s->so2.lag[0], 12, 1e-3), down); feedback[c] = feedback[c] - down - up;
diff @ 2019-01-27 15:31:00 +0000 diff --git a/client/go.c b/client/go.c index 63eb8b406..918bbb0d9 100644 --- a/client/go.c +++ b/client/go.c @@ -127,7 +127,7 @@ go(S *s, int channels, const float *in, float *out) sample down = pitchshift(&s->so2.shift[2 * c + 0], 2, 100, lop(&s->so2.lag[0], -6, 1e-3), feedback[c]); sample up = pitchshift(&s->so2.shift[2 * c + 1], 2, 100, - lop(&s->so2.lag[0], 12, 1e-3), down); + lop(&s->so2.lag[0], 3, 1e-3), down); feedback[c] = feedback[c] - down - up; }
diff @ 2019-01-27 15:31:14 +0000 diff --git a/client/go.c b/client/go.c index 918bbb0d9..86523a2a6 100644 --- a/client/go.c +++ b/client/go.c @@ -152,7 +152,7 @@ go(S *s, int channels, const float *in, float *out) so2[1] *= gain; // write to delay lines for (int c = 0; c < 2; ++c) { - so2echo(&s->so2.echo[c], 10, 500, + so2echo(&s->so2.echo[c], 10, 1500, tanh(so2[c] + RESET*impulse[c])); } mixdown[0] += so2[0];
diff @ 2019-01-27 15:31:24 +0000 diff --git a/client/go.c b/client/go.c index 86523a2a6..d21cf963b 100644 --- a/client/go.c +++ b/client/go.c @@ -128,7 +128,7 @@ go(S *s, int channels, const float *in, float *out) lop(&s->so2.lag[0], -6, 1e-3), feedback[c]); sample up = pitchshift(&s->so2.shift[2 * c + 1], 2, 100, lop(&s->so2.lag[0], 3, 1e-3), down); - feedback[c] = feedback[c] - down - up; + feedback[c] = 2 *feedback[c] - down - up; } // multiband compressor
diff @ 2019-01-27 15:31:25 +0000 diff --git a/client/go.c b/client/go.c index d21cf963b..80979c2b4 100644 --- a/client/go.c +++ b/client/go.c @@ -128,7 +128,7 @@ go(S *s, int channels, const float *in, float *out) lop(&s->so2.lag[0], -6, 1e-3), feedback[c]); sample up = pitchshift(&s->so2.shift[2 * c + 1], 2, 100, lop(&s->so2.lag[0], 3, 1e-3), down); - feedback[c] = 2 *feedback[c] - down - up; + feedback[c] = 2 * feedback[c] - down - up; } // multiband compressor
diff @ 2019-01-27 15:31:36 +0000 diff --git a/client/go.c b/client/go.c index 80979c2b4..8f80bf6b1 100644 --- a/client/go.c +++ b/client/go.c @@ -117,7 +117,7 @@ go(S *s, int channels, const float *in, float *out) sample impulse[2] = { s->reloaded, s->reloaded }; // modulate delay times sample p = phasor(&s->so2.phase, 0.01); - sample modulation = 10 * cos(twopi * p); + sample modulation = 1 * cos(twopi * p); sample feedback[2] = { delread4(&s->so2.echo[1].del, 200 - modulation) , delread4(&s->so2.echo[0].del, 200 + modulation)
diff @ 2019-01-27 15:31:45 +0000 diff --git a/client/go.c b/client/go.c index 8f80bf6b1..4bb7c0f26 100644 --- a/client/go.c +++ b/client/go.c @@ -119,8 +119,8 @@ go(S *s, int channels, const float *in, float *out) sample p = phasor(&s->so2.phase, 0.01); sample modulation = 1 * cos(twopi * p); sample feedback[2] = - { delread4(&s->so2.echo[1].del, 200 - modulation) - , delread4(&s->so2.echo[0].del, 200 + modulation) + { delread4(&s->so2.echo[1].del, 100 - modulation) + , delread4(&s->so2.echo[0].del, 100 + modulation) }; // pitchshift feedback for (int c = 0; c < 2; ++c) {
diff @ 2019-01-27 15:31:54 +0000 diff --git a/client/go.c b/client/go.c index 4bb7c0f26..ee8ee6717 100644 --- a/client/go.c +++ b/client/go.c @@ -119,8 +119,8 @@ go(S *s, int channels, const float *in, float *out) sample p = phasor(&s->so2.phase, 0.01); sample modulation = 1 * cos(twopi * p); sample feedback[2] = - { delread4(&s->so2.echo[1].del, 100 - modulation) - , delread4(&s->so2.echo[0].del, 100 + modulation) + { delread4(&s->so2.echo[1].del, 50 - modulation) + , delread4(&s->so2.echo[0].del, 50 + modulation) }; // pitchshift feedback for (int c = 0; c < 2; ++c) {
diff @ 2019-01-27 15:31:58 +0000 diff --git a/client/go.c b/client/go.c index ee8ee6717..c5b96e62c 100644 --- a/client/go.c +++ b/client/go.c @@ -119,8 +119,8 @@ go(S *s, int channels, const float *in, float *out) sample p = phasor(&s->so2.phase, 0.01); sample modulation = 1 * cos(twopi * p); sample feedback[2] = - { delread4(&s->so2.echo[1].del, 50 - modulation) - , delread4(&s->so2.echo[0].del, 50 + modulation) + { delread4(&s->so2.echo[1].del, 30 - modulation) + , delread4(&s->so2.echo[0].del, 30 + modulation) }; // pitchshift feedback for (int c = 0; c < 2; ++c) {
diff @ 2019-01-27 15:32:05 +0000 diff --git a/client/go.c b/client/go.c index c5b96e62c..f19d5a8af 100644 --- a/client/go.c +++ b/client/go.c @@ -119,8 +119,8 @@ go(S *s, int channels, const float *in, float *out) sample p = phasor(&s->so2.phase, 0.01); sample modulation = 1 * cos(twopi * p); sample feedback[2] = - { delread4(&s->so2.echo[1].del, 30 - modulation) - , delread4(&s->so2.echo[0].del, 30 + modulation) + { delread4(&s->so2.echo[1].del, 20 - modulation) + , delread4(&s->so2.echo[0].del, 20 + modulation) }; // pitchshift feedback for (int c = 0; c < 2; ++c) {
diff @ 2019-01-27 15:32:13 +0000 diff --git a/client/go.c b/client/go.c index f19d5a8af..84efb7b36 100644 --- a/client/go.c +++ b/client/go.c @@ -119,8 +119,8 @@ go(S *s, int channels, const float *in, float *out) sample p = phasor(&s->so2.phase, 0.01); sample modulation = 1 * cos(twopi * p); sample feedback[2] = - { delread4(&s->so2.echo[1].del, 20 - modulation) - , delread4(&s->so2.echo[0].del, 20 + modulation) + { delread4(&s->so2.echo[1].del, 10 - modulation) + , delread4(&s->so2.echo[0].del, 10 + modulation) }; // pitchshift feedback for (int c = 0; c < 2; ++c) {
diff @ 2019-01-27 15:32:20 +0000 diff --git a/client/go.c b/client/go.c index 84efb7b36..5a9a76e08 100644 --- a/client/go.c +++ b/client/go.c @@ -117,7 +117,7 @@ go(S *s, int channels, const float *in, float *out) sample impulse[2] = { s->reloaded, s->reloaded }; // modulate delay times sample p = phasor(&s->so2.phase, 0.01); - sample modulation = 1 * cos(twopi * p); + sample modulation = 5 * cos(twopi * p); sample feedback[2] = { delread4(&s->so2.echo[1].del, 10 - modulation) , delread4(&s->so2.echo[0].del, 10 + modulation)
diff @ 2019-01-27 15:32:24 +0000 diff --git a/client/go.c b/client/go.c index 5a9a76e08..5cd77fb59 100644 --- a/client/go.c +++ b/client/go.c @@ -116,7 +116,7 @@ go(S *s, int channels, const float *in, float *out) // trigger impulse on reload sample impulse[2] = { s->reloaded, s->reloaded }; // modulate delay times - sample p = phasor(&s->so2.phase, 0.01); + sample p = phasor(&s->so2.phase, 0.1); sample modulation = 5 * cos(twopi * p); sample feedback[2] = { delread4(&s->so2.echo[1].del, 10 - modulation)
diff @ 2019-01-27 15:32:38 +0000 diff --git a/client/go.c b/client/go.c index 5cd77fb59..ea15a576e 100644 --- a/client/go.c +++ b/client/go.c @@ -116,7 +116,7 @@ go(S *s, int channels, const float *in, float *out) // trigger impulse on reload sample impulse[2] = { s->reloaded, s->reloaded }; // modulate delay times - sample p = phasor(&s->so2.phase, 0.1); + sample p = phasor(&s->so2.phase, 60 / bpm); sample modulation = 5 * cos(twopi * p); sample feedback[2] = { delread4(&s->so2.echo[1].del, 10 - modulation)
diff @ 2019-01-27 15:32:55 +0000 diff --git a/client/go.c b/client/go.c index ea15a576e..df9b4e921 100644 --- a/client/go.c +++ b/client/go.c @@ -124,9 +124,9 @@ go(S *s, int channels, const float *in, float *out) }; // pitchshift feedback for (int c = 0; c < 2; ++c) { - sample down = pitchshift(&s->so2.shift[2 * c + 0], 2, 100, + sample down = pitchshift(&s->so2.shift[2 * c + 0], 1, 50, lop(&s->so2.lag[0], -6, 1e-3), feedback[c]); - sample up = pitchshift(&s->so2.shift[2 * c + 1], 2, 100, + sample up = pitchshift(&s->so2.shift[2 * c + 1], 1, 50, lop(&s->so2.lag[0], 3, 1e-3), down); feedback[c] = 2 * feedback[c] - down - up; }
diff @ 2019-01-27 15:33:09 +0000 diff --git a/client/go.c b/client/go.c index df9b4e921..33977a56e 100644 --- a/client/go.c +++ b/client/go.c @@ -152,7 +152,7 @@ go(S *s, int channels, const float *in, float *out) so2[1] *= gain; // write to delay lines for (int c = 0; c < 2; ++c) { - so2echo(&s->so2.echo[c], 10, 1500, + so2echo(&s->so2.echo[c], 10, 2500, tanh(so2[c] + RESET*impulse[c])); } mixdown[0] += so2[0];
diff @ 2019-01-27 15:34:10 +0000 diff --git a/client/go.c b/client/go.c index 33977a56e..dfa0cb8df 100644 --- a/client/go.c +++ b/client/go.c @@ -110,6 +110,45 @@ go(S *s, int channels, const float *in, float *out) int time = s->time++; int phase_reset = ((time / 5) & ((1 << 16) - 1)) == 0; + // = 1 = total intraliminal extraction =============================== + sample tilex[2] = { 0, 0 }; + { + if (phase_reset) + { + s->tphase.phase = 0; + s->ttempo = SR * 1.0 / (5 << 16); + } + sample p = phasor(&s->tphase, s->ttempo); + sample kick = 1 - wrap(16 * p); + kick *= kick; + kick *= kick; + kick *= kick; + sample kickenv = kick; + kick *= 16; + kick = sin(twopi * kick); + kick *= 1 + kickenv; + kick = tanh(kick); + sample hat = wrap(16 * p + 0.5) < 0.5; + hat *= 0; + sample khz = 50 + 10 * (wrap(8 * p) > 1) + 25 * (wrap(2 * p) > 1); + kick +=tanh(vcf(&s->tkick[0], kick, khz, 5)*5)*2; + kick += sin(vcf(&s->tkick[1], kick, khz * 2, 5)*5); + kick += sin(vcf(&s->tkick[2], kick, khz*4-20, 5)*5) + * sin(vcf(&s->tkick[3], kick, khz*4+20, 5)*5); + sample crush = phasor(&s->tcrush, 2000); + tilex[0] = samphold(&s->tcrushsh[0], noise() * hat, crush); + tilex[1] = samphold(&s->tcrushsh[1], noise() * hat, crush); + sample kgain = 1; + kgain = samphold(&s->tgate[0], kgain, p); + tilex[0] += kgain * kick; + tilex[1] += kgain * kick; + compress(tilex, &s->tcompress, 5, 10, 25, 48, tilex); + sample gain = 1; + gain = samphold(&s->tgate[1], gain, p); + tilex[0] *= gain; + tilex[1] *= gain; + } + // = 0 = sea organ 2 ================================================= sample so2[2] = { 0, 0 }; { @@ -144,6 +183,9 @@ go(S *s, int channels, const float *in, float *out) feedback[0] += band[0]; feedback[1] += band[1]; } + + feedback[0] += tilex[0]; + feedback[1] += tilex[1]; // compress feedback compress(so2, &s->so2.compress, 5, 10, 25, 48, feedback); @@ -159,47 +201,6 @@ go(S *s, int channels, const float *in, float *out) mixdown[1] += so2[1]; } - // = 1 = total intraliminal extraction =============================== - sample tilex[2] = { 0, 0 }; - { - if (phase_reset) - { - s->tphase.phase = 0; - s->ttempo = SR * 1.0 / (5 << 16); - } - sample p = phasor(&s->tphase, s->ttempo); - sample kick = 1 - wrap(16 * p); - kick *= kick; - kick *= kick; - kick *= kick; - sample kickenv = kick; - kick *= 16; - kick = sin(twopi * kick); - kick *= 1 + kickenv; - kick = tanh(kick); - sample hat = wrap(16 * p + 0.5) < 0.5; - hat *= 0; - sample khz = 50 + 10 * (wrap(8 * p) > 1) + 25 * (wrap(2 * p) > 1); - kick +=tanh(vcf(&s->tkick[0], kick, khz, 5)*5)*2; - kick += sin(vcf(&s->tkick[1], kick, khz * 2, 5)*5); - kick += sin(vcf(&s->tkick[2], kick, khz*4-20, 5)*5) - * sin(vcf(&s->tkick[3], kick, khz*4+20, 5)*5); - sample crush = phasor(&s->tcrush, 2000); - tilex[0] = samphold(&s->tcrushsh[0], noise() * hat, crush); - tilex[1] = samphold(&s->tcrushsh[1], noise() * hat, crush); - sample kgain = 0; - kgain = samphold(&s->tgate[0], kgain, p); - tilex[0] += kgain * kick; - tilex[1] += kgain * kick; - compress(tilex, &s->tcompress, 5, 10, 25, 48, tilex); - sample gain = 1; - gain = samphold(&s->tgate[1], gain, p); - tilex[0] *= gain; - tilex[1] *= gain; - mixdown[0] += tilex[0]; - mixdown[1] += tilex[1]; - } - // = 2 = binaray ===================================================== sample env, freq; {
diff @ 2019-01-27 15:34:21 +0000 diff --git a/client/go.c b/client/go.c index dfa0cb8df..02996c887 100644 --- a/client/go.c +++ b/client/go.c @@ -138,7 +138,7 @@ go(S *s, int channels, const float *in, float *out) sample crush = phasor(&s->tcrush, 2000); tilex[0] = samphold(&s->tcrushsh[0], noise() * hat, crush); tilex[1] = samphold(&s->tcrushsh[1], noise() * hat, crush); - sample kgain = 1; + sample kgain = 2; kgain = samphold(&s->tgate[0], kgain, p); tilex[0] += kgain * kick; tilex[1] += kgain * kick;
diff @ 2019-01-27 15:34:35 +0000 diff --git a/client/go.c b/client/go.c index 02996c887..3d811d31b 100644 --- a/client/go.c +++ b/client/go.c @@ -184,8 +184,8 @@ go(S *s, int channels, const float *in, float *out) feedback[1] += band[1]; } - feedback[0] += tilex[0]; - feedback[1] += tilex[1]; + feedback[0] += 2 * tilex[0]; + feedback[1] += 2 *tilex[1]; // compress feedback compress(so2, &s->so2.compress, 5, 10, 25, 48, feedback);
diff @ 2019-01-27 15:34:36 +0000 diff --git a/client/go.c b/client/go.c index 3d811d31b..0b51ac433 100644 --- a/client/go.c +++ b/client/go.c @@ -185,7 +185,7 @@ go(S *s, int channels, const float *in, float *out) } feedback[0] += 2 * tilex[0]; - feedback[1] += 2 *tilex[1]; + feedback[1] += 2 * tilex[1]; // compress feedback compress(so2, &s->so2.compress, 5, 10, 25, 48, feedback);
diff @ 2019-01-27 15:34:41 +0000 diff --git a/client/go.c b/client/go.c index 0b51ac433..92a780984 100644 --- a/client/go.c +++ b/client/go.c @@ -184,8 +184,8 @@ go(S *s, int channels, const float *in, float *out) feedback[1] += band[1]; } - feedback[0] += 2 * tilex[0]; - feedback[1] += 2 * tilex[1]; + feedback[0] += 4 * tilex[0]; + feedback[1] += 4 * tilex[1]; // compress feedback compress(so2, &s->so2.compress, 5, 10, 25, 48, feedback);
diff @ 2019-01-27 15:35:03 +0000 diff --git a/client/go.c b/client/go.c index 92a780984..ddfd785ca 100644 --- a/client/go.c +++ b/client/go.c @@ -130,7 +130,7 @@ go(S *s, int channels, const float *in, float *out) kick = tanh(kick); sample hat = wrap(16 * p + 0.5) < 0.5; hat *= 0; - sample khz = 50 + 10 * (wrap(8 * p) > 1) + 25 * (wrap(2 * p) > 1); + sample khz = 50 + 10 * (wrap(8 * p) > 0.75) + 25 * (wrap(2 * p) > 1); kick +=tanh(vcf(&s->tkick[0], kick, khz, 5)*5)*2; kick += sin(vcf(&s->tkick[1], kick, khz * 2, 5)*5); kick += sin(vcf(&s->tkick[2], kick, khz*4-20, 5)*5)
diff @ 2019-01-27 15:35:12 +0000 diff --git a/client/go.c b/client/go.c index ddfd785ca..de9bb8a94 100644 --- a/client/go.c +++ b/client/go.c @@ -131,7 +131,7 @@ go(S *s, int channels, const float *in, float *out) sample hat = wrap(16 * p + 0.5) < 0.5; hat *= 0; sample khz = 50 + 10 * (wrap(8 * p) > 0.75) + 25 * (wrap(2 * p) > 1); - 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 * 2, 5)*5); kick += sin(vcf(&s->tkick[2], kick, khz*4-20, 5)*5) * sin(vcf(&s->tkick[3], kick, khz*4+20, 5)*5);
diff @ 2019-01-27 15:35:32 +0000 diff --git a/client/go.c b/client/go.c index de9bb8a94..381c40817 100644 --- a/client/go.c +++ b/client/go.c @@ -194,7 +194,7 @@ go(S *s, int channels, const float *in, float *out) so2[1] *= gain; // write to delay lines for (int c = 0; c < 2; ++c) { - so2echo(&s->so2.echo[c], 10, 2500, + so2echo(&s->so2.echo[c], 100, 2500, tanh(so2[c] + RESET*impulse[c])); } mixdown[0] += so2[0];
diff @ 2019-01-27 15:35:44 +0000 diff --git a/client/go.c b/client/go.c index 381c40817..4a8d1e8a5 100644 --- a/client/go.c +++ b/client/go.c @@ -132,7 +132,7 @@ go(S *s, int channels, const float *in, float *out) hat *= 0; sample khz = 50 + 10 * (wrap(8 * p) > 0.75) + 25 * (wrap(2 * p) > 1); kick +=tanh(vcf(&s->tkick[0], kick, khz, 15)*15)*2; - kick += sin(vcf(&s->tkick[1], kick, khz * 2, 5)*5); + 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); sample crush = phasor(&s->tcrush, 2000);
diff @ 2019-01-27 15:36:00 +0000 diff --git a/client/go.c b/client/go.c index 4a8d1e8a5..856f74b53 100644 --- a/client/go.c +++ b/client/go.c @@ -129,7 +129,7 @@ go(S *s, int channels, const float *in, float *out) kick *= 1 + kickenv; kick = tanh(kick); sample hat = wrap(16 * p + 0.5) < 0.5; - hat *= 0; + hat *= 1; sample khz = 50 + 10 * (wrap(8 * p) > 0.75) + 25 * (wrap(2 * p) > 1); kick +=tanh(vcf(&s->tkick[0], kick, khz, 15)*15)*2; kick += sin(vcf(&s->tkick[1], kick, khz * 2, 50)*50);
diff @ 2019-01-27 15:36:02 +0000 diff --git a/client/go.c b/client/go.c index 856f74b53..aba358b04 100644 --- a/client/go.c +++ b/client/go.c @@ -128,7 +128,7 @@ go(S *s, int channels, const float *in, float *out) kick = sin(twopi * kick); kick *= 1 + kickenv; kick = tanh(kick); - sample hat = wrap(16 * p + 0.5) < 0.5; + sample hat = wrap(16 * p + 0.5) < 0.15; hat *= 1; sample khz = 50 + 10 * (wrap(8 * p) > 0.75) + 25 * (wrap(2 * p) > 1); kick +=tanh(vcf(&s->tkick[0], kick, khz, 15)*15)*2;
diff @ 2019-01-27 15:36:11 +0000 diff --git a/client/go.c b/client/go.c index aba358b04..51c016c81 100644 --- a/client/go.c +++ b/client/go.c @@ -135,7 +135,7 @@ go(S *s, int channels, const float *in, float *out) 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); - sample crush = phasor(&s->tcrush, 2000); + sample crush = phasor(&s->tcrush, 4000); tilex[0] = samphold(&s->tcrushsh[0], noise() * hat, crush); tilex[1] = samphold(&s->tcrushsh[1], noise() * hat, crush); sample kgain = 2;
diff @ 2019-01-27 15:36:26 +0000 diff --git a/client/go.c b/client/go.c index 51c016c81..f98504807 100644 --- a/client/go.c +++ b/client/go.c @@ -133,8 +133,8 @@ go(S *s, int channels, const float *in, float *out) sample khz = 50 + 10 * (wrap(8 * p) > 0.75) + 25 * (wrap(2 * p) > 1); kick +=tanh(vcf(&s->tkick[0], kick, khz, 15)*15)*2; 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); + kick += sin(vcf(&s->tkick[2], kick, khz*9, 50)*5) + * sin(vcf(&s->tkick[3], kick, khz*7, 50)*5); sample crush = phasor(&s->tcrush, 4000); tilex[0] = samphold(&s->tcrushsh[0], noise() * hat, crush); tilex[1] = samphold(&s->tcrushsh[1], noise() * hat, crush);
diff @ 2019-01-27 15:36:35 +0000 diff --git a/client/go.c b/client/go.c index f98504807..2ffb0b389 100644 --- a/client/go.c +++ b/client/go.c @@ -129,7 +129,7 @@ go(S *s, int channels, const float *in, float *out) kick *= 1 + kickenv; kick = tanh(kick); sample hat = wrap(16 * p + 0.5) < 0.15; - hat *= 1; + hat *= 2; sample khz = 50 + 10 * (wrap(8 * p) > 0.75) + 25 * (wrap(2 * p) > 1); kick +=tanh(vcf(&s->tkick[0], kick, khz, 15)*15)*2; kick += sin(vcf(&s->tkick[1], kick, khz * 2, 50)*50);
diff @ 2019-01-27 15:36:41 +0000 diff --git a/client/go.c b/client/go.c index 2ffb0b389..64f88259d 100644 --- a/client/go.c +++ b/client/go.c @@ -128,7 +128,7 @@ go(S *s, int channels, const float *in, float *out) kick = sin(twopi * kick); kick *= 1 + kickenv; kick = tanh(kick); - sample hat = wrap(16 * p + 0.5) < 0.15; + sample hat = wrap(32 * p) < 0.15; hat *= 2; sample khz = 50 + 10 * (wrap(8 * p) > 0.75) + 25 * (wrap(2 * p) > 1); kick +=tanh(vcf(&s->tkick[0], kick, khz, 15)*15)*2;
diff @ 2019-01-27 15:36:46 +0000 diff --git a/client/go.c b/client/go.c index 64f88259d..6edb9ee05 100644 --- a/client/go.c +++ b/client/go.c @@ -128,7 +128,7 @@ go(S *s, int channels, const float *in, float *out) kick = sin(twopi * kick); kick *= 1 + kickenv; kick = tanh(kick); - sample hat = wrap(32 * p) < 0.15; + sample hat = wrap(32 * p) < 0.15 * p; hat *= 2; sample khz = 50 + 10 * (wrap(8 * p) > 0.75) + 25 * (wrap(2 * p) > 1); kick +=tanh(vcf(&s->tkick[0], kick, khz, 15)*15)*2;
diff @ 2019-01-27 15:36:59 +0000 diff --git a/client/go.c b/client/go.c index 6edb9ee05..de67c6757 100644 --- a/client/go.c +++ b/client/go.c @@ -128,7 +128,7 @@ go(S *s, int channels, const float *in, float *out) kick = sin(twopi * kick); kick *= 1 + kickenv; kick = tanh(kick); - sample hat = wrap(32 * p) < 0.15 * p; + sample hat = wrap(32 * p) < 0.15 * (1 + sin(p)); hat *= 2; sample khz = 50 + 10 * (wrap(8 * p) > 0.75) + 25 * (wrap(2 * p) > 1); kick +=tanh(vcf(&s->tkick[0], kick, khz, 15)*15)*2;
diff @ 2019-01-27 15:37:25 +0000 diff --git a/client/go.c b/client/go.c index de67c6757..370046cbb 100644 --- a/client/go.c +++ b/client/go.c @@ -135,7 +135,7 @@ go(S *s, int channels, const float *in, float *out) kick += sin(vcf(&s->tkick[1], kick, khz * 2, 50)*50); kick += sin(vcf(&s->tkick[2], kick, khz*9, 50)*5) * sin(vcf(&s->tkick[3], kick, khz*7, 50)*5); - sample crush = phasor(&s->tcrush, 4000); + sample crush = phasor(&s->tcrush, 4000 * pow(2, sin(twopi * p))); tilex[0] = samphold(&s->tcrushsh[0], noise() * hat, crush); tilex[1] = samphold(&s->tcrushsh[1], noise() * hat, crush); sample kgain = 2;
diff @ 2019-01-27 15:37:38 +0000 diff --git a/client/go.c b/client/go.c index 370046cbb..bce51367c 100644 --- a/client/go.c +++ b/client/go.c @@ -194,7 +194,7 @@ go(S *s, int channels, const float *in, float *out) so2[1] *= gain; // write to delay lines for (int c = 0; c < 2; ++c) { - so2echo(&s->so2.echo[c], 100, 2500, + so2echo(&s->so2.echo[c], 400, 2500, tanh(so2[c] + RESET*impulse[c])); } mixdown[0] += so2[0];
diff @ 2019-01-27 15:37:44 +0000 diff --git a/client/go.c b/client/go.c index bce51367c..1cba063c1 100644 --- a/client/go.c +++ b/client/go.c @@ -194,7 +194,7 @@ go(S *s, int channels, const float *in, float *out) so2[1] *= gain; // write to delay lines for (int c = 0; c < 2; ++c) { - so2echo(&s->so2.echo[c], 400, 2500, + so2echo(&s->so2.echo[c], 400, 4000, tanh(so2[c] + RESET*impulse[c])); } mixdown[0] += so2[0];
diff @ 2019-01-27 15:38:02 +0000 diff --git a/client/go.c b/client/go.c index 1cba063c1..3230d0d30 100644 --- a/client/go.c +++ b/client/go.c @@ -164,9 +164,9 @@ go(S *s, int channels, const float *in, float *out) // pitchshift feedback for (int c = 0; c < 2; ++c) { sample down = pitchshift(&s->so2.shift[2 * c + 0], 1, 50, - lop(&s->so2.lag[0], -6, 1e-3), feedback[c]); + lop(&s->so2.lag[0], 0, 1e-5), feedback[c]); sample up = pitchshift(&s->so2.shift[2 * c + 1], 1, 50, - lop(&s->so2.lag[0], 3, 1e-3), down); + lop(&s->so2.lag[0], 0, 1e-5), down); feedback[c] = 2 * feedback[c] - down - up; }
diff @ 2019-01-27 15:38:03 +0000 diff --git a/client/go.c b/client/go.c index 3230d0d30..bd195e71d 100644 --- a/client/go.c +++ b/client/go.c @@ -166,7 +166,7 @@ go(S *s, int channels, const float *in, float *out) sample down = pitchshift(&s->so2.shift[2 * c + 0], 1, 50, lop(&s->so2.lag[0], 0, 1e-5), feedback[c]); sample up = pitchshift(&s->so2.shift[2 * c + 1], 1, 50, - lop(&s->so2.lag[0], 0, 1e-5), down); + lop(&s->so2.lag[0], 0, 1e-5), down); feedback[c] = 2 * feedback[c] - down - up; }
diff @ 2019-01-27 15:38:31 +0000 diff --git a/client/go.c b/client/go.c index bd195e71d..a4cd3f65d 100644 --- a/client/go.c +++ b/client/go.c @@ -267,8 +267,8 @@ go(S *s, int channels, const float *in, float *out) sample er = delread4(&s->edelay2, rdelms + si); sample es[2] = { co * el + si * er, -si * el + co * er }; compress(es, &s->ecompress1, 5, 10, 25, 48, es); - es[0] = mix(mixdown[0], es[0], mix(0, pow(wrap(8 * p), 0.25), 0)); - es[1] = mix(mixdown[1], es[1], mix(0, pow(wrap(8 * p), 0.25), 0)); + es[0] = mix(mixdown[0], es[0], mix(0, pow(wrap(8 * p), 0.25), 0.24)); + es[1] = mix(mixdown[1], es[1], mix(0, pow(wrap(8 * p), 0.25), 0.24)); compress(es, &s->ecompress2, 5, 10, 25, 48, es); delwrite(&s->edelay1, es[0]); delwrite(&s->edelay2, es[1]);
diff @ 2019-01-27 15:38:47 +0000 diff --git a/client/go.c b/client/go.c index a4cd3f65d..926e08c52 100644 --- a/client/go.c +++ b/client/go.c @@ -260,7 +260,7 @@ go(S *s, int channels, const float *in, float *out) sample co = cos(t); sample si = sin(t); sample ldelms = 60000 / bpm * (p < 0.75 ? 1 : 2); - sample rdelms = ldelms; + sample ldelms = 60000 / bpm * (p < 0.5 ? 1 : 1./16); ldelms = lop(&s->elop[0], ldelms, 5); rdelms = lop(&s->elop[1], rdelms, 5); sample el = delread4(&s->edelay1, ldelms + co);
diff @ 2019-01-27 15:38:54 +0000 diff --git a/client/go.c b/client/go.c index 926e08c52..6111a8912 100644 --- a/client/go.c +++ b/client/go.c @@ -260,7 +260,7 @@ go(S *s, int channels, const float *in, float *out) sample co = cos(t); sample si = sin(t); sample ldelms = 60000 / bpm * (p < 0.75 ? 1 : 2); - sample ldelms = 60000 / bpm * (p < 0.5 ? 1 : 1./16); + sample rdelms = 60000 / bpm * (p < 0.5 ? 1 : 1./16); ldelms = lop(&s->elop[0], ldelms, 5); rdelms = lop(&s->elop[1], rdelms, 5); sample el = delread4(&s->edelay1, ldelms + co);
diff @ 2019-01-27 15:39:00 +0000 diff --git a/client/go.c b/client/go.c index 6111a8912..55427debd 100644 --- a/client/go.c +++ b/client/go.c @@ -259,7 +259,7 @@ go(S *s, int channels, const float *in, float *out) sample t = twopi * p; sample co = cos(t); sample si = sin(t); - sample ldelms = 60000 / bpm * (p < 0.75 ? 1 : 2); + sample ldelms = 60000 / bpm * (p < 0.75 ? 1 : 1./32); sample rdelms = 60000 / bpm * (p < 0.5 ? 1 : 1./16); ldelms = lop(&s->elop[0], ldelms, 5); rdelms = lop(&s->elop[1], rdelms, 5);
diff @ 2019-01-27 15:39:06 +0000 diff --git a/client/go.c b/client/go.c index 55427debd..8f9d89e9c 100644 --- a/client/go.c +++ b/client/go.c @@ -267,8 +267,8 @@ go(S *s, int channels, const float *in, float *out) sample er = delread4(&s->edelay2, rdelms + si); sample es[2] = { co * el + si * er, -si * el + co * er }; compress(es, &s->ecompress1, 5, 10, 25, 48, es); - es[0] = mix(mixdown[0], es[0], mix(0, pow(wrap(8 * p), 0.25), 0.24)); - es[1] = mix(mixdown[1], es[1], mix(0, pow(wrap(8 * p), 0.25), 0.24)); + es[0] = mix(mixdown[0], es[0], mix(0, pow(wrap(8 * p), 0.25), 0.5)); + es[1] = mix(mixdown[1], es[1], mix(0, 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 @ 2019-01-27 15:39:21 +0000 diff --git a/client/go.c b/client/go.c index 8f9d89e9c..64e9a7e8b 100644 --- a/client/go.c +++ b/client/go.c @@ -261,8 +261,8 @@ go(S *s, int channels, const float *in, float *out) sample si = sin(t); sample ldelms = 60000 / bpm * (p < 0.75 ? 1 : 1./32); sample rdelms = 60000 / bpm * (p < 0.5 ? 1 : 1./16); - ldelms = lop(&s->elop[0], ldelms, 5); - rdelms = lop(&s->elop[1], rdelms, 5); + ldelms = lop(&s->elop[0], ldelms, 15); + rdelms = lop(&s->elop[1], rdelms, 15); sample el = delread4(&s->edelay1, ldelms + co); sample er = delread4(&s->edelay2, rdelms + si); sample es[2] = { co * el + si * er, -si * el + co * er };
diff @ 2019-01-27 15:39:29 +0000 diff --git a/client/go.c b/client/go.c index 64e9a7e8b..44665fc4f 100644 --- a/client/go.c +++ b/client/go.c @@ -267,8 +267,8 @@ go(S *s, int channels, const float *in, float *out) sample er = delread4(&s->edelay2, rdelms + si); sample es[2] = { co * el + si * er, -si * el + co * er }; compress(es, &s->ecompress1, 5, 10, 25, 48, es); - es[0] = mix(mixdown[0], es[0], mix(0, pow(wrap(8 * p), 0.25), 0.5)); - es[1] = mix(mixdown[1], es[1], mix(0, pow(wrap(8 * p), 0.25), 0.5)); + es[0] = mix(mixdown[0], es[0], mix(0, pow(wrap(8 * p), 0.25), 0.65)); + es[1] = mix(mixdown[1], es[1], mix(0, pow(wrap(8 * p), 0.25), 0.65)); compress(es, &s->ecompress2, 5, 10, 25, 48, es); delwrite(&s->edelay1, es[0]); delwrite(&s->edelay2, es[1]);
diff @ 2019-01-27 15:39:38 +0000 diff --git a/client/go.c b/client/go.c index 44665fc4f..150fd86fc 100644 --- a/client/go.c +++ b/client/go.c @@ -267,8 +267,8 @@ go(S *s, int channels, const float *in, float *out) sample er = delread4(&s->edelay2, rdelms + si); sample es[2] = { co * el + si * er, -si * el + co * er }; compress(es, &s->ecompress1, 5, 10, 25, 48, es); - es[0] = mix(mixdown[0], es[0], mix(0, pow(wrap(8 * p), 0.25), 0.65)); - es[1] = mix(mixdown[1], es[1], mix(0, pow(wrap(8 * p), 0.25), 0.65)); + es[0] = mix(mixdown[0], es[0], mix(0, pow(wrap(8 * p), 0.25), 0.75)); + es[1] = mix(mixdown[1], es[1], mix(0, pow(wrap(8 * p), 0.25), 0.75)); compress(es, &s->ecompress2, 5, 10, 25, 48, es); delwrite(&s->edelay1, es[0]); delwrite(&s->edelay2, es[1]);
diff @ 2019-01-27 15:39:46 +0000 diff --git a/client/go.c b/client/go.c index 150fd86fc..d3a31acfe 100644 --- a/client/go.c +++ b/client/go.c @@ -267,8 +267,8 @@ go(S *s, int channels, const float *in, float *out) sample er = delread4(&s->edelay2, rdelms + si); sample es[2] = { co * el + si * er, -si * el + co * er }; compress(es, &s->ecompress1, 5, 10, 25, 48, es); - es[0] = mix(mixdown[0], es[0], mix(0, pow(wrap(8 * p), 0.25), 0.75)); - es[1] = mix(mixdown[1], es[1], mix(0, pow(wrap(8 * p), 0.25), 0.75)); + es[0] = mix(mixdown[0], es[0], mix(0, pow(wrap(8 * p), 0.25), 0.875)); + es[1] = mix(mixdown[1], es[1], mix(0, pow(wrap(8 * p), 0.25), 0.875)); compress(es, &s->ecompress2, 5, 10, 25, 48, es); delwrite(&s->edelay1, es[0]); delwrite(&s->edelay2, es[1]);
diff @ 2019-01-27 15:40:50 +0000 diff --git a/client/go.h b/client/go.h index 1558ab23f..a5a478c5f 100644 --- a/client/go.h +++ b/client/go.h @@ -58,6 +58,9 @@ typedef struct #define OCTAVES 10 BIQUAD multiband[OCTAVES][2]; COMPRESS multicomp[OCTAVES]; + LOP elop2[2]; + HIP ehip2[2]; + } S; #endif
diff @ 2019-01-27 15:40:51 +0000 diff --git a/client/go.c b/client/go.c index d3a31acfe..c85d03471 100644 --- a/client/go.c +++ b/client/go.c @@ -265,7 +265,9 @@ go(S *s, int channels, const float *in, float *out) rdelms = lop(&s->elop[1], rdelms, 15); sample el = delread4(&s->edelay1, ldelms + co); sample er = delread4(&s->edelay2, rdelms + si); - sample es[2] = { co * el + si * er, -si * el + co * er }; + el = lop(&s->elop2[0], el, 8000); + er = lop(&s->elop2[1], er, 8000); + sample es[2] = { co * el + si * er, -si * el + co * er }; compress(es, &s->ecompress1, 5, 10, 25, 48, es); es[0] = mix(mixdown[0], es[0], mix(0, pow(wrap(8 * p), 0.25), 0.875)); es[1] = mix(mixdown[1], es[1], mix(0, pow(wrap(8 * p), 0.25), 0.875));
diff @ 2019-01-27 15:41:09 +0000 diff --git a/client/go.c b/client/go.c index c85d03471..978692dc1 100644 --- a/client/go.c +++ b/client/go.c @@ -267,6 +267,8 @@ go(S *s, int channels, const float *in, float *out) sample er = delread4(&s->edelay2, rdelms + si); el = lop(&s->elop2[0], el, 8000); er = lop(&s->elop2[1], er, 8000); + el = hip(&s->ehip2[0], el, 80); + er = hip(&s->ehip2[1], er, 80); sample es[2] = { co * el + si * er, -si * el + co * er }; compress(es, &s->ecompress1, 5, 10, 25, 48, es); es[0] = mix(mixdown[0], es[0], mix(0, pow(wrap(8 * p), 0.25), 0.875));
diff @ 2019-01-27 15:41:21 +0000 diff --git a/client/go.c b/client/go.c index 978692dc1..2372c8402 100644 --- a/client/go.c +++ b/client/go.c @@ -129,7 +129,7 @@ go(S *s, int channels, const float *in, float *out) kick *= 1 + kickenv; kick = tanh(kick); sample hat = wrap(32 * p) < 0.15 * (1 + sin(p)); - hat *= 2; + hat *= 0; sample khz = 50 + 10 * (wrap(8 * p) > 0.75) + 25 * (wrap(2 * p) > 1); kick +=tanh(vcf(&s->tkick[0], kick, khz, 15)*15)*2; kick += sin(vcf(&s->tkick[1], kick, khz * 2, 50)*50);
diff @ 2019-01-27 15:41:39 +0000 diff --git a/client/go.c b/client/go.c index 2372c8402..f64913cea 100644 --- a/client/go.c +++ b/client/go.c @@ -271,8 +271,8 @@ go(S *s, int channels, const float *in, float *out) er = hip(&s->ehip2[1], er, 80); sample es[2] = { co * el + si * er, -si * el + co * er }; compress(es, &s->ecompress1, 5, 10, 25, 48, es); - es[0] = mix(mixdown[0], es[0], mix(0, pow(wrap(8 * p), 0.25), 0.875)); - es[1] = mix(mixdown[1], es[1], mix(0, pow(wrap(8 * p), 0.25), 0.875)); + es[0] = mix(mixdown[0], es[0], mix(0, pow(wrap(8 * p), 0.25), 0.95)); + es[1] = mix(mixdown[1], es[1], mix(0, pow(wrap(8 * p), 0.25), 0.95)); compress(es, &s->ecompress2, 5, 10, 25, 48, es); delwrite(&s->edelay1, es[0]); delwrite(&s->edelay2, es[1]);
diff @ 2019-01-27 15:41:50 +0000 diff --git a/client/go.c b/client/go.c index f64913cea..006c18acb 100644 --- a/client/go.c +++ b/client/go.c @@ -269,7 +269,7 @@ go(S *s, int channels, const float *in, float *out) er = lop(&s->elop2[1], er, 8000); el = hip(&s->ehip2[0], el, 80); er = hip(&s->ehip2[1], er, 80); - sample es[2] = { co * el + si * er, -si * el + co * er }; + sample es[2] = { co * el + si * er, -si * el + co * er }; compress(es, &s->ecompress1, 5, 10, 25, 48, es); es[0] = mix(mixdown[0], es[0], mix(0, pow(wrap(8 * p), 0.25), 0.95)); es[1] = mix(mixdown[1], es[1], mix(0, pow(wrap(8 * p), 0.25), 0.95));
diff @ 2019-01-27 15:42:07 +0000 diff --git a/client/go.c b/client/go.c index 006c18acb..4b525fcd5 100644 --- a/client/go.c +++ b/client/go.c @@ -256,7 +256,7 @@ go(S *s, int channels, const float *in, float *out) s->edelay2.length = 4 * SR; sample p = phasor(&s->ephase, hz); elphase = p; - sample t = twopi * p; + sample t = 2 * twopi * p; sample co = cos(t); sample si = sin(t); sample ldelms = 60000 / bpm * (p < 0.75 ? 1 : 1./32);
diff @ 2019-01-27 15:42:19 +0000 diff --git a/client/go.c b/client/go.c index 4b525fcd5..81c245c07 100644 --- a/client/go.c +++ b/client/go.c @@ -259,7 +259,7 @@ go(S *s, int channels, const float *in, float *out) sample t = 2 * twopi * p; sample co = cos(t); sample si = sin(t); - sample ldelms = 60000 / bpm * (p < 0.75 ? 1 : 1./32); + sample ldelms = 60000 / bpm * (p < 0.75 ? 1./2 : 1./32); sample rdelms = 60000 / bpm * (p < 0.5 ? 1 : 1./16); ldelms = lop(&s->elop[0], ldelms, 15); rdelms = lop(&s->elop[1], rdelms, 15);
diff @ 2019-01-27 15:42:31 +0000 diff --git a/client/go.c b/client/go.c index 81c245c07..e03324283 100644 --- a/client/go.c +++ b/client/go.c @@ -260,7 +260,7 @@ go(S *s, int channels, const float *in, float *out) sample co = cos(t); sample si = sin(t); sample ldelms = 60000 / bpm * (p < 0.75 ? 1./2 : 1./32); - sample rdelms = 60000 / bpm * (p < 0.5 ? 1 : 1./16); + sample rdelms = 60000 / bpm * (p < 0.5 ? 1./4 : 1./16); ldelms = lop(&s->elop[0], ldelms, 15); rdelms = lop(&s->elop[1], rdelms, 15); sample el = delread4(&s->edelay1, ldelms + co);
diff @ 2019-01-27 15:42:47 +0000 diff --git a/client/go.c b/client/go.c index e03324283..592cd1fb5 100644 --- a/client/go.c +++ b/client/go.c @@ -271,8 +271,8 @@ go(S *s, int channels, const float *in, float *out) er = hip(&s->ehip2[1], er, 80); sample es[2] = { co * el + si * er, -si * el + co * er }; compress(es, &s->ecompress1, 5, 10, 25, 48, es); - es[0] = mix(mixdown[0], es[0], mix(0, pow(wrap(8 * p), 0.25), 0.95)); - es[1] = mix(mixdown[1], es[1], mix(0, pow(wrap(8 * p), 0.25), 0.95)); + es[0] = mix(mixdown[0], es[0], mix(0, pow(wrap(8 * p), 0.25), 1)); + es[1] = mix(mixdown[1], es[1], mix(0, pow(wrap(8 * p), 0.25), 1)); compress(es, &s->ecompress2, 5, 10, 25, 48, es); delwrite(&s->edelay1, es[0]); delwrite(&s->edelay2, es[1]);
diff @ 2019-01-27 15:43:01 +0000 diff --git a/client/go.c b/client/go.c index 592cd1fb5..e2478eb82 100644 --- a/client/go.c +++ b/client/go.c @@ -143,7 +143,7 @@ go(S *s, int channels, const float *in, float *out) tilex[0] += kgain * kick; tilex[1] += kgain * kick; compress(tilex, &s->tcompress, 5, 10, 25, 48, tilex); - sample gain = 1; + sample gain = 0; gain = samphold(&s->tgate[1], gain, p); tilex[0] *= gain; tilex[1] *= gain;
diff @ 2019-01-27 15:43:44 +0000 diff --git a/client/go.c b/client/go.c index e2478eb82..d42bd3a7c 100644 --- a/client/go.c +++ b/client/go.c @@ -170,19 +170,6 @@ go(S *s, int channels, const float *in, float *out) feedback[c] = 2 * feedback[c] - down - up; } - // multiband compressor - sample input[2] = { feedback[0], feedback[1] }; - for (int o = 0; o < OCTAVES; ++o) - { - sample band[2]; - for (int c = 0; c < 2; ++c) - { - band[c] = biquad(bandpass(&s->multiband[o][c], 20 * pow(2, o), flatq), input[c]); - } - compress(band, &s->multicomp[o], 5, 10, 25, 48, band); - feedback[0] += band[0]; - feedback[1] += band[1]; - } feedback[0] += 4 * tilex[0]; feedback[1] += 4 * tilex[1]; @@ -270,6 +257,21 @@ go(S *s, int channels, const float *in, float *out) el = hip(&s->ehip2[0], el, 80); er = hip(&s->ehip2[1], er, 80); sample es[2] = { co * el + si * er, -si * el + co * er }; + + // multiband compressor + sample input[2] = { es[0], es[1] }; + for (int o = 0; o < OCTAVES; ++o) + { + sample band[2]; + for (int c = 0; c < 2; ++c) + { + band[c] = biquad(bandpass(&s->multiband[o][c], 20 * pow(2, o), flatq), input[c]); + } + compress(band, &s->multicomp[o], 5, 10, 25, 48, band); + es[0] += band[0]; + es[1] += band[1]; + } + compress(es, &s->ecompress1, 5, 10, 25, 48, es); es[0] = mix(mixdown[0], es[0], mix(0, pow(wrap(8 * p), 0.25), 1)); es[1] = mix(mixdown[1], es[1], mix(0, pow(wrap(8 * p), 0.25), 1));
diff @ 2019-01-27 15:43:54 +0000 diff --git a/client/go.c b/client/go.c index d42bd3a7c..d24e32108 100644 --- a/client/go.c +++ b/client/go.c @@ -265,7 +265,7 @@ go(S *s, int channels, const float *in, float *out) sample band[2]; for (int c = 0; c < 2; ++c) { - band[c] = biquad(bandpass(&s->multiband[o][c], 20 * pow(2, o), flatq), input[c]); + band[c] = biquad(bandpass(&s->multiband[o][c], 10 * pow(2, o), flatq), input[c]); } compress(band, &s->multicomp[o], 5, 10, 25, 48, band); es[0] += band[0];
diff @ 2019-01-27 15:43:58 +0000 diff --git a/client/go.c b/client/go.c index d24e32108..ea977559f 100644 --- a/client/go.c +++ b/client/go.c @@ -254,8 +254,8 @@ go(S *s, int channels, const float *in, float *out) sample er = delread4(&s->edelay2, rdelms + si); el = lop(&s->elop2[0], el, 8000); er = lop(&s->elop2[1], er, 8000); - el = hip(&s->ehip2[0], el, 80); - er = hip(&s->ehip2[1], er, 80); + el = hip(&s->ehip2[0], el, 8); + er = hip(&s->ehip2[1], er, 8); sample es[2] = { co * el + si * er, -si * el + co * er }; // multiband compressor
diff @ 2019-01-27 15:44:12 +0000 diff --git a/client/go.c b/client/go.c index ea977559f..b11e3f40d 100644 --- a/client/go.c +++ b/client/go.c @@ -246,7 +246,7 @@ go(S *s, int channels, const float *in, float *out) sample t = 2 * twopi * p; sample co = cos(t); sample si = sin(t); - sample ldelms = 60000 / bpm * (p < 0.75 ? 1./2 : 1./32); + sample ldelms = 60000 / bpm * (p < 0.75 ? 1./2 : 1./48); sample rdelms = 60000 / bpm * (p < 0.5 ? 1./4 : 1./16); ldelms = lop(&s->elop[0], ldelms, 15); rdelms = lop(&s->elop[1], rdelms, 15);
diff @ 2019-01-27 15:44:17 +0000 diff --git a/client/go.c b/client/go.c index b11e3f40d..a34464305 100644 --- a/client/go.c +++ b/client/go.c @@ -247,7 +247,7 @@ go(S *s, int channels, const float *in, float *out) sample co = cos(t); sample si = sin(t); sample ldelms = 60000 / bpm * (p < 0.75 ? 1./2 : 1./48); - sample rdelms = 60000 / bpm * (p < 0.5 ? 1./4 : 1./16); + sample rdelms = 60000 / bpm * (p < 0.5 ? 1./4 : 1./96); ldelms = lop(&s->elop[0], ldelms, 15); rdelms = lop(&s->elop[1], rdelms, 15); sample el = delread4(&s->edelay1, ldelms + co);
diff @ 2019-01-27 15:44:20 +0000 diff --git a/client/go.c b/client/go.c index a34464305..cbafc8bdc 100644 --- a/client/go.c +++ b/client/go.c @@ -248,8 +248,8 @@ go(S *s, int channels, const float *in, float *out) sample si = sin(t); sample ldelms = 60000 / bpm * (p < 0.75 ? 1./2 : 1./48); sample rdelms = 60000 / bpm * (p < 0.5 ? 1./4 : 1./96); - ldelms = lop(&s->elop[0], ldelms, 15); - rdelms = lop(&s->elop[1], rdelms, 15); + ldelms = lop(&s->elop[0], ldelms, 5); + rdelms = lop(&s->elop[1], rdelms, 5); sample el = delread4(&s->edelay1, ldelms + co); sample er = delread4(&s->edelay2, rdelms + si); el = lop(&s->elop2[0], el, 8000);
diff @ 2019-01-27 15:44:25 +0000 diff --git a/client/go.c b/client/go.c index cbafc8bdc..bdce1545c 100644 --- a/client/go.c +++ b/client/go.c @@ -248,8 +248,8 @@ go(S *s, int channels, const float *in, float *out) sample si = sin(t); sample ldelms = 60000 / bpm * (p < 0.75 ? 1./2 : 1./48); sample rdelms = 60000 / bpm * (p < 0.5 ? 1./4 : 1./96); - ldelms = lop(&s->elop[0], ldelms, 5); - rdelms = lop(&s->elop[1], rdelms, 5); + ldelms = lop(&s->elop[0], ldelms, 1); + rdelms = lop(&s->elop[1], rdelms, 1); sample el = delread4(&s->edelay1, ldelms + co); sample er = delread4(&s->edelay2, rdelms + si); el = lop(&s->elop2[0], el, 8000);
diff @ 2019-01-27 15:44:36 +0000 diff --git a/client/go.c b/client/go.c index bdce1545c..66b37f4f0 100644 --- a/client/go.c +++ b/client/go.c @@ -252,8 +252,8 @@ go(S *s, int channels, const float *in, float *out) rdelms = lop(&s->elop[1], rdelms, 1); sample el = delread4(&s->edelay1, ldelms + co); sample er = delread4(&s->edelay2, rdelms + si); - el = lop(&s->elop2[0], el, 8000); - er = lop(&s->elop2[1], er, 8000); + el = lop(&s->elop2[0], el, 2000); + er = lop(&s->elop2[1], er, 2000); el = hip(&s->ehip2[0], el, 8); er = hip(&s->ehip2[1], er, 8); sample es[2] = { co * el + si * er, -si * el + co * er };
diff @ 2019-01-27 15:44:39 +0000 diff --git a/client/go.c b/client/go.c index 66b37f4f0..92b33eca6 100644 --- a/client/go.c +++ b/client/go.c @@ -252,8 +252,8 @@ go(S *s, int channels, const float *in, float *out) rdelms = lop(&s->elop[1], rdelms, 1); sample el = delread4(&s->edelay1, ldelms + co); sample er = delread4(&s->edelay2, rdelms + si); - el = lop(&s->elop2[0], el, 2000); - er = lop(&s->elop2[1], er, 2000); + el = lop(&s->elop2[0], el, 1000); + er = lop(&s->elop2[1], er, 1000); el = hip(&s->ehip2[0], el, 8); er = hip(&s->ehip2[1], er, 8); sample es[2] = { co * el + si * er, -si * el + co * er };
diff @ 2019-01-27 15:44:44 +0000 diff --git a/client/go.c b/client/go.c index 92b33eca6..86a078920 100644 --- a/client/go.c +++ b/client/go.c @@ -252,8 +252,8 @@ go(S *s, int channels, const float *in, float *out) rdelms = lop(&s->elop[1], rdelms, 1); sample el = delread4(&s->edelay1, ldelms + co); sample er = delread4(&s->edelay2, rdelms + si); - el = lop(&s->elop2[0], el, 1000); - er = lop(&s->elop2[1], er, 1000); + el = lop(&s->elop2[0], el, 500); + er = lop(&s->elop2[1], er, 500); el = hip(&s->ehip2[0], el, 8); er = hip(&s->ehip2[1], er, 8); sample es[2] = { co * el + si * er, -si * el + co * er };
diff @ 2019-01-27 15:44:47 +0000 diff --git a/client/go.c b/client/go.c index 86a078920..d9454fe8a 100644 --- a/client/go.c +++ b/client/go.c @@ -252,8 +252,8 @@ go(S *s, int channels, const float *in, float *out) rdelms = lop(&s->elop[1], rdelms, 1); sample el = delread4(&s->edelay1, ldelms + co); sample er = delread4(&s->edelay2, rdelms + si); - el = lop(&s->elop2[0], el, 500); - er = lop(&s->elop2[1], er, 500); + el = lop(&s->elop2[0], el, 250); + er = lop(&s->elop2[1], er, 250); el = hip(&s->ehip2[0], el, 8); er = hip(&s->ehip2[1], er, 8); sample es[2] = { co * el + si * er, -si * el + co * er };
diff @ 2019-01-27 15:44:54 +0000 diff --git a/client/go.c b/client/go.c index d9454fe8a..b6cd73a81 100644 --- a/client/go.c +++ b/client/go.c @@ -254,8 +254,8 @@ go(S *s, int channels, const float *in, float *out) sample er = delread4(&s->edelay2, rdelms + si); el = lop(&s->elop2[0], el, 250); er = lop(&s->elop2[1], er, 250); - el = hip(&s->ehip2[0], el, 8); - er = hip(&s->ehip2[1], er, 8); + el = hip(&s->ehip2[0], el, 18); + er = hip(&s->ehip2[1], er, 18); sample es[2] = { co * el + si * er, -si * el + co * er }; // multiband compressor
diff @ 2019-01-27 15:45:22 +0000 diff --git a/client/go.c b/client/go.c index b6cd73a81..2e473ed45 100644 --- a/client/go.c +++ b/client/go.c @@ -278,8 +278,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] + tilex[0]; + mixdown[1] = es[1] + tilex[1]; } // = 5 = fifty-nine stellations ======================================
diff @ 2019-01-27 15:45:38 +0000 diff --git a/client/go.c b/client/go.c index 2e473ed45..ace3bac06 100644 --- a/client/go.c +++ b/client/go.c @@ -132,7 +132,7 @@ go(S *s, int channels, const float *in, float *out) hat *= 0; sample khz = 50 + 10 * (wrap(8 * p) > 0.75) + 25 * (wrap(2 * p) > 1); kick +=tanh(vcf(&s->tkick[0], kick, khz, 15)*15)*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*9, 50)*5) * sin(vcf(&s->tkick[3], kick, khz*7, 50)*5); sample crush = phasor(&s->tcrush, 4000 * pow(2, sin(twopi * p))); @@ -143,7 +143,7 @@ go(S *s, int channels, const float *in, float *out) tilex[0] += kgain * kick; tilex[1] += kgain * kick; compress(tilex, &s->tcompress, 5, 10, 25, 48, tilex); - sample gain = 0; + sample gain = 1; gain = samphold(&s->tgate[1], gain, p); tilex[0] *= gain; tilex[1] *= gain;
diff @ 2019-01-27 15:45:48 +0000 diff --git a/client/go.c b/client/go.c index ace3bac06..b82a8a284 100644 --- a/client/go.c +++ b/client/go.c @@ -138,7 +138,7 @@ go(S *s, int channels, const float *in, float *out) sample crush = phasor(&s->tcrush, 4000 * pow(2, sin(twopi * p))); tilex[0] = samphold(&s->tcrushsh[0], noise() * hat, crush); tilex[1] = samphold(&s->tcrushsh[1], noise() * hat, crush); - sample kgain = 2; + sample kgain = 1; kgain = samphold(&s->tgate[0], kgain, p); tilex[0] += kgain * kick; tilex[1] += kgain * kick;
diff @ 2019-01-27 15:45:59 +0000 diff --git a/client/go.c b/client/go.c index b82a8a284..f6a33ef9a 100644 --- a/client/go.c +++ b/client/go.c @@ -132,7 +132,7 @@ go(S *s, int channels, const float *in, float *out) hat *= 0; sample khz = 50 + 10 * (wrap(8 * p) > 0.75) + 25 * (wrap(2 * p) > 1); kick +=tanh(vcf(&s->tkick[0], kick, khz, 15)*15)*2; - kick += sin(vcf(&s->tkick[1], kick, khz * 3, 50)*50); + kick += sin(vcf(&s->tkick[1], kick, khz * 3, 100)*50); kick += sin(vcf(&s->tkick[2], kick, khz*9, 50)*5) * sin(vcf(&s->tkick[3], kick, khz*7, 50)*5); sample crush = phasor(&s->tcrush, 4000 * pow(2, sin(twopi * p)));
diff @ 2019-01-27 15:46:06 +0000 diff --git a/client/go.c b/client/go.c index f6a33ef9a..df5c688fb 100644 --- a/client/go.c +++ b/client/go.c @@ -132,7 +132,7 @@ go(S *s, int channels, const float *in, float *out) hat *= 0; sample khz = 50 + 10 * (wrap(8 * p) > 0.75) + 25 * (wrap(2 * p) > 1); kick +=tanh(vcf(&s->tkick[0], kick, khz, 15)*15)*2; - kick += sin(vcf(&s->tkick[1], kick, khz * 3, 100)*50); + kick += sin(vcf(&s->tkick[1], kick, khz * 3, 100)*5); kick += sin(vcf(&s->tkick[2], kick, khz*9, 50)*5) * sin(vcf(&s->tkick[3], kick, khz*7, 50)*5); sample crush = phasor(&s->tcrush, 4000 * pow(2, sin(twopi * p)));
diff @ 2019-01-27 15:46:08 +0000 diff --git a/client/go.c b/client/go.c index df5c688fb..d22c5ebe8 100644 --- a/client/go.c +++ b/client/go.c @@ -131,7 +131,7 @@ go(S *s, int channels, const float *in, float *out) sample hat = wrap(32 * p) < 0.15 * (1 + sin(p)); hat *= 0; sample khz = 50 + 10 * (wrap(8 * p) > 0.75) + 25 * (wrap(2 * p) > 1); - kick +=tanh(vcf(&s->tkick[0], kick, khz, 15)*15)*2; + kick +=tanh(vcf(&s->tkick[0], kick, khz, 15)*5)*2; kick += sin(vcf(&s->tkick[1], kick, khz * 3, 100)*5); kick += sin(vcf(&s->tkick[2], kick, khz*9, 50)*5) * sin(vcf(&s->tkick[3], kick, khz*7, 50)*5);
diff @ 2019-01-27 15:46:10 +0000 diff --git a/client/go.c b/client/go.c index d22c5ebe8..93f5a4b94 100644 --- a/client/go.c +++ b/client/go.c @@ -131,7 +131,7 @@ go(S *s, int channels, const float *in, float *out) sample hat = wrap(32 * p) < 0.15 * (1 + sin(p)); hat *= 0; sample khz = 50 + 10 * (wrap(8 * p) > 0.75) + 25 * (wrap(2 * p) > 1); - kick +=tanh(vcf(&s->tkick[0], kick, khz, 15)*5)*2; + kick +=tanh(vcf(&s->tkick[0], kick, khz, 5)*5)*2; kick += sin(vcf(&s->tkick[1], kick, khz * 3, 100)*5); kick += sin(vcf(&s->tkick[2], kick, khz*9, 50)*5) * sin(vcf(&s->tkick[3], kick, khz*7, 50)*5);
diff @ 2019-01-27 15:46:30 +0000 diff --git a/client/go.c b/client/go.c index 93f5a4b94..5970af4ba 100644 --- a/client/go.c +++ b/client/go.c @@ -348,7 +348,7 @@ go(S *s, int channels, const float *in, float *out) } { // bell sample env = lop(&s->lop59[4], - 0 * clamp(2 * (0.5 - wrap(0.5 + 4 * t)), 0, 1), 15); + 1 * clamp(2 * (0.5 - wrap(0.5 + 4 * t)), 0, 1), 15); sample env2 = lop(&s->lop59[5], clamp ( 2 * (0.5 - wrap(8 * t))
diff @ 2019-01-27 15:46:55 +0000 diff --git a/client/go.c b/client/go.c index 5970af4ba..4aa16a9f4 100644 --- a/client/go.c +++ b/client/go.c @@ -254,8 +254,8 @@ go(S *s, int channels, const float *in, float *out) sample er = delread4(&s->edelay2, rdelms + si); el = lop(&s->elop2[0], el, 250); er = lop(&s->elop2[1], er, 250); - el = hip(&s->ehip2[0], el, 18); - er = hip(&s->ehip2[1], er, 18); + el = hip(&s->ehip2[0], el, 100); + er = hip(&s->ehip2[1], er, 100); sample es[2] = { co * el + si * er, -si * el + co * er }; // multiband compressor
diff @ 2019-01-27 15:47:22 +0000 diff --git a/client/go.c b/client/go.c index 4aa16a9f4..21fad96f4 100644 --- a/client/go.c +++ b/client/go.c @@ -355,7 +355,7 @@ go(S *s, int channels, const float *in, float *out) * (wrap(4 * t) < 0.5) , 0, 1), 15); sample bell - = sin(4 * twopi * osc) + = sin(4 * twopi * osc * pow(2, floor(4 * t))) * sin(5 * twopi * osc) * sin(7 * twopi * osc) * env
diff @ 2019-01-27 15:47:41 +0000 diff --git a/client/go.c b/client/go.c index 21fad96f4..6b1c91918 100644 --- a/client/go.c +++ b/client/go.c @@ -355,7 +355,7 @@ go(S *s, int channels, const float *in, float *out) * (wrap(4 * t) < 0.5) , 0, 1), 15); sample bell - = sin(4 * twopi * osc * pow(2, floor(4 * t))) + = sin(4 * twopi * osc * pow(2, fmod((5 * floor(8 * t)), 8)) * sin(5 * twopi * osc) * sin(7 * twopi * osc) * env
diff @ 2019-01-27 15:47:48 +0000 diff --git a/client/go.c b/client/go.c index 6b1c91918..86d62780b 100644 --- a/client/go.c +++ b/client/go.c @@ -355,7 +355,7 @@ go(S *s, int channels, const float *in, float *out) * (wrap(4 * t) < 0.5) , 0, 1), 15); sample bell - = sin(4 * twopi * osc * pow(2, fmod((5 * floor(8 * t)), 8)) + = sin(4 * twopi * osc * pow(2, fmod((5 * floor(8 * t)), 8))) * sin(5 * twopi * osc) * sin(7 * twopi * osc) * env
diff @ 2019-01-27 15:48:00 +0000 diff --git a/client/go.c b/client/go.c index 86d62780b..7c61c062c 100644 --- a/client/go.c +++ b/client/go.c @@ -355,7 +355,7 @@ go(S *s, int channels, const float *in, float *out) * (wrap(4 * t) < 0.5) , 0, 1), 15); sample bell - = sin(4 * twopi * osc * pow(2, fmod((5 * floor(8 * t)), 8))) + = sin(4 * twopi * osc * pow(2, fmod((5 * floor(4 * t)), 8))) * sin(5 * twopi * osc) * sin(7 * twopi * osc) * env
diff @ 2019-01-27 15:48:05 +0000 diff --git a/client/go.c b/client/go.c index 7c61c062c..03f5a147c 100644 --- a/client/go.c +++ b/client/go.c @@ -355,7 +355,7 @@ go(S *s, int channels, const float *in, float *out) * (wrap(4 * t) < 0.5) , 0, 1), 15); sample bell - = sin(4 * twopi * osc * pow(2, fmod((5 * floor(4 * t)), 8))) + = sin(4 * twopi * osc * pow(2, fmod((5 * floor(4 * t)), 2))) * sin(5 * twopi * osc) * sin(7 * twopi * osc) * env
diff @ 2019-01-27 15:48:07 +0000 diff --git a/client/go.c b/client/go.c index 03f5a147c..27d751adf 100644 --- a/client/go.c +++ b/client/go.c @@ -355,7 +355,7 @@ go(S *s, int channels, const float *in, float *out) * (wrap(4 * t) < 0.5) , 0, 1), 15); sample bell - = sin(4 * twopi * osc * pow(2, fmod((5 * floor(4 * t)), 2))) + = sin(4 * twopi * osc * pow(2, fmod((5 * floor(4 * t)), 2.5))) * sin(5 * twopi * osc) * sin(7 * twopi * osc) * env
diff @ 2019-01-27 15:48:19 +0000 diff --git a/client/go.c b/client/go.c index 27d751adf..794ef48c6 100644 --- a/client/go.c +++ b/client/go.c @@ -356,7 +356,7 @@ go(S *s, int channels, const float *in, float *out) , 0, 1), 15); sample bell = sin(4 * twopi * osc * pow(2, fmod((5 * floor(4 * t)), 2.5))) - * sin(5 * twopi * osc) + * sin(5 * twopi * osc * pow(2, t > 0.5)) * sin(7 * twopi * osc) * env * 4;
diff @ 2019-01-27 15:48:32 +0000 diff --git a/client/go.c b/client/go.c index 794ef48c6..dd0f74d75 100644 --- a/client/go.c +++ b/client/go.c @@ -357,7 +357,7 @@ go(S *s, int channels, const float *in, float *out) sample bell = sin(4 * twopi * osc * pow(2, fmod((5 * floor(4 * t)), 2.5))) * sin(5 * twopi * osc * pow(2, t > 0.5)) - * sin(7 * twopi * osc) + * sin(7 * twopi * osc * pow(2, wrap(2 * t) > 0.5)) * env * 4; sample bell1 = pitchshift(&s->ps59[0], 2, 100, 3, bell);
diff @ 2019-01-27 15:48:45 +0000 diff --git a/client/go.c b/client/go.c index dd0f74d75..d09336983 100644 --- a/client/go.c +++ b/client/go.c @@ -355,7 +355,7 @@ go(S *s, int channels, const float *in, float *out) * (wrap(4 * t) < 0.5) , 0, 1), 15); sample bell - = sin(4 * twopi * osc * pow(2, fmod((5 * floor(4 * t)), 2.5))) + = sin(4 * twopi * osc * pow(2, wrap(3 * t) < 0.5)) * sin(5 * twopi * osc * pow(2, t > 0.5)) * sin(7 * twopi * osc * pow(2, wrap(2 * t) > 0.5)) * env
diff @ 2019-01-27 15:49:00 +0000 diff --git a/client/go.c b/client/go.c index d09336983..57c24fd30 100644 --- a/client/go.c +++ b/client/go.c @@ -138,7 +138,7 @@ go(S *s, int channels, const float *in, float *out) sample crush = phasor(&s->tcrush, 4000 * pow(2, sin(twopi * p))); tilex[0] = samphold(&s->tcrushsh[0], noise() * hat, crush); tilex[1] = samphold(&s->tcrushsh[1], noise() * hat, crush); - sample kgain = 1; + sample kgain = 0; kgain = samphold(&s->tgate[0], kgain, p); tilex[0] += kgain * kick; tilex[1] += kgain * kick;
diff @ 2019-01-27 15:49:27 +0000 diff --git a/client/go.c b/client/go.c index 57c24fd30..eab5bd54a 100644 --- a/client/go.c +++ b/client/go.c @@ -313,7 +313,7 @@ go(S *s, int channels, const float *in, float *out) } { // hihat sample closed = 1 - wrap(8 * t - 0.58); - sample open = 1 - wrap(4 * t - 0.50); + sample open = 0;//1 - wrap(4 * t - 0.50); closed *= closed; closed *= closed; closed *= 1.3;
diff @ 2019-01-27 15:49:32 +0000 diff --git a/client/go.c b/client/go.c index eab5bd54a..b727a6418 100644 --- a/client/go.c +++ b/client/go.c @@ -325,7 +325,7 @@ go(S *s, int channels, const float *in, float *out) open *= open; sample env = open + closed; sample h = noise(); - h *= 0; + h *= 1; o[0] += 4 * tanh(env * hip(&s->hip59[2], hip(&s->hip59[3], h * noise(), 3000), 1500)); o[1] += 4 * tanh(env * hip(&s->hip59[4], hip(&s->hip59[5],
diff @ 2019-01-27 15:49:42 +0000 diff --git a/client/go.c b/client/go.c index b727a6418..284773bfb 100644 --- a/client/go.c +++ b/client/go.c @@ -307,7 +307,7 @@ go(S *s, int channels, const float *in, float *out) sample kick = sin(twopi * phasor(&s->kick59[1], env + mod)); env2 = env2 + env2 * env2 * env2 * env2; kick = 4 * hip(&s->hip59[0], tanh(env2 * kick), 5); - kick *= 0; + kick *= 1; o[0] += kick; o[1] += kick; }
diff @ 2019-01-27 15:49:56 +0000 diff --git a/client/go.c b/client/go.c index 284773bfb..87031b78f 100644 --- a/client/go.c +++ b/client/go.c @@ -348,7 +348,7 @@ go(S *s, int channels, const float *in, float *out) } { // bell sample env = lop(&s->lop59[4], - 1 * clamp(2 * (0.5 - wrap(0.5 + 4 * t)), 0, 1), 15); + 1 * clamp(2 * (0.5 - wrap(0.5 + 8 * t)), 0, 1), 15); sample env2 = lop(&s->lop59[5], clamp ( 2 * (0.5 - wrap(8 * t))
diff @ 2019-01-27 15:50:11 +0000 diff --git a/client/go.c b/client/go.c index 87031b78f..539a9ef07 100644 --- a/client/go.c +++ b/client/go.c @@ -372,7 +372,7 @@ go(S *s, int channels, const float *in, float *out) becho *= env2; bell += becho; bell *= 4; - sample lfo = 11 * sin(16 * twopi * t); + sample lfo = 5 * sin(16 * twopi * t); sample l = 0.3 * delread4(&s->del59l, ms4 + lfo) + bell; sample r = 0.3 * delread4(&s->del59r, ms4 - lfo) + bell; delwrite(&s->del59l, -r);
diff @ 2019-01-27 15:50:20 +0000 diff --git a/client/go.c b/client/go.c index 539a9ef07..b8eac547b 100644 --- a/client/go.c +++ b/client/go.c @@ -373,8 +373,8 @@ go(S *s, int channels, const float *in, float *out) bell += becho; bell *= 4; sample lfo = 5 * sin(16 * twopi * t); - sample l = 0.3 * delread4(&s->del59l, ms4 + lfo) + bell; - sample r = 0.3 * delread4(&s->del59r, ms4 - lfo) + bell; + sample l = 0.4 * delread4(&s->del59l, ms4 + lfo) + bell; + sample r = 0.4 * delread4(&s->del59r, ms4 - lfo) + bell; delwrite(&s->del59l, -r); delwrite(&s->del59r, l); o[0] += l;
diff @ 2019-01-27 15:50:22 +0000 diff --git a/client/go.c b/client/go.c index b8eac547b..881485a34 100644 --- a/client/go.c +++ b/client/go.c @@ -374,7 +374,7 @@ go(S *s, int channels, const float *in, float *out) bell *= 4; sample lfo = 5 * sin(16 * twopi * t); sample l = 0.4 * delread4(&s->del59l, ms4 + lfo) + bell; - sample r = 0.4 * delread4(&s->del59r, ms4 - lfo) + bell; + sample r = -0.4 * delread4(&s->del59r, ms4 - lfo) + bell; delwrite(&s->del59l, -r); delwrite(&s->del59r, l); o[0] += l;
diff @ 2019-01-27 15:50:24 +0000 diff --git a/client/go.c b/client/go.c index 881485a34..b8eac547b 100644 --- a/client/go.c +++ b/client/go.c @@ -374,7 +374,7 @@ go(S *s, int channels, const float *in, float *out) bell *= 4; sample lfo = 5 * sin(16 * twopi * t); sample l = 0.4 * delread4(&s->del59l, ms4 + lfo) + bell; - sample r = -0.4 * delread4(&s->del59r, ms4 - lfo) + bell; + sample r = 0.4 * delread4(&s->del59r, ms4 - lfo) + bell; delwrite(&s->del59l, -r); delwrite(&s->del59r, l); o[0] += l;
diff @ 2019-01-27 15:50:54 +0000 diff --git a/client/go.h b/client/go.h index a5a478c5f..ee7d1e758 100644 --- a/client/go.h +++ b/client/go.h @@ -60,7 +60,7 @@ typedef struct COMPRESS multicomp[OCTAVES]; LOP elop2[2]; HIP ehip2[2]; - + HIP leakdc[2]; } S; #endif
diff @ 2019-01-27 15:50:56 +0000 diff --git a/client/go.c b/client/go.c index b8eac547b..841910c0d 100644 --- a/client/go.c +++ b/client/go.c @@ -375,6 +375,8 @@ go(S *s, int channels, const float *in, float *out) sample lfo = 5 * sin(16 * twopi * t); sample l = 0.4 * delread4(&s->del59l, ms4 + lfo) + bell; sample r = 0.4 * delread4(&s->del59r, ms4 - lfo) + bell; + l = hip(&s->leakdc[0], l, 5); + r = hip(&s->leakdc[1], r, 5); delwrite(&s->del59l, -r); delwrite(&s->del59r, l); o[0] += l;
diff @ 2019-01-27 15:50:58 +0000 diff --git a/client/go.c b/client/go.c index 841910c0d..1e501327d 100644 --- a/client/go.c +++ b/client/go.c @@ -373,8 +373,8 @@ go(S *s, int channels, const float *in, float *out) bell += becho; bell *= 4; sample lfo = 5 * sin(16 * twopi * t); - sample l = 0.4 * delread4(&s->del59l, ms4 + lfo) + bell; - sample r = 0.4 * delread4(&s->del59r, ms4 - lfo) + bell; + sample l = 0.5 * delread4(&s->del59l, ms4 + lfo) + bell; + sample r = 0.5 * delread4(&s->del59r, ms4 - lfo) + bell; l = hip(&s->leakdc[0], l, 5); r = hip(&s->leakdc[1], r, 5); delwrite(&s->del59l, -r);
diff @ 2019-01-27 15:51:08 +0000 diff --git a/client/go.c b/client/go.c index 1e501327d..80e6adab7 100644 --- a/client/go.c +++ b/client/go.c @@ -366,7 +366,7 @@ go(S *s, int channels, const float *in, float *out) bell += bell1 + bell2 + bell3; bell *= env; sample becho = delread1(&s->del59, ms4); - becho = lop(&s->lop59[3], becho, 1000) * 0.5; + becho = lop(&s->lop59[3], becho, 1000) * 0.6; delwrite(&s->del59, bell3 + pitchshift(&s->ps59[3], 2, 100, 3, becho)); becho *= env2;
diff @ 2019-01-27 15:51:20 +0000 diff --git a/client/go.c b/client/go.c index 80e6adab7..6060d684a 100644 --- a/client/go.c +++ b/client/go.c @@ -366,7 +366,7 @@ go(S *s, int channels, const float *in, float *out) bell += bell1 + bell2 + bell3; bell *= env; sample becho = delread1(&s->del59, ms4); - becho = lop(&s->lop59[3], becho, 1000) * 0.6; + becho = lop(&s->lop59[3], becho, 1000) * 0.7; delwrite(&s->del59, bell3 + pitchshift(&s->ps59[3], 2, 100, 3, becho)); becho *= env2;
diff @ 2019-01-27 15:51:24 +0000 diff --git a/client/go.c b/client/go.c index 6060d684a..1e790f3a4 100644 --- a/client/go.c +++ b/client/go.c @@ -366,7 +366,7 @@ go(S *s, int channels, const float *in, float *out) bell += bell1 + bell2 + bell3; bell *= env; sample becho = delread1(&s->del59, ms4); - becho = lop(&s->lop59[3], becho, 1000) * 0.7; + becho = lop(&s->lop59[3], becho, 1000) * -0.7; delwrite(&s->del59, bell3 + pitchshift(&s->ps59[3], 2, 100, 3, becho)); becho *= env2;
diff @ 2019-01-27 15:51:34 +0000 diff --git a/client/go.c b/client/go.c index 1e790f3a4..b088fad30 100644 --- a/client/go.c +++ b/client/go.c @@ -369,7 +369,7 @@ go(S *s, int channels, const float *in, float *out) becho = lop(&s->lop59[3], becho, 1000) * -0.7; delwrite(&s->del59, bell3 + pitchshift(&s->ps59[3], 2, 100, 3, becho)); - becho *= env2; + //becho *= env2; bell += becho; bell *= 4; sample lfo = 5 * sin(16 * twopi * t);
diff @ 2019-01-27 15:51:46 +0000 diff --git a/client/go.c b/client/go.c index b088fad30..e723c5aca 100644 --- a/client/go.c +++ b/client/go.c @@ -295,7 +295,7 @@ go(S *s, int channels, const float *in, float *out) sample o[2] = { 0, 0 }; { // kick sample peak = hz * 8; - sample env = 1 - wrap(2 * t); + sample env = 1 - wrap(4 * t); sample env2 = env * 2; env *= env; env *= env;
diff @ 2019-01-27 15:51:53 +0000 diff --git a/client/go.c b/client/go.c index e723c5aca..71af1107e 100644 --- a/client/go.c +++ b/client/go.c @@ -294,7 +294,7 @@ go(S *s, int channels, const float *in, float *out) sample osc = phasor(&s->osc59, hz); sample o[2] = { 0, 0 }; { // kick - sample peak = hz * 8; + sample peak = hz * 4; sample env = 1 - wrap(4 * t); sample env2 = env * 2; env *= env;
diff @ 2019-01-27 15:51:57 +0000 diff --git a/client/go.c b/client/go.c index 71af1107e..3b4640c09 100644 --- a/client/go.c +++ b/client/go.c @@ -299,6 +299,7 @@ go(S *s, int channels, const float *in, float *out) sample env2 = env * 2; env *= env; env *= env; + env *= env; env *= sqrt(sqrt(peak)); sample env3 = env * env * env; sample mod = sin(twopi * phasor(&s->kick59[0], env * peak)) * env3;
diff @ 2019-01-27 15:52:11 +0000 diff --git a/client/go.c b/client/go.c index 3b4640c09..326f0480f 100644 --- a/client/go.c +++ b/client/go.c @@ -314,7 +314,7 @@ go(S *s, int channels, const float *in, float *out) } { // hihat sample closed = 1 - wrap(8 * t - 0.58); - sample open = 0;//1 - wrap(4 * t - 0.50); + sample open = 1 - wrap(4 * t - 0.50); closed *= closed; closed *= closed; closed *= 1.3;
diff @ 2019-01-27 15:52:23 +0000 diff --git a/client/go.c b/client/go.c index 326f0480f..980a5365d 100644 --- a/client/go.c +++ b/client/go.c @@ -357,7 +357,7 @@ go(S *s, int channels, const float *in, float *out) , 0, 1), 15); sample bell = sin(4 * twopi * osc * pow(2, wrap(3 * t) < 0.5)) - * sin(5 * twopi * osc * pow(2, t > 0.5)) + * sin(5 * twopi * osc * pow(2, t > 0.25)) * sin(7 * twopi * osc * pow(2, wrap(2 * t) > 0.5)) * env * 4;
diff @ 2019-01-27 15:52:47 +0000 diff --git a/client/go.c b/client/go.c index 980a5365d..9e6f61fbb 100644 --- a/client/go.c +++ b/client/go.c @@ -278,8 +278,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] + tilex[0]; - mixdown[1] = es[1] + tilex[1]; + mixdown[0] = tilex[0]; + mixdown[1] = tilex[1]; } // = 5 = fifty-nine stellations ======================================
diff @ 2019-01-27 15:53:07 +0000 diff --git a/client/go.c b/client/go.c index 9e6f61fbb..cbb06cb51 100644 --- a/client/go.c +++ b/client/go.c @@ -376,8 +376,8 @@ go(S *s, int channels, const float *in, float *out) sample lfo = 5 * sin(16 * twopi * t); sample l = 0.5 * delread4(&s->del59l, ms4 + lfo) + bell; sample r = 0.5 * delread4(&s->del59r, ms4 - lfo) + bell; - l = hip(&s->leakdc[0], l, 5); - r = hip(&s->leakdc[1], r, 5); + l = hip(&s->leakdc[0], l, 500); + r = hip(&s->leakdc[1], r, 500); delwrite(&s->del59l, -r); delwrite(&s->del59r, l); o[0] += l;
diff @ 2019-01-27 15:53:14 +0000 diff --git a/client/go.c b/client/go.c index cbb06cb51..14a2595e3 100644 --- a/client/go.c +++ b/client/go.c @@ -376,8 +376,8 @@ go(S *s, int channels, const float *in, float *out) sample lfo = 5 * sin(16 * twopi * t); sample l = 0.5 * delread4(&s->del59l, ms4 + lfo) + bell; sample r = 0.5 * delread4(&s->del59r, ms4 - lfo) + bell; - l = hip(&s->leakdc[0], l, 500); - r = hip(&s->leakdc[1], r, 500); + l = hip(&s->leakdc[0], l, 5000); + r = hip(&s->leakdc[1], r, 5000); delwrite(&s->del59l, -r); delwrite(&s->del59r, l); o[0] += l;
diff @ 2019-01-27 15:53:26 +0000 diff --git a/client/go.c b/client/go.c index 14a2595e3..9a08f0af8 100644 --- a/client/go.c +++ b/client/go.c @@ -295,7 +295,7 @@ go(S *s, int channels, const float *in, float *out) sample o[2] = { 0, 0 }; { // kick sample peak = hz * 4; - sample env = 1 - wrap(4 * t); + sample env = 1 - wrap(16 * t); sample env2 = env * 2; env *= env; env *= env;
diff @ 2019-01-27 15:53:35 +0000 diff --git a/client/go.c b/client/go.c index 9a08f0af8..8e42cc2f9 100644 --- a/client/go.c +++ b/client/go.c @@ -295,7 +295,7 @@ go(S *s, int channels, const float *in, float *out) sample o[2] = { 0, 0 }; { // kick sample peak = hz * 4; - sample env = 1 - wrap(16 * t); + sample env = 1 - wrap(32 * t); sample env2 = env * 2; env *= env; env *= env;
diff @ 2019-01-27 15:53:42 +0000 diff --git a/client/go.c b/client/go.c index 8e42cc2f9..44705305d 100644 --- a/client/go.c +++ b/client/go.c @@ -294,7 +294,7 @@ go(S *s, int channels, const float *in, float *out) sample osc = phasor(&s->osc59, hz); sample o[2] = { 0, 0 }; { // kick - sample peak = hz * 4; + sample peak = hz * 6; sample env = 1 - wrap(32 * t); sample env2 = env * 2; env *= env;
diff @ 2019-01-27 15:53:47 +0000 diff --git a/client/go.c b/client/go.c index 44705305d..f06ba6f82 100644 --- a/client/go.c +++ b/client/go.c @@ -295,7 +295,7 @@ go(S *s, int channels, const float *in, float *out) sample o[2] = { 0, 0 }; { // kick sample peak = hz * 6; - sample env = 1 - wrap(32 * t); + sample env = 1 - wrap(64 * t); sample env2 = env * 2; env *= env; env *= env;
diff @ 2019-01-27 15:53:54 +0000 diff --git a/client/go.c b/client/go.c index f06ba6f82..6b95a990c 100644 --- a/client/go.c +++ b/client/go.c @@ -295,7 +295,7 @@ go(S *s, int channels, const float *in, float *out) sample o[2] = { 0, 0 }; { // kick sample peak = hz * 6; - sample env = 1 - wrap(64 * t); + sample env = 1 - wrap(256 * t); sample env2 = env * 2; env *= env; env *= env;
diff @ 2019-01-27 15:54:02 +0000 diff --git a/client/go.c b/client/go.c index 6b95a990c..f2a470a54 100644 --- a/client/go.c +++ b/client/go.c @@ -308,7 +308,7 @@ go(S *s, int channels, const float *in, float *out) sample kick = sin(twopi * phasor(&s->kick59[1], env + mod)); env2 = env2 + env2 * env2 * env2 * env2; kick = 4 * hip(&s->hip59[0], tanh(env2 * kick), 5); - kick *= 1; + kick *= 0; o[0] += kick; o[1] += kick; }
diff @ 2019-01-27 15:54:13 +0000 diff --git a/client/go.c b/client/go.c index f2a470a54..a0e246451 100644 --- a/client/go.c +++ b/client/go.c @@ -349,7 +349,7 @@ go(S *s, int channels, const float *in, float *out) } { // bell sample env = lop(&s->lop59[4], - 1 * clamp(2 * (0.5 - wrap(0.5 + 8 * t)), 0, 1), 15); + 1 * clamp(2 * (0.5 - wrap(0.5 + 0 * t)), 0, 1), 15); sample env2 = lop(&s->lop59[5], clamp ( 2 * (0.5 - wrap(8 * t))
diff @ 2019-01-27 15:54:30 +0000 diff --git a/client/go.c b/client/go.c index a0e246451..c6b8de964 100644 --- a/client/go.c +++ b/client/go.c @@ -313,8 +313,8 @@ go(S *s, int channels, const float *in, float *out) o[1] += kick; } { // hihat - sample closed = 1 - wrap(8 * t - 0.58); - sample open = 1 - wrap(4 * t - 0.50); + sample closed = 1 - wrap(0 * t - 0.58); + sample open = 1 - wrap(0 * t - 0.50); closed *= closed; closed *= closed; closed *= 1.3;
diff @ 2019-01-27 15:54:49 +0000 diff --git a/client/go.c b/client/go.c index c6b8de964..d34a561aa 100644 --- a/client/go.c +++ b/client/go.c @@ -314,7 +314,7 @@ go(S *s, int channels, const float *in, float *out) } { // hihat sample closed = 1 - wrap(0 * t - 0.58); - sample open = 1 - wrap(0 * t - 0.50); + mple open = 0- wrap(0 * t - 0.50); closed *= closed; closed *= closed; closed *= 1.3;