-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
S4 Mk3 screen support #13653
base: main
Are you sure you want to change the base?
S4 Mk3 screen support #13653
Conversation
e2e4950
to
cb4059c
Compare
0ea02bd
to
1c270cf
Compare
engine.setValue(this.group, "loop_start_position", this.deck.beatloop.start); | ||
engine.setValue(this.group, "loop_end_position", this.deck.beatloop.end); | ||
engine.setValue(this.group, "beatloop_size", this.deck.beatloop.size); | ||
engine.setValue(this.group, "loop_enabled", this.deck.beatloop.enabled); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Consider using reloop_toggle
to allow relooping if the beatloop roll was terminated when the slip position was after the loop exit
1c270cf
to
cdcbd4e
Compare
@mixxxdj/developers what are you opinion about where this PR is aiming? I'm now at a stage where the mapping is pretty stable and usable. I appreciate that this introduce a huge amount of source code. I'm afraid there is no alternative, and I think the current screen content is really impressive! (Happy to post a full demo video if you would like me to justify adding 74 QML files...) I would like to get an agreement in principle before I start working on the documentation PR. Note that every C++ change is the early version of the dependencies and once those are merged, this PR should include no core source changes. |
I will try to take a look at this soon. |
Sure, we want to have this feature in Mixxx. This is why we co-financed the S4 Mk3 for Owen. |
the biggest point of controversy was how the data from the engine is shared with the controller. That is a mechanism that will be used by every controller with a screen, and needs to be safe and efficient. If we are agreed on how that works, then the rest of the changes are good to go |
The approach I went with is a controller settings to enable the API rejected in #12199, is this is a must have for the screen. As suggested in the PR description, this will allow me to maintain a single code base, and also allow advanced users to build this feature while still using the mainstream mapping. Obviously, if we ever manage to get a stable API in Mixxx, we can eventually make the migration. |
for sure, we want to get this in and don't want to have forks that need maintenance. I do like the approach of using a controller setting to enable / disable the new API. That limits the blast radius nicely. If/when another controller screen comes online, we can iterate on the design as needed. |
cdcbd4e
to
d3b16c3
Compare
This PR include support for the S4 Mk3 screen support. It is made to work without #12199 although there is a setting to enable communication between mapping. This way, I can maintain a single mapping definition, without needing to get an API commitment for communication between mapping.
It includes two themes:
Depends on:
Here is the list of improvement made on the core mapping
feat/s4-mk3-screen-support-with-shared-data
)