[CM] fenv: functional envelopes

Torsten Anders t.anders@qub.ac.uk
12 Feb 2003 19:05:45 +0000


--=-LBnnk1x7SnEFdJdP+Lnm
Content-Type: text/plain
Content-Transfer-Encoding: 7bit

Hi again,

Because I am just in the mood of sharing, here is some other code
package.

This Lisp library defines means and abstractions to use numerical
functions as envelopes and provides a rich set of functions to generate,
combine and transform these envelopes.
The library also contains a mechanism to turn these envelopes into CM
pattern (this is the only dependency on CM).

There is an example in test-func-env.lisp for (hopefully) every function
;) For plotting, these examples depend on a Lisp library which calls
gnuplot. I published in at the CM mailing list in June 2002...

I usually use a defsystem to load stuff: just have a look into
fun-env.system for the order the files need to be loaded.


-- 
Torsten Anders
Sonic Arts Research Centre
Queens University Belfast
Tel: +44 28 9027 4831 (office)
     +44 28 9066 7439 (private)


--=-LBnnk1x7SnEFdJdP+Lnm
Content-Disposition: attachment; filename=func-env.tgz
Content-Type: application/x-gzip; name=func-env.tgz
Content-Transfer-Encoding: base64

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
6Utf+tKXvvSlL33pS1/68tmXfwG8rzfnAHgAAA==

--=-LBnnk1x7SnEFdJdP+Lnm--