Commit 08d24d7a authored by Alessio Treglia's avatar Alessio Treglia

Imported Upstream version 11.4

parent d136f8f7
Snd change log
27-Feb: the run macro's argument no longer has to be a thunk.
11-Feb: Snd 11.3.
9-Feb: removed NLS support (the po directory and so on).
8-Feb: moved sound|channel|mix|mark|edit-property to C.
......
......@@ -559,3 +559,104 @@ presetting ac_cv_c_bigendian=no (or yes) will help])]) ;;
esac
])# AC_OLD_BIGENDIAN
dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no.
AC_DEFUN([AC_LIB_PROG_LD_GNU],
[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld,
[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
case `$LD -v 2>&1 </dev/null` in
*GNU* | *'with BFD'*)
acl_cv_prog_gnu_ld=yes ;;
*)
acl_cv_prog_gnu_ld=no ;;
esac])
with_gnu_ld=$acl_cv_prog_gnu_ld
])
dnl From libtool-1.4. Sets the variable LD.
AC_DEFUN([AC_LIB_PROG_LD],
[AC_ARG_WITH(gnu-ld,
[ --with-gnu-ld assume the C compiler uses GNU ld [default=no]],
test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
AC_REQUIRE([AC_PROG_CC])dnl
AC_REQUIRE([AC_CANONICAL_HOST])dnl
# Prepare PATH_SEPARATOR.
# The user is always right.
if test "${PATH_SEPARATOR+set}" != set; then
echo "#! /bin/sh" >conf$$.sh
echo "exit 0" >>conf$$.sh
chmod +x conf$$.sh
if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
PATH_SEPARATOR=';'
else
PATH_SEPARATOR=:
fi
rm -f conf$$.sh
fi
ac_prog=ld
if test "$GCC" = yes; then
# Check if gcc -print-prog-name=ld gives a path.
AC_MSG_CHECKING([for ld used by GCC])
case $host in
*-*-mingw*)
# gcc leaves a trailing carriage return which upsets mingw
ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
*)
ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
esac
case $ac_prog in
# Accept absolute paths.
[[\\/]* | [A-Za-z]:[\\/]*)]
[re_direlt='/[^/][^/]*/\.\./']
# Canonicalize the path of ld
ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
done
test -z "$LD" && LD="$ac_prog"
;;
"")
# If it fails, then pretend we aren't using GCC.
ac_prog=ld
;;
*)
# If it is relative, then search for the first ld in PATH.
with_gnu_ld=unknown
;;
esac
elif test "$with_gnu_ld" = yes; then
AC_MSG_CHECKING([for GNU ld])
else
AC_MSG_CHECKING([for non-GNU ld])
fi
AC_CACHE_VAL(acl_cv_path_LD,
[if test -z "$LD"; then
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
for ac_dir in $PATH; do
test -z "$ac_dir" && ac_dir=.
if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
acl_cv_path_LD="$ac_dir/$ac_prog"
# Check to see if the program is GNU ld. I'd rather use --version,
# but apparently some GNU ld's only accept -v.
# Break only if it was the GNU/non-GNU ld that we prefer.
case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in
*GNU* | *'with BFD'*)
test "$with_gnu_ld" != no && break ;;
*)
test "$with_gnu_ld" != yes && break ;;
esac
fi
done
IFS="$ac_save_ifs"
else
acl_cv_path_LD="$LD" # Let the user override the test with a path.
fi])
LD="$acl_cv_path_LD"
if test -n "$LD"; then
AC_MSG_RESULT($LD)
else
AC_MSG_RESULT(no)
fi
test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
AC_LIB_PROG_LD_GNU
])
This diff is collapsed.
......@@ -2,8 +2,6 @@
(if (not (provided? 'snd-generators.scm)) (load "generators.scm"))
;;; this file currently does not work in Guile
;;; -------- conversions --------
......
......@@ -27,11 +27,10 @@
(end (+ beg len)))
(ws-interrupt?)
(run
(lambda ()
(do ((i beg (+ 1 i)))
((= i end))
(outa i (* (env amp-env)
(polyshape os 1.0 (env gls-env)))))))))
(do ((i beg (+ 1 i)))
((= i end))
(outa i (* (env amp-env)
(polyshape os 1.0 (env gls-env))))))))
(definstrument (bird start dur frequency freqskew amplitude freq-envelope amp-envelope)
"(bird start dur frequency freqskew amplitude freq-envelope amp-envelope)"
......@@ -43,11 +42,10 @@
(end (+ beg len)))
(ws-interrupt?)
(run
(lambda ()
(do ((i beg (+ 1 i)))
((= i end))
(outa i (* (env amp-env)
(oscil os (env gls-env)))))))))
(do ((i beg (+ 1 i)))
((= i end))
(outa i (* (env amp-env)
(oscil os (env gls-env))))))))
(define main-amp '(.00 .00 .25 1.00 .60 .70 .75 1.00 1.00 .0))
(define bird-tap '(.00 .00 .01 1.00 .99 1.00 1.00 .0))
......
......@@ -46,41 +46,40 @@
(block (make-vct block-size))
(block-changed #f))
(run
(lambda ()
(do ((ctr 0 (1+ ctr)))
((= ctr len))
(set! samp0 samp1)
(set! samp1 samp2)
(set! samp2 (next-sample reader))
(vct-set! block block-ctr samp2)
(let* ((df1 (abs (- samp1 samp0)))
(df2 (abs (- samp2 samp1)))
(df3 (abs (- samp2 samp0)))
(local-max (moving-average mx df1)))
(if (and (> df1 (* jump local-max))
(> df2 (* jump local-max))
(or (< df3 local-max)
(and (< df3 (* 2 local-max))
(< (* (- samp2 samp0)
(- samp1 samp0))
0.0))))
(begin
(set! samp1 (* .5 (+ samp0 samp2)))
(vct-set! block (1- block-ctr) samp1)
(set! block-changed #t)
(set! fixed (1+ fixed)))))
(set! block-ctr (1+ block-ctr))
(if (>= block-ctr block-size)
(do ((ctr 0 (1+ ctr)))
((= ctr len))
(set! samp0 samp1)
(set! samp1 samp2)
(set! samp2 (next-sample reader))
(vct-set! block block-ctr samp2)
(let* ((df1 (abs (- samp1 samp0)))
(df2 (abs (- samp2 samp1)))
(df3 (abs (- samp2 samp0)))
(local-max (moving-average mx df1)))
(if (and (> df1 (* jump local-max))
(> df2 (* jump local-max))
(or (< df3 local-max)
(and (< df3 (* 2 local-max))
(< (* (- samp2 samp0)
(- samp1 samp0))
0.0))))
(begin
(if block-changed
(begin
(vct->channel block block-beg block-size snd chn)
(set! block-changed #f)))
(set! block-beg (+ block-beg (1- block-size)))
(set! block-ctr 1)
(vct-set! block 0 samp2))))
(if block-changed
(vct->channel block block-beg block-ctr snd chn))))
(set! samp1 (* .5 (+ samp0 samp2)))
(vct-set! block (1- block-ctr) samp1)
(set! block-changed #t)
(set! fixed (1+ fixed)))))
(set! block-ctr (1+ block-ctr))
(if (>= block-ctr block-size)
(begin
(if block-changed
(begin
(vct->channel block block-beg block-size snd chn)
(set! block-changed #f)))
(set! block-beg (+ block-beg (1- block-size)))
(set! block-ctr 1)
(vct-set! block 0 samp2))))
(if block-changed
(vct->channel block block-beg block-ctr snd chn)))
fixed))
(define (test-remove-single-clicks)
......@@ -159,76 +158,75 @@
(block-changed #f))
(run
(lambda ()
(let ((check-val 0.0)
(check-start 0)
(checker 0)
(checked 0)
(checking #f)
(moving-start #t))
(do ((ctr 0 (1+ ctr)))
((= ctr len))
(let* ((ahead-samp (next-sample reader))
(diff-ahead (abs (- ahead-samp last-ahead-samp)))
(avg-ahead (moving-average mx-ahead diff-ahead))
(dly0-samp (delay dly0 ahead-samp))
(cur-diff (abs (- dly0-samp last-dly0-samp)))
(cur-avg (moving-average mx cur-diff))
(dly1-samp (delay dly1 ahead-samp))
(diff-behind (abs (- dly1-samp last-dly1-samp)))
(avg-behind (moving-average mx-behind diff-behind)))
(set! last-ahead-samp ahead-samp)
(set! last-dly0-samp dly0-samp)
(set! last-dly1-samp dly1-samp)
(vct-set! block block-ctr ahead-samp)
(if checking
(begin
(set! checked (1+ checked))
(if (or (>= checked (* 2 size))
(< cur-avg check-val))
(begin
(set! fixed (1+ fixed))
(set! checking #f)
(smooth-vct block (- check-start block-beg) (+ size checker))
(set! block-changed #t)))
(if moving-start
(begin
(set! moving-start (< cur-diff avg-behind))
(if moving-start
(set! check-start (1+ check-start)))))
(if (not moving-start)
(set! checker (1+ checker))))
(if (and (> (- ctr last-case) (* 2 size))
(> cur-avg (* 4 avg-ahead))
(> cur-avg (* 4 avg-behind)))
;; possible pop
(let ((check-val 0.0)
(check-start 0)
(checker 0)
(checked 0)
(checking #f)
(moving-start #t))
(do ((ctr 0 (1+ ctr)))
((= ctr len))
(let* ((ahead-samp (next-sample reader))
(diff-ahead (abs (- ahead-samp last-ahead-samp)))
(avg-ahead (moving-average mx-ahead diff-ahead))
(dly0-samp (delay dly0 ahead-samp))
(cur-diff (abs (- dly0-samp last-dly0-samp)))
(cur-avg (moving-average mx cur-diff))
(dly1-samp (delay dly1 ahead-samp))
(diff-behind (abs (- dly1-samp last-dly1-samp)))
(avg-behind (moving-average mx-behind diff-behind)))
(set! last-ahead-samp ahead-samp)
(set! last-dly0-samp dly0-samp)
(set! last-dly1-samp dly1-samp)
(vct-set! block block-ctr ahead-samp)
(if checking
(begin
(set! checked (1+ checked))
(if (or (>= checked (* 2 size))
(< cur-avg check-val))
(begin
(set! fixed (1+ fixed))
(set! checking #f)
(smooth-vct block (- check-start block-beg) (+ size checker))
(set! block-changed #t)))
(if moving-start
(begin
(set! check-start (max 0 (- ctr (* 5 size))))
(set! moving-start (< cur-diff avg-behind))
(if moving-start
(set! check-start (1+ check-start)))
(set! checking #t)
(set! check-val cur-avg)
(set! checker 0)
(set! checked 0)
(set! last-case ctr))))
(set! block-ctr (1+ block-ctr))
(if (>= (+ block-ctr pad) block-size)
(begin
(if block-changed
(begin
(vct->channel block block-beg (- block-ctr pad) snd chn)
(set! block-changed #f)))
(set! block-beg (+ block-beg (- block-ctr pad)))
(do ((i 0 (1+ i))
(j (- block-ctr pad) (1+ j)))
((= i pad))
(vct-set! block i (vct-ref block j)))
(set! block-ctr pad)))))
(if block-changed
(vct->channel block block-beg block-ctr snd chn)))))
(set! check-start (1+ check-start)))))
(if (not moving-start)
(set! checker (1+ checker))))
(if (and (> (- ctr last-case) (* 2 size))
(> cur-avg (* 4 avg-ahead))
(> cur-avg (* 4 avg-behind)))
;; possible pop
(begin
(set! check-start (max 0 (- ctr (* 5 size))))
(set! moving-start (< cur-diff avg-behind))
(if moving-start
(set! check-start (1+ check-start)))
(set! checking #t)
(set! check-val cur-avg)
(set! checker 0)
(set! checked 0)
(set! last-case ctr))))
(set! block-ctr (1+ block-ctr))
(if (>= (+ block-ctr pad) block-size)
(begin
(if block-changed
(begin
(vct->channel block block-beg (- block-ctr pad) snd chn)
(set! block-changed #f)))
(set! block-beg (+ block-beg (- block-ctr pad)))
(do ((i 0 (1+ i))
(j (- block-ctr pad) (1+ j)))
((= i pad))
(vct-set! block i (vct-ref block j)))
(set! block-ctr pad)))))
(if block-changed
(vct->channel block block-beg block-ctr snd chn))))
fixed))
......@@ -266,10 +264,10 @@
(let ((test (with-sound (:output "test.snd" :srate 22050)
(let ((osc (make-oscil 60.0))
(e (make-env '(0 0 1 .5 9 .5 10 0) :length 44100)))
(run (lambda ()
(do ((i 0 (1+ i)))
((= i 44100))
(outa i (* (env e) (oscil osc))))))))))
(run
(do ((i 0 (1+ i)))
((= i 44100))
(outa i (* (env e) (oscil osc)))))))))
(notch-channel (list 60.0) #f #f #f #f #f #f #t 8)
(let ((mx (maxamp)))
......@@ -281,10 +279,10 @@
(osc1 (make-oscil 40.0))
(osc2 (make-oscil 80.0))
(e (make-env '(0 0 1 .3 9 .3 10 0) :length 44100)))
(run (lambda ()
(do ((i 0 (1+ i)))
((= i 44100))
(outa i (* (env e) (+ (oscil osc) (oscil osc1) (oscil osc2)))))))))))
(run
(do ((i 0 (1+ i)))
((= i 44100))
(outa i (* (env e) (+ (oscil osc) (oscil osc1) (oscil osc2))))))))))
(let ((v60 (goertzel 60.0))
(v40 (goertzel 40.0))
......@@ -304,10 +302,10 @@
(osc1 (make-oscil 55.0))
(osc2 (make-oscil 65.0))
(e (make-env '(0 0 1 .3 9 .3 10 0) :length 44100)))
(run (lambda ()
(do ((i 0 (1+ i)))
((= i 44100))
(outa i (* (env e) (+ (oscil osc) (oscil osc1) (oscil osc2)))))))))))
(run
(do ((i 0 (1+ i)))
((= i 44100))
(outa i (* (env e) (+ (oscil osc) (oscil osc1) (oscil osc2))))))))))
(let ((v60 (goertzel 60.0))
(v40 (goertzel 55.0))
......@@ -418,7 +416,7 @@
;; look for pops
(let ((total-pops 0))
(call-with-current-continuation
(call-with-exit
(lambda (quit)
(for-each
(lambda (size)
......
This diff is collapsed.
......@@ -2537,33 +2537,33 @@ static int pw_choice(mus_any *ptr) {return(((pw *)ptr)->cheby_choice);}
mus_float_t mus_chebyshev_tu_sum(mus_float_t x, int n, mus_float_t *tn, mus_float_t *un)
{
/* the Clenshaw algorithm */
int i;
double x2, b, b1 = 0.0, b2 = 0.0, cx, cx_val;
double x2, tb, tb1 = 0.0, tb2, cx, ub, ub1 = 0.0, ub2;
mus_float_t *tp, *up;
cx = cos(x);
x2 = 2.0 * cx;
/* Tn calc */
b = tn[n - 1];
for (i = n - 2; i >= 0; i--)
{
b2 = b1;
b1 = b;
b = x2 * b1 - b2 + tn[i];
}
cx_val = b - b1 * cx;
tp = (mus_float_t *)(tn + n - 1);
up = (mus_float_t *)(un + n - 1);
tb = (*tp--);
ub = (*up--);
/* Un calc */
b = un[n - 1];
b1 = 0.0;
for (i = n - 2; i > 0; i--)
while (up != un)
{
b2 = b1;
b1 = b;
b = x2 * b1 - b2 + un[i];
tb2 = tb1;
tb1 = tb;
tb = x2 * tb1 - tb2 + (*tp--);
ub2 = ub1;
ub1 = ub;
ub = x2 * ub1 - ub2 + (*up--);
}
return((mus_float_t)(cx_val + (sin(x) * b)));
tb2 = tb1;
tb1 = tb;
tb = x2 * tb1 - tb2 + tn[0];
return((mus_float_t)((tb - tb1 * cx) + (sin(x) * ub)));
}
......@@ -5290,46 +5290,66 @@ mus_float_t mus_filter(mus_any *ptr, mus_float_t input)
{
flt *gen = (flt *)ptr;
mus_float_t xout = 0.0;
int j;
mus_float_t *xp, *yp, *dp, *d, *dprev;
if (!(gen->y)) return(mus_fir_filter(ptr, input));
if (!(gen->x)) return(mus_iir_filter(ptr, input));
gen->state[0] = input;
for (j = gen->order - 1; j >= 1; j--)
xp = (mus_float_t *)(gen->x + gen->order - 1);
yp = (mus_float_t *)(gen->y + gen->order - 1);
dp = (mus_float_t *)(gen->state + gen->order - 1);
d = gen->state;
d[0] = input;
while (dp > d)
{
xout += gen->state[j] * gen->x[j];
gen->state[0] -= gen->y[j] * gen->state[j];
gen->state[j] = gen->state[j - 1];
xout += (*dp) * (*xp--);
d[0] -= (*dp) * (*yp--);
dprev = dp--;
(*dprev) = (*dp);
}
return(xout + (gen->state[0] * gen->x[0]));
return(xout + (d[0] * (*xp)));
}
mus_float_t mus_fir_filter(mus_any *ptr, mus_float_t input)
{
mus_float_t xout = 0.0;
int j;
flt *gen = (flt *)ptr;
gen->state[0] = input;
for (j = gen->order - 1; j >= 1; j--)
mus_float_t *ap, *dp, *d, *dprev;
ap = (mus_float_t *)(gen->x + gen->order - 1);
dp = (mus_float_t *)(gen->state + gen->order - 1);
d = gen->state;
(*d) = input;
while (dp > d)
{
xout += gen->state[j] * gen->x[j]; /* if fma: xout = fma(gen->state[j], gen->x[j], xout) */
gen->state[j] = gen->state[j - 1];
xout += (*dp) * (*ap--);
dprev = dp--;
(*dprev) = (*dp);
}
return(xout + (gen->state[0] * gen->x[0]));
return(xout + (input * (*ap)));
}
mus_float_t mus_iir_filter(mus_any *ptr, mus_float_t input)
{
int j;
flt *gen = (flt *)ptr;
gen->state[0] = input;
for (j = gen->order - 1; j >= 1; j--)
mus_float_t *ap, *dp, *d, *dprev;
ap = (mus_float_t *)(gen->y + gen->order - 1);
dp = (mus_float_t *)(gen->state + gen->order - 1);
d = gen->state;
(*d) = input;
while (dp > d)
{
gen->state[0] -= gen->y[j] * gen->state[j];
gen->state[j] = gen->state[j - 1];
(*d) -= (*dp) * (*ap--);
dprev = dp--;
(*dprev) = (*dp);
}
return(gen->state[0]);
return(*d);
}
static mus_float_t run_filter(mus_any *ptr, mus_float_t input, mus_float_t unused) {return(mus_filter(ptr, input));}
......@@ -5869,7 +5889,7 @@ static mus_float_t run_env(mus_any *ptr, mus_float_t unused1, mus_float_t unused
static void dmagify_env(seg *e, mus_float_t *data, int pts, mus_long_t dur, double scaler)
{
int i, j;
double xscl = 1.0, cur_loc = 0.0;
double xscl = 1.0, cur_loc = 0.0, y1 = 0.0;
e->size = pts;
......@@ -5883,7 +5903,7 @@ static void dmagify_env(seg *e, mus_float_t *data, int pts, mus_long_t dur, doub
for (j = 0, i = 2; i < pts * 2; i += 2, j++)
{
mus_long_t samps;
double cur_dx, x0, y0, x1, y1;
double cur_dx, x0, y0, x1;
x0 = data[i - 2];
x1 = data[i];
......@@ -5931,7 +5951,7 @@ static void dmagify_env(seg *e, mus_float_t *data, int pts, mus_long_t dur, doub
switch (e->style)
{
case MUS_ENV_STEP:
e->rates[pts - 1] = e->rates[pts - 2]; /* stick at last value, which in this case is the value (not an increment) */
e->rates[pts - 1] = e->offset + (scaler * y1); /* stick at last value, which in this case is the value (not an increment) */
break;
case MUS_ENV_LINEAR:
......@@ -6369,6 +6389,9 @@ mus_float_t mus_env_any(mus_any *e, mus_float_t (*connect_points)(mus_float_t va
/* frame = vector, mixer = (square) matrix, but "vector" is in use already, and "matrix" sounds too techy */
/* someday frames and vcts should be combined, and mixers/sound-data
*/
typedef struct {
mus_any_class *core;
int chans;
......@@ -7316,7 +7339,8 @@ mus_float_t mus_in_any_from_file(mus_any *ptr, mus_long_t samp, int chan)
rdin *gen = (rdin *)ptr;
mus_float_t result = 0.0;
if (chan >= gen->chans)
if ((chan >= gen->chans) ||
(samp < 0))
return(0.0);
if ((samp <= gen->data_end) &&
......@@ -7974,8 +7998,11 @@ mus_any *mus_sample_to_file_add(mus_any *out1, mus_any *out2)
mus_float_t mus_out_any_to_file(mus_any *ptr, mus_long_t samp, int chan, mus_float_t val)
{
rdout *gen = (rdout *)ptr;
if (!ptr) return(val);
if ((chan >= gen->chans) || (!(gen->obufs)))
if ((chan >= gen->chans) ||
(!(gen->obufs)) ||
(samp < 0))
return(val);
if (gen->safety == 1)
......@@ -8093,7 +8120,7 @@ mus_any *mus_make_sample_to_file_with_comment(const char *filename, int out_chan
mus_float_t mus_sample_to_file(mus_any *ptr, mus_long_t samp, int chan, mus_float_t val)
{
return(mus_write_sample(ptr, samp, chan, val)); /* write_sample -> write_sample in class struct -> mus_in_any_from_file for example */
return(mus_write_sample(ptr, samp, chan, val)); /* write_sample -> write_sample in class struct -> mus_out_any_to_file for example */
}
......@@ -8109,7 +8136,7 @@ int mus_close_file(mus_any *ptr)
mus_float_t mus_out_any(mus_long_t samp, mus_float_t val, int chan, mus_any *IO)
{
if (IO)
if ((IO) && (samp >= 0))
return(mus_write_sample(IO, samp, chan, val));
return(val);
}
......@@ -9327,10 +9354,6 @@ mus_float_t mus_src(mus_any *srptr, mus_float_t sr_change, mus_float_t (*input)(
bool int_ok = false;
lim = srp->lim;
#if HAVE_DECL_ISNAN && HAVE_DECL_ISINF
if ((isnan(sr_change)) || (isinf(sr_change))) sr_change = 0.0;
#endif
if (sr_change > MUS_MAX_CLM_SRC)
sr_change = MUS_MAX_CLM_SRC;
else
......@@ -11609,12 +11632,31 @@ bool mus_ssb_am_p(mus_any *ptr)
}
static mus_float_t run_hilbert(flt *g, mus_float_t insig)
static mus_float_t run_hilbert(flt *gen, mus_float_t insig)
{
/* every odd-numbered entry in the coeffs array is 0 in this filter
* but we have to run the loop twice to skip the 0 mults --
* not very elaborate timing tests indicate all this silliness saves 10% compute time
*/
mus_float_t xout = 0.0, d1 = 0.0, d2 = 0.0;
mus_float_t *ap, *dp, *dend;
ap = gen->x;
dp = gen->state;
dend = (mus_float_t *)(gen->state + gen->order);
dp[0] = insig;
while (dp < dend)
{
xout += (*dp) * (*ap++);
d2 = d1;
d1 = (*dp);
(*dp++) = d2;
if (dp == dend) break;
d2 = d1;
d1 = (*dp);
(*dp++) = d2;
ap++; /* every odd-numbered entry in the coeffs array is 0 in this filter */
}
return(xout);
#if 0
int i, len;
mus_float_t val = 0.0;
len = g->order;
......@@ -11622,6 +11664,7 @@ static mus_float_t run_hilbert(flt *g, mus_float_t insig)
for (i = 0; i < len; i += 2) val += (g->x[i] * g->state[i]);
for (i = len - 1; i >= 1; i--) g->state[i] = g->state[i - 1];
return(val);
#endif
}
......
......@@ -2,8 +2,8 @@
#define CLM_H
#define MUS_VERSION 4
#define MUS_REVISION 30
#define MUS_DATE "14-Oct-09"
#define MUS_REVISION 31
#define MUS_DATE "7-Mar-10"
/* isn't mus_env_interp backwards? */
......@@ -592,6 +592,7 @@ MUS_EXPORT mus_any *mus_make_mixer_with_data(int chans, mus_float_t *data);