Thanks for putting out a Linux build — the player looks great once it renders.
Symptom
On a fresh install of ReferencePlayer-1.1.1-x86_64.AppImage, the whole UI is transparent: the window opens at the right size and the window manager decorations are there, but nothing is painted inside it — you see straight through to the desktop.
Cause
The app never finds its bundled assets. Running from a terminal shows:
qt.svg: Cannot open file '/home/<user>/.local/share/M Media Audio/Reference Player/themes/70s-hifi-black/common/play.svg', because: No such file or directory
…and the same for pause.svg, stop.svg, next.svg, previous.svg, ffwd.svg, rewind.svg, rec.svg, eject.svg, power-icon.svg, followed by:
QPixmap::scaled: Pixmap is a null pixmap
QPainter::begin: Paint device returned engine == 0, type: 2
QPainter::setRenderHint: Painter must be active to set rendering hints
The assets are present in the AppImage — at usr/bin/assets/themes/70s-hifi-black/common/play.svg, alongside the binary — but the app looks for them in $XDG_DATA_HOME/M Media Audio/Reference Player/themes/, which is empty on a fresh install.
strings on usr/bin/MMediaReferencePlayer shows what looks like the reason — an absolute build-machine path compiled into the binary:
/home/jeff/dev/plugins/reference-player-by-mmedia-linux/assets
That path exists only on the build machine, so on any other system asset resolution falls through to the user data directory, which nothing ever populates. The same root is referenced for /fonts/ (Orbitron-Medium.ttf, BarlowCondensed-*.ttf), so the bundled fonts presumably fail the same way.
Workaround
Copying the bundled assets to where the app looks fixes it completely — full UI, VU meters, EQ, meters, all themes:
mkdir -p ~/extract && cd ~/extract
/path/to/ReferencePlayer-1.1.1-x86_64.AppImage --appimage-extract 'usr/bin/assets/*'
D="$HOME/.local/share/M Media Audio/Reference Player"
cp -r squashfs-root/usr/bin/assets/themes "$D/themes"
cp -r squashfs-root/usr/bin/assets/fonts "$D/fonts"
Suggested fix
Resolve the asset root relative to the executable instead of the build path — e.g. from QCoreApplication::applicationDirPath() (or /proc/self/exe, which the binary already reads) plus assets/, with $APPDIR/usr/bin/assets honored when running as an AppImage. Keeping the user data directory as a later fallback for user-installed themes seems right; it just can't be the only place a stock theme is looked up.
Environment
- Ubuntu 24.04.4 LTS, x86_64, GNOME on X11
- glibc 2.39
- Mesa 25.2.8, Intel UHD 770
ReferencePlayer-1.1.1-x86_64.AppImage, sha256 c1df904d4c0cfb6c98d33192f0505b1208bdb0bb7ded3205ebfb8b499ce08677 (matches SHA256SUMS.txt)
- FUSE 2 present, AppImage mounts and starts normally
Minor, unrelated log noise
JUCE Assertion failure in juce_AsyncUpdater.cpp:78 repeats continuously (~60 lines in the first seconds) — looks like an async update triggered off the message thread, and suggests the shipped build has assertions enabled.
qt.gui.imageio: libpng warning: iCCP: known incorrect sRGB profile for a number of theme PNGs.
Thanks for putting out a Linux build — the player looks great once it renders.
Symptom
On a fresh install of
ReferencePlayer-1.1.1-x86_64.AppImage, the whole UI is transparent: the window opens at the right size and the window manager decorations are there, but nothing is painted inside it — you see straight through to the desktop.Cause
The app never finds its bundled assets. Running from a terminal shows:
…and the same for
pause.svg,stop.svg,next.svg,previous.svg,ffwd.svg,rewind.svg,rec.svg,eject.svg,power-icon.svg, followed by:The assets are present in the AppImage — at
usr/bin/assets/themes/70s-hifi-black/common/play.svg, alongside the binary — but the app looks for them in$XDG_DATA_HOME/M Media Audio/Reference Player/themes/, which is empty on a fresh install.stringsonusr/bin/MMediaReferencePlayershows what looks like the reason — an absolute build-machine path compiled into the binary:That path exists only on the build machine, so on any other system asset resolution falls through to the user data directory, which nothing ever populates. The same root is referenced for
/fonts/(Orbitron-Medium.ttf,BarlowCondensed-*.ttf), so the bundled fonts presumably fail the same way.Workaround
Copying the bundled assets to where the app looks fixes it completely — full UI, VU meters, EQ, meters, all themes:
Suggested fix
Resolve the asset root relative to the executable instead of the build path — e.g. from
QCoreApplication::applicationDirPath()(or/proc/self/exe, which the binary already reads) plusassets/, with$APPDIR/usr/bin/assetshonored when running as an AppImage. Keeping the user data directory as a later fallback for user-installed themes seems right; it just can't be the only place a stock theme is looked up.Environment
ReferencePlayer-1.1.1-x86_64.AppImage, sha256c1df904d4c0cfb6c98d33192f0505b1208bdb0bb7ded3205ebfb8b499ce08677(matchesSHA256SUMS.txt)Minor, unrelated log noise
JUCE Assertion failure in juce_AsyncUpdater.cpp:78repeats continuously (~60 lines in the first seconds) — looks like an async update triggered off the message thread, and suggests the shipped build has assertions enabled.qt.gui.imageio: libpng warning: iCCP: known incorrect sRGB profilefor a number of theme PNGs.