[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Sound & Testing



Ok, like the fool I am I'm gonna stick my neck out here...

I got interested in PLT Scheme 'cause I wanted a language that I could
do sound manipulation in, was Free, and didn't involve pain like C,
Matlab/Octave and CSound do. Sure, there isn't any DSP in PLT Scheme
at the moment, but there are things like Nyquist [URL:
http://www.cs.cmu.edu/afs/cs.cmu.edu/project/music/web/music.software.html]
and Common Lisp Music [URL:
http://www-ccrma.stanford.edu/CCRMA/Software/Software.html] which are
Lisp and so should be reasonably easy to steal code from. There are
also a lot of C DSP/sound generation libraries around.
http://www.bright.net/~dlphilp/linuxsound/ is the definitive list for
Linux (which is the only OS I'm really interested in, but I may port
to Solaris or BeOS).

My MSc project will probably be on whale song analysis - so when I
start work on that (May), expect the sound support to improve. At the
moment there seems to be a lot of work going on to develop modular
synth systems for Linux. With luck some of these project will be
released by the time I start my project, so I can piggyback on an
active development project. Otherwise I'll just rip code from
anywhere.

If others want to get involved, that would be great!

------

The other things I want to develop for PLT Scheme are:

1. A Javadoc-like tool. Thanks to help from the list w/ Zodiac, I now
have a very poor prototype working.

2. A testing framework, based on the Extreme Programming
frameworks. See http://www.xprogramming.com/ and the Wiki at
http://c2.com/cgi/wiki?ExtremeProgramming. A few thoughts on tests:

    - I think units should export their tests so proper regression
testing can be done.

    - Could the cond-expand form in SRFI 0 be used to turn on/off
tests? In Python, if a package is run from the top-level a flag is set in
that unit telling it it's the main unit. A common idiom is to have tests
that are only executed when this flag is defined. The same thing could 
be defined in PLT Scheme, so there could be code that would only be
executed when in 'testing mode'. With PLT Scheme's parameterised
units, the testing code would have to involve creating a compound unit 
using some default parameters and then running the tests.

Again, any help/comments gratefully received!

cya,
Noel

-- 
Noel Welsh
http://www.dai.ed.ac.uk/~noelw/   noelw@dai.ed.ac.uk