Working with Scanned Synthesis
January 3rd, 2003
steven yi
email:stevenyi@csounds.com
web:http://www.csounds.com/stevenyi
copyright (c) 2003 steven yi - all rights reserved
INTRODUCTION
When Scanned Synthesis (1) was initially introduced
into the Csound world by Paris Smaragadis in 2000, I was excited to hear about
a new synthesis technique. However, my initial foray was unfruitful
as I had a hard time understanding the model and how to go about working with
it.
Recently, though, I was again curious to spend time with and understand what
Scanned Synthesis is and how to work with it. As it had been a couple
of years since my initial exploration, I was able to look at Scanned Synthesis
with some fresh eyes, and with absolute delight, I've found it to be a truly
beautiful sound synthesis technique.
I wanted to share some of my thoughts and experiences in regards to working
with Scanned Synthesis. These are initial thoughts and impressions that I
experienced in my venture through the technique. This initial text has
some of the instruments I have been using for fixed-pitch sounds. I've had
pretty good success at making interesting non-fixed-pitch noise/sound patches
which I'd like to share at a later time when I have the Csound/blue files
reworked for easier reading.
As I continue to work with Scanned Synthesis I hope to be able to share more
information and Csound instruments in the future.
thanks,
steven
NOTE: It is recommended that before proceeding that you read Dr. Boulanger's
"Scanned Synthesis TOOT", available at http://www.csounds.com/scanned.
THOUGHTS ABOUT STRING INSTRUMENTS
-Scanned Synthesis is a physical model developed with a string in mind. Thinking
in terms of acoustic stringed instruments helped me progress in understanding
and also designing Scanned Synthesis instruments. Often when editing
these instruments I found that what I thought might influence the sound in
one way ended up doing so in another way, and that what I initially thought
in regards to a stringed instrument often didn't map to what I heard. However,
thinking in terms of the string instrument model really did give me a starting
point from which to work with Scanned Synthesis.
-Most stringed instruments are not a string alone but also have a resonant
body. Using Scanned Synthesis alone is like using a string alone. By
itself, I've found the spectral content of the synthesis to be somewhat "tinny",
but that's not unlike a string alone. Think of it this way: a violinist
with a Stradivarius and a violinist with a cheap student instrument can have
the same exact strings but have wildly different sound qualities. The
quality of the string alone is the same in both cases, but the perceived
sound to a listener is different due to the alterations to the sound from
the resonant body.
-When coupled with a filter and bit of reverb, i found that the sounds I could
get really deepened quite a bit, becoming extremely warm and rich. The
liveliness of that original Scanned Synthesis sound remains to animate the
spectrum in a way that I find "natural", for lack of a better term.
-The string is "always-on" though requires an excitation to create sound.
In a resting state, the string does not produce sound. When there
is an excitation to the string, sound is produced. The sound produced
has a direct relationship to the excitation.
-There are many ways to play a string. You can hammer it, pluck it,
bow it with a stringed bow, use it as a resonant body (i.e. singing into
a piano with pedal down), use an e-bow with it, scrape it, etc. Each
form of excitation moves the string system: some excitations are a single
input into the string system and others are a continuous input into the string
system. A single motion (hammer, pluck) will displace the string and
then allow it to settle according to its properties (tension, mass weight,
etc. in the Scanned Synthesis model). A continuous motion (bow, e-bow,
string as resonant body) will add a constant displacement to the string per
unit time, while the string will also settle somewhat in that unit time.
The interaction of the excitation force and the settling force will
generally keep the string's energy in a somewhat constant state.
EXPERIMENTING
-Matrices used for Scanned Synthesis determine the connection between the
individual masses. The more connections a single mass has, the more
complex the animation of the surface will be. What I've found is that
as the complexity of connections increases, the sound tends to die away more
quickly, and the quality of sound is more complex/noisy. A random matrix
will yield interesting sounds but it needs to be driven pretty hard to keep
the interesting surface going or it will die away quickly.
-When using the scanu/scans opcode pair, two ways to influence the surface
are by setting an initial position (the init parameter to scanu) or
by exciting the model (the ain parameter). If you don't use the
ain parameter and set the initial position to something other than zero's,
then it's like you're plucking the model. From here, you can influence
the surface by changing the properties of the surface at k-rate (kmass, kstiff,
kcenter, kdamp). This would be like tightening a string while it is
resonating or maybe muting a string. If you use ain with an audio
signal with very low values, it can be used as a constant excitation to the
model, similar to bowing or other performance methods. In i1 of the
example instruments, ain is generated with the linseg opcode.
The scans audio output is lowpass filtered and run through a short .1 second
reverb to model a resonant body. The output is then sent to a global
reverb, which is there to model the room the instrument is played in.
instr 1
kpch = cpspch(p4)
iforce = p6 * .0004
ain linseg 0, 1, iforce, p3 - .1, 0
kenv linseg 0, 1, 1, p3 -.7, 0
ifnmatrix = p5
iscantable = p7
; PARAMETERS FOR SCANU
iInit = 1
irate = .02
ifnvel = 6
ifnmass = 2
ifncenter = 4
ifndamp = 5
kmass = 2
kstiff = .05
kcenter = .1
kdamp = -.4
ileft = .1
iright = .3
kpos = .2
kstrength = 0
idisp = 0
id = 2
scanu iInit,irate,ifnvel,ifnmass,ifnmatrix,ifncenter,ifndamp,kmass,kstiff,kcenter,kdamp,ileft,iright,kpos,kstrength,ain,idisp,id
aout scans 15000, kpch, iscantable, 2
aout = aout * kenv
aout dcblock aout
aout butterlp aout, kpch * 8 * kenv
aout butterlp aout, kpch * 8 * kenv
aout nreverb aout, .1, .2
ga1 = ga1 + aout
ga2 = ga1 + aout
endin
-Thinking of work with other synthesis methods, what could I try with Scanned
Synthesis? How does it map to physical properties of an instrument?
In i2 of the example instruments, I tried to feedback the aout signal
into the ain parameter of the scanu opcode.
instr 2
ain init 0
kpch = cpspch(p4)
iforce = p6 * .0004
aforce linseg 0, 1, iforce, p3 - .1, 0
ain = ain + aforce
kenv line 1, p3, 0
kpch = cpspch(p4)
ifnmatrix = p5
iscantable = p7
; PARAMETERS FOR SCANU
iInit = 1
irate = .02
ifnvel = 6
ifnmass = 2
ifncenter = 4
ifndamp = 5
kmass = 2
kstiff = .05
kcenter = .1
kdamp = -.4
ileft = .1
iright = .3
kpos = .2
kstrength = 0
idisp = 0
id = 2
scanu iInit,irate,ifnvel,ifnmass,ifnmatrix,ifncenter,ifndamp,kmass,kstiff,kcenter,kdamp,ileft,iright,kpos,kstrength,ain,idisp,id
aout scans 30000, kpch, iscantable, 2
ain = (aout / 30000) * .0002 ; feeding back the out signal into scanu
aout = aout * kenv
aout dcblock aout
aout butterlp aout, kpch * 8 * kenv
aout butterlp aout, kpch * 8 * kenv
aout nreverb aout, 1, .2
ga1 = ga1 + aout
ga2 = ga1 + aout
endin
-With a string instrument like a violin there are usually two strings involved
in the instrument's sound: the string on the instrument and the string on
the bow. They both have equal excitation force to their string systems
as they are exerting pressure on each other. The strings differ in
their physical qualities: mass, stiffness, etc. The vibrations of each
string system, then, are not completely self-determined as each string also
excites the other. In i3 of the example instruments, I tried to use
two different sets of scanu/scans opcodes to model the two string systems'
interactions with each other.
instr 3
ain init 0
kpch = cpspch(p4)
iforce = p6 * .0004
aforce linseg 0, 1, iforce, p3 - .1, 0
ain = aforce - ain
kenv line 1, p3, 0
kpch = cpspch(p4)
ifnmatrix = p5
iscantable = p7
; PARAMETERS FOR SCANU
iInit = 1
irate = .02
ifnvel = 6
ifnmass = 2
ifncenter = 4
ifndamp = 5
kmass = 2
kstiff = .05
kcenter = .1
kdamp = -.4
ileft = .1
iright = .3
kpos = .2
kstrength = 0
idisp = 0
id = 2
scanu iInit,irate,ifnvel,ifnmass,ifnmatrix,ifncenter,ifndamp,kmass,kstiff,kcenter,kdamp,ileft,iright,kpos,kstrength,ain,idisp,id
scanu iInit,irate,ifnvel,ifnmass,ifnmatrix,ifncenter,ifndamp,1,.04,kcenter,kdamp,ileft,iright,kpos,kstrength,aforce,idisp,3
aout scans 30000, kpch, iscantable, 2
aout2 scans 30000, kpch, iscantable, 3
ain = (aout2 / 30000) * .02
aout = aout * kenv
aout dcblock aout
aout butterlp aout, kpch * 8 * kenv
aout butterlp aout, kpch * 8 * kenv
aout nreverb aout, 1, .2
ga1 = ga1 + aout
ga2 = ga1 + aout
endin
FINAL NOTES
-I'm still experimenting with the parameters to the scanu opcode to find
the set of parameters that will provide a surface animation that acts more
like a string, having a relatively quick decay to silence. (This is
using the string-128 matrix.)
-How I'm going about working with Scanned Synthesis may very well be not
what was intended, but already I'm getting sounds which are musically satisfying
to my taste. It's encouraging to know such a quality of sound is attainable
with a minimal understanding of the method.
FOOTNOTES
1. Scanned Synthesis is a synthesis method developed
by Bill Verplank, Max Mathews and Rob Shaw at Interval Research. More
information can be found at http://www.csounds.com/scanned
.