Mon Jan 10 10:07:39 EST 2011

Virtual analog

It's starting to itch again..  Maybe it's time for me to start making
the Haskell DSP modeling -> C code for Jack/Pd bridge.  Since scope[1]
I do have some working Jack code so it shouldn't be so difficult to
set up the glue code.

Question: should I use my own ad-hoc generator, or should I use
Atom[2]?  Some previous Galois presentation[3] about Copilot[4][5] I
ran into also uses Atom for basic code generation.

Watching the Galois video[6] makes me think that it's probably a bit
overkill as I really just need fixed sample rate streams with input
and output feedback.  The only useful part for me seems to be the
static scheduler.  So it might be best to work on top of Atom

Let's restate the goal:

Derive implementation and verification/validation from specificication.

Implementation is C code that's inserted into some stream programming
framework.  Verification is any kind of (Haskell) operation that can
be applied to the specification, i.e:

  - test filter transfer functions wrt. specs
  - compute sensitivities and numerical accuracy
  - perform "compile time" design of tables (i.e. filter coefs, lookup tables)
  - make plots for visual inspection of implicit requirements

[1] http://zwizwa.be/darcs/scope
[2] http://hackage.haskell.org/package/atom
[3] http://vimeo.com/16676033
[4] http://corp.galois.com/blog/2010/9/22/copilot-a-dsl-for-monitoring-embedded-systems.html
[5] http://hackage.haskell.org/package/copilot
[6] entry://20110101-144713