> I guess it'll have to be a GUI that generates SAOL code. But since SAOL is
> such an open language in which you can program new instruments, how can a
> GUI provide a very high-level way of specifying instruments?
To make it concrete, consider musical instruments that involve striking
a resonant structure (instruments like marimbas, vibraphones, ect). One
way of simulating these instruments realistically is to model the
structure itself as a series of resonant filters, and model the type
of striker by a function that injects energy into the structure --
the striker model takes into account the physical attributes of the
striker, as well as where the striker hits the bar, ect. By taking this
approach, instead of using samples, the instrument sounds realistic when
you do a roll on a particular note -- the resonantors model the energy
building up in the bar as you hit it multiple times with different
amplitudes, which sounds really different than triggering multiple copies
of samples.
Making a really "playable" instrument from this concept takes a lot of
work -- the parameters of the resonantor bank really wants to scale
across the keyboard, the mapping of keyboard controller parameters (i.e.
for MIDI note-on velocity, maybe pressure and pitch wheels too) is very
model dependent, ect. Having spent a few weeks going down this route
with emacs open to a SAOL program that I was hacking on, it was clear
there had to be a better way -- a GUI that let you change resonator and
striker models, as well as scaling of parameters across the keyboard and
across dimensions like NoteOn velocity, in an intuitive way, and create
SAOL code on the fly that was correct and efficient. The degree of
"high-level"-ness can be pretty high here, for example representing the
dimensions of strikers not by parameters in an equation, but by physical
characteristics of the striker and its strike position on the bar, which
you then translate into model parameters.
Maybe this isn't appropriate material for the course you're taking ...
but it certainly would be a cool app to play with :-).
--jl
This archive was generated by hypermail 2b29 : Wed May 10 2000 - 12:15:41 EDT