1

I have been using the Superpowered library for writing an iOS app for applying audio effects to recordings of users singing songs. Its been super easy to use thus far for pitch shifting and effects.

I'm now trying to write an autotune feature for my app. I have a sample audio piece sung by a professional, and I am trying to autotune a user's voice recording to match the sample audio.

I can detect key, shift pitch, and apply FFT, but I am not able to do pitch modulation to match a given key.

I am thinking of deep diving into FFT. Am I heading in the right direction? How should I be thinking about this?

Thanks!

  • 1
    I have been digging into the Frequency Domain class and audio processing theory in general. From what I have till now, I need to take a discrete fourier transform and then pitch correct each sample to the nearest semitone. Still digging, any help would go a long way! – user1832894 Oct 18 '16 at 00:43
  • you do it in real-time? or offline? if in real-time, then how do not tell how to get the key in real-time? – arsenium Nov 06 '17 at 15:00

1 Answers1

2

SuperpoweredTimeStretching can do pitch shifting and it also handles the time domain to frequency domain transformation with windowing (so it has SuperpoweredFrequencyDomain inside). It also handles transients. If you don't modify rate just pitch, then the delay is 512 samples (FFT is 2048 inside with 4:1 overlap).

Gabor Szanto
  • 1,329
  • 8
  • 12
  • I am curious to understand it a bit more, I am on a task to manage auto tunning with superpowered SDK. I need to understand like how I can acheive this... – Arsal Imam Mar 22 '20 at 23:57