Commit 5cd66eec authored by Alessio Treglia's avatar Alessio Treglia

Imported Upstream version 11

parents
This diff is collapsed.
Snd is a sound editor written by Bill Schottstaedt (bil@ccrma.stanford.edu).
Except where otherwise noted, it is Copyright 1996-2006 The Board of Trustees
of Stanford University.
The authors hereby grant permission to use, copy, modify, distribute,
and license this software and its documentation for any purpose. No
written agreement, license, or royalty fee is required. Modifications
to this software may be copyrighted by their authors and need not
follow the licensing terms described here.
IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY
FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY
DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE
IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE
NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR
MODIFICATIONS.
;;; DotEmacs Version 1.0
;;; Copyright 2001 Fernando Lopez-Lezcano <nando@ccrma.stanford.edu>
;;; Tested under RedHat Linux 7.0 (rpm: xemacs-21.1.14-2.7):
;;; xemacs 21.1 patch 14, ilisp 5.10.1
;;;
;;; this .emacs file should work correctly with the PlanetCCRMA
;;; cm/clm/cmn rpms and should autodetect which binary rpm has
;;; been installed, setting the correct path for executing it.
;;; Getting all this work has been a REAL pain, most of the time
;;; trying to interpret emacs lisp code in the ilisp module...
;;;
;;; Todo: more key bindings should be local for the buffer, this
;;; is a problem when using several lisps concurrently...
;;; For standard gnu emacs and Xemacs
;;; figure out which flavor we are running
(defvar xemacs-flavor (string-match "XEmacs\\|Lucid" emacs-version))
;;; For Xemacs only
(cond (xemacs-flavor
;; if you always want partial minibuffer completion
(require 'completer)
;; configuration of Erik Naggum's HyperSpec access package.
(setq common-lisp-hyperspec-root "file:/usr/lib/lisp/reference/HyperSpec/")
;; don't send output to a separate frame
(setq ilisp-*use-frame-for-output* nil)
;; arglist will end up on minibuffer
(setq ilisp-*use-frame-for-arglist-output-p* nil)
;; no message on startup
(setq ilisp-motd nil)
;; activate fsf keybindings
(setq ilisp-*use-fsf-compliant-keybindings* t)
;; initialization and load hooks
(add-hook 'ilisp-load-hook
'(lambda ()
;; Change default key prefix to C-c
(setq ilisp-*prefix* "\C-c")
;; do not do arglist expansion by default
;; necessary to avoid errors on .lisp buffers
;; (define-key ilisp-mode-map " " 'self-insert-command)
;; output to minibuffer for arglist expansion
(setq lisp-no-popper t)
;; by default disable arglist expansion on #\\Space
(setq ilisp-*arglist-message-lisp-space-p* nil)))
(add-hook 'ilisp-mode-hook
'(lambda ()))
;; HACK: we set window-system to nil temporarily while we load ilisp
;; so that it does not create extra frames for its output. There is
;; currently no way to turn this off with configuration variables
;; for ilisp 5.10.1 (AFAIK). The code for the output functions is in:
;; /usr/lib/xemacs/xemacs-packages/lisp/ilisp/ilis-out.el
(let ((window-system nil))
;; now we load ilisp, we need it active to define our dialects
(require 'ilisp))
;; define a dialect for Snd's guile interpreter
(defdialect snd "Snd" guile
(setq comint-prompt-regexp "^>+")
(setq ilisp-complete-command nil)
;; try to autodetect the binary
(unless snd-program
(cond
((file-executable-p "/usr/bin/snd")
(setq snd-program "/usr/bin/snd"))
(t (setq snd-program "snd")))))
(add-hook 'snd-hook
(lambda ()
))
;; if you have the binary somewhere else:
;; (setq snd-program "snd")
;; define a dialect for CM/CLM/CMN (under allegro common lisp)
(defdialect acl "AclLisp" allegro
;; try to autodetect the binary (at ccrma)
(unless acl-program
(cond
;;((file-executable-p "/usr/ccrma/lbin/cm2-clm2")
;; (setq acl-program "/usr/ccrma/lbin/cm2-clm2"))
((file-executable-p "/usr/ccrma/lbin/acl5.0")
(setq acl-program "/usr/ccrma/lbin/acl5.0"))
(t (setq acl-program "cm2-clm2")))))
(add-hook 'acl-hook
(lambda ()
;; the following is necessary so that we can have separate
;; keymaps for snd and other lisps, if we run them concurrently
;; we need to have some local (to the buffer) key bindings.
(make-local-variable 'overriding-local-map)
(setq overriding-local-map (copy-keymap ilisp-mode-map))
(define-key overriding-local-map " "
'ilisp-arglist-message-lisp-space)
;; enable arglist expansion on this buffer
(make-local-variable 'ilisp-*arglist-message-lisp-space-p*)
(setq ilisp-*arglist-message-lisp-space-p* t)))
;; if you have the binary somewhere else
;; (setq acl-program "/usr/ccrma/lbin/cm2-clm2")
;; define a dialect for CmuCL;
;; we need to patch the cmuclisp.lisp init file including CMU18 in the
;; #+ #- switches if we want the symbol description to work correctly,
;; see /usr/lib/xemacs/xemacs-packages/lisp/ilisp/cmulisp.lisp
(defdialect cmucl "CmuLisp" cmulisp
;; set the correct file name
(setq ilisp-cmulisp-init-file "cmulisp.lisp")
;; try to autodetect the binary
(unless cmucl-program
(cond
((file-executable-p "/usr/bin/cmucl-cm-clm-cmn")
(setq cmucl-program "/usr/bin/cmucl-cm-clm-cmn"))
((file-executable-p "/usr/bin/cmucl-cm-clm")
(setq cmucl-program "/usr/bin/cmucl-cm-clm"))
((file-executable-p "/usr/bin/cmucl-clm")
(setq cmucl-program "/usr/bin/cmucl-clm"))
(t (setq cmucl-program "lisp")))))
(add-hook 'cmucl-hook
(lambda ()
(make-local-variable 'overriding-local-map)
(setq overriding-local-map (copy-keymap ilisp-mode-map))
(define-key overriding-local-map " "
'ilisp-arglist-message-lisp-space)
;; enable arglist expansion on this buffer
(make-local-variable 'ilisp-*arglist-message-lisp-space-p*)
(setq ilisp-*arglist-message-lisp-space-p* t)))
;; if you have the binary somewhere else:
;; (setq cmucl-program "lisp")
;; define a dialect for Clisp
(defdialect clisp "CLisp" clisp-hs
;; try to autodetect the binary
(unless clisp-program
(cond
((file-executable-p "/usr/bin/clisp-cm-clm-cmn")
(setq clisp-program "/usr/bin/clisp-cm-clm-cmn"))
((file-executable-p "/usr/bin/clisp-cm-clm")
(setq clisp-program "/usr/bin/clisp-cm-clm"))
((file-executable-p "/usr/bin/clisp-clm")
(setq clisp-program "/usr/bin/clisp-clm"))
(t (setq clisp-program "clisp")))))
(add-hook 'clisp-hook
(lambda ()
(make-local-variable 'overriding-local-map)
(setq overriding-local-map (copy-keymap ilisp-mode-map))
(define-key overriding-local-map " "
'ilisp-arglist-message-lisp-space)
;; enable arglist expansion on this buffer
(make-local-variable 'ilisp-*arglist-message-lisp-space-p*)
(setq ilisp-*arglist-message-lisp-space-p* t)))
;; if you have the binary somewhere else:
;; (setq clisp-program "clisp")
;; Bind acl startup
(global-set-key "\C-x\C-l" 'acl)
(global-set-key "\C-x\L" 'acl)
))
;;; End Xemacs customization
This diff is collapsed.
Snd 10.9
Kjetil improved the rt stuff.
added env.scm to sndlib (for jcvoi.scm).
optimization now defaults to 6.
show-backtrace removed.
s7: *error-info* for better error reporting.
vector-for-each, vector-map, string-for-each
generic map, for-each
added s7-slib-init.scm: slib support. It assumes getenv, file-exists?, and system
are provided elsewhere (this is the case if s7 is running in Snd or sndlib).
added s7.html
s7: with-environment, true multiple-values, vectors can have > 2^31 elements (you'll
need a lot of memory). multiple-value-bind and multiple-value-set!.
checked: gtk 2.17.7|8|9|10|11, guile 1.9.2|3, sbcl 1.0.31, gsl 1.13
in sbcl, something has changed in the double float array handling, so functions
like convolution can't be called from lisp. The instruments seem to be ok.
(The two use the same calling sequence so I'm a bit mystified).
Thanks!: Rick Taube, Ralf Mattes, Kjetil Matheussen, Mike Scholz
This diff is collapsed.
! Snd app-defaults -- these defaults are already taken care of in Snd,
! so this file is redundant unless something is changed.
! Actually, since I forget this file even exists, it's best not to use it.
! The .Xdefaults form would prefix each of these with "snd".
*highlightcolor: ivory1
*basiccolor: ivory2
*positioncolor: ivory3
*zoomcolor: ivory4
*listenercolor: AliceBlue
*listenertextcolor: black
*cursorcolor: red
*selectioncolor: lightsteelblue1
*mixcolor: darkgray
*textfocuscolor: white
*redcolor: red
*greencolor: green2
*whitecolor: white
*blackcolor: black
*lightbluecolor: lightsteelblue1
*lighterbluecolor: AliceBlue
*yellowcolor: yellow
*envedwaveformcolor: blue
*filterwaveformcolor: blue
*graphcolor: white
*selectedgraphcolor: white
*datacolor: black
*selecteddatacolor: black
*markcolor: red
*sashcolor: lightgreen
*pushedbuttoncolor: lightsteelblue1
*helpbuttoncolor: ivory1
*quitbuttoncolor: ivory1
*resetbuttoncolor: ivory1
*doitbuttoncolor: ivory1
*doitagainbuttoncolor: ivory1
*axisLabelFont: -*-times-medium-r-*-*-18-*-*-*-*-*-iso8859-1
*axisNumbersFont: 9x15
*fontList: 9x15
*autoResize: 1
*horizontalPanes: 0
*zoomSliderWidth: 10
*positionSliderWidth: 13
*toggleSize: 0
*channelSashIndent: -10
*channelSashSize: 0
*sashSize: 14
*sashIndent: -6
style "default"
{
# font_name = "Serif 11"
fg[NORMAL] = { 0.0, 0.00, 0.0 }
text[NORMAL] = { 0.0, 0.0, 0.0 }
bg[NORMAL] = { 0.93, 0.93, 0.87 }
bg[ACTIVE] = { 0.80, 0.80, 0.75 }
bg[INSENSITIVE] = { 0.93, 0.93, 0.87 }
base[NORMAL] = { 1.00, 1.00, 1.00 }
bg[PRELIGHT] = { 0.70, 0.70, 0.64 }
fg[PRELIGHT] = { 1.0, 0.0, 0.0}
GtkPaned::handle_size = 6
xthickness = 1
ythickness = 1
}
style "default_button" = "default"
{
GtkButton::default_border = { 1, 0, 1, 0 }
GtkButton::default_outside_border = { 1, 0, 1, 0 }
GtkButton::inner_border = { 1, 0, 1, 0 }
GtkButton::focus_line_width = 0
GtkButton::focus_padding = 0
}
style "default_menu" = "default"
{
bg[NORMAL] = { 1.0, 1.0, 0.94 }
}
style "default_pane" = "default"
{
bg[NORMAL] = { 0.56, 0.93, 0.56 }
bg[PRELIGHT] = { 0.26, 0.8, 0.26}
}
style "default_entry" = "default"
{
base[ACTIVE] = { 0.93, 0.93, 0.87 }
base[SELECTED] = { 0.80, 0.80, 0.75 }
base[PRELIGHT] = { 1.0, 1.0, 1.0}
base[NORMAL] = { 0.93, 0.93, 0.87 }
base[INSENSITIVE] = { 0.93, 0.93, 0.87 }
bg[ACTIVE] = { 1.0, 1.0, 1.0 }
bg[SELECTED] = { 1.0, 1.0, 1.0 }
bg[PRELIGHT] = { 1.0, 1.0, 1.0 }
text[ACTIVE] = { 0.0, 0.0, 0.0 }
text[SELECTED] = { 0.0, 0.0, 0.0 }
text[PRELIGHT] = { 0.0, 0.0, 0.0 }
}
style "default_text" = "default_entry"
{
base[NORMAL] = { 1.0, 1.0, 1.0 }
}
style "default_slider" = "default"
{
bg[NORMAL] = { 0.90, 0.90, 0.85 }
bg[ACTIVE] = { 0.70, 0.70, 0.64 }
bg[PRELIGHT] = { 0.90, 0.90, 0.85 }
GtkRange::slider_width = 13
GtkRange::stepper_size = 10
}
style "default_frame" = "default"
{
xthickness = 4
ythickness = 4
}
class "GtkWidget" style "default"
class "GtkButton" style "default_button"
class "GtkMenu" style "default_menu"
class "GtkMenuBar" style "default_menu"
class "GtkEntry" style "default_entry"
class "GtkTextView" style "default_text"
class "GtkPaned" style "default_pane"
class "GtkRange" style "default_slider"
class "GtkFrame" style "default_frame"
style "zoom_slider" = "default_slider"
{
bg[NORMAL] = { 0.70, 0.70, 0.64 }
bg[ACTIVE] = { 0.54, 0.54, 0.51 }
bg[PRELIGHT] = { 0.70, 0.70, 0.64 }
GtkRange::slider_width = 12
GtkRange::stepper_size = 12
}
widget "*.zx_slider" style "zoom_slider"
widget "*.zy_slider" style "zoom_slider"
widget "*.gzy_slider" style "zoom_slider"
widget "*.panel_button" style "zoom_slider"
style "listener" = "default"
{
# font_name = "Monospace 10"
base[NORMAL] = { 0.94, 0.97, 1.0 }
text[NORMAL] = { 0.0, 0.0, 0.0 }
}
widget "*.listener_text" style "listener"
style "help" = "default_button"
{
bg[NORMAL] = { 1.0, 1.0, 0.94 }
bg[PRELIGHT] = { 1.0, 1.0, 0.94 }
}
widget "*.help_button" style "help"
style "quit" = "default_button"
{
bg[NORMAL] = { 1.0, 1.0, 0.94 }
bg[PRELIGHT] = { 1.0, 1.0, 0.94 }
}
widget "*.quit_button" style "quit"
style "doit" = "default_button"
{
bg[NORMAL] = { 1.0, 1.0, 0.94 }
bg[PRELIGHT] = { 1.0, 1.0, 0.94 }
}
widget "*.doit_button" style "doit"
style "doit_again" = "default_button"
{
bg[NORMAL] = { 1.0, 1.0, 0.94 }
bg[PRELIGHT] = { 1.0, 1.0, 0.94 }
}
widget "*.doit_again_button" style "doit_again"
style "reset" = "default_button"
{
bg[NORMAL] = { 1.0, 1.0, 0.94 }
bg[PRELIGHT] = { 1.0, 1.0, 0.94 }
}
widget "*.reset_button" style "reset"
widget "*.the_unpane" style "default"
style "recorder" = "default"
{
xthickness = 8
ythickness = 8
}
widget "*.record_frame" style "recorder"
style "white_button" = "default_button"
{
bg[NORMAL] = { 1.0, 1.0, 1.0 }
bg[PRELIGHT] = { 0.94, 0.97, 1.0 }