Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mark first of every four bars of beatgrid #10164

Open
mixxxbot opened this issue Aug 23, 2022 · 22 comments
Open

Mark first of every four bars of beatgrid #10164

mixxxbot opened this issue Aug 23, 2022 · 22 comments

Comments

@mixxxbot
Copy link
Collaborator

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
Copy link
Collaborator Author

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
Copy link
Collaborator Author

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
Copy link
Collaborator Author

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
Copy link
Collaborator Author

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
Copy link
Collaborator Author

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


Indeed, the PR #2961 is over 10.000 lines of changes. @Frabk Breitling: Did you already have time to test it?

@mixxxbot
Copy link
Collaborator Author

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
Copy link
Collaborator Author

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
Copy link
Collaborator Author

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.

#1529
#2186

@mixxxbot
Copy link
Collaborator Author

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
Copy link
Collaborator Author

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
Copy link
Collaborator Author

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
Copy link
Collaborator Author

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
Copy link
Collaborator Author

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
Copy link
Collaborator Author

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
Copy link
Collaborator Author

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
Copy link
Collaborator Author

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
Copy link
Collaborator Author

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
Copy link
Collaborator Author

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
Copy link
Collaborator Author

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


Well, there is #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
Copy link
Collaborator Author

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


Since #4489 has been labeled with stale, I am wondering if there has been any progress on this issue in recent months?

@mixxxbot
Copy link
Collaborator Author

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


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

@mixxxbot mixxxbot transferred this issue from another repository Aug 24, 2022
@neopostmodern
Copy link

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!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants