Skip to content

UADE plugin for Audacious music player

License

Notifications You must be signed in to change notification settings

mvtiaine/audacious-uade

Repository files navigation

This is Audacious (https://audacious-media-player.org/) input plugin for UADE (https://zakalwe.fi/uade/) and other retro music replays.

Main features:
- Precalculated database for song lengths and author/album/publisher/year meta data (see below)
- Player independent songend detection (similar to "deep songend scan" option in DeliPlayer for Windows)
- Preferences UI for configuring UADE playback options etc.
- Custom fork of UADE (https://gitlab.com/mvtiaine/uade) including support for additional formats and platforms not (yet) supported in official UADE releases:
-- Face The Music
-- OctaMED Soundstudio / MMD3
-- Protracker4 / Protracker IFF
-- Support for AmigaOS (and related), Windows (MSYS2/MinGW), ...
- MED4 sng+samples format support via MED4->MMD0 conversion
- DigiBooster 3 and DigiBooster Pro 2 (http://www.digibooster.de/) support using the official portable replay
- HivelyTracker (http://www.hivelytracker.co.uk/) support using the official portable replay
- Fasttracker 1 & 2 support using the ft2play replay (https://github.com/8bitbubsy/ft2play)
- Scream Tracker 3 support using the st3play replay by 8bitbubsy (https://pastebin.com/AwRXZAw7)

Modland (http://ftp.modland.com/), AMP (https://amp.dascene.net/), UnExotica (https://www.exotica.org.uk/wiki/UnExoticA) and Demozoo (https://demozoo.org/) are used as sources for precalculated song lengths and author/album/publisher/year meta data (if available).
In addition Mods Anthology (https://archive.org/details/cdrom-amiga-mods-anthology-1), Wanted Team (http://wt.exotica.org.uk/), Zakalwe (git://zakalwe.fi/chip) and Aminet (https://aminet.net/) are used as sources for precalculated song lengths.

Project is hosted at https://github.com/mvtiaine/audacious-uade

* Dependencies:
Audacious >= 3.8

* To install via Homebrew (latest release):
brew install mvtiaine/repo/audacious-uade

* To install from Gentoo overlay (latest release):
# Add https://github.com/mvtiaine/gentoo-overlay.git via layman or eselect repository
emerge -p media-plugins/audacious-uade
emerge media-plugins/audacious-uade

* To install with Arch/Manjaro/etc. (latest release):
wget https://raw.githubusercontent.com/mvtiaine/arch-repo/main/audacious-uade/PKGBUILD
makepkg -s
(sudo) pacman -U audacious-uade*.pkg*

* To install with FreeBSD ports (latest release):
git clone https://github.com/mvtiaine/freebsd-overlay.git
cd freebsd-overlay/multimedia/audacious-uade
make install clean

* To install with HaikuPorter (latest release):
(pkgman install audacious audacious_plugins)
git clone https://github.com/mvtiaine/haikuports.git
cp -rp haikuports/* /boot/home/haikuports/
haikuporter audacious_uade
pkgman install /boot/home/haikuports/packages/audacious_uade-*

* To build and install with Debian/Ubuntu/etc. from sources (git or latest release):
scripts/make_deb.sh
(sudo) dpkg -i build-deb/audacious-uade*.deb

* To build and install with Fedora/openSUSE/etc. from sources (git or latest release):
scripts/make_rpm.sh
(sudo) dnf/yum/zypper install build-rpm/rpmbuild/RPMS/*/*.rpm

* To build and install from sources (git or latest release):
- required (git or release): pkg-config, GNU make, GCC/Clang with C++17 support (GCC-6+, Clang-5.0+)
- required (git): autoconf, automake, libtool
- (git): make sure uade submodule has been initialized (git submodule update --init --recursive)
(libtoolize)
(autoreconf -i)
mkdir -p build
cd build
../configure
gmake -j
gmake -j check
(sudo) gmake install

* Other notes:
- Make sure "Probe content of files with no recognized file name extension" setting is *enabled* and "Guess missing metadata from filepath" setting is *disabled* in Audacious prefs
- Case sensitive filesystems may cause issues for formats with external samples
- Tested on 64-bit, 32-bit, big & little endian hosts. Tested on macOS, Linux, DragonFly*/Free*/Net*/OpenBSD, Haiku, Windows (MinGW*/MSYS2, Cygwin), OpenIndiana, GNU Hurd. Libraries/CLI binaries also tested on AmigaOS3, MorphOS, AROS, QNX 6.5.0, AIX, cosmocc, Tizen, Meego/Sailfish, OS/2 (ArcaOS)
- Build support (binaries not tested) for Android, iOS, Fuchsia, OpenHarmony, webOS, RISC OS, FreeMiNT, WarpOS, Redox OS, SerenityOS, Genode, BlackBerry 10, QNX 7, QNX 8, PS4 (OpenOrbis)
- WIP support (runtime failures) for IRIX, AmigaOS4, Wasix, Emscripten, UnixWare.
- My custom Audacious classic playlist entry/window title template:
${?codec:[${codec}${?channels: (${channels}ch)}]}  -  ${?artist:${artist}  -  }${title}${?album: - (${album})} ${?copyright:-  (${copyright})}${?publisher:- (${publisher}) }${?year:- (${year}) }${?subsong-id:${?subsong-num:- [${subsong-id}/${subsong-num}]}}

* License (source code)
The project as a whole is licensed under GPL-2.0-or-later.
Some parts are also licensed under LGPL-2.0-or-later, specifically sources under src/common, src/converter, src/player and src/songdb.
See src/3rdparty for 3rd party source code licenses.
See https://zakalwe.fi/uade/ for UADE license information.

* Some future plans (in no particular order)
- Automatic A500/A1200/None filter selection depending on format/year/platform (OCS/AGA/DOS) etc. meta data
- Plugin support for GStreamer, Hollywood, ...
- Support AmigaOS4, WarpOS/PowerUP, Wasix, ...
- Add PC-tracker portable replays from 8bitbubsy (XM,IT,S3M,...)
- SC68 replay support (for Atari formats)
- PTK-Prowiz converter support (portable C-version)
- Improve UADE format support
- Project might need a new name...