Display lead-in and lead-out visual cue in waveform

Bug #783243 reported by William Good
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mixxx
Fix Released
Wishlist
William Good

Bug Description

In the waveform display, from the start of the track to the left side of the display, Traktor displays a triangle of sorts (the red bit in the right waveform: http://www.pablomartin.com/2010/01/09/traktor-pro-perfect-sync/). I'm attaching a patch that recreates this in mixxx. Any thoughts on applying it?

My opinion is that it improves the aesthetics of the waveform, and nicely signals to the user that the track is imminently beginning, although there are multiple other widgets signalling this in mixxx.

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

First patch didn't check for negative indices on the leadin vector lookup, so it would assert at the end of tracks (opps).

Revision history for this message
jus (jus) wrote :

I do like the idea of visualizing the lead-in data.
But wouldn't it make sense to limit the triangle size to a fixed amount so it is permanent reference point no matter the size of the waveform display? Currently the triangle resizes to the remaining space left from waveforms center and so it can grow really big. (picture1)

Other question is why can we go - 46.72 sec from the start of a track anyway, is that supposed to be lead-in time ?

A triangle could be also be used for better visualisation of the duration of a loop. That way it is easy to estimate if a loop is approaching its end even if the end marker is not yet visible. (Picture 2)
What you think?

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

Hey Jus, thanks for looking over this. I've given it some thought and while I agree that it doesn't look very good as-is for longer waveforms, I can't really come up with a solution I'm very fond of. There were also concerns raised in #mixxx, RJ thought it'd raise some eyebrows for similarity with Traktor, and Phil and jjwc weren't fond of it (iirc). I think I'm just going to consider myself outvoted and close this :)

Changed in mixxx:
status: Confirmed → Won't Fix
Revision history for this message
RJ Skerry-Ryan (rryan) wrote :

Not so fast! Now that we have a pre-roll and post-roll part of the track, I think it's perfectly reasonable to need to provide some UI cue that it's not a part of the audio track, but a before/after section of the track. I just don't know the best way to represent it.

Changed in mixxx:
status: Won't Fix → Confirmed
summary: - Display lead-in data in waveform
+ Display lead-in and lead-out visual cue in waveform
Revision history for this message
Sean M. Pappalardo (pegasus-renegadetech) wrote :

Maybe just change the color of the silence, make it a rectangle instead of a line, and label it "Lead-in" and "Lead-out." Or keep it a line but use an arrowhead that points to the first sample.

BTW, I think Traktor's triangles don't scale like ours did. They're just fixed and scroll with the waveform.

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

I played around and came up with something I like. What do you guys think ?

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

Also -- to answer your question jus, the leadin is something owen added for vinyl control so you can scratch before the start.

Revision history for this message
Owen Williams (ywwg) wrote :

I like it -- it's clearly not a waveform so no one will get confused. But how about using the intertwining Xs instead (with the same wireframe style)? They can probably tessellate easily.

Revision history for this message
jus (jus) wrote :

@RJ My question was, why we need to allow for so LONG lead-in times. Now I see that the lead-in time calculation might be flawed because it depends on the length of a track. Bug or feature?

Example:
Having a track with 1:00 min length gives 0:08 min lead-in time , having a track with 7:00 length gives 0:57 min lead-in time.

From a practical point of view - nobody spins the record more backwards cause a track is longer.

Idea:
Lead-in time could have a value of 2(4?) bars, based on the tracks BPM.
This allows to use the lead-in time as originally intended and you could also us it to create exact drop-ins to a tracks beginning.

Using the picture from #9 i could imagine to change the triangles to be only visible on a beat , with a filled one on the 1st beat in a bar. Drawback: This works only with a fixed time signature (like 4/4 ).

Revision history for this message
Owen Williams (ywwg) wrote :

Because of how position is implemented in Mixxx, the leadin time is actually a percentage of the total track length. In this case, 14%. Which sounds like a stupid number, but it makes a little more sense in MIDI:

0-13: leadin (14 midi values)
14-113: track (100 midi values)
114-127: leadout (14 midi values)

it's all just to make the math easy.

I would be ok with limiting the leadin time. However, on the Serato vinyl, there's 28 seconds of timecode before the needle hits what visually looks like the start of the record, so there would need to be at least 28 seconds of leadin. Otherwise it will be difficult for vinyl users to scratch the start of the track at the very edge of the record.

If you feel this is an issue, please submit it as a bug and we can put it on the list for fixing post-1.10.

Revision history for this message
RJ Skerry-Ryan (rryan) wrote : Re: [Bug 783243] Re: Display lead-in and lead-out visual cue in waveform

On Fri, Oct 7, 2011 at 1:39 PM, jus <email address hidden> wrote:
> @RJ My question was, why we need to allow for so LONG lead-in times. Now
> I see that the lead-in time calculation might be flawed because it
> depends on the length of a track. Bug or feature?

Bug I think... but it's not straightforward one to fix. The way Owen
did it he allowed playposition to vary from -0.14 to 1.14 instead of
0.0 to 1.0. For longer songs, the .14 will add a longer lead-in. The
max and min playposition would need to change as a function of the
track length but there are parts of Mixxx that have it hard-coded to
.14.

>
> Example:
> Having a track with 1:00 min length gives 0:08 min lead-in time , having a track with 7:00 length gives 0:57 min lead-in time.
>
> >From a practical point of view - nobody spins the record more backwards
> cause a track is longer.
>
I agree it's not useful to have such a long lead-in.

> Idea:
> Lead-in time could have a value of 2(4?) bars, based on the tracks BPM.
> This allows to use the lead-in time as originally intended and you could also us it to create exact drop-ins to a tracks beginning.
>
> Using the picture from #9 i could imagine to change the triangles to be
> only visible on a beat , with a filled one on the 1st beat in a bar.
> Drawback: This works only with a fixed time signature (like 4/4 ).
>
I like this idea! It's common in DJ software to assume the signature
is 4/4 anyway so it's not a terrible thing to do.

> --
> You received this bug notification because you are a member of Mixxx
> Development Team, which is subscribed to Mixxx.
> https://bugs.launchpad.net/bugs/783243
>
> Title:
>  Display lead-in and lead-out visual cue in waveform
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/mixxx/+bug/783243/+subscriptions
>

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

+1 to the triangles for the lead-in. I actually kinda like it. Maybe it could use a little polish. I prefer it over the traktor triangle which just seems odd to me.

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

Looks good to me too. Anything to tell you where the actual music is relative to where you are now. Also, I'm in favor of limiting the lead-in time to 0:28.

RJ Skerry-Ryan (rryan)
Changed in mixxx:
status: Confirmed → Fix Committed
Revision history for this message
RJ Skerry-Ryan (rryan) wrote :

I added the basics just to get this off the bug list. I'm going to leave the lead-in beats visualization as a wishlist bug.

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/5895

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.