Skip to content
snyderman3000Public

About

Music player for OnionOS that allows playing of music in the background while playing games

Resources

Stars

2 stars

Watchers

0 watching

Forks

Latest commit

 

History

16 Commits

Folders and files

Repository files navigation

MiniAmp

A classic-skin music player for the Miyoo Mini Plus (OnionOS).

MiniAmp playing with the Graphite skin

  • Plays MP3, FLAC, Ogg Vorbis and WAV (any sample rate, mono or stereo)
  • Loads classic .wsz skins; ships with an original skin, "Graphite"
  • Skin browser with live preview
  • 10-band equalizer with presets (including one tuned for the built-in speaker)
  • Spectrum / oscilloscope in the main window, five full-screen visualizers
  • Music library browser, playlists (.m3u), shuffle, repeat, sleep timer
  • Screen-off playback
  • Music in games: quit while playing and the music keeps going in the OnionOS menu, in games and in apps (SELECT + L/R skip, SELECT + Up/Down volume, SELECT + START pause)

MiniAmp is an independent project, written from scratch. It is not affiliated with Winamp, Nullsoft or Llama Group and contains no Winamp code or artwork.

Built by Claude. This player was written by Claude (Anthropic's AI) working with Keith Snyder.

Skins from the classic era load as-is (shown here: the skin browser previewing a downloaded skin):

Skin browser

Install

Copy App/MiniAmp from the release zip to the SD card, or install it with Mixtape. See pkgsrc/README.txt for controls.

How music in games works

OnionOS's audioserver takes a single stream of audio, so two programs playing at once chop each other up. Instead, MiniAmp's background service decodes into shared memory and a small wrapper around OnionOS's libpadsp.so (which the menu and every game load) mixes that music into the program's own sound before it reaches the audioserver. The original library is kept as libpadsp_orig.so and restored when the option is turned off. Games play at different sample rates (Mario 64 at 32000 Hz, Balatro at 44100, the menu at 48000), so the music is resampled to each game's rate as it's mixed in (src/bgm_mix.h).

Some ports stop the audioserver (KillAudioserver=1 in their launcher) and send their sound straight to the audio chip through the vendor's libmi_ao.so, as steward-fu's Miyoo SDL2 does. The same wrapper also stands in for that library's MI_AO_SetPubAttr/MI_AO_SendFrame and mixes the music in there. (A port that stops the audioserver but makes no sound at all, like SkiFree, leaves nothing to mix into, so the music stops; setting KillAudioserver=0 in its .port file keeps it going.) To turn just that part off, create an empty file App/MiniAmp/data/no_chip_hook. Both paths are tested on a PC with tools/test_mix.c and tools/chiptest/run.sh. See src/padsp_wrap.c and src/gamemusic.c.

Uninstalling. Erasing MiniAmp in Mixtape (0.1.5 or later) runs mixtape-uninstall.sh first, which stops the background music and puts the original library back. If you delete the folder by hand, turn Music in games off first, or run App/MiniAmp/mixtape-uninstall.sh yourself.

Building

See docs/BUILDING.md.

License

MIT (see LICENSE). Third-party components: THIRD_PARTY_NOTICES.md.

About

Music player for OnionOS that allows playing of music in the background while playing games

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages