mixxxdj / mixxx

Mixxx is Free DJ software that gives you everything you need to perform live mixes.
http://mixxx.org
Other
4.52k stars 1.28k forks source link

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

Closed mixxxbot closed 2 years ago

mixxxbot commented 2 years ago

Reported by: esbrandt Date: 2013-02-17T11:12:31Z Status: In Progress Importance: Wishlist Launchpad Issue: lp1128005 Tags: beatgrid, waveform Attachments: downbeat_marker.png, mixxx_beatgrid_downbeat.png, mixxx_beatgrid_downbeat2.png


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.

mixxxbot commented 2 years ago

Commented by: esbrandt Date: 2013-02-17T11:16:46Z Attachments: downbeat_marker.png

mixxxbot commented 2 years ago

Commented by: Be-ing Date: 2017-10-31T16:20:59Z


Related: #⁠753301

mixxxbot commented 2 years ago

Commented by: ntmusic-deactivatedaccount Date: 2018-02-18T06:21:16Z


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?

mixxxbot commented 2 years ago

Commented by: Be-ing Date: 2018-02-18T15:43:00Z


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

mixxxbot commented 2 years ago

Commented by: ntmusic-deactivatedaccount Date: 2018-02-20T21:07:22Z


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.

mixxxbot commented 2 years ago

Commented by: ntmusic-deactivatedaccount Date: 2018-02-21T05:25:58Z


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.

mixxxbot commented 2 years ago

Commented by: ntmusic-deactivatedaccount Date: 2018-02-21T05:27:31Z Attachments: mixxx_beatgrid_downbeat.png

mixxxbot commented 2 years ago

Commented by: daschuer Date: 2018-02-21T07:07:02Z


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

mixxxbot commented 2 years ago

Commented by: ntmusic-deactivatedaccount Date: 2018-02-22T05:05:05Z Attachments: mixxx_beatgrid_downbeat2.png


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.

mixxxbot commented 2 years ago

Commented by: ntmusic-deactivatedaccount Date: 2018-02-28T05:07:16Z


https://github.com/mixxxdj/mixxx/pull/1529

mixxxbot commented 2 years ago

Commented by: ntmusic-deactivatedaccount Date: 2018-03-11T17:39:41Z


Added a pre-requirement bug#⁠1754997

mixxxbot commented 2 years ago

Commented by: javier-vilarroig Date: 2018-09-12T16:40:04Z


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. :)

mixxxbot commented 2 years ago

Commented by: beenisss Date: 2018-09-12T18:03:57Z


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?

mixxxbot commented 2 years ago

Commented by: Be-ing Date: 2018-09-12T18:35:14Z


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

mixxxbot commented 2 years ago

Commented by: javier-vilarroig Date: 2018-09-14T06:25:58Z


Ok. So I can grab that ticket. :)

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

Will have you informed.

mixxxbot commented 2 years ago

Commented by: javier-vilarroig Date: 2018-09-24T15:44:26Z


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

mixxxbot commented 2 years ago

Commented by: daschuer Date: 2018-09-24T16:15:57Z


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.

mixxxbot commented 2 years ago

Commented by: javier-vilarroig Date: 2018-10-21T11:28:59Z


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.

mixxxbot commented 2 years ago

Commented by: Be-ing Date: 2018-10-21T13:02:29Z


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.

mixxxbot commented 2 years ago

Commented by: mevsme Date: 2020-03-15T11:26:13Z


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?

mixxxbot commented 2 years ago

Commented by: ywwg Date: 2020-03-15T13:36:46Z


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

mixxxbot commented 2 years ago

Commented by: javier-vilarroig Date: 2020-03-15T15:04:56Z


There is a PR already with some advances done.

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

mixxxbot commented 2 years ago

Duplicate of mixxxdj/mixxx#5852