Commit 36cf8384 authored by Alessio Treglia's avatar Alessio Treglia

Imported Upstream version 11.10

parent 21c0acaa
Snd change log
25-Oct: Snd 11.10.
22-Sep: def-clm-struct is now just a synonym for defgenerator.
19-Sep: removed snd7.scm and snd8.scm.
18-Sep: Snd 11.9.
19-Aug: removed the Gdk backend option; cairo is now the only choice.
12-Aug: Snd 11.8.
......
Snd 11.9.
Snd 11.10
The new gtk (version 3) has discarded most of the gdk functions, replacing them
with cairo. This means the xg module and gtk code have also
changed a lot. --with-cairo is the default (and the only alternative).
You'll need gtk 2.9 or later, and cairo 1.6.4 or later. Eventually
there will be a cairo "surface" for openGL, so I'll be able to
reimplement that connection. Unfortunately, the gtk/cairo version
of Snd is very slow (more than 10 times slower than Motif). Looking
at valgrind output, my first guess is that it's cairo's fault, but
I need to spend some time poking at it.
Mike made innumerable improvements in the scripts.
kmenu.scm uses the new gdk key names, so it only works in gtk 2.90.7 or later.
removed snd7.scm and snd8.scm.
removed --with-builtin-gtkrc (Gtk themes have improved a lot over the years)
defgenerator replaces def-clm-struct.
removed --with-static-gsl
deprecated verbose-cursor (use with-verbose-cursor).
removed the button color functions.
added a play triangle to the selection, and a close button to the sound pane.
added 'gtk3 or 'gtk2 to *features*.
changed the default value of just-sounds to #t.
s7: added setters for current-input-port, current-output-port,
and current-error-port.
s7: :allow-other-keys in define* parameter list.
*stdin*, *stdout*, *stderr* as the default IO ports
(rather than nil which is ambiguous).
Greg Santucci noticed and fixed a bug in *trace-hook*.
removed special variable (dynamic binding) support (it gets
in the way of tail recursion).
checked: gtk 2.90.6|7, sbcl 1.0.42
s7_call_with_location to improve error handling.
Thanks!: Michael Klingbeil, Greg Santucci
s7 is about 10% faster in this version -- there are timings
at the end of s7.c and snd-test.scm.
checked: autoconf 2.68, sbcl 1.0.43, gtk 2.91.0|1, gmp 5.0.1
Thanks!: Mike Scholz
......@@ -470,7 +470,7 @@ On 64-bit machines, use motif 2.3.2 or later.
---- Gtk+: ----
Only Gtk-2 or later is supported.
Only Gtk 2.9 or later is supported.
If you get an error like:
......@@ -642,3 +642,23 @@ MOTIF_LIBS = -L/usr/X11/lib -R/usr/X11/lib -lSM -lICE -lXft -lXmu -lfontconfig
(the X11R6-old business came about because I didn't remake libXm, but the OSX installation
process moved the previous X11R6 directory to X11R6 1, which is untypable).
-------- Ruby 1.9.2 --------
The CFLAGS setting is messed up (not to mention all the directory names).
After running configure, add
-I/usr/local/include/ruby-1.9.1/x86_64-linux -I/usr/local/include/ruby-1.9.1/ruby -I/usr/local/include/ruby-1.9.1
to XEN_CFLAGS in makefile, then define all the RB_* macros in mus-config.h:
#define HAVE_RB_GC_DISABLE 1
#define HAVE_RB_ARY_DUP 1
#define HAVE_REASONABLE_RB_GC_MARK 1
#define RB_FIND_FILE_TAKES_VALUE 1
#define HAVE_RB_ERRINFO 1
#define HAVE_RB_GET_LOAD_PATH 1
......@@ -2,7 +2,7 @@
\ Translator: Michael Scholz <mi-scholz@users.sourceforge.net>
\ Created: Tue Dec 12 03:26:27 CET 2006
\ Changed: Thu Jun 18 12:20:57 CEST 2009
\ Changed: Thu Oct 14 20:24:59 CEST 2010
\ Usage: <'> bird-test with-sound
\ or ws-bird-test
......@@ -1112,8 +1112,7 @@ event: various-gull-cries-from-end-of-colony-5 ( beg -- )
:channels 2
:srate 44100
:scaled-to 0.8
:notehook #f
with-sound ( ws ) :output array-assoc-ref .string cr
:notehook #f with-sound drop
;
\ bird.fsm ends here
......@@ -95,7 +95,7 @@
(let ((mx (maxamp))
(loc (maxamp-position)))
(if (> mx 0.06)
(format #t ";remove-single-sample-clicks 0: ~A (at ~D)" mx loc)))
(format #t "~%;remove-single-sample-clicks 0: ~A (at ~D)" mx loc)))
(revert-sound)
(do ((i 0 (+ 1 i))
(ang 0.0 (+ ang .01)))
......@@ -104,7 +104,7 @@
(vct->channel data)
(remove-single-sample-clicks)
(if (fneq (maxamp) .2)
(format #t ";remove-single-sample-clicks sin max: ~A" (maxamp)))
(format #t "~%;remove-single-sample-clicks sin max: ~A" (maxamp)))
(let ((cur-data (channel->vct 0))
(diff 0.0))
(do ((i 0 (+ 1 i))
......@@ -112,7 +112,7 @@
((= i 1000))
(set! diff (max diff (abs (- ( cur-data i) (* .2 (sin ang)))))))
(if (> diff .2)
(format #t ";remove-single-sample-clicks sine max diff: ~A" diff))))
(format #t "~%;remove-single-sample-clicks sine max diff: ~A" diff))))
(close-sound test)))
;;; -------- pops
......@@ -241,7 +241,7 @@
(remove-pops)
(let ((mx (maxamp)))
(if (> mx .01)
(format #t ";test remove-pops 0 case: ~A" mx)))
(format #t "~%;test remove-pops 0 case: ~A" mx)))
(revert-sound)
(do ((i 0 (+ 1 i))
(ang 0.0 (+ ang .01)))
......@@ -252,7 +252,7 @@
(remove-pops)
(let ((mx (maxamp)))
(if (fneq mx .2)
(format #t ";test remove-pops sine case: ~A" mx)))
(format #t "~%;test remove-pops sine case: ~A" mx)))
(close-sound)))
......@@ -270,7 +270,7 @@
(notch-channel (list 60.0) #f #f #f #f #f #f #t 8)
(let ((mx (maxamp)))
(if (> mx .02)
(format #t ";notch hum 0: ~A" mx)))
(format #t "~%;notch hum 0: ~A" mx)))
(close-sound (find-sound test)))
(let ((test (with-sound (:output "test.snd" :srate 22050)
(let ((osc (make-oscil 60.0))
......@@ -292,7 +292,7 @@
(if (or (fneq (/ e60 v60) 0.0)
(fneq (/ e40 v40) 1.0)
(fneq (/ e80 v80) 1.0))
(format #t ";notch 60: ~A ~A ~A -> ~A ~A ~A" v40 v60 v80 e40 e60 e80))))
(format #t "~%;notch 60: ~A ~A ~A -> ~A ~A ~A" v40 v60 v80 e40 e60 e80))))
(close-sound (find-sound test)))
(let ((test (with-sound (:output "test.snd" :srate 22050)
......@@ -315,7 +315,7 @@
(if (or (> (/ e60 v60) 0.01)
(< (/ e40 v40) 0.99)
(< (/ e80 v80) 0.99))
(format #t ";notch 60 tight: ~A ~A ~A -> ~A ~A ~A" v40 v60 v80 e40 e60 e80))))
(format #t "~%;notch 60 tight: ~A ~A ~A -> ~A ~A ~A" v40 v60 v80 e40 e60 e80))))
(close-sound (find-sound test))))
......@@ -337,7 +337,7 @@
(nsig (goertzel 35.0)))
(if (or (> (/ ndc dc) .1)
(< (/ nsig sig) .4))
(format #t ";remove-DC: ~A -> ~A (~A), ~A -> ~A (~A)" dc ndc (/ ndc dc) sig nsig (/ nsig sig))))))
(format #t "~%;remove-DC: ~A -> ~A (~A), ~A -> ~A (~A)" dc ndc (/ ndc dc) sig nsig (/ nsig sig))))))
(close-sound test)))
......@@ -398,17 +398,17 @@
;; look for obvious simple clicks
(let ((clicks (as-one-edit (lambda () (remove-single-sample-clicks 8 snd chn)))))
(if (> clicks 0)
(format #t "; fixed ~D single sample clicks" clicks)
(format #t "; no single-sample clicks found")))
(format #t "~%; fixed ~D single sample clicks" clicks)
(format #t "~%; no single-sample clicks found")))
;; look for obvious clipping and try to reconstruct
(let ((mx (maxamp snd chn)))
(if (>= mx 1.0)
(let ((clips (unclip-channel snd chn)))
(if (eq? clips 'no-clips)
(format #t "; no clipped portions found")
(format #t "; reconstructed ~D clipped portions" (list-ref clips 3))))
(format #t "; no obvious clipping (max amp: ~A)" mx)))
(format #t "~%; no clipped portions found")
(format #t "~%; reconstructed ~D clipped portions" (list-ref clips 3))))
(format #t "~%; no obvious clipping (max amp: ~A)" mx)))
;; look for pops
(let ((total-pops 0))
......@@ -419,11 +419,11 @@
(let ((pops (as-one-edit (lambda () (remove-pops size snd chn)))))
(set! total-pops (+ total-pops pops))
(if (> pops 0)
(format #t "; fixed ~D ~D-sample ~A" pops size (if (= pops 1) "pop" "pops"))
(format #t "~%; fixed ~D ~D-sample ~A" pops size (if (= pops 1) "pop" "pops"))
(quit))))
(list 4 8 16 32))))
(if (= total-pops 0)
(format #t "; no pops found")))
(format #t "~%; no pops found")))
;; look for hum
(let* ((hum60 (check-freq 60.0 snd chn))
......@@ -432,14 +432,14 @@
(if (> hum 30.0)
(let ((humf (if (> hum60 hum55) 60.0 55.0)))
(notch-channel (list humf) 4096 0 (frames snd chn) snd chn #f #t 4)
(format #t "; notch out ~D cycle hum: ~A -> ~A" (floor humf) hum (check-freq humf snd chn)))))
(format #t "~%; notch out ~D cycle hum: ~A -> ~A" (floor humf) hum (check-freq humf snd chn)))))
;; look for DC
(let ((dc (check-freq 0.0 snd chn)))
(if (> dc 30.0)
(let ((dcflt (make-filter 2 (vct 1 -1) (vct 0 -0.99))))
(map-channel (lambda (y) (filter dcflt y)) 0 (frames snd chn) snd chn)
(format #t "; block DC: ~A -> ~A" dc (check-freq 0.0 snd chn)))))
(format #t "~%; block DC: ~A -> ~A" dc (check-freq 0.0 snd chn)))))
;; time-varying low-pass filter
(tvf-channel snd chn)
......
......@@ -2247,7 +2247,7 @@ is a physical model of a flute:
(def-clm-struct grn
(defgenerator grn
(rampval 0.0 :type float)
(rampinc 0.0 :type float)
(loc 0 :type int)
......@@ -2558,7 +2558,7 @@ mjkoskin@sci.fi
;;; ssb-fm
;;; this might be better named "quasi-ssb-fm" -- cancellations are not perfect
(def-clm-struct sbfm
(defgenerator sbfm
(am0 #f :type clm) (am1 #f :type clm)
(car0 #f :type clm) (car1 #f :type clm)
(mod0 #f :type clm) (mod1 #f :type clm))
......@@ -2600,7 +2600,7 @@ mjkoskin@sci.fi
;;; rms gain balance
;;; This is a translation of the rmsgain code provided by Fabio Furlanete.
(def-clm-struct rmsg
(defgenerator rmsg
(c1 0.0 :type float)
(c2 0.0 :type float)
(q 0.0 :type float)
......
......@@ -11608,7 +11608,7 @@ mus_float_t mus_phase_vocoder_with_editors(mus_any *ptr,
pv->amps[i] += pv->ampinc[i];
pv->phaseinc[i] += pv->freqs[i];
pv->phases[i] += pv->phaseinc[i];
sum += (pv->amps[i] * sin(pv->phases[i]));
sum += (pv->amps[i] * sin(pv->phases[i])); /* this is really expensive in 64-bit systems -- perhaps make a local sin? */
}
return(sum);
}
......
This diff is collapsed.
......@@ -2722,7 +2722,7 @@
;;; ---------------- sndscm-osc ----------------
(def-clm-struct sndscm-osc freq phase) ;same as (def-clm-struct sndscm-osc (freq 0.0 :type float) (phase 0.0 :type float))
(defgenerator sndscm-osc freq phase) ;same as (defgenerator sndscm-osc (freq 0.0 :type float) (phase 0.0 :type float))
(define (sndscm-osc gen fm)
(declare (gen sndscm-osc) (fm float))
......@@ -2746,7 +2746,7 @@
;;; ---------------- sndscm-osc1 ----------------
(def-clm-struct
(defgenerator
(sndscm-osc1 :make-wrapper (lambda (gen)
(set! (sndscm-osc1-freq gen) (hz->radians (sndscm-osc1-freq gen)))
gen))
......@@ -2774,7 +2774,7 @@
;;; ---------------- sndscm-osc2 ----------------
(def-clm-struct (sndscm-osc2 :make-wrapper (lambda (gen)
(defgenerator (sndscm-osc2 :make-wrapper (lambda (gen)
(set! (sndscm-osc2-freq gen) (hz->radians (sndscm-osc2-freq gen)))
gen)
:methods (list
......@@ -2814,7 +2814,7 @@
;;; -------- asymmetric FM (bes-i0 case)
(def-clm-struct (dsp-asyfm :make-wrapper (lambda (gen)
(defgenerator (dsp-asyfm :make-wrapper (lambda (gen)
(set! (dsp-asyfm-freq gen) (hz->radians (dsp-asyfm-freq gen)))
gen))
freq (phase 0.0) (ratio 1.0) (r 1.0) (index 1.0))
......@@ -2847,7 +2847,7 @@
result))
(def-clm-struct (sndclm-expcs
(defgenerator (sndclm-expcs
:make-wrapper (lambda (g)
(if (<= (sndclm-expcs-et g) 0.0) (set! (sndclm-expcs-et g) 0.00001))
(set! (sndclm-expcs-frequency g) (hz->radians (sndclm-expcs-frequency g)))
......
......@@ -1025,7 +1025,7 @@ static XEN g_mus_generator_p(XEN obj)
if (MUS_XEN_P(obj)) return(XEN_TRUE);
#if HAVE_SCHEME || HAVE_FORTH
/* defgenerator defines "mus-name", and I can't see why a non-generator would include it in def-clm-struct, so... */
/* defgenerator defines "mus-name" -- we need an actual type here! */
if ((XEN_LIST_P(obj)) &&
(XEN_LIST_LENGTH(obj) > 1) &&
(XEN_SYMBOL_P(XEN_CAR(obj))))
......@@ -1323,7 +1323,7 @@ static mus_xen *mus_any_to_mus_xen_with_two_vcts(mus_any *ge, XEN v1, XEN v2)
/* ---------------- generic functions ---------------- */
/* these are for user-defined (list-based def-clm-struct-style) generators
/* these are for user-defined (list-based defgenerator-style) generators
* the methods are in an association list (name func) or (name getter setter)
*/
......@@ -7739,9 +7739,13 @@ static XEN g_mus_irandom(XEN val) {return(C_TO_XEN_INT(mus_irandom(XEN_TO_C_INT(
#include <sys/time.h>
static struct timeval overall_start_time;
#define S_get_internal_real_time "get-internal-real-time"
#define S_internal_time_units_per_second "internal-time-units-per-second"
static XEN g_get_internal_real_time(void)
{
#define H_get_internal_real_time "(" S_get_internal_real_time ") returns the number of seconds since \
the program started. The number is in terms of " S_internal_time_units_per_second ", usually 1"
struct timezone z0;
struct timeval t0;
double secs;
......@@ -8844,8 +8848,8 @@ static void mus_xen_init(void)
XEN_DEFINE_VARIABLE(S_reverb, clm_reverb, XEN_FALSE);
#if HAVE_SCHEME && HAVE_GETTIMEOFDAY && HAVE_DIFFTIME && HAVE_SYS_TIME_H && (!MSC_VER)
XEN_DEFINE_PROCEDURE("get-internal-real-time", g_get_internal_real_time_w, 0, 0, 0, "get system time");
XEN_DEFINE_CONSTANT("internal-time-units-per-second", 1, "clock speed");
XEN_DEFINE_PROCEDURE(S_get_internal_real_time, g_get_internal_real_time_w, 0, 0, 0, H_get_internal_real_time);
XEN_DEFINE_CONSTANT(S_internal_time_units_per_second, 1, "units used by " S_get_internal_real_time);
#endif
......
#! /bin/sh
# Attempt to guess a canonical system name.
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
# Free Software Foundation, Inc.
timestamp='2009-11-19'
timestamp='2010-04-03'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
......@@ -56,8 +56,9 @@ version="\
GNU config.guess ($timestamp)
Originally written by Per Bothner.
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
......@@ -91,7 +92,7 @@ if test $# != 0; then
exit 1
fi
trap 'exit 1' 1 2 15
trap 'exit 1' HUP INT TERM
# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
# compiler to aid in system detection is discouraged as it requires
......@@ -105,7 +106,7 @@ trap 'exit 1' 1 2 15
set_cc_for_build='
trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" HUP INT PIPE TERM ;
: ${TMPDIR=/tmp} ;
{ tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
{ test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
......@@ -333,6 +334,9 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit ;;
i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
echo i386-pc-auroraux${UNAME_RELEASE}
exit ;;
i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
eval $set_cc_for_build
SUN_ARCH="i386"
......
#! /bin/sh
# Configuration validation subroutine script.
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
# Free Software Foundation, Inc.
timestamp='2009-11-07'
timestamp='2010-05-21'
# This file is (in principle) common to ALL GNU software.
# The presence of a machine in this file suggests that SOME GNU software
......@@ -75,8 +75,9 @@ Report bugs and patches to <config-patches@gnu.org>."
version="\
GNU config.sub ($timestamp)
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
......@@ -123,8 +124,9 @@ esac
# Here we must recognize all the valid KERNEL-OS combinations.
maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
case $maybe_os in
nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
knetbsd*-gnu* | netbsd*-gnu* | \
kopensolaris*-gnu* | \
storm-chaos* | os2-emx* | rtmk-nova*)
os=-$maybe_os
......@@ -294,7 +296,7 @@ case $basic_machine in
| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
| spu | strongarm \
| tahoe | thumb | tic4x | tic80 | tron \
| tahoe | thumb | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
| ubicom32 \
| v850 | v850e \
| we32k \
......@@ -302,6 +304,15 @@ case $basic_machine in
| z8k | z80)
basic_machine=$basic_machine-unknown
;;
c54x)
basic_machine=tic54x-unknown
;;
c55x)
basic_machine=tic55x-unknown
;;
c6x)
basic_machine=tic6x-unknown
;;
m6811 | m68hc11 | m6812 | m68hc12 | picochip)
# Motorola 68HC11/12.
basic_machine=$basic_machine-unknown
......@@ -333,7 +344,7 @@ case $basic_machine in
| arm-* | armbe-* | armle-* | armeb-* | armv*-* \
| avr-* | avr32-* \
| bfin-* | bs2000-* \
| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
| c[123]* | c30-* | [cjt]90-* | c4x-* \
| clipper-* | craynv-* | cydra-* \
| d10v-* | d30v-* | dlx-* \
| elxsi-* \
......@@ -380,7 +391,8 @@ case $basic_machine in
| sparclite-* \
| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
| tahoe-* | thumb-* \
| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \
| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
| tile-* | tilegx-* \
| tron-* \
| ubicom32-* \
| v850-* | v850e-* | vax-* \
......@@ -480,6 +492,15 @@ case $basic_machine in
basic_machine=powerpc-ibm
os=-cnk
;;
c54x-*)
basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
c55x-*)
basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
c6x-*)
basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
c90)
basic_machine=c90-cray
os=-unicos
......@@ -1073,17 +1094,10 @@ case $basic_machine in
basic_machine=t90-cray
os=-unicos
;;
tic54x | c54x*)
basic_machine=tic54x-unknown
os=-coff
;;
tic55x | c55x*)
basic_machine=tic55x-unknown
os=-coff
;;
tic6x | c6x*)
basic_machine=tic6x-unknown
os=-coff
# This must be matched before tile*.
tilegx*)
basic_machine=tilegx-unknown
os=-linux-gnu
;;
tile*)
basic_machine=tile-unknown
......@@ -1256,6 +1270,9 @@ case $os in
# First match some system type aliases
# that might get confused with valid system types.
# -solaris* is a basic system type, with this one exception.
-auroraux)
os=-auroraux
;;
-solaris1 | -solaris1.*)
os=`echo $os | sed -e 's|solaris1|sunos4|'`
;;
......@@ -1277,8 +1294,8 @@ case $os in
# -sysv* is not here because it comes later, after sysvr4.
-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
| -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
| -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
| -kopensolaris* \
| -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
| -sym* | -kopensolaris* \
| -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
| -aos* | -aros* \
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
......@@ -1291,7 +1308,8 @@ case $os in
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
| -chorusos* | -chorusrdb* | -cegcc* \
| -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
| -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
| -mingw32* | -linux-gnu* | -linux-android* \
| -linux-newlib* | -linux-uclibc* \
| -uxpv* | -beos* | -mpeix* | -udk* \
| -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
......@@ -1432,6 +1450,8 @@ case $os in
-dicos*)
os=-dicos
;;
-nacl*)
;;
-none)
;;
*)
......@@ -1472,6 +1492,15 @@ case $basic_machine in
c4x-* | tic4x-*)
os=-coff
;;
tic54x-*)
os=-coff
;;
tic55x-*)
os=-coff
;;
tic6x-*)
os=-coff
;;
# This must come before the *-dec entry.
pdp10-*)
os=-tops20
......
This diff is collapsed.
# Configuration script for Snd
AC_INIT(snd, 11.9, bil@ccrma.stanford.edu, ftp://ccrma-ftp.stanford.edu/pub/Lisp/snd-11.tar.gz)
AC_INIT(snd, 11.10, bil@ccrma.stanford.edu, ftp://ccrma-ftp.stanford.edu/pub/Lisp/snd-11.tar.gz)
AC_CONFIG_SRCDIR(snd.c)
AC_CANONICAL_HOST
......@@ -19,7 +19,7 @@ LOCAL_LANGUAGE="None"
GRAPHICS_TOOLKIT="None"
PACKAGE=Snd
VERSION=11.9
VERSION=11.10
AC_DEFINE_UNQUOTED(SND_PACKAGE, "$PACKAGE")
AC_DEFINE_UNQUOTED(SND_VERSION, "$VERSION")
AC_SUBST(SND_PACKAGE)
......@@ -1051,12 +1051,11 @@ else
AC_CHECK_LIB(m, gtk_widget_get_visible, [AC_DEFINE(HAVE_GTK_WIDGET_GET_VISIBLE)], ,$GTK_LIBS)
# for 2.19.n
AC_CHECK_LIB(m, gtk_entry_get_text_window, [AC_DEFINE(HAVE_GTK_ENTRY_GET_TEXT_WINDOW)], ,$GTK_LIBS)
# for 2.90
AC_CHECK_LIB(m, gtk_scale_new, [AC_DEFINE(HAVE_GTK_SCALE_NEW)], ,$GTK_LIBS)
# 2.90.6
AC_CHECK_LIB(m, gtk_expander_get_label_fill, [AC_DEFINE(HAVE_GTK_EXPANDER_GET_LABEL_FILL)], ,$GTK_LIBS)
# 2.90.7
AC_CHECK_LIB(m, gtk_progress_bar_get_inverted, [AC_DEFINE(HAVE_GTK_PROGRESS_BAR_GET_INVERTED)], ,$GTK_LIBS)
# for 2.9n.n
AC_CHECK_LIB(m, gtk_widget_get_hexpand,
[AC_DEFINE(HAVE_GTK_WIDGET_GET_HEXPAND)
AC_DEFINE(HAVE_GTK_3)
], ,$GTK_LIBS)
AC_CHECK_LIB(cairo, cairo_glyph_allocate, [AC_DEFINE(HAVE_CAIRO_GLYPH_ALLOCATE)], ,$GTK_LIBS)
AC_CHECK_LIB(cairo, cairo_region_xor, [AC_DEFINE(HAVE_CAIRO_REGION_XOR)], ,$GTK_LIBS)
......@@ -1976,7 +1975,7 @@ AC_SUBST(SNDLIB_LIB)
AC_ARG_ENABLE(deprecated,
[ --disable-deprecated do not include any deprecated stuff from gtk, s7, motif, clm, snd, or sndlib],
if test "$enable_deprecated" = no ; then
CFLAGS="-DGTK_DISABLE_DEPRECATED -DG_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED -DPANGO_DISABLE_DEPRECATED -DCAIRO_DISABLE_DEPRECATED $CFLAGS"
CFLAGS="-DGTK_DISABLE_DEPRECATED -DG_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED -DPANGO_DISABLE_DEPRECATED -DCAIRO_DISABLE_DEPRECATED -DGSEAL_ENABLE -DGTK_DISABLE_SINGLE_INCLUDES $CFLAGS"
AC_DEFINE(XM_DISABLE_DEPRECATED)
AC_DEFINE(CLM_DISABLE_DEPRECATED)
AC_DEFINE(SNDLIB_DISABLE_DEPRECATED)
......@@ -2007,8 +2006,7 @@ else
fi
# -ffast-math appears to make exp about twice as fast, but slows down filtering by the same amount -- kinda strange
# timing tests using -O3 -ffast-math indicate an overall speedup of maybe 4-5%
# can't use -ffast-math in Scheme in any case because NaN handling gets screwed up
# timing tests using -O3 -ffast-math indicate an overall speedup of maybe 4-5% in Snd, 1951 -> 1936 in s7test
#
# I also tried -ftree-vectorize but didn't see any big improvement
......
......@@ -200,10 +200,6 @@ type: (envelope-interp .3 '(0 0 .5 1 1 0) -> .6"
(defmacro when (test . forms)
`(if ,test (begin ,@forms)))
(define (copy-list lis)
"(copy-list lst) returns a copy of 'lst'"
(append lis '()))
(define (third a)
"(third lst) returns the 3rd element of 'lst'"
(if (>= (length a) 3) (list-ref a 2) #f))
......@@ -1945,10 +1941,10 @@ type: (envelope-interp .3 '(0 0 .5 1 1 0) -> .6"
(set! (path-tz path) (reverse ztr))))
(begin
;; if there's no transformation just copy the rendered path
(set! (path-tt path) (copy-list (path-rt path)))
(set! (path-tx path) (copy-list (path-rx path)))
(set! (path-ty path) (copy-list (path-ry path)))
(set! (path-tz path) (copy-list (path-rz path)))))
(set! (path-tt path) (copy (path-rt path)))
(set! (path-tx path) (copy (path-rx path)))
(set! (path-ty path) (copy (path-ry path)))
(set! (path-tz path) (copy (path-rz path)))))
path)
;;; Scale a path
......@@ -2036,9 +2032,9 @@ type: (envelope-interp .3 '(0 0 .5 1 1 0) -> .6"
(set! now (cons (/ dist velocity) now))))
(set! now (reverse now))
(set! (path-rt path) (append (list start-time) now))
(set! (path-tx path) (copy-list (path-rx path)))
(set! (path-ty path) (copy-list (path-ry path)))
(set! (path-tz path) (copy-list (path-rz path)))))
(set! (path-tx path) (copy (path-rx path)))
(set! (path-ty path) (copy (path-ry path)))
(set! (path-tz path) (copy (path-rz path)))))
path)
......
......@@ -79,7 +79,7 @@
(define (get-current-files dir)
(set! current-directory dir)
(set! current-sorted-files (sort (sound-files-in-directory dir) string<?)))
(set! current-sorted-files (sort! (sound-files-in-directory dir) string<?)))
(define (get-current-directory filename)
(set! last-file-opened filename)
......
This diff is collapsed.
This diff is collapsed.
......@@ -90,12 +90,13 @@ end: (window-envelope 1.0 3.0 '(0.0 0.0 5.0 1.0)) -> '(1.0 0.2 3.0 0.6)"
(lambda (e)
(let* ((diff (car e))
(len (length e))
(lastx (list-ref e (- len 2))))
(lastx (list-ref e (- len 2)))
(newe (copy e))) ; it is dangerous (and unclean...) to use list-set! on the original list
(do ((i 0 (+ i 2)))
((>= i len) e)
(let ((x (/ (- (list-ref e i) diff) lastx)))
((>= i len) newe)
(let ((x (/ (- (list-ref newe i) diff) lastx)))
(set! xs (cons x xs))
(list-set! e i x))))))
(list-set! newe i x))))))
(remove-duplicates
(lambda (lst)
(letrec ((rem-dup
......@@ -364,7 +365,7 @@ repetition to be in reverse."
(if (not (provided? 'snd-ws.scm)) (load "ws.scm"))
(def-clm-struct penv (envs #f :type clm-vector) (total-envs 0 :type int) (current-env 0 :type int) (current-pass 0 :type int))
(defgenerator penv (envs #f :type clm-vector) (