Emphasize the downbeats of a track by a separate marker on the waveform

Bug #1128005 reported by jus
This bug report is a duplicate of:  Bug #753301: Add intelligent phase indicator. Edit Remove
54
This bug affects 12 people
Affects Status Importance Assigned to Milestone
Mixxx
In Progress
Wishlist
Javor

Bug Description

Mixxx should provide a visual guidance for the downbeats of a track. The downbeat is the first beat in a bar, often a bass note, and is important when mixing. It is critical to know when the music is playing a downbeat and when it is not. You can hear it when cueing a track, but it requires some experience with beatmatching.

Currently, Mixxx differs not between the various beat in a bar, all beat marker look the same which makes mixing by looking at the waveform harder then with other programs.

Related branches

Revision history for this message
jus (jus) wrote :
description: updated
Revision history for this message
Be (be.ing) wrote :

Related: #753301

Revision history for this message
NT Music (ntmusic-deactivatedaccount) wrote :

This is a great feature that can also be extended to phrases (i.e different lines for every 4th and 32th beat). Is there any way to merge the code change that looks already available?

Revision history for this message
Be (be.ing) wrote :

The old merge request linked above was never completed and is outdated.

Revision history for this message
NT Music (ntmusic-deactivatedaccount) wrote :

Yes, I tried merging the change into the latest code base and it seems broken. There is a problem with the isFirstBeat() method, I will try to fix it.

Revision history for this message
NT Music (ntmusic-deactivatedaccount) wrote :

Sample of the first successful grid with first beat emphasis attached. It would be nice to have some guidelines how all the beat grid elements (beats, cues, loop markers, etc.) are supposed to be laid out, because there are cases when they overlap each other.

Revision history for this message
NT Music (ntmusic-deactivatedaccount) wrote :
Revision history for this message
Daniel Schürmann (daschuer) wrote :

Yes, a guideline for that would be nice.
Feel free to draft one on our wiki.

Revision history for this message
NT Music (ntmusic-deactivatedaccount) wrote :

Take 2 on the measure/phrase markers, finally managed to find a position that is not overlapped by hotcues and loop markers. Measure markers are the same color as the grid lines and the phrase markers are hard-coded as red for now. Will try to add measure size/phrase size and phrase marker color as part of the skin. Reading measure size/phrase size turned out to be a lot of work and is probably not worth it.

Changed in mixxx:
assignee: nobody → NT Music (ntmusic)
Changed in mixxx:
status: New → In Progress
Revision history for this message
NT Music (ntmusic-deactivatedaccount) wrote :
Revision history for this message
NT Music (ntmusic-deactivatedaccount) wrote :

Added a pre-requirement bug#1754997

Revision history for this message
Javor (javier-vilarroig) wrote :

Hi.

I'm really interested in this feature. And as a C++ developer, a little bit rusty as I moved to project management some time ago, I was thinking on taking it as my first contribution to Mixxx.

I see the bug is unasigned but for the comments it seems that someone (NT Music ?) is already working on it.

If that's the case I have some other candidates to work on them, so no problem. Just wanting to be of help.

I'm new to launchpad and the Mixxx community, so please excuse me if I'm asking something self evident. :)

Revision history for this message
Benis (beenisss) wrote :

NT Music seems to have vanished from Launchpad, GitHub and Zulip :/

In the discussion for that pull request it's suggested that Mixxx needs a time signature column first. I've been working on that but need to sort out a couple of details before submitting the PR. Your C++ is guaranteed to be better than mine, so having another person get involved would be most welcome.

There are a few threads on Zulip about this:

https://mixxx.zulipchat.com/#narrow/stream/109171-development/topic/Phrase.2Fsegment.2Ftime.20markers

https://mixxx.zulipchat.com/#narrow/stream/109122-general/topic/gsoc.20beatgrid.20enhancement.20ideas

https://mixxx.zulipchat.com/#narrow/stream/109171-development/topic/Time.20signature.2Fmeasure.20column

And a forum thread on it:
https://mixxx.org/forums/viewtopic.php?f=3&t=11629

Probably others also.

Does anybody know if NT Music signed the contributor agreement or are we potentially stuck with unusable code in that PR?

Revision history for this message
Be (be.ing) wrote :

NT Music did sign the contributor agreement before deleting their accounts.

Revision history for this message
Javor (javier-vilarroig) wrote :

Ok. So I can grab that ticket. :)

Thanks for the pointers. I will take a look at all of them.

Will have you informed.

Javor (javier-vilarroig)
Changed in mixxx:
assignee: nobody → Javor (javier-vilarroig)
RJ Skerry-Ryan (rryan)
Changed in mixxx:
milestone: none → 2.3.0
Revision history for this message
Javor (javier-vilarroig) wrote :

I have started to work on that bug.

At lest I have managed to have a working development environment :)

It's going to take some time as there are a lot of things to understand before I really begin able to deliver something.

My first thought is to start modifying the beatgrid class to make it aware of the type of beats, normal, bar, phrase.

I plan, for simplifying, to start with the assumption of bars being 4 beats and phrases being 16. Later on I can add the information in the DB.

Any comment?

BTW. This is the right place to discuss this kind of topics or is better to go to the mailing list?

Thanks

Revision history for this message
Daniel Schürmann (daschuer) wrote :

Yes this is the right place for collect requirements and I plementation details.
If you like to discuss the whole thing, mixxx.zulipchat.com is a good place.

Revision history for this message
Javor (javier-vilarroig) wrote :

I have already built a prof of concept to have a first example of the impact in the user interface.

Right is more a hack that a real solution, so no plan to push to the main repo yet.

I'm wondering how can I manage to share that changes with the community in case any one wants to take a look at the interface. Just sharing screen captures?

I'm new to GIT so not sure what is the right way for that.

Revision history for this message
Be (be.ing) wrote :

Please open a pull request on GitHub. In the description please make it clear that the code is not done yet. This wiki page describes our Git workflow:
https://mixxx.org/wiki/doku.php/using_git
Feel free to ask on Zulip if you have questions about using Git.

Be (be.ing)
Changed in mixxx:
milestone: 2.3.0 → none
Revision history for this message
mevsme (mevsme) wrote :

isn't it only a matter of "if (grid % 4 == 0)" condition for white grid? It's the easiest way but it would help so much, and make first strip few pixels wider?

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

not all tracks are 4/4. Not all tracks have one key signature. Not all tracks start on the down beat. This is a tricky change

Revision history for this message
Javor (javier-vilarroig) wrote :

There is a PR already with some advances done.

Take a look at https://github.com/mixxxdj/mixxx/pull/2512

tags: added: beatgrid
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/6919

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.