mixxxdj / mixxx

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

Mark first of every four bars of beatgrid #10164

Open mixxxbot opened 2 years ago

mixxxbot commented 2 years ago

Reported by: fkbreitl Date: 2020-10-14T10:03:02Z Status: Confirmed Importance: Wishlist Launchpad Issue: lp1899759 Tags: beatgrid, usability Attachments: [Rekordbox screenshot](https://bugs.launchpad.net/bugs/1899759/+attachment/5422252/+files/Rekordbox screenshot)


Rekordbox marks the first of every four bars of the beatgrid with a red marker. This is very helpful for aligning tracks. It would be nice to have the same in Mixxx.

mixxxbot commented 2 years ago

Commented by: fkbreitl Date: 2020-10-14T14:09:27Z Attachments: [Rekordbox screenshot](https://bugs.launchpad.net/mixxx/+bug/1899759/+attachment/5422252/+files/Rekordbox screenshot)

mixxxbot commented 2 years ago

Commented by: ronso0 Date: 2020-10-14T15:26:55Z


This is covered by two GSOC pull requests [WIP]:
https://github.com/mixxxdj/mixxx/pull/2961
https://github.com/mixxxdj/mixxx/pull/2930 (related)
mixxxbot commented 2 years ago

Commented by: fkbreitl Date: 2021-03-23T18:08:52Z


Has there been any progress in the last months? I still find this a very important and not so difficult thing to do.

mixxxbot commented 2 years ago

Commented by: Be-ing Date: 2021-03-23T19:26:02Z


Not much progress. Yes this is important, but it's actually a huge project, not a simple task.

mixxxbot commented 2 years ago

Commented by: Holzhaus Date: 2021-03-23T19:43:32Z


Indeed, the PR https://github.com/mixxxdj/mixxx/pull/2961 is over 10.000 lines of changes. @Frabk Breitling: Did you already have time to test it?

mixxxbot commented 2 years ago

Commented by: fkbreitl Date: 2021-03-23T19:44:21Z


Well I was looking at the code and thinking that if one could just change the color, width or length of every forth bar, it would already be very helpful in most cases.

mixxxbot commented 2 years ago

Commented by: fkbreitl Date: 2021-03-23T20:09:22Z


@Jan No, I was not talking about the PR. I don't even understand what it is about. I was just looking at how the markers are created and it seemed easy to modify them or adding another one on top of the first with four times the spacing but with a different appearance.

mixxxbot commented 2 years ago

Commented by: Be-ing Date: 2021-03-23T20:13:44Z


We've already been there and done that. Quick hacks are more distracting than useful.

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

mixxxbot commented 2 years ago

Commented by: fkbreitl Date: 2021-03-24T12:28:11Z


Aha, but these PRs seem much more sophisticated than what I had proposed. I don't see how my suggestion could be distracting and it looks straight forward and simple to implement for someone who has the build environment and knows this code.

mixxxbot commented 2 years ago

Commented by: fkbreitl Date: 2021-07-26T11:55:09Z


I think done is better than perfect.

Without colors it is much more difficult to keep the orientation in a track. That's why I switched to rekordbox. But with colors I could finally switch back.

mixxxbot commented 2 years ago

Commented by: Holzhaus Date: 2021-07-26T15:20:57Z


I think done is better than perfect.

IIRC we once had a test build that just marked every 4th beat in a different color, and to my knowledge the testers found that more confusing then helpful because in many cases that beat was not the Downbeat. Hence, you'd also need editing capabilites, too. When you have editing capabilities, you need to store that data, which requires a protobuf format changes and a migration of all existing user beatmap/beatgrid data. This also makes it impossible to downgrade to an earlier version of Mixxx without losing all your beatgrids.

Therefore, we should design the protobuf format properly to not do more backwards-incompatible changes than needed.

mixxxbot commented 2 years ago

Commented by: fkbreitl Date: 2021-07-26T22:11:40Z


Sounds good to me. When you think about storing this data, it might be helpful to look at how it is stored in the rekordbox databases, because eventually Mixxx wants to import those, too.

mixxxbot commented 2 years ago

Commented by: fkbreitl Date: 2021-07-27T11:59:13Z


Side comment: If storing additional information breaks backward compatibility you might want to consider a redesign of the storing method.

To my understanding only one additional integer is needed to determine which of the first four bars it is (1, 2, 3 or 4).

mixxxbot commented 2 years ago

Commented by: Be-ing Date: 2021-07-27T12:07:22Z


The problem is that Mixxx has two separate, incompatible methods of storing beat data. This needs to be fixed before changing the stored data format.

mixxxbot commented 2 years ago

Commented by: fkbreitl Date: 2021-07-27T12:22:47Z


Would this be an opportunity to move to the rekordbox format? Since Mixxx supports it now, this would be a way to reduce the number of supported formats.

mixxxbot commented 2 years ago

Commented by: Holzhaus Date: 2021-07-27T12:37:49Z


Would this be an opportunity to move to the rekordbox format?

First, we need to merge the disjunct BeatMap/BeatGrid classes. I'm already working on that right now.

Then we can evaluate what the best storage format would be. I'm not sure that Rekordbox's storage format (documented here: https://djl-analysis.deepsymmetry.org/rekordbox-export-analysis/anlz.html#beat-grid) is really the best way to store such data. I personally find Serato's format (documented here: https://github.com/Holzhaus/serato-tags/blob/master/docs/serato_beatgrid.md#beatgrid-markers) simpler and easier to extend.

But first we need to refactor because the two classes duplicate all work that needs to be done.

mixxxbot commented 2 years ago

Commented by: fkbreitl Date: 2021-07-27T15:26:17Z


The rekordbox format might not be the best format but still the best choice, because it is most widely used, the de facto standard and safest choice for the future. And it runs on all Pioneer players. Imagine how great it would be to plug a Mixxx USB drive in a Pioneer player! Of course if you have the resources you can also implement the Serato format. However, resources are always limited. Since I don't see where an independent Mixxx format could be useful I would give it up in favor of the others.

mixxxbot commented 2 years ago

Commented by: fkbreitl Date: 2022-01-04T18:32:26Z


Hi! Has there been any progress on this feature in recent months? Its a serious shortcoming which prevents me from using and testing Mixxx.

mixxxbot commented 2 years ago

Commented by: Holzhaus Date: 2022-01-06T00:35:53Z


Well, there is https://github.com/mixxxdj/mixxx/pull/4489 which adds a basic keyframe-like editing workflow and also highlights downbeat. Support for legacy beatmaps is still incomplete, but it can already be tested.

mixxxbot commented 2 years ago

Commented by: fkbreitl Date: 2022-08-04T08:51:31Z


Since https://github.com/mixxxdj/mixxx/pull/4489 has been labeled with stale, I am wondering if there has been any progress on this issue in recent months?

mixxxbot commented 2 years ago

Commented by: daschuer Date: 2022-08-06T06:28:34Z


No progress recently. Do you have interest to pick some of this work up?

neopostmodern commented 1 year ago

Not sure if this has been expressed explicitly yet: it'd be great if it were not limited to 4 bars but could be switched to 16, 32 & 64 too!