Csound Csound-dev Csound-tekno Search About

Reducing chorus-like effect with pvsfreeze

Date2017-08-07 23:03
From"Jeanette C."
SubjectReducing chorus-like effect with pvsfreeze
Hey hey,
is there a way to reduce the chorus or detune like effect on freezing an
f-sig using pvsfreeze, whle retaining the character of the frozen note?

I tried pitchtracking the signal and then using pvsftw lowering all
bins, which aren't overtones (or very close to). I also tried setting
one bin on either side of the loudest bin (almost matching an overtone)
to 0 and optionally manipulating the identified bin's frequeny to
exactly match a harmonic, with only limited improvements. Any hints are
very much appreciated.

Thanks and best wishes,

Jeanette

--------
* website: http://juliencoder.de - for summer is a state of sound
* SoundCloud: https://soundcloud.com/jeanette_c

Don't care about money
It doesn't give me half the thrill <3
(Britney Spears)

Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
        https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here

Date2017-08-08 07:48
FromOeyvind Brandtsegg
SubjectRe: Reducing chorus-like effect with pvsfreeze
Hi,
I'm not 1000% sure of what you mean by 'the chorus-like effect', but assuming you mean that it can sound slightly out of tune. This might occur because the natural fluctuation of partials is stopped, and thus, the instantaneous frozen image does not correspond to what we experience when the timbre flows naturally. I think, rather than manipulating the frozen frame, perhaps you could try to average the values over a short time window. This could be done with pvsfreeze or pvsmooth, guessing pvsfreeze would be better. You could also use pvsbuffer to create a freeze effect that does not only use one single frame but oscillates betweeen a few neighbouring frames. I think Iain McCurdy has an example of this somewhere.
Oeyvind

2017-08-08 0:03 GMT+02:00 Jeanette C. <julien@mail.upb.de>:
Hey hey,
is there a way to reduce the chorus or detune like effect on freezing an
f-sig using pvsfreeze, whle retaining the character of the frozen note?

I tried pitchtracking the signal and then using pvsftw lowering all
bins, which aren't overtones (or very close to). I also tried setting
one bin on either side of the loudest bin (almost matching an overtone)
to 0 and optionally manipulating the identified bin's frequeny to
exactly match a harmonic, with only limited improvements. Any hints are
very much appreciated.

Thanks and best wishes,

Jeanette

--------
* website: http://juliencoder.de - for summer is a state of sound
* SoundCloud: https://soundcloud.com/jeanette_c

Don't care about money
It doesn't give me half the thrill <3
(Britney Spears)

Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
       https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here



--
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

Date2017-08-08 10:45
FromIain McCurdy
SubjectRe: Reducing chorus-like effect with pvsfreeze

I think Oeyvind is referring to using pvsbuffer/pvsbufread to freeze a chunk of data and to then move around that data with some sort of randomly moving pointer. This will still imbue a sense of spectral movement but will not be periodic (chorus effect-like). You could even make use of pvsbufread2 and its ability to add delays on a bin-by-bin basis to further shuffle the reading of data.

Another alternative is to lock the phases. This is built into some opcodes like mincer which can also do a freeze effect, but you can add it after pvsfreeze with 'pvslock' in order to stop the 'swirling'.

The technique you are describing sounds complicated but intriguing!

Iain




From: A discussion list for users of Csound <CSOUND@LISTSERV.HEANET.IE> on behalf of Oeyvind Brandtsegg <oyvind.brandtsegg@NTNU.NO>
Sent: 08 August 2017 06:48
To: CSOUND@LISTSERV.HEANET.IE
Subject: Re: [Csnd] Reducing chorus-like effect with pvsfreeze
 
Hi,
I'm not 1000% sure of what you mean by 'the chorus-like effect', but assuming you mean that it can sound slightly out of tune. This might occur because the natural fluctuation of partials is stopped, and thus, the instantaneous frozen image does not correspond to what we experience when the timbre flows naturally. I think, rather than manipulating the frozen frame, perhaps you could try to average the values over a short time window. This could be done with pvsfreeze or pvsmooth, guessing pvsfreeze would be better. You could also use pvsbuffer to create a freeze effect that does not only use one single frame but oscillates betweeen a few neighbouring frames. I think Iain McCurdy has an example of this somewhere.
Oeyvind

2017-08-08 0:03 GMT+02:00 Jeanette C. <julien@mail.upb.de>:
Hey hey,
is there a way to reduce the chorus or detune like effect on freezing an
f-sig using pvsfreeze, whle retaining the character of the frozen note?

I tried pitchtracking the signal and then using pvsftw lowering all
bins, which aren't overtones (or very close to). I also tried setting
one bin on either side of the loudest bin (almost matching an overtone)
to 0 and optionally manipulating the identified bin's frequeny to
exactly match a harmonic, with only limited improvements. Any hints are
very much appreciated.

Thanks and best wishes,

Jeanette

--------
* website: http://juliencoder.de - for summer is a state of sound
* SoundCloud: https://soundcloud.com/jeanette_c

Don't care about money
It doesn't give me half the thrill <3
(Britney Spears)

Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
       https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here



--
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

Date2017-08-08 14:05
From"Jeanette C."
SubjectRe: Reducing chorus-like effect with pvsfreeze
Hi Oeyvind and Iain,
Aug 8 2017, Iain McCurdy has written:
...
> Another alternative is to lock the phases. This is built into some opcodes like mincer which can also do a freeze effect, but you can add it after pvsfreeze with 'pvslock' in order to stop the 'swirling'.
...
Thanks, I think pvslock clears up the sound a little bit. I can't use
pvsbuffer, since I'm working on a kind of cross-synthesis.

Might saving several frames and then manually averaging the values using
the saved function tables also work?

I was intrigued by a Melodyne feature of "pasting" the spectrum of one
sound onto another instrument:
http://youtu.be/6mi52Yud3yk
Spectrum giver at 5mins, spectrum taker at 5:46 and with the pasted
spectrum at 6:06. The voiceover is in German, maybe there are English
subtitles.

My approach: analyse the spectrum of both "giver" and "taker" and then
work out amplitude factors, maybe even some slight frequency adjustment
(to be determined by trial-and-error), then perform an FFT-based EQ or
one-window convolution, by tracking the pitch of the "taker" and
pitchshifting my "EQ function" to match. If I use one of the FFT based
pitchshifting algorithms with formant-keeping - I think - it should
work. Or am I completely off the mark?

Best wishes,

Jeanette

--------
* website: http://juliencoder.de - for summer is a state of sound
* SoundCloud: https://soundcloud.com/jeanette_c

Can't make you love me
I'm just a girl with a crush on you <3
(Britney Spears)

Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
        https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here

Date2017-08-10 15:07
FromOeyvind Brandtsegg
SubjectRe: Reducing chorus-like effect with pvsfreeze
This is intriguing, and frankly I don't know the details, but I suspect your suggested approach will not be very robust when applied to different pitched sounds (different pitch between source and destination sound). Maybe the partials opcode would help you extract similar information as he hass displayed in the lower pane on his screen, and from there your could work something out on how to apply that shape to the partials-representation of the destination sound.
Sorry to have just a vague pointer, but I think it lies over there somewhere....

2017-08-08 15:05 GMT+02:00 Jeanette C. <julien@mail.upb.de>:
Hi Oeyvind and Iain,
Aug 8 2017, Iain McCurdy has written:
...
Another alternative is to lock the phases. This is built into some opcodes like mincer which can also do a freeze effect, but you can add it after pvsfreeze with 'pvslock' in order to stop the 'swirling'.
...
Thanks, I think pvslock clears up the sound a little bit. I can't use
pvsbuffer, since I'm working on a kind of cross-synthesis.

Might saving several frames and then manually averaging the values using
the saved function tables also work?

I was intrigued by a Melodyne feature of "pasting" the spectrum of one
sound onto another instrument:
http://youtu.be/6mi52Yud3yk
Spectrum giver at 5mins, spectrum taker at 5:46 and with the pasted
spectrum at 6:06. The voiceover is in German, maybe there are English
subtitles.

My approach: analyse the spectrum of both "giver" and "taker" and then
work out amplitude factors, maybe even some slight frequency adjustment
(to be determined by trial-and-error), then perform an FFT-based EQ or
one-window convolution, by tracking the pitch of the "taker" and
pit chshifting my "EQ function" to match. If I use one of the FFT based
pitchshifting algorithms with formant-keeping - I think - it should
work. Or am I completely off the mark?

Best wishes,

Jeanette

--------
* website: http://juliencoder.de - for summer is a state of sound
* SoundCloud: https://soundcloud.com/jeanette_c

Can't make you love me
I'm just a girl with a crush on you <3

(Britney Spears)

Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
       https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here



--
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

Date2017-08-10 15:31
From"Jeanette C."
SubjectRe: Reducing chorus-like effect with pvsfreeze
Aug 10 2017, Oeyvind Brandtsegg has written:
...
> Maybe the partials opcode would help you extract similar information as he
> has displayed in the lower pane on his screen, and from there your could
> work something out on how to apply that shape to the
> partials-representation of the destination sound.
...
Hi Oeyvind,
thanks for your feedback. I have found that my first approach didn't
really work. I didn't find any information about the output-format of
the partials opcode, but I'm doing a harmonic detection myself now, only
relating a user-defined number of harmonics and possibly then use
optional direct relation between frequencies around a user definable
highfreq mark, to experiment with noise/breathiness translation. This
could be especially useful for vocal transformations, if they work.
Using this approach I might also be able to perform a few more harmonic
operations as demonstrated in the Melodyne video (removing each odd/even
harmonic...

Best wishes,

Jeanette

--------
* website: http://juliencoder.de - for summer is a state of sound
* SoundCloud: https://soundcloud.com/jeanette_c

I can't believe it's what I see
That the girl in the mirror
The girl in the mirror Is me <3
(Britney Spears)

Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
        https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here

Date2017-08-10 17:13
FromOeyvind Brandtsegg
SubjectRe: Reducing chorus-like effect with pvsfreeze
Sounds very interesting. Would you care to share the code for harmonic detection?

2017-08-10 16:31 GMT+02:00 Jeanette C. <julien@mail.upb.de>:
Aug 10 2017, Oeyvind Brandtsegg has written:
...
Maybe the partials opcode would help you extract similar information as he
has displayed in the lower pane on his screen, and from there your could
work something out on how to apply that shape to the
partials-representation of the destination sound.
...
Hi Oeyvind,
thanks for your feedback. I have found that my first approach didn't
really work. I didn't find any information about the output-format of
the partials opcode, but I'm doing a harmonic detection myself now, only
relating a user-defined number of harmonics and possibly then use
optional direct relation between frequencies around a user definable
highfreq mark, to experiment with noise/breathiness translation. This
could be especially useful for vocal transformations, if they work.
Using this approach I might also be able to perform a few more harmonic
operations as demonstrated in the Melodyne video (removing each odd/even
harmonic...

Best wishes,

Jeanette

--------
* website: http://juliencoder.de - for summer is a state of sound
* SoundCloud: https://soundcloud.com/jeanette_c

I can't believe it's what I see
That the girl in the mirror
The girl in the mirror Is me <3

(Britney Spears)

Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
       https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here



--
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

Date2017-08-10 20:44
From"Jeanette C."
SubjectRe: Reducing chorus-like effect with pvsfreeze
Aug 10 2017, Oeyvind Brandtsegg has written:

> Sounds very interesting. Would you care to share the code for harmonic
> detection?
Of course, once I have finished my second attempt. I already used it.
Basically, I pitchtrack the audio signal. Then I write the frequencies
and amps of the bins to function tables, using pvsftw. In a loop I
iterate over all bands (can be improved), until I approximate the first
harmonic (kpitch * kharmonic). At that point I also check the
amplitudes, always storing the amplitude of the last bin. So I choose
between two bins, whichever has the louder volume. In that case I do
what has to be done. I could also write the number of the bin to an
array and keep that around for later use.

The array is probably what I will do, since I plan to move that code
inside a UDO, since I have to use it several times throughout the whole
process.

Once a working version is finished, I plan to release the code anyway.

Best wishes,

Jenaette

--------
* website: http://juliencoder.de - for summer is a state of sound
* SoundCloud: https://soundcloud.com/jeanette_c

Make all the clouds disappear
Put all your fears to rest <3
(Britney Spears)

Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
        https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here