Mixxx-Mini (a media player like WinAmp)

Bug #1980795 reported by nPrevail
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mixxx
Confirmed
Wishlist
Unassigned

Bug Description

This just dawned one me as someone gave me the thought: "why don't I use Mixxx as my everyday music player?"

I currently use VLC, and VLC sounds like a practical thing. However, because Mixxx is a DJ software, it'd make more sense for me to make "playlists" to DJ, AND casually listen to music like a WinAmp media player, which leads me to this point:

"Why not develop a 'small' form of Mixxx, with a GUI as big as WinAmp or VLC, but only for audio playback?"

This "Mixxx-mini" would be a tiny GUI on your desktop, and will allow you to throw in songs like any other media player library list. This is no different from WinAmp but for the fact that this is directly connected to your DJ software.

This is obviously a very basic idea, but the convenience is:

1. DJs can casually make playlists and crates that directly go to Mixxx for when you want to DJ. DJs can make such playlists while working on non-DJ stuff through their desktop

2. DJs will have a history of songs saved in the history section

3. Allow a "EQ" feature so DJs can tune their sound, and save their tuned settings for when they DJ with the parametric or graphic EQ.

4. Analyze track file data as you listen to them.

5. This will help cross-promote Mixxx into other avenues that attract non-DJ music enthusiasts, beginning DJs, and long-term DJs that want an easy way for any DJ and listen to their track files.

My idea is to have Mixxx fully running in the background, but to have a simple GUI that can be the next WinAmp. Mixxx can be your "music player" for creating playlists, and your "DJ program." It just needs to look more approachable and directly help build Mixxx libraries.

EXAMPLES:
WinAmp
https://i.kinja-img.com/gawker-media/image/upload/s--lITc2VvG--/c_fill,fl_progressive,g_center,h_900,q_80,w_1600/19aadxvg4qkp6jpg.jpg

Spotify (mini player)
https://cdn.dribbble.com/users/2136833/screenshots/6173844/shot.png

Sonique
https://sm.pcmag.com/pcmag_uk/photo/l/lycos-soni/lycos-sonique_h9tm.jpg

nPrevail (nprevail)
description: updated
description: updated
Changed in mixxx:
status: New → Confirmed
importance: Undecided → Wishlist
summary: - Wishlist: Mixxx-Mini (a media player like WinAmp)
+ Mixxx-Mini (a media player like WinAmp)
Revision history for this message
Daniel Schürmann (daschuer) wrote :

We have work in progress towards integrate Mixxx into the system tray. In Linux it is done via the MPRIS2 D-Bus interface. Will this suit your needs?

I can also imagine to create an own mixxx remote app that is using a network interface to communicate with the main mixxx. Clementine has such thing that works also from a mobile device.
On GitHub there are some MPRIS2 remotes we may use and make them available for normal users and extend them for our needs.

One related wish is to provide a kiosk app where the audience to place track wishes.
https://bugs.launchpad.net/mixxx/+bug/1108370
https://bugs.launchpad.net/mixxx/+bug/664369
https://bugs.launchpad.net/mixxx/+bug/319386

Another approach could be to add a second main window to Mixxx.
This can than be used to display different things
* Mini Player
* Lyrics/Cover/Video
* Second library
* Kiosk
...

https://bugs.launchpad.net/mixxx/+bug/1152575
https://bugs.launchpad.net/mixxx/+bug/1282127
https://bugs.launchpad.net/mixxx/+bug/1456113

Other ideas? What do you think?

Revision history for this message
ronso0 (ronso0) wrote :

Beside the sys tray integration, I think most of what you expect from 'Mixxx mini' could already be realized by creating a mini skin with one deck (and 'a few' engine adustements).
I fear that both creating a secondary main app or a remote app is a lot of work, and a huge maintenance burden, thus I think a better option is to use what's already there and work towards launching MiniMixxx with 'mixxx --miniMode' in small steps. This allows to have all library functionality (much like Daniel's 'secondary window' approach).

The 'few adjustments' coming to mind:
* make the engine work with one deck only
* make AutoDJ work with one deck
* make AutoDJ keep played tracks in their set position
* add some convenience functions to mimic basic media playersin AutoDJ, e.g.
  map double-click on track in AutoDJ to 'LoadTrackAndPlayFromStart'

Launching 'mixxx --miniMode' would
* load a mini skin
* set some controls to engage 'mini mode' and disable vinyl control and
  other unnecessary functions
* open some interface to add songs to the AutoDJ queue from outside Mixxx

Being able to switch between mini / regular mode at runtime would be the cherry on the cake.

Revision history for this message
Daniel Schürmann (daschuer) wrote :

That sounds like a good approach, except that a single deck will probably have hard times to crossfade.
The Mpris2 player approach is to build an abstract player on top of the existing (two) auto Dj decks which alles a flawlessly transition between mini an full mode.
I think we should think allow how to connect to that.
Probably with some special AutoDj controls.

Revision history for this message
ronso0 (ronso0) wrote :

> a single deck will probably have hard times to crossfade.

Yeah :)
I assumed, like with media players, there will be no fade, just simple 'Full Track' or 'Skip Silence' mode.

Revision history for this message
nPrevail (nprevail) wrote :

I agree with @ronso0.

Remote app is a neat idea, but a secondary app is a lot more work, and allows more room for error/issues with integrating the two together. By using the same Mixxx app, but in a smaller skin, Mixxx is still fully functional. The mini-Mode is limited mainly to keep it simple looking, easy to navigate, and separate from the full view mode of Mixxx.

No need to recreate or build something that causes more work. Using what we already have is much more efficient to time, and less bugs to deal with since it'd be a matter of making sure the GUI.

It wouldn't need any bells and whistles, because if someone really wanted those extra features, they could open the full view mode of Mixxx and have all the features to do so. It'd be great to see an easy transition going from mini-Mode to Full view mode, while the music is playing. For example:

Someone was casually listening to music in the background. They happen to like the song they're listening to. While the song is playing, they can switch to full view Mixxx mode, and the track is still playing. The listener can now start DJing from where the music timestamp is.

Revision history for this message
ronso0 (ronso0) wrote (last edit ):

'casually listening to music in the background'
Important aspect.
Afaik Mixxx needs/grabs exclusive sound device access with certain sound APIs to achieve low latency, so in order to make mini mode easy to use it should load an appropriate soundconfig.xml
Latency is not that much of a requirement for mini mode IMO

btw switchable sooundconfigs would be a nice feature anyway, for different use cases like preparing with laptop only, and playing live with controller or multiple I/O devices
lp:1516035

Revision history for this message
ronso0 (ronso0) wrote :

Am I right that with the MPRIS interface anyone could develop frontends, e.g. for Android?

Revision history for this message
Daniel Schürmann (daschuer) wrote :

I am not sure if it is reasonable to use MPRIS2 over Ethernet from an Android device. But at least it is possible. See here: https://www.reddit.com/r/linux/comments/2hqs7v/im_writing_an_androidmpris_bridge_if_you_dont/

Revision history for this message
Swiftb0y (swiftb0y) wrote :

FYI KDE connect and its GNOME counterpart gsConnect also support controlling the host audio via MPRIS. https://userbase.kde.org/KDEConnect#Multimedia_Control_Receiver

Revision history for this message
Swiftb0y (swiftb0y) wrote :

Mixxx now uses GitHub for bug tracking. This bug has been migrated to:
https://github.com/mixxxdj/mixxx/issues/10778

lock status: Metadata changes locked and limited to project staff
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.