[sdiy] Additive Synthesis - Wendy would say it works...

Batz Goodfortune batzman-nr at all-electric.com
Wed Mar 23 02:58:13 CET 2005


Y-ellow All.

At 07:09 AM 3/22/05 -0600, Bill Felton wrote:
>I'm a bit surprised no one has mentioned Kyma yet -- it can do live
>analysis/resynthesis, with real-time spectral modification.  Pretty
>rich set of additive and quasi-additive approaches and some interesting
>presentations of controls.

Actually I did in passing as it happens.

Ed asked (off list) why the K5K is close but no banana. And while I'm 
addressing that, it also sieges nicely with the GUI vs complexity thing. So 
I'll kill them both with a tiny drop of vitriol. Strong stuff that vitriol 
by all accounts.

You'll have to forgive my lack of intimate knowledge of the K5K for the 
sake of argument. It's been a hell of a long time since I used one so I may 
have numbers and names wrong. Feel free to nit pick if you wish.

Kawai actually released a small bit of software which tried to do Fourier 
re-synthesis but it wasn't very good. Actually useful but way short of the 
mark. Mainly because of the lack of control over the partials. There are 
something like 100 oscillators per voice. Each one has it's own envelope 
generator but they are way to simple. Being only ADSR types. Each partial 
has a fixed relationship to each other which means that if harmonic content 
doesn't fall neatly into this relationship then bad luck. And from memory, 
there is no control over individual partials from LFO sources or other more 
universal EGs etc. Although, I think there's some kind of grouping which is 
mildly useful.

At best, the Kawai editor lets you grab some characteristics of the sound 
you're trying to translate but a great deal of post work is needed to make 
it sound anything but "THIN" I'm not saying this isn't useful because 
within this complex structure you wouldn't dream of starting a patch from 
scratch. (I know, I spent all day once trying to program a few patches into 
the thing.) But however useful it is, re-synthesis it aint.

There are lots of ways to break down sound into useful byte-sized chunks. 
MP3 for example, uses a psycho-acoustic method. Obviously the goal of MP3 
is quite different and doesn't lend it self to synthesis. Although I've 
often wondered why could be done with that kind of psycho-acoustic modeling 
synthesis wise. I'll leave that for another day however.

MP4 uses a whole bag of tricks to get massive reduction in audio size and 
one of the main tricks is re-synthesis. And here, it's aim isn't all that 
different except that it's designed for streaming. The language of MP4 
audio is called SAOLC. (pronounced sale sea) It's based on a cross between 
CSOUND and a MOD/TRACKER player. I'm too tired to go into this and I don't 
want to sound like I'm big-noting myself but some 5 years before SAOLC was 
even embryonic, I worked for a sound card company and we were developing 
something remarkably similar. The point being that a MOD/TRACKER system is 
yet another way to break down audio into partials and resynthesisze it 
later. And you get remarkable quality for a comparatively tiny amount of 
stored data. The reason I'm covering this background is that it should be 
noted that rather high quality playback can be achieved from layers of 
rather low quality stored data.

To effectively use additive re-synthesis, there needs to be lots of 
partials. Each one needs more than you're average ADSR but less than a full 
16 bit wave form. However the EG needs to resemble something like a wave 
form. It would be unipolar however and could be quite low in word size. Say 
8 bit. And maybe as few as 256 samples. You could perhaps draw the envelope 
on-screen with a light pen like the old Fairlite.

Using the K5K as a model, that would require about 25K of amplitude data 
per patch. It would be derived initially at least, by a fourier transform 
from an original sound. I also suspect that you could do with having some 
pitch variation of the individual oscillators in a voice as well. So that 
the harmonic relationships are not static. Just how un-static they need to 
be I'm not sure at this point. It would also depend on how frugal you have 
to be with your "Computational resources." It would be nice to have a 
similar EG arrangement for the pitch relationship of each partial similar 
to the amplitude relationship. However it may turn out that you can get 
away with much less.

So at the base of the system you have a resynthesis engine that can take 
any recorded sound and resynthesize it with a high degree of faithfulness. 
You could then mess with each of the 100 odd partial envelopes and tweak 
them painstakingly but there's another way.

You take a layered approach. And this is something Kawai did get right at a 
fundamental level with the K5K. You could start with one big, throbbing red 
knob on the front panel. With "Phat" at one end and "Suck" at the other. if 
you like. Like an Equalizer reduced to a single knob, you could have it max 
out all the odd harmonics at the "Phat" end and kill them off at the "Suck" 
end. Underneath that you might have other knobs assigned to groupings of 
parials that could shift them in amplitude or pitch. Underneath that you 
could have a series of universal EGs that do much the same thing but with a 
transient. Underneath that you might have a bunch of LFOs which can be 
assigned to groups of partials. All the way down to control of each 
partial's envelope it self. And of course, a bunch of universal EGs to 
control the over-all transient of the voice etc.

The degree of control you use depends on how much tweaking you think the 
sound needs to achieve what you're after. You may find that making it suck 
a bit more gives you what you want. That dulcet BBD tone for example? On 
the other hand, you may be trying to introduce the bowing effect of a 
violin sound. In which case you might have to adjust a universal pitch EG 
to give you the proper pitch transient. You may find that the upper 
harmonics of the sound need squashing over time so you could apply a 
tweezing envelope to partials 50 thru 100. Perhaps a parameter that allows 
you to increase the effectiveness of this tweezing EG to progressively 
higher partials. All without ever having to have touched the original sets 
of EG data.

Since it's mainly all about the control of the amplitude of a harmonic 
series, your GUI can simply be innovative ways to tweeze the original EG 
data. From the very simple to the very complex. The point being that if 
you're re-synthesis engine does the business in the first place, then it's 
up to you as to how complex or simple you tweeze it.

In fact, what the hell, you could make that whole process modular.

Anyway, I'm too fried to do a summery right now but I think I've addressed 
the issues asked of me. Except to say that. yes, Re-synthesis is too 
complex at a stick and rudder level perhaps but we're way beyond that these 
days. I would hope anyway.

Hope this helps.
Be absolutely Icebox.

  _ __        _       ____ International Nihilist ____
| "_ \      | |
| |_)/  __ _| |_ ____       ALL ELECTRIC KITCHEN
|  _ \ / _` | __|___ |Your source of Armageddon in a musically crass world
| |_) | (_| | |_  / /
|_,__/ \__,_|\__|/ /   Disgusting-> http://all-electric.com
                 / ,__  Music -----> all-electric.com-click music/download
Goodfortune    |_____| Cult  -----> http://www.subgenius.com




More information about the Synth-diy mailing list