File: README.Snd

package info (click to toggle)
snd 3.4-4
  • links: PTS
  • area: main
  • in suites: potato
  • size: 5,148 kB
  • ctags: 12,594
  • sloc: ansic: 86,516; lisp: 3,480; sh: 1,507; makefile: 119
file content (271 lines) | stat: -rw-r--r-- 10,605 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
Snd

Snd is a sound editor.  It currently runs on the SGI, Sun, UnixWare,
OpenServer, HPUX, DEC Alpha, Linux, MkLinux/LinuxPPC, and in Windoze
using either Cygwin with Lesstif, or MS C with a commercial Motif.  To
build Snd, get the sources from 

  ftp://ccrma-ftp.stanford.edu/pub/Lisp/snd-3.tar.gz

  tar xf snd-3.tar
  cd snd-3
  ./configure
  make

If this fails, or you want to customize your version of Snd in some
way, see snd.h for a discussion of the various compile-time switches,
and fixup the relevant makefile:

SGI:              make -f makefile.sgi
Linux:            make -f makefile.linux or makefile.lesstif
Unixware 2:       make -f makefile.uw2
Unixware 7:       make -f makefile.uw7
OpenServer 5:     make -f makefile.sco5
Sun/Solaris:      make -f makefile.solaris
DEC Alpha:        make -f makefile.alpha
NeXT:             make -f makefile.next
MkLinux/LinuxPPC: make -f makefile.mklinux or makefile.lesstif
Windoze/Cygwin:   make -f makefile.cygwin
Linux with all possible bells and whistles: makefile.xlinux

In HPUX, fixup the makefile.hpux include and library paths, then:
  make -f makefile.hpux

If the configure/make process fails, please send me
(bil@ccrma.stanford.edu) the files config.h and makefile, created (or
updated) by configure.

The configure program has 7 Snd-related arguments:

   --with-alsa          use ALSA if possible
   --with-clm           include the CLM module
   --with-xmhtml        include the XmHTML library
   --with-big-colormap  use big colormap
   --with-snd-conf      look for /etc/snd.conf at startup
   --without-guile      omit Guile even if it is available
   --with-snd-as-widget make Snd a loadable widget, not a standalone program

It is not impossible that the 'make' targets clean, install and
uninstall will also work -- they didn't destroy my disk, but I'm no
make expert.

If you're using guile-1.3.2 or later, and not going through the
configure process (i.e. you're using one of the pre-built makefiles),
add the switch -DHAVE_MAKE_SMOB_TYPE to CFLAGS.  (This will go away
eventually; I'm leaving the Guile 1.3 support in for a while).

If you're using guile-1.3.4 or later, you need to
  (use-modules (ice-9 debug))
in your .snd file, or in the lisp listener, if you want any backtrace
displayed when a Scheme error is encountered.


The customization/extension language is Guile, available in the Gnu
distributions (prep.ai.mit.edu) or from ftp.red-bean.com.  To include
guile in snd, go to the relevant makefile, set the CFLAGS variable to
include the option -DHAVE_GUILE and whatever 'guile-config compile'
reports, and set the LIBS variable to include whatever 'guile-config
link' prints out.  Only guile 1.3 or later is supported.  Without
Guile, Snd supplies a very simple string-parser to handle
customization -- all the functions/variable are accessible from what
looks like Scheme, but nothing fancy is implemented.

Another extension is the XmHTML widget available from
http://www.xs4all.nl/~ripley/XmHTML.  If you have this, add
-DHAVE_XmHTML=1 to the CFLAGS variable, and the libXmHTML.a path to
LIBS in the relevant makefile.  This widget is used, if it is
available, in the Help sections of Snd.  The XmHTML widget needs
access to snd.html and extsnd.html.  If these are not in the current
directory, nor in /usr/doc/snd-3 (the RPM documentation location), then
you need to set the htmldir resource (see snd.html).

The XPM library, if it is available, is used to create some cute
icons.  If the relevant makefile does not include -DXPM and you have
the library, add -DXPM to CFLAGS and -lXpm to LIBS.

If you want bigger colormaps and have the requisite video memory,
define WITH_BIG_COLORMAP (see snd.h).

In all cases you need Motif or Lesstif to build Snd from the sources.
Snd is C++ compatible.


There are precompiled binaries available at the ccrma-ftp site
mentioned above: sgi-snd for the SGI, and linux-snd for Linux on a PC;
also RPM (Redhat package management) files that contain the Linux/PC
version, (snd-3-4.i386.rpm), the sources (snd-3-4.src.rpm), and the
mkLinux/LinuxPPC version (snd-3-4.ppc.rpm).  snd-3-4 requires Guile 1.3.4;
if you are running 1.3, you'll need to build from sources.


Included with Snd are five command-line programs that might
be of interest: sndplay, sndrecord, sndinfo, sndsine, and audinfo.  
You can make these by using the same makefile as before
and:

  make sndplay

or
  
  make -f makefile.sgi sndplay

or whatever.


The documentation is in snd.html (.txt) and extsnd.html (.txt).
A brief change log is in HISTORY.Snd.

The mailing list for Snd is the same as that for Common Music:
cmdist@ccrma.stanford.edu.  To get your address added to or removed
from this list, send the request to cmdist-request@ccrma.stanford.edu.

This software is available to anyone who is interested, free gratis
for nothing, without warranties of any kind (see the file COPYING for
legalese).  Send bug reports or suggestions to bil@ccrma.stanford.edu.


The OpenServer and UnixWare ports are courtesy of Larry Plona.
The Solaris port is thanks to Volker Kuhlmann and Seppo Ingalsuo.
The HPUX port is thanks to Seppo Ingalsuo.
The DEC Alpha port is due to the persistence of Juan Reyes.
The Linux Alpha port is thanks to Guenter Geiger.
The ALSA port is thanks to Paul Barton-Davis.


--------------------------------
TROUBLES:


There's no support yet for playing or recording sounds on the Alpha --
I don't have any idea how audio works on this system.  Any information
would be much appreciated!

In Linux, Snd sometimes can't seem to play or record when other
applications are happy -- if this happens, please run the function
describe-audio-state (via M-x) and send me whatever it prints out.
LinuxPPC does not yet support recording, I believe.

In Windoze using Cygwin, I think the audio support is limited to
PlaySound, which I haven't tied into Snd yet.  In MS C using the
Hummingbird XDK package, Snd compiles and loads, but dies upon being
executed with an access violation -- I know nothing about Microsoft C,
so this has been put aside for a rainy day.

If Snd complains that it can't find various colors upon startup, the
problem is that some other program (probably Netscape) has grabbed all
the color cells -- exit it and try Snd again, or (if you have the
video RAM), increase your "depth" to 16.

In Linux, if you get the error "No such file or directory" when you
try to execute linux-snd, the problem is probably that you're running
a libc5-based Linux; linux-snd is built with glibc (the newer libc).


Snd mostly works with Lesstif, a free version of Motif available at
http://www.lesstif.org (get version 0.88 or later).  If lesstif is
used with Metrolink's mwm, you are logged out each time Snd runs (use
LessTif's mwm).  Embedded scales are apparently gadgets, which means
their color has to be set at initialization time.  (There are still
a number of glitches in Lesstif, but they are making rapid progress).
To get the listener activatable in lesstif, comment out
the first block (line 826 in version 0.89) of lib/Xm/TextIn.c:

#if 0
    if (Text_EditMode(tw) != XmSINGLE_LINE_EDIT)
    {
	return;
    }
#endif

If you're using Lesstif and get this error:

snd-xmain.o: In function `snd_doit':
/space/home/bil/snd/snd-xmain.c:894: undefined reference to `xmNotebookWidgetClass'

it means you've built Snd with Lesstif's Motif 2 headers, but are trying to
load Lesstif's Motif 1 libraries -- you need to make Motif 2 the default
in Lesstif via the configure arg --enable-default-20.  For example (in
the lesstif directory):

make clean
./configure --enable-default-20 --disable-default-12 --enable-static --prefix=/space/home/bil/test/local
make


If you try to install the rpm package and get this:

rpm --install snd-3-1.ppc.rpm 
error: failed dependencies:
	libMrm.so.1 is needed by snd-3-1
	libXm.so.1 is needed by snd-3-1

it means you don't have Motif installed; either get Motif, or use
the pre-loaded images such as linux-snd.

If Snd then refuses to run with the error:

./snd: error in loading shared libraries: libMrm.so.1: cannot open shared
object file: No such file or directory

you need to add the relevant path to the loader's list of
paths (thanks to Juan Pampin for this info): add the path to
/etc/ld.so.conf and then 'ldconfig -v'.
 

On the NeXT, Snd compiles and loads, but dies during start up while
trying to create a text widget.


The Record dialog only works in Linux (OSS, perhaps ALSA) and on some
SGI systems.  On a good day, it tries real hard on a Sun, but drops
samples; on a bad day, it just sits there.  Since the Sun output
buffer size is enormous and not settable by mortals, the control panel
sliders are very sluggish.  If anyone knows of a freeware Sun
recording package, I'd like to look at it.


If you get a complaint along the lines of "ice-9/boot-9.scm not found",
it means you're running a version of Snd that has Guile loaded, but
Guile isn't installed locally.  You need to install Guile.  If Guile
is installed, try running 'guile-config info' to find out where it
thinks its boot files are.  If you're using a prebuilt image from
ccrma-ftp, the relevant files should be in /usr/local/share/guile/1.3.n
where 'n' is something like 2 or 4 (or absent altogether).  It's not
impossible that running snd under strace would show you what the
actual desired path is.  In the copious strace output, you should
be able to find lines like: 
    stat("/usr/local/share/guile/1.3.4/ice-9/boot-9.scm"...)

If the snd rpm process can't find the guile library, yet you have it
in /usr/local/lib, try the --nodeps switch to rpm (thanks to Charles
Waldman for this tip). 

If Snd dies with a segfault after you upgrade Linux,  first, recompile
guile from scratch, if you're using guile (i.e. make clean, make,
make install).  Then remake Snd.  If Snd dies with a complaint
about __setfpucw, you need to recompile Snd (that portion of
glibc changed between versions 1 and 2, or something like that).


In Snd versions after 7-Oct-99, hooks are no-ops unless you have
Guile 1.3.4 or later.



----------------
URLS:

Some pointers to guile/scheme stuff:
  http://www.cs.indiana.edu/scheme-repository
  http://www.gnu.org/software/guile/guile.html
  http://vicarious-existence.mit.edu/scwm/
  http://www.schemers.org/
  http://www.cs.rice.edu/~dorai/t-y-scheme/t-y-scheme.html
  http://www.cs.utexas.edu/users/wilson/schintro/schintro_toc.html

CCRMA:
  http://www-ccrma.stanford.edu/

Snd stuff:
  http://www.cosy.sbg.ac.at/~gwesp/mma-sound.html (Mathematica)
  http://www.linuxpower.com/display_item.phtml?id=139 (Movies)