#player #music-player #c64 #format #song #esoteric

musix

Music player library for esoteric audio formats (music from C64,Amiga etc)

1 unstable release

0.1.0 Mar 22, 2024

#360 in Audio

Download history 115/week @ 2024-03-17 10/week @ 2024-03-24 25/week @ 2024-03-31 1/week @ 2024-04-07

69 downloads per month

MIT license

21MB
577K SLoC

C 314K SLoC // 0.1% comments C++ 224K SLoC // 0.1% comments Visual Studio Project 19K SLoC Bitbake 6.5K SLoC // 0.0% comments GNU Style Assembly 3K SLoC // 0.2% comments Assembly 2.5K SLoC // 0.2% comments Ada 1.5K SLoC // 0.2% comments Shell 1.5K SLoC // 0.2% comments Python 1K SLoC // 0.2% comments Pascal 1K SLoC // 0.2% comments M4 897 SLoC // 0.4% comments C# 879 SLoC // 0.4% comments Visual Studio Solution 874 SLoC Rust 175 SLoC // 0.0% comments Automake 162 SLoC // 0.0% comments Lua 94 SLoC Perl 35 SLoC // 0.4% comments Prolog 21 SLoC Pan 19 SLoC // 0.1% comments Forge Config 11 SLoC Batch 7 SLoC JavaScript 2 SLoC // 0.7% comments ReScript 1 SLoC Poke 1 SLoC

Contains (autotools obfuscated code, 170KB) src/plugins/ayflyplugin/ayfly/configure, (autotools obfuscated code, 91KB) configure, (ELF exe/lib, 32KB) compareresample, (ELF exe/lib, 31KB) testresample, (obscure autoconf code, 1KB) configure.ac, (obscure autoconf code, 3KB) configure.ac and 3 more.

Musix player


➜  msxp music/C64/Last_Ninja_2.sid
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Last Ninja 2 / Matt Gray                                       ┃
┃ The Street (loader)                                            ┃
┣━━━━━━━━━━━━━━━┳━━━━━━┳━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ 00:27 / 05:03SONG03/13FORMATSID (C64)              ┃
┗━━━━━━━━━━━━━━━┻━━━━━━┻━━━━━━━┻━━━━━━━━┻━━━━━━━━━━━━━━━━━━━━━━━━┛

Building & Running

make
build/msxp music/Warhawk.sap

Installing

Copy msxp to your path and the data directory as /usr/local/share/musix or ~/.local/share/musix (Or keep the data directory alongside the executable).

Using

msxp [options] <musicfiles ...>

  • -d run in background
  • -n play next file
  • -p play previous file
  • -s <no> Set subsong
  • -o Write audio to stdout
  • -q Quit background player
  • -a Add files to queue instead of replacing queue

Text UI

  • [ENTER] / [BACKSPACE] for next/previous file
  • [LEFT] / [RIGHT] for sub song
  • [ESC] to detach and keep playing
  • q to quit

(Run without file arguments to activate UI again)

Converting to MP3

msxp -o <file> | lame -r file.mp3

Playing multiple files

(Examples require downloaded copy of MODLAND :)

Play all tracked music by Purple Motion

fd ".(mod|xm|s3m)$" ~/MODLAND/*/Purple\ Motion | msxp && msxp -c

Play all tracked music in (~134K files) and shuffle it

fd ".(mod|xm|s3m)$" ~/MODLAND | sort -R | msxp

LUA & Themes

Copy data/example.lua to ~/.config/musix/init.lua and edit it to change the theme etc. (TBC).

No runtime deps