Echo-like audio glitch when using keylock

Bug #671806 reported by jus
26
This bug affects 4 people
Affects Status Importance Assigned to Milestone
Mixxx
Fix Released
High
RJ Skerry-Ryan
1.8
Won't Fix
High
Unassigned
1.9
Won't Fix
High
Unassigned
2.0
Fix Released
High
RJ Skerry-Ryan

Bug Description

Mixxx MacOS 10.6
latest trunk http://bazaar.launchpad.net/~mixxxdevelopers/mixxx/trunk/revision/2540

If you have a track playing with key-lock (pitch independent time-stretch) active, you can hear an echo-like (about some 100ms) audio artefact. This is mostly audible when playing with negative pitch > -50% , but it is always there.
To check that stop the track and drag slowly with the mouse in the waveform.

Changing latency and/or sample rate in preferences makes no difference

Tags: glitch keylock

Related branches

Revision history for this message
William Good (bkgood) wrote :

1.8 and before had a warning not to use PITS with >+-10% change because of issues like this. There's not really any place to put that warning now (tooltip?) but it still applies.

Revision history for this message
William Good (bkgood) wrote :

Okay definitely repro'd.

Could this be a EBSST problem, or is this just mixxx pushing soundtouch too far?

Changed in mixxx:
status: New → Confirmed
Revision history for this message
Albert Santoni (gamegod) wrote : Re: [Bug 671806] Re: Echo-like audio glitch when using keylock

This is us pushing SoundTouch too far. I'd be curious to hear how
RubberBand sounds at -50%.

On Thu, Nov 18, 2010 at 1:00 PM, Bill Good <email address hidden> wrote:
> Okay definitely repro'd.
>
> Could this be a EBSST problem, or is this just mixxx pushing soundtouch
> too far?
>
> ** Changed in: mixxx
>       Status: New => Confirmed
>
> --
> Echo-like audio glitch when using keylock
> https://bugs.launchpad.net/bugs/671806
> You received this bug notification because you are a member of Mixxx
> Development Team, which is subscribed to Mixxx.
>

Revision history for this message
Phillip Whelan (pwhelan) wrote :

There is a branch with rubberband support you can try out. Hint hint. Wink wink.

Sent from my iPod

On 2010-11-19, at 15:09, Albert Santoni <email address hidden> wrote:

> This is us pushing SoundTouch too far. I'd be curious to hear how
> RubberBand sounds at -50%.
>
> On Thu, Nov 18, 2010 at 1:00 PM, Bill Good <email address hidden> wrote:
>> Okay definitely repro'd.
>>
>> Could this be a EBSST problem, or is this just mixxx pushing soundtouch
>> too far?
>>
>> ** Changed in: mixxx
>> Status: New => Confirmed
>>
>> --
>> Echo-like audio glitch when using keylock
>> https://bugs.launchpad.net/bugs/671806
>> You received this bug notification because you are a member of Mixxx
>> Development Team, which is subscribed to Mixxx.
>>
>
> --
> Echo-like audio glitch when using keylock
> https://bugs.launchpad.net/bugs/671806
> You received this bug notification because you are a member of Mixxx
> Development Team, which is subscribed to Mixxx.

Revision history for this message
Sean M. Pappalardo (pegasus-renegadetech) wrote :

I agree that this is just an artifact of how SoundTouch does its work. I also tested with ST 1.5.0 (which will be committed to trunk shortly) and it's not perceptibly better at this. Has anyone recently examined how we use ST incase there is something we can do better? Perhaps change some of the default values in TDStretch.h?

Revision history for this message
Sean M. Pappalardo (pegasus-renegadetech) wrote :

I just tested with the rubberband branch and the same thing happens. The only way I can think of to improve this is to allow the libraries to pre-calculate larger audio chunks (and make that process pre-emptable) so at least at constant slow speed the sound would be improved, but this would greatly increase CPU usage as well as the latency requirement.

Revision history for this message
Sean M. Pappalardo (pegasus-renegadetech) wrote :

Also note that you can hear the exact same thing when doing similar extreme time shifting on CDJs.

Revision history for this message
Sean M. Pappalardo (pegasus-renegadetech) wrote :

Whoops, I stand corrected. I forgot to build features_rubberband with rubberband=1! XD
Anyway, that sounds MUCH better but it uses MUCH more CPU time (and has a number of other problems, being experimental.)

So I guess the best answer for this bug is to focus development on the features_rubberband branch.

Changed in mixxx:
status: Confirmed → Triaged
Revision history for this message
RAFFI TEA (raffitea) wrote :

OK, but what I don't understand is why key lock has worked for Mixxx 1.7.x. Of RJ has rewritten the major parts of Mixxx to support looping. So maybe it's not only an issue with SoundTouch.

Revision history for this message
Albert Santoni (gamegod) wrote :

On Tue, Feb 22, 2011 at 8:10 AM, Sean M. Pappalardo
<email address hidden> wrote:
> Whoops, I stand corrected. I forgot to build features_rubberband with rubberband=1! XD
> Anyway, that sounds MUCH better but it uses MUCH more CPU time (and has a number of other problems, being experimental.)

>
> So I guess the best answer for this bug is to focus development on the
> features_rubberband branch.
>

I hope I haven't gotten us into a bit of a quagmire here. Just a heads
up that Rubber Band is GPL licensed, so we can't use it in our App
Store version. I think this feature is low priority because we don't
hear that many complaints about it. We've got bigger problems in the
meantime. :)

Albert

Revision history for this message
Albert Santoni (gamegod) wrote :

Oh, I should clarify - There is two things you could be hearing:

1) At extreme pitch values (beyond 10%), there is a slight echo sound added. This is a common artifact in pitch stretching algorithms, but not impossible to eliminate.

2) There is a bug in our Reader/RAMAN/EB code that causes stuttering at very low speeds with SoundTouch. It's not a SoundTouch bug, it's definitely in our code. If you try to slowly seek backwards or forwards to nudge a cue point (and key-lock is on), you will hear it.

Thanks,
Albert

Revision history for this message
Sean M. Pappalardo (pegasus-renegadetech) wrote :

Aha, okay so #2 I would bet is what the OP is referring to. So shall we target that fix for v1.10? Has it already been fixed in a non-yet-merged branch? (Like xwax2?)

Revision history for this message
RAFFI TEA (raffitea) wrote :

+1 for a fix, because we advertise with a superior mixing engine :-)

Revision history for this message
Phillip Whelan (pwhelan) wrote :

would it be possible to hear some sound samples?

Revision history for this message
Phillip Whelan (pwhelan) wrote :

Could you try this patch to see if it helps at all?

This patch basically refactors the code so we no longer loose precision in the play position. It's given me good results with scratchin in the past.

Revision history for this message
Phillip Whelan (pwhelan) wrote :

*BEWARE*: the patch causes the waveform to go out of sync.

RJ Skerry-Ryan (rryan)
tags: added: keylock
Changed in mixxx:
importance: Undecided → High
tags: added: glitch
Revision history for this message
RJ Skerry-Ryan (rryan) wrote :

It seems switching to rubberband instead of soundtouch for time scaling / pitch shifting helps a lot here. I don't get stuttering even with extreme -90% bends.

features_key swithes to using rubberband. If you'd like to try, code is here:
https://github.com/mixxxdj/mixxx/tree/features_key
and builds are here:
http://builds.mixxx.org/builds/experimental-features_key/

Changed in mixxx:
status: Triaged → In Progress
assignee: nobody → RJ Ryan (rryan)
Revision history for this message
jus (jus) wrote :

Vastly improved in latest master @ https://github.com/mixxxdj/mixxx
Think we can mark this Fix committed.

Thanks RJ for squashing this longstanding bug.

Revision history for this message
RJ Skerry-Ryan (rryan) wrote :

Woohoo :).

Changed in mixxx:
status: In Progress → Fix Committed
RJ Skerry-Ryan (rryan)
Changed in mixxx:
status: Fix Committed → Fix Released
Revision history for this message
Swiftb0y (swiftb0y) wrote :

Mixxx now uses GitHub for bug tracking. This bug has been migrated to:
https://github.com/mixxxdj/mixxx/issues/5635

lock status: Metadata changes locked and limited to project staff
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.