Efficiently spectral morphing single-cycle waves
Date | 2017-05-12 17:49 |
From | "Jeanette C." |
Subject | 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 |
Date | 2017-05-12 18:21 |
From | Tarmo Johannes |
Subject | Re: 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 |
Date | 2017-05-12 19:06 | |||||
From | Iain McCurdy | |||||
Subject | Re: 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 |
Date | 2017-05-12 19:14 |
From | "Jeanette C." |
Subject | Re: 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 |
Date | 2017-05-12 19:28 |
From | "Jeanette C." |
Subject | Re: 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 |
Date | 2017-05-12 21:18 | |||||
From | Iain McCurdy | |||||
Subject | Re: 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 |
Date | 2017-05-13 00:34 |
From | "Jeanette C." |
Subject | Re: 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 |