mixxxdj/developer_skins — pull request #2 by jclaveau (2014-10-10 20:02:51+00:00)
Title: A modular skin made to use Mixxx as a player (I really good one :) )

Howdy everybody,

I discovered Mixxx a year ago and rapidly realized I preferred to play my music with it than the usual Linux players.

But, you know what? It's not a player! The potmeters are really hard to use with a trackpad and the most important information is hidden/reduced by the controls needed to mix. So I decided to make a skin easy to use with no HID controller and giving as much place as possible to the library and the overviews of tracks. A skin thought to be used in autodj mode.

Here are the rules I followed to make it :
+ The potmeters are replaced by faders
+ The controls used to mix are hidden by default but available if you need them
+ The library is as big as possible

The controls are available this way :
+ The master volume is always available but expandable to display the prelisten controls (headphone volume and mix) and the balance.
+ The tracks vumeters are expandable to make the gains and volumes available.
+ The play/pause and sync controls can be expanded to control the pitch, the loops, the cues and associated buttons (quantization, keylock...).
+ The killers are always visible and are expanded by the equalizers.
+ The preview is hideable (Actually the overviews and the previews are in a splitter so you can choose how much you want to see them).

Now its limits :
+ I use it as a player so there is only two decks.
+ Sadly, I hadn't enough time to prepare the samplers and effects views but I will eventually.

Two screenshots, one with all controls hidden and the other fully opened :
![mixxx-expandable-mini](https://cloud.githubusercontent.com/assets/1556489/4598136/83b97462-50b5-11e4-825f-dfa21354b131.png)

![mixxx-expandable-full](https://cloud.githubusercontent.com/assets/1556489/4598138/892b62c0-50b5-11e4-8e4f-0e81093f40a4.png)

As I'm not a designer, I decided to use SVG. It's definitely easier to draw with markup language than a dedicated software! hum... for me at least xD

Learning how to skin Mixxx, I noticed that I needed some features that didn't exist to avoid duplicating the same files dozen times. So I tried to do an svg template engine to manage them. I had to remind my old lessons of C and discover C++ with Qt to do that. So I apologize for all the help/reviews I required to fulfill (and it's still not mergeable!).

You can find this work here https://github.com/mixxxdj/mixxx/pull/302

By the way, there are some big advantages to svg compared to bitmap :
+ The size of this skin is 165Kb.
+ I don't have the hardware to test it but it would be fine on a retina screen.
+ There is almost one file per type of widget so it's really easy to maintain.

I really think this skin can be useful for people who are not real djs but have found some features they like in this excellent software (Like the case of Seemanta Dutta, the Tango lover :dancer: ). That's why I create this pull request now. An other reason is that it's a living example of how svg can be used to design Mixxx.

I consider it as a beta as all my needs are served but every feedback would be welcome.

Hoping you'll love it!