Csound Csound-dev Csound-tekno Search About

Efficiently spectral morphing single-cycle waves

Date2017-05-12 17:49
From"Jeanette C."
SubjectEfficiently spectral morphing single-cycle waves
Hey hey,
is FFT or additive synthesis the only way to do it? If so: what is the 
most efficient alternative on the CPU? Should I try to save an FFT analysis of 
my waves and load those with Csound? Or should I try to express my waves 
directly through additive synthesis in Csound?

As an aside: can I use one FFT analysis frame - of say a pvsanal - to create 
respective frequency and amplitude tables? Given that I know the fundamental 
frequency of the input?

Any practical hint is very much appreciated.

Best wishes,

Jeanette

--------
When you need someone, you just turn around and I will be there <3

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-05-12 18:21
FromTarmo Johannes
SubjectRe: Efficiently spectral morphing single-cycle waves
Hi,

I am not sure if it helps you but to create a time varying sine with overtones 
(like additive syntehsis) wiht only one oscillator -  waveshaping with 
chebyshevpoly is very efficient way (the signal must be sine wave with 
amplitude 1):

http://www.csounds.com/manual/html/chebyshevpoly.html

tarmo


On reede, 12. mai 2017 18:49.52 EEST you wrote:
> Hey hey,
> is FFT or additive synthesis the only way to do it? If so: what is the
> most efficient alternative on the CPU? Should I try to save an FFT analysis
> of my waves and load those with Csound? Or should I try to express my waves
> directly through additive synthesis in Csound?
> 
> As an aside: can I use one FFT analysis frame - of say a pvsanal - to create
> respective frequency and amplitude tables? Given that I know the
> fundamental frequency of the input?
> 
> Any practical hint is very much appreciated.
> 
> Best wishes,
> 
> Jeanette
> 
> --------
> When you need someone, you just turn around and I will be there <3
> 
> 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-05-12 19:06
FromIain McCurdy
SubjectRe: Efficiently spectral morphing single-cycle waves

It sounds like you need ftmorf. tabmorpha might also be useful.


Iain




From: A discussion list for users of Csound <CSOUND@LISTSERV.HEANET.IE> on behalf of Jeanette C. <julien@MAIL.UPB.DE>
Sent: 12 May 2017 16:49
To: CSOUND@LISTSERV.HEANET.IE
Subject: [Csnd] Efficiently spectral morphing single-cycle waves
 
Hey hey,
is FFT or additive synthesis the only way to do it? If so: what is the
most efficient alternative on the CPU? Should I try to save an FFT analysis of
my waves and load those with Csound? Or should I try to express my waves
directly through additive synthesis in Csound?

As an aside: can I use one FFT analysis frame - of say a pvsanal - to create
respective frequency and amplitude tables? Given that I know the fundamental
frequency of the input?

Any practical hint is very much appreciated.

Best wishes,

Jeanette

--------
When you need someone, you just turn around and I will be there <3

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-05-12 19:14
From"Jeanette C."
SubjectRe: Efficiently spectral morphing single-cycle waves
May 12 2017, Iain McCurdy has written:

> It sounds like you need ftmorf. tabmorpha might also be useful.
...
Hi Iain,
I worked with those before, but, as I understand it, they use a sort of
crossfading, mixing the two shapes together with varying volume. Or am I
wrong here? I remember looking at the code for tabmorph and it does
exactly that. Maybe ftmorf is different?

Best wishes and thanks,

Jeanette

--------
When you need someone, you just turn around and I will be there <3

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-05-12 19:28
From"Jeanette C."
SubjectRe: Efficiently spectral morphing single-cycle waves
May 12 2017, Tarmo Johannes has written:
...
> I am not sure if it helps you but to create a time varying sine with overtones
> (like additive syntehsis) wiht only one oscillator -  waveshaping with
> chebyshevpoly is very efficient way (the signal must be sine wave with
> amplitude 1):
...
Hi Johannes,
this sounds very interesting. It might do very well, if I can get a good
feeling for the effect of the Chebyshev polynomials. Then I could use
tabmorph or ftmorf to interpolate between coefficients for the
polynomials. Thanks for that tip, I'd never have looked at it.

Best wishes,

Jeanette

--------
When you need someone, you just turn around and I will be there <3

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-05-12 21:18
FromIain McCurdy
SubjectRe: Efficiently spectral morphing single-cycle waves

That's right, but morphing the coefficients of chebyschev waveshaping between different sets of coefficients will produce the same sonic result. What you could do with the chebyschev method would be to jitter and add varying lag to the interpolation points which could be quite interesting. If you want partials to gliss between inharmonic spectra that is another matter, and slightly more involved.


Iain




From: A discussion list for users of Csound <CSOUND@LISTSERV.HEANET.IE> on behalf of Jeanette C. <julien@MAIL.UPB.DE>
Sent: 12 May 2017 18:14
To: CSOUND@LISTSERV.HEANET.IE
Subject: Re: [Csnd] Efficiently spectral morphing single-cycle waves
 
May 12 2017, Iain McCurdy has written:

> It sounds like you need ftmorf. tabmorpha might also be useful.
...
Hi Iain,
I worked with those before, but, as I understand it, they use a sort of
crossfading, mixing the two shapes together with varying volume. Or am I
wrong here? I remember looking at the code for tabmorph and it does
exactly that. Maybe ftmorf is different?

Best wishes and thanks,

Jeanette

--------
When you need someone, you just turn around and I will be there <3

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-05-13 00:34
From"Jeanette C."
SubjectRe: Efficiently spectral morphing single-cycle waves
May 12 2017, Iain McCurdy has written:

> That's right, but morphing the coefficients of chebyschev waveshaping between different sets of coefficients will produce the same sonic result.
...
Iain,
thanks for pointing that out. I didn't think about this properly. I
guess, what I want or need is a partial dependent varying morphing
function. But implementing that - for a multi-instance realtime
instrument/UDO - might be challenging. :)

I wonder what the typical wavetable synth do? Probably store
interpolated waveforms. I know that the Waldorf Microwave series did
that. They offered a small program to create user wavetables, which
allowed the user to specify the "morphing" algorithm. There was no
general algorithm, it depended on the creation method of the waveforms.

Best wishes,

Jeanette

--------
When you need someone, you just turn around and I will be there <3

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