Sound quality issues with Vinyl Emulation Mode

Bug #513130 reported by Sean M. Pappalardo
18
This bug affects 4 people
Affects Status Importance Assigned to Milestone
Mixxx
Fix Released
Medium
Owen Williams
1.10
Fix Released
Medium
Owen Williams
1.8
Won't Fix
Medium
Unassigned

Bug Description

Trunk r2354, when using "Vinyl Emulation" pitch mode, something's goofy with the resampling because if I have my sound device set to 48kHz, the output sounds noisy, almost like a dirty record, or 32kHz sampled sibilance. 44.1kHz sounds better on the exact same source file.

Pitch-independent time stretch mode does not have any of these problems, so there might be a problem in the linear interpolation code (enginebufferscalelinear.cpp,) according to Albert.

--
The below issue is fixed. (shame on me for not reporting a separate bug)

Trunk r2279. I get:

ASSERT: "unscaled_samples_needed >= 0" in file src\engine\enginebufferscalelinear.cpp, line 126

...when I try to play or fast forward a track with latency at 1ms. The analyzer still runs in the background since the overview waveform shows up eventually. Anything 2ms or above works fine.

Changed in mixxx:
importance: Undecided → High
milestone: none → 1.8.0
Revision history for this message
RJ Skerry-Ryan (rryan) wrote :

At 1ms latency, the buffer size is smaller than RATE_LERP_LENGTH, which causes the assert to fire. Also I found a problem with EngineBufferScaleLinear that could be the problem behind your audio quality issues.

Changed in mixxx:
status: New → Confirmed
importance: High → Medium
assignee: nobody → RJ Ryan (rryan)
Revision history for this message
RJ Skerry-Ryan (rryan) wrote :

I fixed the problems in EBSL, but Sean says it doesn't really sound better. I don't really know what to say. There isn't any anti-aliasing done in EBSL so it won't sound awesome anyway.

summary: - Sound quality issues and ASSERT with Vinyl Emulation pitch mode
+ Sound quality issues with Vinyl Emulation Mode
Revision history for this message
Sean M. Pappalardo (pegasus-renegadetech) wrote :

These fixes helped compared to 1.7, but something still remains. It's worse with lower latency, and I noticed that if I set the latency high (185ms,) I hear clicks with each waveform update. Also if you slow the pitch down you can hear it more noticeably. Attached is a sound file that is at 48kHz with VE mode first, and PITS second at 1ms using the ASIO API.

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

Here's another at 48Khz, 2ms, pitched down to -52.05% in VE mode.

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

And finally, a sample of Mixxx 1.6.1: same file, 48Khz, 2ms, -52.05% pitch in VE mode.

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

I just stumbled on a good test sound that shows the problem clearly at 0%: the Scratch Live time code sound. http://rane.com/scratchlivecontrol.zip
Must be all the transients that make up the bit stream.

The problem is more noticeable at 10ms than 1, FYI.

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

This might be related to / dependent on bug #533477.

Changed in mixxx:
milestone: 1.8.0 → none
Revision history for this message
jus (jus) wrote :

Same issues here using trunk with Vinyl Emulation Mode on MacOSX.
Latency 11ms 44/48khz

Revision history for this message
Albert Santoni (gamegod) wrote : Re: [Bug 513130] Re: Sound quality issues with Vinyl Emulation Mode

Just a note:
The crash fix I made in 1.8.1 will have an effect on the audio quality
of vinyl emulation. Might be better, might be worse. The algorithm
isn't even close to being correct though, so don't expect any drastic
improvement. I'd be curious if anyone can notice the difference
though.

On Sun, Oct 17, 2010 at 10:23 PM, RJ Ryan <email address hidden> wrote:
> ** Changed in: mixxx/1.8
>    Milestone: 1.8.1 => 1.8.2
>
> --
> Sound quality issues with Vinyl Emulation Mode
> https://bugs.launchpad.net/bugs/513130
> You received this bug notification because you are a member of Mixxx
> Development Team, which is subscribed to Mixxx.
>

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

Owen's patch (in trunk) helps improve the situation with this a lot.

 The downside is that the code still isn't correct, and consumes frames slightly too fast.

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

This is fixed in features_xwax2 as of r2550.

Changed in mixxx:
assignee: RJ Ryan (rryan) → Owen Williams (ywwg)
status: Confirmed → In Progress
milestone: none → 1.10.0
RJ Skerry-Ryan (rryan)
Changed in mixxx:
status: In Progress → Fix Committed
milestone: 1.10.0 → none
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/5291

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.

Other bug subscribers

Remote bug watches

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