Spectral morphing tools?

I’d like to experiment with gradually morphing spectra from one timbre to another and am wondering what tools SC has to do this? As an example, maybe gradually transforming the melodic and rhythmic content of a voice sample to a Sawtooth or other timbre. Would the FFT and PV_ classes be the right place to look?

OpusModus has an example of a “Speaking Piano” where a voice sample morphs to a piano ( while retaining the general melodic and rhythmic content ) so wondering if SC has tools to do this kind of thing also?

You might check out the FluidAudioTransport in the FluCoMa Toolkit.

1 Like

Also look at PV_Morph PV_Morph | SuperCollider 3.12.2 Help

I also have a related question. Is there a way in SC to get the analysed spectrum information as an array of frequencies and amplitudes?

  • at a specific time,
  • in a specific range, or
  • of the whole file?

Audacity can export the plotted data as a text file, and SPEAR can also export spectrum analysis data as a text file.

Dear Eboats,

the example you provided is not a morph between spectra but a
spectral analysis of the voice and a mapping of its partials to midi
notes on an equal tempered scale.
In fact, this was pioneered by Peter Ablinger, Winfried Ritsch and
Thomas Musil in the early 2000s

best, Peter

2 Likes

Thank you Peter, right, that is a good clarification, is there support for this kind of mapping partials to midi notes in SC?

A perhaps better question would be, how would there not be support for that?

tl;dr frequency.cpsmidi.round.midicps.

You can convert Hz to a MIDI note using cpsmidi, e.g., 440.cpsmidi returns 69.

MIDI notes may be fractional in SC. If you convert a frequency in Hz to its MIDI note equivalent, but that frequency doesn’t match a value in the A=440 12-tone equal tempered scale, then the MIDI note number will have a fractional part.

To quantize arbitrary pitches to the scale, round to the nearest whole MIDI note number.

Then convert back to Hz.

hjh

Thanks @jamshark70 . I’m familiar with cpsmidi / midicps but I guess my larger question is how would I go about achieving something like that “Speaking Piano” example ( that I linked to ) in SC?

Take a look at FluidSineFeature and FluidBufSines from the Flucoma toolkit.

2 Likes