[PD] spectral mapping, anyone?

Alexandre Torres Porres porres at gmail.com
Tue Nov 26 22:47:37 CET 2013


oh, and the thing about the FFTease object is that it always fits the
partials into a fixed scale. I mean the frequencies are always the same,
and the scale isn't transposed according to a continuous fundamental. Maybe
it's because it's using and dealing with the fixed bins in the FFT... not
sure. Now I'm trying to do that according to the fundamental in a more
loose and free way.


2013/11/26 Alexandre Torres Porres <porres at gmail.com>

> well, let me tell you how I did it, I can send some of my last work, but,
> as usual, needs some cleaning up and documenting.
>
> But basically I'm using [sigmund~], then getting "tracks" output to use
> all the partial information to feed an oscillator bank for resynthesis.
> This is pretty much what you can call a phase vocoder, hence you can tweak
> with it and mess around with partials.
>
> I also have a patch where you can control the partials individually and
> very arbitrarily.
>
> So, for spectral mapping, what I do is I try to map all the harmonic
> relationship from partials and "detune" them according to a different
> "harmonic series".
>
> It's a lot of work getting all of the data mapped and in order, then apply
> the math and stuff. It's also tricky because you need the right tuning of
> [sigmund~] to get better results according to the kind of musical audio
> signal that is coming through...
>
> Anyway, anyone got a better idea than that?
>
> I think that if you use FFT you will go crazy trying yo get this right,
> and I assume that [sigmund~] does work in the best way for this and it is
> based on FFT anywy (Am I right?).
>
> Cheers
>
>
> 2013/11/26 peiman khosravi <peimankhosravi at gmail.com>
>
>> Hello,
>>
>> Yes, your description of warp is correct.
>>
>> Partial detection is more tricky because often the energy in 4 or more
>> FFT bins amounts to one partial. So firstly, you need to derive the
>> partials from the FFT data, then you need to quantise the partials'
>> frequencies.
>>
>> One possible cheat would be to trace the loudest FFT-bins and then
>> transfer their energy to the bins whose frequencies are nearest to the
>> harmonics of a given fundamental.
>>
>> If I'm not mistaken, at a sampling rate of 44100 and an FFT size of 4096,
>> the frequency of bin 10 would be calculated as (44100/4096)*10=107.66. Just
>> note that only FFT-size/2+1 bins are usable. That's the Nyquist frequency
>> (half of the sampling frequency). If you take 107.66 as your fundamental
>> (and zero all the bins below that) then you can do the following:
>>
>> For each analysis window...
>> 1- Detect the next FFT bin whose magnitude is above a certain threshold
>> 2- Transfer the frequency and amplitude content of this bin to the
>> nearest harmonic of the fundamental. So for input bin 15 (and a fundamental
>> frequency of 107.66) this would be bin 20. The bin number to frequency
>> mapping is linear so it's easy to calculate.
>>
>> Even, using fiddle~, you can get the fundamental frequency from the input
>> and have it change dynamically from window to window.
>>
>> You're likely to get some bubbly artefacts thought, but once you have a
>> basic working patch you should be able to fine tune it. So you may want to
>> group the bins so that you transfer not just the energy in one bin but also
>> the bins around it. You might also want to do some averaging of the
>> amplitude of 6 windows or so to avoid rapidly changing values, before you
>> pass the signal into a threshold detector. I can do this in Csound but I'm
>> not that familiar with how FFT works in PD and I don't have a patch that
>> does this. If I get the time I might make one next weekend though and post
>> it here.
>>
>> P
>>
>>
>>
>>
>> *www.peimankhosravi.co.uk <http://www.peimankhosravi.co.uk> || RSS Feed
>> <http://peimankhosravi.co.uk/miscposts.rss> || Concert News
>> <http://spectralkimia.wordpress.com/>*
>>
>>
>> On 26 November 2013 11:48, Eran Sachs <eransachs at hotmail.com> wrote:
>>
>>> Peiman,
>>> It works great! I've been messing various sounds all day now, plus
>>> there's a thing in my computer with Barry Vercoe's name on it which I find
>>> oddly elevating.
>>> However, if I understand the wrap function correctly, it substitutes bin
>>> values for values of other bins through whatever function you apply. But
>>> the bins are still all derived from the FFT procedure. Or am I missing
>>> something there?
>>>
>>> What I would like to do is to move from bins to partials, so that they
>>> are essentially mapped to harmonic overtones of a given fundamental
>>> according to nearest match. Like a clever phase-vocoder Autotune of some
>>> kind.
>>>
>>> Is there a way to do that, to the best of anyone's knowledge?
>>>
>>> Much obliged,
>>> E.
>>> ------------------------------
>>> Date: Mon, 25 Nov 2013 15:12:50 +0000
>>>
>>> Subject: Re: [PD] spectral mapping, anyone?
>>> From: peimankhosravi at gmail.com
>>> To: eransachs at hotmail.com
>>> CC: porres at gmail.com; jaime.oliver2 at gmail.com; pd-list at iem.at
>>>
>>> yes csound6 should work on windows too as far as I know.
>>>
>>>
>>>
>>>
>>> *www.peimankhosravi.co.uk <http://www.peimankhosravi.co.uk> || RSS Feed
>>> <http://peimankhosravi.co.uk/miscposts.rss> || Concert News
>>> <http://spectralkimia.wordpress.com/>*
>>>
>>>
>>> On 24 November 2013 22:06, Eran Sachs <eransachs at hotmail.com> wrote:
>>>
>>> Thanks Peiman.
>>> Alas, I'm living the life of a PC/Windows user. AFAICT, no csound6?
>>> Z
>>>
>>> ------------------------------
>>> Date: Sun, 24 Nov 2013 20:27:39 +0000
>>>
>>> Subject: Re: [PD] spectral mapping, anyone?
>>> From: peimankhosravi at gmail.com
>>> To: eransachs at hotmail.com
>>> CC: porres at gmail.com; jaime.oliver2 at gmail.com; pd-list at iem.at
>>>
>>>
>>> With spectral warping you can do any frequency-based manipulation,
>>> depending on the transfer function. I have one for pd but it requires
>>> Csound to be installed and a couple of other externals. See attached. On an
>>> intel mac and with pd vanilla 4.5.3/4 this should just work out of the box
>>> as long as you have csound 6 installed.
>>>
>>> P
>>>
>>>
>>>
>>>
>>>
>>>
>>> *www.peimankhosravi.co.uk <http://www.peimankhosravi.co.uk> || RSS Feed
>>> <http://peimankhosravi.co.uk/miscposts.rss> || Concert News
>>> <http://spectralkimia.wordpress.com/>*
>>>
>>>
>>> On 24 November 2013 20:12, Eran Sachs <eransachs at hotmail.com> wrote:
>>>
>>> oops, I messed up the names. sorry. Once more, with feeling:
>>>
>>> Josep,
>>> Making harmonic sounds sound inharmonic can be down with spectral
>>> shifting. Try looking at Hilbert~ or at spec2_shift~ on extended.
>>>
>>> But Alexandre, I'd also would be interested in stuff that can manipulate
>>> the spectrum.
>>> I also made a little graphic control to all the cross-synthesis objects
>>> in FFTease. if anyone is interested I can post.
>>>
>>> A few years ago I tried to replicate the technique that Trevor Wishart
>>> refers to as "Spectral Focusing", namely - one that moves the other way -
>>> from inharmonic to harmonic sonds, by moving from bins to partials (a
>>> little like FFTease's pvtune~, but moving bins to nearest matching
>>> partial).
>>>
>>> I'm still looking for such an object. Does anyone have any suggestions?
>>>
>>> Zax.
>>>
>>> ------------------------------
>>> From: eransachs at hotmail.com
>>> To: porres at gmail.com; jaime.oliver2 at gmail.com
>>> Date: Sun, 24 Nov 2013 21:58:50 +0200
>>>
>>> CC: pd-list at iem.at
>>> Subject: Re: [PD] spectral mapping, anyone?
>>>
>>> Alexandre,
>>> Making harmonic sounds sound inharmonic can be down with spectral
>>> shifting. Try looking at Hilbert~ or at spec2_shift~ on extended.
>>>
>>> But Jaime, I'd also would be interested in that.
>>> A few years ago I tried to replicate the technique that Trevor Wishart
>>> refers to as "Spectral Focusing", namely - one that moves the other way -
>>> from inharmonic to harmonic sonds, by moving from bins to partials (a
>>> little like FFTease's pvtune~, but moving bins to nearest matching
>>> partial).
>>>
>>> I'm still looking for such an object. Does anyone have any suggestions?
>>>
>>> Zax.
>>>
>>>
>>> ------------------------------
>>> Date: Sun, 24 Nov 2013 01:05:29 -0200
>>> From: porres at gmail.com
>>> To: jaime.oliver2 at gmail.com
>>> CC: pd-list at iem.at
>>> Subject: Re: [PD] spectral mapping, anyone?
>>>
>>> Hi, I'm Alexandre, I can send you stuff
>>>
>>> cheers
>>>
>>>
>>> 2013/11/11 Jaime E Oliver <jaime.oliver2 at gmail.com>
>>>
>>> These are older, but I understand E. Lyon might re-release them?
>>>
>>> http://www.somasa.qub.ac.uk/~elyon/LyonSoftware/MaxMSP/FFTease/
>>>
>>> J
>>>
>>>
>>>
>>> On Nov 11, 2013, at 7:23 AM, Jeppi Jeppi <jeppiot at hotmail.com> wrote:
>>>
>>> Hi,
>>> just looking for some ready to be used spectral mapping effects
>>> implemented in pd, anything available?
>>> Specifically, just a way to slightly remap harmonics to make pitched
>>> sounds inharmonic.
>>> There is a paper by Alexandre
>>> http://www.uni-weimar.de/medien/wiki/images/Dissonance_Model_Toolbox_in_Pure_Data.pdf but
>>> I couldn't find the link to the sources.
>>>
>>>
>>> Many thanks in advance!
>>> Josep m
>>>
>>> _______________________________________________
>>> Pd-list at iem.at mailing list
>>> UNSUBSCRIBE and account-management ->
>>> http://lists.puredata.info/listinfo/pd-list
>>>
>>>
>>>
>>> _______________________________________________
>>> Pd-list at iem.at mailing list
>>> UNSUBSCRIBE and account-management ->
>>> http://lists.puredata.info/listinfo/pd-list
>>>
>>>
>>>
>>> _______________________________________________ Pd-list at iem.at mailing
>>> list UNSUBSCRIBE and account-management ->
>>> http://lists.puredata.info/listinfo/pd-list
>>>
>>> _______________________________________________ Pd-list at iem.at mailing
>>> list UNSUBSCRIBE and account-management ->
>>> http://lists.puredata.info/listinfo/pd-list
>>>
>>> _______________________________________________
>>> Pd-list at iem.at mailing list
>>> UNSUBSCRIBE and account-management ->
>>> http://lists.puredata.info/listinfo/pd-list
>>>
>>>
>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20131126/86633951/attachment-0001.htm>


More information about the Pd-list mailing list