2

I want to create a qt application similar to Audacity that can run on mobile. Al that I want at the moment is the ability to change volume levels, pitch and tempo. I also want the ability to select, copy and paste parts of the audio file.

Do any of you know a API, SDK or something for Qt that would allow this?

All built in stuff I could find in Qt is QtMultimedia which allows me to import a audio file and then play it but it doesn't seem to have editing(except for bitrate, channel, etc.) or manipulation.

This is for Symbian, and can be built on windows or kubuntu.

Gerharddc
  • 3,921
  • 8
  • 45
  • 83
  • You haven't specified which OS, Qt's mobile support for the popular OSs is patchy. Also changing the pitch of a piece of audio without timescaling involves some quite serious maths (FFT -> rotate bins -> IFFT, without causing horrendous artifacts), you will almost certainly have to implement this yourself regardless of which API you use. Same goes for changing the tempo of a song without changing the pitch. – cmannett85 Sep 15 '12 at 09:08
  • I am making this for Symbian and I could possibly use Audacity algorithms if possible? – Gerharddc Sep 16 '12 at 04:12
  • http://www.surina.net/soundtouch/ is the most advanced pitch shifting/tempo stretching library I know of that's open source. I don't know if that's what Audacity uses, but it's far from state of the art. – Bjorn Roche Sep 16 '12 at 14:48

1 Answers1

1

Use one of the audio backends:

Audio plugins

Audio backends implement QAudioInput, QAudioOutput, QAudioDeviceInfo and QSoundEffect

Here is the list of the current audio backends:

    Windows Multimedia
    CoreAudio (Mac OS / iOS)
    PulseAudio (Unix)
    Alsa (Unix)
    OpenSL ES (Android)
    QNX

Only PulseAudio, CoreAudio, and QNX backends are actual plugins. The other backends are “#ifdef’ed” in the related classes.

References

Paul Sweatte
  • 24,148
  • 7
  • 127
  • 265