Advise on Creating a Guitar Synth in Max/MSP
At 10:14 PM -0600 7/22/07, Krispen Hartung wrote:
>I play a note on my guitar, fiddle reads the input and sends the frequency to saw~, but the problem is that the tone is constant and does not stop until I play another note. So, can anyone with more familarity of these synth objects advise on what I might do to make the saw~ put release or decay what it generates from fiddle? For example, rather than having the sustain infinite, I'd like to adjust it to something like a 1 second duration, so that wav isn't "always on". I'm guessing it is something utterly simple, but escaping me nonetheless.
You need the moral equivalent of a VCA on the output of the saw~. I haven't used pitch~ but it looks like it has an amplitude out that could be pressed into service. There is also the adsr~ object.
At any rate you want to take the output from saw~ into a *~, which acts like a vca in this example:
--
Chris Muir | "There are many futures and only one status quo.
cbm@well.com | This is why conservatives mostly agree,
http://www.xfade.com | and radicals always argue." - Brian Eno
This helps. Thanks. My tracking isn't as good as it was before, but it's at least workable now. For some reason, I thought it would be intuitive for saw~ to have some argument or option that would add that envelop or "release" function of a typical synthesizer, rather than having to tweak the output of saw~. I can't recall all the control of synthesizers (the last one I had was a Yamaha SY22), and each each synth voice had an attach, release, sustain, etc.
Kris
At 7:58 AM -0600 7/23/07, Krispen Hartung wrote:
>This helps. Thanks. My tracking isn't as good as it was before, but it's at least workable now. For some reason, I thought it would be intuitive for saw~ to have some argument or option that would add that envelop or "release" function of a typical synthesizer, rather than having to tweak the output of saw~. I can't recall all the control of synthesizers (the last one I had was a Yamaha SY22), and each each synth voice had an attach, release, sustain, etc.
Well, Max/MSP is more like atomic building blocks, rather than pre-built synths. This is a blessing and a curse. In general, it's a blessing, because it allows you to build exactly what you want. The curse part is that it allow you to build exactly what you want :-)
If you want something like a typical subtractive synth, you will need to build it, with oscillators, envelope generators, filter, "vca", etc.
-C
--
Chris Muir | "There are many futures and only one status quo.
cbm@well.com | This is why conservatives mostly agree,
http://www.xfade.com | and radicals always argue." - Brian Eno
Hi Kris,
You can still use fiddle~ if you prefer. Rather than using the amp out
of pitch~, use an envelope follower such as average~, slide~, or
rampsmooth~ to change the amplitude of your synth. You can also do fun
stuff by throwing in a tapin~/tapout~ pair so that you can delay the
pitch input or the amp input independently of each other. (so the
synth's amp envelope is from 5 seconds ago, but the pitch material is
real-time)
Some other fun things to try with your synth:
-Only passing certain pitches, only passing a certain % of pitches
-Having an amplitude weight for certain pitch-classes (e.g. all C#'s
are 6 dB louder than C's)
-Random octaviation of the incoming pitch
-Arpeggiation of the last 5 pitches played when a certain trigger note
is played
-Pitches stay on until they're played again
-lores~ filter whose cutoff frequency is 4 octaves above input pitch on
a 3 second delay
An amp follower that I use a lot:
abs~
|
*~ 2.5
|
slide~ 200 2000
|
clip~ 0. 1.
|
*~ your synth
The first and second values for slide~ are rise and fall (attack and
decay) time in samples. You could set the first value long if you want
it to fade in after your initial attack... The *~ 2.5 is makeup gain;
see what your source needs.
I use slide~ instead of average~ because average~ (by its nature) tends
to muffle attacks. (e.g. if it takes 2000 samples for an attack...).
Also, it's faster (or at least used to be) than rampsmooth~. You can
also get a lot of mileage by using this envelope to control LFO
parameters.
Hope this helps.
Peter McCulloch
On Jul 23, 2007, at 9:58 AM, Krispen Hartung wrote:
>
> This helps. Thanks. My tracking isn't as good as it was before, but
> it's at least workable now. For some reason, I thought it would be
> intuitive for saw~ to have some argument or option that would add that
> envelop or "release" function of a typical synthesizer, rather than
> having to tweak the output of saw~. I can't recall all the control of
> synthesizers (the last one I had was a Yamaha SY22), and each each
> synth voice had an attach, release, sustain, etc.
>
> Kris
>
> --
> Krispen Hartung
> Creative Performance & Composition
> Guitar / 6-String Mandolin / Laptop
> www.krispenhartung.com
> info@krispenhartung.com
>
>
www.petermcculloch.com
it seems like your env follower might have a bit of bleed-through, mildly
AM-ing what you control with it. That's just a guess, it may be
insignificant.
One solution that would avoid possible bleed-through problems and would get
you closer to conventional synth operation would use that same envelope
follower but send it to a comparator that triggers an ADSR.
abs~
|
*~ 2.5
|
slide~ 200 2000
|
|
ADSR~
|
*~ your synth
there's no velocity control in this system but it may act more like the
GR-300. you could look for the peak amplitude when you meet your trigger
condition and use that to amplify your ADSR (or, for instance, increase the
attack portion but keep the sustain the same). You could also use this
system for filter control and peter's system for amplitude control, etc etc
etc.
- george
On 7/24/07, Peter McCulloch wrote:
>
> Hi Kris,
>
> You can still use fiddle~ if you prefer. Rather than using the amp out
> of pitch~, use an envelope follower such as average~, slide~, or
> rampsmooth~ to change the amplitude of your synth. You can also do fun
> stuff by throwing in a tapin~/tapout~ pair so that you can delay the
> pitch input or the amp input independently of each other. (so the
> synth's amp envelope is from 5 seconds ago, but the pitch material is
> real-time)
>
> Some other fun things to try with your synth:
> -Only passing certain pitches, only passing a certain % of pitches
> -Having an amplitude weight for certain pitch-classes (e.g. all C#'s
> are 6 dB louder than C's)
> -Random octaviation of the incoming pitch
> -Arpeggiation of the last 5 pitches played when a certain trigger note
> is played
> -Pitches stay on until they're played again
> -lores~ filter whose cutoff frequency is 4 octaves above input pitch on
> a 3 second delay
>
> An amp follower that I use a lot:
>
> abs~
> |
> *~ 2.5
> |
> slide~ 200 2000
> |
> clip~ 0. 1.
> |
> *~ your synth
>
> The first and second values for slide~ are rise and fall (attack and
> decay) time in samples. You could set the first value long if you want
> it to fade in after your initial attack... The *~ 2.5 is makeup gain;
> see what your source needs.
>
> I use slide~ instead of average~ because average~ (by its nature) tends
> to muffle attacks. (e.g. if it takes 2000 samples for an attack...).
> Also, it's faster (or at least used to be) than rampsmooth~. You can
> also get a lot of mileage by using this envelope to control LFO
> parameters.
>
> Hope this helps.
>
> Peter McCulloch
>
>
> On Jul 23, 2007, at 9:58 AM, Krispen Hartung wrote:
>
> >
> > This helps. Thanks. My tracking isn't as good as it was before, but
> > it's at least workable now. For some reason, I thought it would be
> > intuitive for saw~ to have some argument or option that would add that
> > envelop or "release" function of a typical synthesizer, rather than
> > having to tweak the output of saw~. I can't recall all the control of
> > synthesizers (the last one I had was a Yamaha SY22), and each each
> > synth voice had an attach, release, sustain, etc.
> >
> > Kris
> >
> > --
> > Krispen Hartung
> > Creative Performance & Composition
> > Guitar / 6-String Mandolin / Laptop
> > www.krispenhartung.com
> > info@krispenhartung.com
> >
> >
> www.petermcculloch.com
>
>
Krispen Hartung schrieb:
> So, can anyone with more familarity of these synth objects advise on
> what I might do to make the saw~ put release or decay what it
> generates from fiddle? For example, rather than having the sustain
> infinite, I'd like to adjust it to something like a 1 second
> duration, so that wav isn't "always on". I'm guessing it is something
> utterly simple, but escaping me nonetheless.
Use the bang, a delay for the duration and adsr~, or use the overal
amplitude to distinguish the played duration (not tested):
--
Stefan Tiedje------------x-------
--_____-----------|--------------
--(_|_ ----|-----|-----()-------
-- _|_)----|-----()--------------
----------()--------www.ccmix.com