(working text)
The software (in a later version which I'll make available as soon as
I can get on the right computers again) has been generating a lot of waves,
and has proven to do what it is supposed to do over a fair range of parameter
variation. waveguides of about 32 (64) lenght can about run in realtime
(that is, when one segment of the waveguide is output in a file it generated
samples fast enought to keep up with audio sampling rates), and the accuracy
is then such that a FFT with logarithmic amplitude display shows noting
but signals where they are expected, even when only the lowest fundamental
(standing wave) is present).
At higher waveguide lenghts, sampling errors in the velocity values and
the longer range over which they multiply seem to give at least quadric
increase of sampling (IM) noise, which is visible in in low amplitude samples
of e.g. 8192 long waveguides and which starts to become audible in loger
samples of say 1024 lenght waveguides with a full lenght wave in it, but
in the last case making full use of the 32 bit int for dynamic range of
the displacement storage reduces the noise to reasonanble (but noticable)
values. Using a higher harmonic, such that it's lenght is e.g. 32 samples
(in the waveguide propagation direction) reduced noise to being unnoticable
(at least with the fft from the 'wavelab' package, I'll get my hands on
some other, more scientifically oriented packages I've seems floating around
on the net as soon as I can have access again).
Making the waveguide dissipative by just making its endpoints dissipative in displacement sense (i.e. reducing the displacement, not the velocity) has the effect of generating an exponentional decay, but as is to be expected not in a very elegant fashion (it bounces off a high frequency wavetrain for large velocity values with slightly different waveguide lenght). In one of the following version I'l make the whole guide act as a suitably choosen filter to mimic gradual demping of mainly high frequencies.
Soundwise, a lot of interesting sounds have been generated already, also from the unsuspended ('torus') waveguide, and by imposing some sound processing tricks at one point or another. As thing stabilize into a version I'm content with I'l post some parameter lists and programs (and squeeze in a .wav routine and maybe a realtime link with a midi-able sample player package I've already picked up).
Here is a link to the source code for a simulated bass sound, I've run it using:
sims 256 80000 binfile bass.raw outnode 64
By varying the outnode variable to 128 (halfway the string) or even to 1 (very close to the point where the string is suspended) the sound vries considerably. When this sound is read in wavelab (or another package that can read raw audio sounds) the wordlenght is 16 bit, and the sample format is principally mono (although taking it for a stereo sample sort of puts your ears in the string), and the sample frequency can be simply put at CD quality (44.1 kHz). Reducing the sample rate evidently makes the tone lower in frequency.
I've been able to generate the samples in less time than it takes to listen to it on a NEC pentium PC (I think it was by samling at 22 kHz, which leaves a reasonable bandwith of rought 10kHz for a bass sound).
The initialization is done by an impulse (which was programmed *very* ad-hoc), and the filtering is done by halving the amplitude at the endpoints-1.
Sounds like some kind of bass to me.
Another example is where the string is pulled from its centre position at a single point (such as the tip of a plectrum), forms straight lines between the endpoints, and is then released. I'll put the source code for it up as soon as I can get on the net without having to swap between a PC with zip drive and a powermac with internet, it sounds like a (again bass-like) string instrument activated that way without a resonant body, without doubt.
The next will be to add better (end point and distributed) filtering to accout for the frequency dependent dispersion/loss of energy, and to look at tuning the guide to different frequencies. I would like to have my breadboards and some basic and more advanced HCT/LS stuff around to turn the main update into something easily done in realtime, I guess a tms320/80 or some other dsp wouldn't hurt either (evaluation offers available?).
I recently looked at some ways of generating sine waves by using oscillating (digital) second order filters, because the approach I took can be described as coupled 2d order harmonic oscilators and reduce to a single oscilator when the waveguide has length 1 (or lenght 3 with fixed endpoints included). I Found that ther are three main ways of writing the recurrence equations that govern the oscilation, with various properties:
My computation scheme is based on the starightforward representation of the equation of motion, and I wondered wether it coincides with one of these.
It kind of bugged me that in my equation for representing waveguide behaviour, I have a second derivative wrt. time (for acceleration) and a first derivative wrt. of the medium, while the Schroedinger equation has a first derivative to time and second to positional coordinates.
Recently I found that even on a PC of not too feeble disposition serious 3D graphics can be rendered, and compiled C programs allow for serious numerical simulations (see pae on waveguide for example).