Skip to content

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.

* IMPORTANT!
- 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 in order for subsongs and meta data to work properly. The playlist must also have been created *after* the settings are applied.

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 2 support using the st23play replay by 8bitbubsy (https://pastebin.com/ifXSCZ71)
- Scream Tracker 3 support using the st3play replay by 8bitbubsy (https://pastebin.com/AwRXZAw7)
- Impulse Tracker 1 & 2 support using the it2play replay (https://github.com/8bitbubsy/it2play)

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

* Other notes:
- 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}]}}

* 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 more platforms
- Add more replays
- PTK-Prowiz converter support (portable C-version)
- Improve UADE format support and portability
- Improve songdb with more coverage and metadata sources
- Project might need a new name...

* 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.

* Dependencies:
Audacious >= 3.8

* To build and install from source (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

* To install via Homebrew (latest release):
brew install mvtiaine/repo/audacious-uade
+ macOS:
ln -s "${HOMEBREW_PREFIX}/lib/audacious/Input/uade.dylib" "$(pkgconf --variable=plugin_dir audacious)/Input/uade.dylib"
+ Linux:
ln -s "${HOMEBREW_PREFIX}/lib/audacious/Input/uade.so" "$(pkgconf --variable=plugin_dir audacious)/Input/uade.so"

* 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 PKGBUILD for 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/MidnightBSD ports or DragonFlyBSD DPorts (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 install with Alpine aports (latest release):
wget https://raw.githubusercontent.com/mvtiaine/aports/main/audacious-uade/APKBUILD
abuild -r
(sudo) apk add "${HOME}/packages/*/*/audacious-uade*.apk"

* To install with MacPorts (latest release):
git clone https://github.com/mvtiaine/macports.git <path>
# Add file://<path> to ${prefix}/etc/macports/sources.conf
# see https://guide.macports.org/#development.local-repositories
(sudo) port sync
(sudo) port install 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