Hello rbj!

My techniques are definitely not that sophisticated. It's really neat to
hear what the deeper layers of sophistication are.

I'm particularly surprised to hear it is in the neighborhood of vocoders.
That is another technique I'd like to learn sometime, but sounds "scary"
(granular synthesis sounded scary too before I did this post hehe).

Anyways, all I'm doing is placing grains after another, but repeating or
omitting them as needed to make the output buffer get to the target length
for whatever percentage the input buffer is at. I only place whole grains
into the output buffer.

There is a parameter that specifies a multiplier for playing the grains
back at (to make them slower or faster aka affecting pitch without really
affecting length).

Whenever a grain is placed down, say grain index N, if the previous grain
placed down isn't grain index N-1, but is grain index M, it does a cross
fade from grain index M+1 to N to keep things continuous.

In my setup, there is no overlapping of grains except for this cross
fading, and no discontinuities.

I use cubic hermite interpolation to get fractional samples, my grain size
is 20 milliseconds and the cross fade time is 2 milliseconds.

Would you consider this enough in the family of granular synthesis to call
it GS for a layman / introduction?

Thanks so much for the info!

PS do you happen to know any gentle / short introductions to formants or

On Mar 5, 2018 3:58 PM, "robert bristow-johnson" <r...@audioimagination.com>

> this is very cool.  i had not read through everything, but i listened to
> all of the sound examples.
> so there are two things i want to ask about.  the first is about this
> "granular" semantic:
> Thing #1:  so the pitch shifting is apparently *not* "formant-corrected"
> or "formant-preserving".  when you shift up, the voice becomes a little
> "munchkinized" and when you shift down, Darth Vader (or Satan) comes
> through.  that's okay (unless one does not want it), but i thought that
> with granular synthesis (or resynthesis), that the grains that are windowed
> off and overlap-added where not stretched (for downshifting) nor scrunched
> (for up-shifting).  i.e. i thought that in granular synthesis, the amount
> of overlap increases in up shifting and decreases during downshifting.
> this kind of pitch shifting is what Keith Lent writes about in Computer
> Music Journal in 1989 (boy that's a long time ago) and i did a paper in the
> JAES in, i think, 1995.
> without this formant-preserving operation, i think i would call this
> either "TDHS" (time-domain harmonic scaling), "OLA" (overlap-add), or
> "WOLA" (windowed overlap-add), or if pitch detection is done "SOLA"
> (synchronous overlap-add) or "PSOLA" (pitch synchronous overlap-add).
> however i have read somewhere the usage of the term PSOLA to mean this
> formant-preserving pitch shifting a.la Lent (or also a French dude named
> Hamon).  BTW, IVL Technologies (they did the pitch-shifting products for
> Digitech) was heavy into this and had a few patents, some i believe are now
> expired.
> Thing #2: are you doing any pitch detection or some attempt to keep
> waveforms coherent in either the time-scaling or pitch-shifting
> applications?  they sound pretty good (the windowing smoothes things out)
> but might sound more transparent if you could space the input grains by an
> integer number of periods.
> with pitch-detection and careful cross-fading (and windowing can be
> thought of as a fade-up function concatenated to a fade-down function) you
> can make time-scaling or pitch-shifting a monophonic voice or harmonic
> instrument glitch free.  it can sound *very* good and companies like
> Eventide have been doing something like that since the early-to-mid 80s.
> (ever since the H949.)  and i imagine any modern DAW does this (and some
> might do frequency-domain pitch-shifting and/or time-scaling using
> something we usually call a "phase vocoder".
> but your examples sound pretty good.
> r b-j
> ---------------------------- Original Message ----------------------------
> Subject: [music-dsp] granular synth write up / samples / c++
> From: "Alan Wolfe" <alan.wo...@gmail.com>
> Date: Mon, March 5, 2018 5:14 pm
> To: "A discussion list for music-related DSP" <
> music-dsp@music.columbia.edu>
> --------------------------------------------------------------------------
> > Hey Guys,
> >
> > Figured I'd share this here.
> >
> > An explanation of basic granular synth stuff, and some simple standalone
> > C++ i wrote that implements it.
> >
> > https://blog.demofox.org/2018/03/05/granular-audio-synthesis/
> >
> > Kind of amazed at how well it works (:
> >
> > Thanks for the answer to my question BTW Jeff.
> > _______________________________________________
> > dupswapdrop: music-dsp mailing list
> > music-dsp@music.columbia.edu
> > https://lists.columbia.edu/mailman/listinfo/music-dsp
> --
> r b-j                         r...@audioimagination.com
> "Imagination is more important than knowledge."
> _______________________________________________
> dupswapdrop: music-dsp mailing list
> music-dsp@music.columbia.edu
> https://lists.columbia.edu/mailman/listinfo/music-dsp
dupswapdrop: music-dsp mailing list

Reply via email to