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

[Meta issue] Wishlist for embedded Mixxx <3 #9696

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

[Meta issue] Wishlist for embedded Mixxx <3 #9696

mixxxbot opened this issue Aug 23, 2022 · 13 comments

Comments

@mixxxbot
Copy link
Collaborator

Reported by: gustavo
Date: 2019-07-20T23:02:30Z
Status: Confirmed
Importance: Wishlist
Launchpad Issue: lp1837303
Attachments: toolbar.xml, [WhatsApp Image 2019-07-21 at 12.08.42 AM.jpeg](https://bugs.launchpad.net/bugs/1837303/+attachment/5278185/+files/WhatsApp Image 2019-07-21 at 12.08.42 AM.jpeg), [WhatsApp Image 2019-07-21 at 12.19.38 AM.jpeg](https://bugs.launchpad.net/bugs/1837303/+attachment/5278186/+files/WhatsApp Image 2019-07-21 at 12.19.38 AM.jpeg)


Hardware is becoming a commodity, including hardware designed to run Linux.

Mixxx is an obvious candidate for integration in (deep and not so deeply) embedded solutions because it:

  • runs on Linux
  • is open source
  • is stable and reliable
  • has all the necessary features

A proof of concept for this idea has already been implemented:

In fact, it is currently not very difficult to setup a dedicated tablet computer that connected to a supported controller brings life to a great DYI standalone controller that rivals the latest Denons and Pioneers :-)

For that to happen it is only necessary to:

  • have a touch enabled tablet that runs Linux
  • install Mixxx
  • tweak desktop environment to disable screensaver, power management, etc
  • setup controller
  • perform a small modification to the LateNight skin
  • configure autologin + mixxx full screen autostart

This enables a seamless "power button turns on device directly into Mixxx / power button shuts down device" kind of experience on commodity hardware, as well as keyboard and mouse free operation, like would happen on a commercial standalone controller. But on a device that can hold many GBs of music inside, transferrable via SFP/SCP. No keyboard, no mouse, no external usb storage.

Less space, more style ;)

How could this experience be improved?

1. by having a power indicator directly on the skin (like we have the CPU use indicator)
2. by having a button on the skin that launches a window that displays the current IPs (for music transfer)
3. by having a button on the skin that launches a custom application (ex: network-manager) so that the user can configure the network without having to go to the desktop environment; the application that is launched should be configurable in the preferences
4. by allowing easy touch based text search as an efficient way to find music (alternative to browsing directories)

I will attach some contributions to this topic.

Thank you.

@mixxxbot
Copy link
Collaborator Author

Commented by: gustavo
Date: 2019-07-20T23:07:43Z
Attachments: toolbar.xml


Attaching LateNight skin modified toolbar.xml file that enlarges the buttons so that they can be actually pressed on touch screens (it is very difficult to press short buttons on the boundary of a touch screen.

(some buttons were added, others removed on this custom version - the purpose of this file is to illustrate that taller buttons are necessary).

@mixxxbot
Copy link
Collaborator Author

Commented by: gustavo
Date: 2019-07-20T23:21:45Z
Attachments: [WhatsApp Image 2019-07-21 at 12.08.42 AM.jpeg](https://bugs.launchpad.net/mixxx/+bug/1837303/+attachment/5278185/+files/WhatsApp Image 2019-07-21 at 12.08.42 AM.jpeg)


Attaching some proof of concept pictures to illustrate the potential of the idea described above.

@mixxxbot
Copy link
Collaborator Author

Commented by: gustavo
Date: 2019-07-20T23:22:20Z
Attachments: [WhatsApp Image 2019-07-21 at 12.19.38 AM.jpeg](https://bugs.launchpad.net/mixxx/+bug/1837303/+attachment/5278186/+files/WhatsApp Image 2019-07-21 at 12.19.38 AM.jpeg)


Attaching some proof of concept pictures to illustrate the potential of the idea described above.

@mixxxbot
Copy link
Collaborator Author

Commented by: uklotzde
Date: 2019-07-21T07:02:14Z


The use case you describe sounds like a perfect fit for QML with its declarative approach and additional scripting capabilities.

@mixxxbot
Copy link
Collaborator Author

Commented by: daschuer
Date: 2019-07-21T08:58:22Z


Yes. Mixxx can do this, independent from the skinning system. There are already a Mixxx OSs around that boots from a USB stick firing up Mixxx in full screen mode.
https://www.mixxx.org/wiki/doku.php/portable_mixxx

Unfortunately this bug can't be handled in terms of a developer task.

Can you breake this up into single bugs per task? If you like you can also create a blueprint that links to all of the single bugs.

@mixxxbot
Copy link
Collaborator Author

Commented by: gustavo
Date: 2019-07-21T10:03:17Z


Hi,

Yes, I can break this down into single bugs. I was hoping to confirm whether this set of improvements makes sense to the devs, before opening several bugs in a row :-)

IMHO, creating an entire OS for this is not necessary, unless we are talking about industrial grade integration (like: boots in less than 2s, needs branded splashscreens, needs specific update channel, automatic setup, and so on).

Creating yet another OS creates a heavy maintenance bill.

We can run Mixxx perfectly on plain Ubuntu LTS and stand on the shoulders of its giant community. Same for any other stable and well maintained distribution.

Mixxx is running great on the setup I described above, where the OS boots directly into full screen mix.

With those 4 improvements it will be possible for such systems to be fully embedded without any desktop environment interaction after they are setup. These systems can then be cloned and distributed to people that know nothing about Linux, but can directly use Mixxx :-)

I will work on the individual bugs + blueprint.

@mixxxbot
Copy link
Collaborator Author

Commented by: daschuer
Date: 2019-07-21T10:54:29Z


Cool Thank you. I am wonder if the skin changes can be part of our standard skins or if we may introduce a new skin (first version a plain copy of an existing).
The later will allow to optimize it even more for touch and on screen keyboard for instance.

@mixxxbot
Copy link
Collaborator Author

Commented by: gustavo
Date: 2019-07-21T11:24:02Z


Since this is a new experiment I think multiplying the effort directly across all the skins could become heavier on the effort side. Also, I'm not sure if there would be tensions between the needs of a touch friendly skin and the needs of a normal skin.

Perhaps it is lighter on the effort to start by introducing LateNightTouch, a copy of LateNight skin optimized for touch and see how it goes from there. I found that skin, withlight modifications, very pleasant to use on a 10.1" device.

@mixxxbot
Copy link
Collaborator Author

Commented by: ronso0
Date: 2019-07-21T16:09:13Z


Re: LateNight touch optimization

I think we should move the tool bar to the very top (like in other skins).
There, the buttons are more accessible as the tablet running Mixxx might be stuck into some sort of slot on controllers built for tablet use. Maybe then the UI toggles don't need to be that tall as they are in the modded toolbar.xml posted above.

@mixxxbot
Copy link
Collaborator Author

Commented by: ronso0
Date: 2019-07-21T16:09:40Z


related: lp:1740365 "remove the menu bar"

@mixxxbot
Copy link
Collaborator Author

Commented by: ronso0
Date: 2019-07-21T16:17:57Z


Re: text search

On linux there's Onboard for example, an on-screen keyboard with many options.
Or does Qt supply such a widget?

Could we tweak the search box and rename dialogs in a way that such an on-screen keyboard pops up automatically, like on mobile devices running Android, iOs etc?

How can we keep the focused text widget visible on screen, so that the keyboard doesn't cover up the library, for example with FX and scrolling waveforms? set [Library],maximize to "1" as soon as a keyboard is triggered?

@mixxxbot
Copy link
Collaborator Author

Commented by: gustavo
Date: 2019-07-21T23:14:38Z


@ronso0

Moving the toolbar to the upper part will probably not eliminate the need for tall buttons. Firstly because the edge of the touch screen does not seem to be as precise as the middle. Secondly, because when a user is mixing they need to tolerance for a rough (i.e., not very precise) touch - otherwise we get UX friction due to many failed touches.

I totally agree that the menu bar could (optionally) disappear in full screen if the user choose it that way. It is there taking space but it isn't used.

I will add the to the blue print for evaluation from your side.

@mixxxbot
Copy link
Collaborator Author

Commented by: gustavo
Date: 2019-07-22T00:27:18Z


Here is the blueprint attempt:

https://blueprints.launchpad.net/mixxx/+spec/mixxx-embed-touch

@mixxxbot mixxxbot transferred this issue from another repository Aug 24, 2022
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

1 participant