Lisp Supercollider
hsc3-lisp is a simple
Lisp
interpreter.
The only data type is the
SuperCollider
Unit Generator .
Why Lisp SuperCollider?
(let* ((s (mixFill 10 (lambda (_) (Resonz (Mul (Dust 0.2) 50) (Rand 200 3200) 0.003))))
(z (DelayN s 0.048 0.048))
(y (mixFill 7 (lambda (_) (CombL z 0.1 (MulAdd (LFNoise1 (Rand 0 0.1)) 0.04 0.05) 15))))
(x (iter 4 (lambda (i) (AllpassN i 0.05 (RandN 2 0 0.05) 1)) y)))
(Add s (Mul x 0.2)))
There is an OSX (10.9.3) binary
(hsc3-lisp.xz),
or to build type:
cabal install
An environment variable locates the hsc3-lisp library files:
export HSC3_LISP_DIR=$HOME/sw/hsc3-lisp/scm
To hear the above type C-cC-a in
Emacs.
There is a terse tutorial.
hsc3-lisp follows the
Haskell
SuperCollider
(hsc3)
rules.
hsc3-lisp requires scsynth be listening at the standard port (57110).
hsc3-lisp is Post-ML, ie.
> (equal? (map (+ 1) (list 1 2 3)) (list 2 3 4))
RESULT: 1
hsc3-lisp is not scheme.
Nonetheless, the following rsc3 graphs are working:
There is also an haskell to lisp translator (October, 2014) that re-writes a
subset of haskell as lisp.
Lisp
The largest part of the lisp (scheme) sources are directly copied from rhs and rsc3 ,
see the Makefile at the scm directory. These files are marked AUTOGENERATED .
Help
initial announcement:
[haskell-art,
local]
2014-10-15 05:10:19 GMT
© rohan drape, 2014-2025, gpl.
$ make doctest
Examples: 102 Tried: 102 Errors: 0 Failures: 0
$
|