[sdiy] Re: granular synthesis (long + may be OT)

Fdi fdi at ran.es
Wed Jul 16 21:34:22 CEST 2003


[sdiy] Re: granular synthesis (long + may be OT)


Trying to clarify: granular synthesis is when you generate the wave contents
for the grains (or wavetable scanning) and granular processing when you use
existing samples as source for the grains (usually of acoustic origin, but
samples could be of electronic origin includded). The second being
traditionally more rich since, usually, static waveforms are used for the
first method, resulting in a classic "grain cloud" (boring for my brain)

You'll need to be out of real time in order to obtain something rich enough.
Say, at least, 200 simultaneous grains, at least.
Of course, density it's not everything. You need to have extensive control
of all grain parameters, wich makes necessary some kind of "behaviour"
control rather than trying to define each grain ( for instance, you make a 3
seconds event containing 20000 or 100000 grains wich overlap)
I was extremely dissapointed with all realtime systems since they can't
achieve enough density, enough control, enough dinamyc range (lots of
overlapping here. csound compute at 32 bit and can deliver at 32, 24 or 16
bit) etc. I tried everything: some apps on a SilliconGraphics, MSP,
SuperCollider, and some other realtime apps but nothing similar was
achieved.
I was also dissapointed with "compact objects" to do granular synthesis and
processing on some out-of-real-time languages. Like some generators at
csound and other libraries (grain, fof, fog, etc). They are intended to
create more a waveform than an event and this approach does not returns
satisfactory results, from my point of view. Same for FOF, Chant and other
granular sub-families. Poor results, sonically and expresivelly (for my
ears)
To obtain really expressive, musical, interesting (risky words) results you
need to
-   take your grain material from different sources (similar or dissimilar
samples -better- or static waveforms) prefferably at random or with a
function (better) that picks the samples. So you control dinamically the
source wich you are making each grain from.
-   control the extracting point at the source sample for that grain
-   control of the grain duration. The duration of the fragment extracted
from the source to fill a grain is different from the final grain duration,
since some pitch transp. is usually applied. So it's very important that you
apply the amplitude envelope after the transposing, when you know the final
duration of the grain.
-   control grain amplitude envelope. I mean change it all the time for each
grain and have many different shapes available. It needs to have a long
exponential decay to avoid clicks.
-   control grain max amplitude (see amp. envelope avobe)
-   vary slightly grain pitch. More than slightly do not produces very good
results (generally speaking. Of course sometimes is good, but with acoustic
origin samples is better to be subtle here. I use the following lisp
function for pitch transp. or whenever I need some noisy values arround a
base value, or to add noise to a control function :
(defun variax (x)
(+ (- 1.0 (/ x 2)) (random x)))
-   control grain time position on the resulting sample
-   amplitude envelope of the whole event
-   control grain spatial position (two or more channel pan position,
reverberate, whatever)


Controlling all this parameters from an algorithm can produce incredibly
rich and expresive events or at a higher level, music. I use a function
(envelope-like) for each parameter and the algorithm interpolates to read
the functions for the number of grains requested, so I can use the same
function for an event with 300 grains or with 30000 grains during whatever.
This functions will define the "behaviour" of the event. You will loose the
sense of stretching, transposing, or whatever. If you can recognize the
process involved the musical interest it's lost. When you make "serious"
granular processing you can't tell how it was made. It sounds like a whole
orchestra (or two) on Peyote.

Whenever I start with a web site I will put some (of my) music fragments.
Apart of the analog synthesizer, this is the technique that satisfy me more.
Look for Barry Truax theories and compositions using granular synthesis. He
used it a lot. But I can tell you: you can go waaaaaay farther in richness
and expression. He wrote some articles at the CMJ. You will find recordings
from the ICMA and GMEB (now IIMEB) at Bourges, France. But the examples are
usually dissapointing (boring) because are more technical than aesthetic.
That's why I suggest you to make your own examples rather than search for
them. When I have time I can post my csound instrument and some algorithms
so you can begin with it.

Try sources as multiphonics from instruments (sax, clarinet, flute, cello),
human voice (look at the world today, are we still humans?), animal voices,
any natural sound, analog synth material, scratching sand with your shoe
(that actually is granular in itself, but I got incredible material out of
it!), or even percusive sounds (I did some exercises with door sounds to
explain this method to some people), orchestra gongs, zen bells, body
sounds...

I was using granular at first on the NeXT computer using a soft instrument
called Mixsounds from the MusicKit library, being controlled from CM
algorithms. Then I tried to emulate it for the Mac on the CLM (common lisp
music) language not being very satisfied, I was missing Mixsounds. One lucid
morning I remade the Mixsounds instrument in 20 minutes for csound, I didn't
realize it was so simple! And then controlled it from CM (common music) -the
old CM without the new complicate graphic interface (as someone pointed)-
With this simple little instrument you can do the more sophisticated
granular processing or synthesis possible if you can generate the "note
list" (where each line give the parameter values for each grain) somewhere
(CM in my case)
A granular processing instrument. For each grain do:
- have available the source sample/s
- have available the amplitude envelope functions
- choose one sample (in case many samples)
- choose cut time point
- define duration of the extracted fragment (= end cut point)
- shift pitch now if you wish
- choose and apply amplitude envelope
- multiply the enveloped grain per the grain's "main amplitude factor"
- define destination time point (on the resulting sound)
- calculate amplitude proportion to each channel (if event not mono)

- when all grains are made and in place (the event is done) rescale
amplitude if needed
- write the final sound file


May be this is too much and not very organized info... sorry then. I suffer
when I see someone disapointed of this technique by listening to poor
examples, or even not finding any!
(please excuse my english too)

Fernando
--



f
*




> De: "Czech Martin" <Martin.Czech at Micronas.com>
> Fecha: Wed, 16 Jul 2003 13:17:11 +0200
> Para: "Glen" <mclilith at charter.net>, "Fdi" <fdi at ran.es>,
> <synth-diy at dropmix.xs4all.nl>
> Asunto: RE: [sdiy] Re: granular synthesis
>
> Perhaps I can.
>
> At least I have made a true electronic piece of music with it
> (some say "academic electronic music").
> This is "no dancefloor" but I can see no reason
> why GS could not be used for pop music as well.
> The input sample was a German text, somebody explaining
> the  basic constituents of sound (spoken by Herbert
> Eimert). So this piece has some kind of self reference.
> You can her some crazy loops, very much slowed down vowels,
> sometimes you would never believe what the original
> material was.
>
> Ok, I'm 37 now, so I do not believe in "the next big thing"
> business any more. Just to much disappointments.
>
> I think GS was much overestimated when it was fashionable in 1970-1980
> or so, of course especially if you read papers of people
> that claim to have invented this method, or have done some
> contribution. What else can you expect of them?
>
> What does GS really do? Basically it spits out a bunch of
> little samples with some kind of envelope arround,
> we know this idea from quantum physics in a way,
> wave-particles.
>
> Think of some table in which the audio material resides,
> then we need a pointer where to start playback
> and another one where to stop. Or start and length,
> if you like it more. We need a freq parameter which determines
> the velocity (or increment) in which the sample is played back.
> And we need to have a modulation of the start entry.
> Finally we need a rate parameter, which rules when the
> next sample will be played. And some envelope and multiplier
> to window the sample when it is played, in order to avoid
> clicks & pops.
>
> Of course you can have mutliple tables spitting out
> bunches of grains at the same time.
>
> Note that a tape device existed ("Tempophon")
> with four rotating audio heads that could mimic
> a lot of a GS tool, but of course the start pointer
> thing had some difficulties there.
> So your notion of a gone haywire tape recorder is not so wrong,
> but not complete.
>
>
> Now, the starting point can be rate=20/s, starting point at zero,
> short samples (grains), and grain playback frequency
> same as recording freq. The start pointer should move on
> so that the entire sample is played. WHat we now have
> is a representation of the original sample, at normal speed
> and pitch. The fact that it is not continously played,
> but in little grains, is almost hidden due to overlap
> of grains.
>
> Now we can do some alterations. First we can speed up
> playback frequency. The pitch will rise, but the total
> sample time will not shorten. Pitch shifting in time
> domain (with all side effects).
> Or we can speed up start pointer movement.
> Time compression in time domain!.
>
> We can make the grains longer and rate lower,
> some kind of strange echo!
> We can even reverse start pointer movement,
> even stranger echoes!
>
> We can stop the start pointer, time stretching to
> infinity.
> etc. etc. etc.
>
> So, GS can do something usefull.
>
> Basically a mixture of AM, timestretrch/compression,
> pitch shift, echo, flanging.
>
> This sounds like postprocessing.
>
> Of course, you can pick some part of the sample and loop
> it very fast with different frequ, that's wave table stuff is,
> isn't it? So the borderline between postprocessing
> and synthesis (if it exists) is very fluid with such a tool.
>
> The problem is  to grasp, what is behind the parameters of "granny".
> I've made a nice write up (in German), because I tend to forget
> so fast:
> (http://www.zem.de/heft/22_granny.htm).
>
> Once this is settled, you can e.g. use the gesture window to
> manipulate some parameters with mouse-joystick
> in real time. I mentioned above that using this feature you
> can bend things into total disintegration and back.
>
> It takes some time of experiment to get something out of
> a somehow complicated machine.
>
> m.c.
>
>
> -----Original Message-----
> From: Glen [mailto:mclilith at charter.net]
> Sent: Mittwoch, 16. Juli 2003 12:21
> To: Czech Martin; Fdi; synth-diy at dropmix.xs4all.nl
> Subject: RE: [sdiy] Re: granular synthesis
>
>
> At 05:43 AM 7/16/03 , Czech Martin wrote:
>> Ever heard of "granny"?
>
> I have "granny" here at home. I never could get anything very interesting
> out of it. What I'd like to find are some recordings that demonstrate the
> solid musical value of granular synthesis. So far, all I have heard are
the
> sort of sounds you would expect from a mangled cassette tape being eaten
by
> a rogue cassette player. Could this actually be the "next big thing" in
> synthesis, as it is sometimes claimed to be? Most of what I've heard
> doesn't even sound like synthesis. It sounds like post-processing, albeit
> extreme post-processing.
>
>
> later,
> Glen Berry
>
<br><br>
Direccion.com<br>
________________________________________________<br>
This
mail was sent by Direccion.com 2.0



More information about the Synth-diy mailing list