mus2 music playerhome

mus2 is a simple, fast and FOSS music player written with C and raylib graphics library.

mus2 uses principles of immediate-mode GUI for its UI drawing. It does not depend on any bloated and heavy UI-library like Qt and GTK+, and it does not bundle a browser inside a small application like Electron does. Instead, all its UI is draw using direct primitive, text and image draw calls of raylib. It does not use any libraries, like the amazing Clay for that, instead it has its own little engine for this with bare support for draw frame stack, simple primitive, text, image, texture draws, and a few of ready to use UI elements like ui_draw_button().

As a consequence of this a static build of the app that depends only on Windows DLLs weighs around 2 MiB. Linux dynamic build, depending only on libc and libm weighs around 2.5 MiB.

Gallery

Playlist tab Albums tab Browse tab About tab
mus2 with Gruber Darker themeGruber Darker theme port
mus2 with Nord themeNord theme port

Features

Errata

Theming

To add themes to mus2, create a folder called .mus-themes aside the executable file, (optional) download and extract theme pack from bellow into it, run mus2, go to about tab and click little reload button.

Theme creation

Custom theme format is quite simple, actually. mus2 uses 5 main colors for its UI, bg, mg_off, mg, fg_off, fg, and link color for links in the about tab. Theme file format is as such:

Ignore these comments, the format itself does not support them
name=Some name
description=Some description with additional info  Optional field
author=https://some-link.to/authors/website        Optional field

Empty lines are skipped
bg=#012345       The format only supports hex colors
mg_off=#6789abCD Both upper and lower case is supported,
                 alpha channel is too
mg=#EF0123
fg_off=#456789
fg=#ABCDEF
link=#012345

Theme file extension is .txt, because why not. Parser does not trim whitespace anywhere, so between key and value should just be an =, without spaces. Technically, all these statements are optional, as at parsing they replace members of an already filled out sturcture.

The color intensety changes like such: bgmg_off + mgfg_off + fg. *_off versions are designed to be slightly darker than non-off counterparts for contrast between different text parts on the same-color BG.

Different fonts

To use a different font, drop a .ttf file into .mus-themes, refresh and select it in the about tab.

Custom font + custom themeCustom font paired with custom font and different UI scale does wonders

Links