Author Topic: Tempo FX sound quality  (Read 54 times)

Oleg N

  • Posts: 81
Tempo FX sound quality
« on: 11 Aug '17 - 16:29 »
I am getting pretty cool effect when speeding up the playback using BASS_FX Tempo feature, but slowing down sounds less adorable and I thought I need to enhance it somehow.

I used BASS_ATTRIB_TEMPO_OPTION_PREVENT_CLICK attribute and played along with all other tempo attributes but without obvious success in sound.  It sounds as delayed portions, in a very reflective room.

I understand this as when slowing playback the algorithm has to invent extra audio data which are added by copying / delaying parts of existing data, therefore audible artifacts are ok. But than there are all those tunings and even Linear/Cubic/Shannon algo choice to smooth the artifact - what are chances I can get more-less pleasant sound with slowing down by combining them? Make some of the attributes ratio - dependable?

Any recommendations on how to obtain best results with tempo will help!

One important note: My Tempo channel is decoding and I am plugging it into mixer to play. iOS/XCode

Code: [Select]
        //sourceHandle is decoding channel created from file
        tempoStreamHandle = BASS_FX_TempoCreate(sourceHandle, BASS_STREAM_DECODE|BASS_FX_TEMPO_ALGO_SHANNON);

        BASS_ChannelSetAttribute(tempoStreamHandle, BASS_ATTRIB_TEMPO_OPTION_PREVENT_CLICK, YES);
        BASS_ChannelSetAttribute(tempoStreamHandle, BASS_ATTRIB_TEMPO_OPTION_USE_QUICKALGO, NO);
        BASS_ChannelSetAttribute(tempoStreamHandle, BASS_ATTRIB_TEMPO_OPTION_AA_FILTER_LENGTH, 8);
        BASS_ChannelSetAttribute(tempoStreamHandle, BASS_ATTRIB_TEMPO_OPTION_USE_AA_FILTER, YES);
        BASS_ChannelSetAttribute(tempoStreamHandle, BASS_ATTRIB_TEMPO_OPTION_SEEKWINDOW_MS, 0);
        BASS_ChannelSetAttribute(tempoStreamHandle, BASS_ATTRIB_TEMPO_OPTION_SEQUENCE_MS, 0);
        BASS_ChannelSetAttribute(tempoStreamHandle, BASS_ATTRIB_TEMPO_OPTION_OVERLAP_MS, 30);

        BASS_ChannelSetAttribute(tempoStreamHandle, BASS_ATTRIB_TEMPO, tempo);

        //tempoStreamHandle is added to playing mixer...
« Last Edit: 11 Aug '17 - 16:45 by Oleg N »