mixxxdj / mixxx

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

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

Open mixxxbot opened 1 year ago

mixxxbot commented 1 year ago

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:

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:

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 commented 1 year ago

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 commented 1 year ago

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 commented 1 year ago

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 commented 1 year ago

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 commented 1 year ago

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 commented 1 year ago

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 commented 1 year ago

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 commented 1 year ago

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 commented 1 year ago

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 commented 1 year ago

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


related: lp:1740365 "remove the menu bar"

mixxxbot commented 1 year ago

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 commented 1 year ago

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 commented 1 year ago

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


Here is the blueprint attempt:

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