Only in PW_HACKED_unofficial-csound-4.0.5.0a-linux.src/: #freeverb-test.sco# Only in PW_HACKED_unofficial-csound-4.0.5.0a-linux.src/: #freeverb.h# Only in PW_HACKED_unofficial-csound-4.0.5.0a-linux.src/: .#freeverb-test.sco Only in PW_HACKED_unofficial-csound-4.0.5.0a-linux.src/: .#freeverb.h Only in PW_HACKED_unofficial-csound-4.0.5.0a-linux.src/: .depend Only in PW_HACKED_unofficial-csound-4.0.5.0a-linux.src/: Make.Variables Common subdirectories: unofficial-csound-4.0.5.0a-linux.src/anal and PW_HACKED_unofficial-csound-4.0.5.0a-linux.src/anal Only in PW_HACKED_unofficial-csound-4.0.5.0a-linux.src/: config.cache Only in PW_HACKED_unofficial-csound-4.0.5.0a-linux.src/: config.log Only in PW_HACKED_unofficial-csound-4.0.5.0a-linux.src/: config.status Only in PW_HACKED_unofficial-csound-4.0.5.0a-linux.src/: core Common subdirectories: unofficial-csound-4.0.5.0a-linux.src/cscofils and PW_HACKED_unofficial-csound-4.0.5.0a-linux.src/cscofils Only in PW_HACKED_unofficial-csound-4.0.5.0a-linux.src/: csound Only in PW_HACKED_unofficial-csound-4.0.5.0a-linux.src/: csound.txt Common subdirectories: unofficial-csound-4.0.5.0a-linux.src/doc and PW_HACKED_unofficial-csound-4.0.5.0a-linux.src/doc diff unofficial-csound-4.0.5.0a-linux.src/entry.c PW_HACKED_unofficial-csound-4.0.5.0a-linux.src/entry.c 84d83 < 210a210,212 > /* Freeverb added by Paul Winkler */ > void freeverb_set(void*), freeverb(void*); > 771a774,775 > /* freeverb added by Paul Winkler */ > { "freeverb", S(FREV), 5, "a", "akko", freeverb_set, NULL, freeverb}, Only in PW_HACKED_unofficial-csound-4.0.5.0a-linux.src/: freeverb-test.orc Only in PW_HACKED_unofficial-csound-4.0.5.0a-linux.src/: freeverb-test.orc~ Only in PW_HACKED_unofficial-csound-4.0.5.0a-linux.src/: freeverb-test.sco Only in PW_HACKED_unofficial-csound-4.0.5.0a-linux.src/: freeverb-test.sco~ Only in PW_HACKED_unofficial-csound-4.0.5.0a-linux.src/: freeverb.h Only in PW_HACKED_unofficial-csound-4.0.5.0a-linux.src/: libcsound.a Only in PW_HACKED_unofficial-csound-4.0.5.0a-linux.src/: libcsound.so Only in PW_HACKED_unofficial-csound-4.0.5.0a-linux.src/: libcsound.so.4.0.5.0a Common subdirectories: unofficial-csound-4.0.5.0a-linux.src/locale and PW_HACKED_unofficial-csound-4.0.5.0a-linux.src/locale Common subdirectories: unofficial-csound-4.0.5.0a-linux.src/new-src and PW_HACKED_unofficial-csound-4.0.5.0a-linux.src/new-src diff unofficial-csound-4.0.5.0a-linux.src/revsets.h PW_HACKED_unofficial-csound-4.0.5.0a-linux.src/revsets.h 38a39,92 > > /* > PW's comment: I just copied the tuning values from "tuning.h" in the > freeverb source code... > */ > > /* > Jezar's comment: > These values assume 44.1KHz sample rate > they will probably be OK for 48KHz sample rate > but would need scaling for 96KHz (or other) sample rates. > The values were obtained by listening tests. > */ > > FLOAT fvgc_time[FVCombs] = { > 1116, > 1188, > 1277, > 1356, > 1422, > 1491, > 1557, > 1617 > }; > > FLOAT fvgc_gain[FVCombs] = { > .5f, > .5f, > .5f, > .5f, > .5f, > .5f, > .5f, > .5f > }; > > FLOAT fvga_time[FVAlpas] = { > 556, > 441, > 341, > 225 > }; > > FLOAT fvga_gain[FVAlpas] = { > .5f, > .5f, > .5f, > .5f > }; > > > > > Only in PW_HACKED_unofficial-csound-4.0.5.0a-linux.src/: revsets.h~ Common subdirectories: unofficial-csound-4.0.5.0a-linux.src/util1 and PW_HACKED_unofficial-csound-4.0.5.0a-linux.src/util1 Common subdirectories: unofficial-csound-4.0.5.0a-linux.src/util2 and PW_HACKED_unofficial-csound-4.0.5.0a-linux.src/util2 diff unofficial-csound-4.0.5.0a-linux.src/vdelay.c PW_HACKED_unofficial-csound-4.0.5.0a-linux.src/vdelay.c 4a5,10 > /* > Added by Paul Winkler: > freeverb, based on reverb2 and Jezar's Freeverb > (free public domain reverb) > */ > 584a591,722 > > /* freeverb */ > void freeverb_set(FREV *p) /* 6-comb/lowpass, 5-allpass reverberator */ > { > long i, n; > FLOAT *temp; > > if (*p->hdif > 1.0 || *p->hdif < 0) > die(Str(X_294,"High frequency diffusion not in (0, 1)\n")); > > if (*p->istor == 0.0 || p->temp.auxp == NULL) { > auxalloc(ksmps * sizeof(FLOAT), &p->temp); > temp = (FLOAT *)p->temp.auxp; > for (n = 0 ; n < ksmps ; n++) > *temp++ = 0.0; > for (i = 0 ; i < FVCombs ; i++) { > p->c_time[i] = fvgc_time[i]; > p->c_gain[i] = exp((double)(LOG001 * (p->c_time[i]/esr) / > (fvgc_gain[i] * *p->time))); > p->g[i] = *p->hdif; > p->c_gain[i] = p->c_gain[i] * (1 - p->g[i]); > p->z[i] = 0.0; > > auxalloc((long)(p->c_time[i] * sizeof(FLOAT)), &p->caux[i]); > p->cbuf_cur[i] = (FLOAT *)p->caux[i].auxp; > for (n = 0 ; n < p->c_time[i] ; n++) > *(p->cbuf_cur[i] + n) = 0.0; > } > > for (i = 0 ; i < FVAlpas ; i++) { > p->a_time[i] = fvga_time[i]; > p->a_gain[i] = exp((double)(LOG001 * (p->c_time[i]/esr) / > (fvga_gain[i] * *p->time))); > auxalloc((long) p->a_time[i] * sizeof(FLOAT), &p->aaux[i]); > p->abuf_cur[i] = (FLOAT *)p->aaux[i].auxp; > } > } > > p->prev_time = *p->time; > p->prev_hdif = *p->hdif; > } > > void freeverb(FREV *p) > { > long i, n = ksmps; > FLOAT *in, *out = p->out, *buf, *end; > FLOAT gain, z; > FLOAT hdif = *p->hdif; > FLOAT time = *p->time; > > if (p->temp.auxp==NULL) { > initerror(Str(X_1165,"freeverb: not initialized")); > return; > } > do *out++ = 0.0f; > while (--n); > if (time != p->prev_time || hdif != p->prev_hdif) { > if (hdif > 1.0f) { > printf(Str(X_532,"Warning: High frequency diffusion>1\n")); > hdif = 1.0f; > } > if (hdif < 0.0f) { > printf(Str(X_531,"Warning: High frequency diffusion<0\n")); > hdif = 0.0f; > } > if (time < 0.0f) { > printf(Str(X_356,"Negative time?\n")); > time = 0.0; > } > for (i = 0 ; i < FVCombs ; i++) { > p->c_gain[i] = exp((double)(LOG001 * (p->c_time[i]/esr) / > (fvgc_gain[i] * time))); > p->g[i] = hdif; > p->c_gain[i] = p->c_gain[i] * (1 - p->g[i]); > p->z[i] = 0.0f; > } > > for (i = 0 ; i < FVAlpas ; i++) > p->a_gain[i] = exp((double)(LOG001 * (p->a_time[i]/esr) / > (fvga_gain[i] * time))); > > p->prev_time = time; > p->prev_hdif = hdif; > } > > for (i = 0 ; i < FVCombs ; i++) { > buf = p->cbuf_cur[i]; > end = (FLOAT *)p->caux[i].endp; > gain = p->c_gain[i]; > in = p->in; > out = p->out; > n = ksmps; > do { > *out++ += *buf; > *buf += p->z[i] * p->g[i]; > p->z[i] = *buf; > *buf *= gain; > *buf += *in++; > if (++buf >= end) > buf = (FLOAT *)p->caux[i].auxp; > } while (--n); > p->cbuf_cur[i] = buf; > } > > for (i = 0 ; i < FVAlpas ; i++) { > in = (FLOAT *)p->temp.auxp; > out = p->out; > n = ksmps; > do *in++ = *out++; > while (--n); > buf = p->abuf_cur[i]; > end = (FLOAT *)p->aaux[i].endp; > gain = p->a_gain[i]; > in = (FLOAT *)p->temp.auxp; > out = p->out; > n = ksmps; > do { > z = *buf; > *buf = gain * z + *in++; > *out++ = z - gain * *buf; > if (++buf >= end) > buf = (FLOAT *)p->aaux[i].auxp; > } while (--n); > p->abuf_cur[i] = buf; > } > } > > > > > > diff unofficial-csound-4.0.5.0a-linux.src/vdelay.h PW_HACKED_unofficial-csound-4.0.5.0a-linux.src/vdelay.h 46a47,74 > /* freeverb for Csound */ > /* based on Freeverb by Jezar, public domain reverb software */ > /* hacked by Paul Winkler from: */ > /* reverb2 coded by Paris Smaragdis */ > /* Berklee College of Music Csound development team */ > /* Copyright (c) December 1994. All rights reserved */ > > #define FVCombs 8 > #define FVAlpas 4 > > typedef struct { > OPDS h; > FLOAT *out, *in, *time, *hdif, *istor; > FLOAT *cbuf_cur[FVCombs], *abuf_cur[FVAlpas]; > FLOAT c_time[FVCombs], c_gain[FVCombs], a_time[FVAlpas], a_gain[FVAlpas]; > FLOAT z[FVCombs], g[FVCombs]; > AUXCH temp; > AUXCH caux[FVCombs], aaux[FVAlpas]; > FLOAT prev_time, prev_hdif; > } FREV; > > > > > > > > Only in PW_HACKED_unofficial-csound-4.0.5.0a-linux.src/: vdelay.h~