I should have mentioned Pianoteq back there as an exception to "no
interesting physical models since the '90s" thing.  But it's pretty
specialized, and since it's proprietary who knows what they're doing
in there anyway.

> Waveguides are popular primarily because they're cheap to calculate.  Their
> fidelity is not great for certain classes of instruments though.
>
> My code is an implementation of a finite difference method, as described in
> Stefan Bilbao's book "Numerical Sound Synthesis" (among other sources).  The
> finite difference method produces excellent results, but is extremely
> computation intensive.  I've only recently managed to get to the point where
> interesting models can run in real time.  Currently I have models of
> striking bars and plates.  Stefan's got some audio samples on his pages
> (along with some more interesting models, and some Matlab code too) so you
> can check the quality yourself[0], but unfortunately I'm not able to release
> my work at this time.

Yes, I read his CMJ article with great interest, even though I don't
understand the math.  In my case, a non-realtime model is not such a
problem because I already have to incrementally recompute a changed
score, so incrementally recomputing the sound would just be one more
step in that direction.  Though I suppose this could still get
annoying if the computation time to real time ratio is too high.  In
that case (say a minute to render a second) then perhaps the technique
lends itself to a cheaper approximation?  Even if not, it's always
possible to automatically generate a sample set and use that as the
mockup.

It seems like it should be possible to get speedups with parallelism as well.

I've seen lots of percussion and woodwind models, but bowed strings
are conspicuously absent.  Is there something particularly hard about
it?

> Sorry if I gave the wrong impression, but my EDSL and my physical modeling
> work are entirely separate at this time.  I do have both text-based and
> programmatic interfaces to the phys. modeling stuff though, so it is be
> possible to generate systems and scores.  I guess the text interface could
> be considered a DSL.

It seems to me that an input of a set of signals for parameters like
resonator length, mallet impulse, breath pressure, whatever, and a
signal for output is already a sufficient interface.  I suppose if you
want to go lower level and hook the output of one model to the input
of another then you get into DSL territory.  I guess these audio DSLs
all tend to boil down to piping sample streams around anyway---the
main difference is the set of included primitives.

Anyway, if you ever are able to release your work, then I'd be very
interested in giving it a try.  I noticed that most audio examples
don't actually hook them up to a real score so you can hear a musical
usage rather than a demonstration, but this is something I'll
(eventually) be in a pretty good position to do.
_______________________________________________
haskell-art mailing list
[email protected]
http://lists.lurk.org/mailman/listinfo/haskell-art

Reply via email to