Skip to content

Repository files navigation

audacious-uade

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

No binaries are currently provided, but support for common Linux, *BSD, macOS and Haiku package managers is available (see Installation via Package Managers).

Some CLI tools are also included.

For installing on Windows, see #45 (comment)

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

Screenshots

Screenshot 1 Screenshot 2 Screenshot 3

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.
  • Also after updating to a new version, it's a good idea to regenerate old playlists to avoid potential issues.

Main Features

Other Notes

  • 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.
  • Recommended custom Audacious 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}]}}
    
  • Audacious metadata available: Artist, Album, Publisher, Year, Track, Length, Comment
  • DeaDBeeF metadata available: Track Number, Artist, Album, Year, Duration, Codec, %publisher%, %channels%, %player%, %songend%

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 and data files)

The project as a whole is licensed under GPL-2.0-or-later. See COPYING for license text.

Some parts are also licensed under LGPL-2.1-or-later, specifically sources under src/common/, src/converter/, src/player/ and src/songdb/. See COPYING.LGPL for license text.

Songdb (conf/songdb) is licensed under CC BY-NC-SA 4.0. Songdb sources.

See NOTICE for 3rd party source code licenses (sources under src/3rdparty/).
See uade/COPYING for UADE license information (sources under uade/).

Dependencies (optional/auto detected)

  • Audacious >= 3.8
  • DeaDBeeF >= 1.8.0
  • libopenmpt >= 0.6.0
  • libxmp >= 4.5.0

Build and Install from Source

Requirements

  • Required (git or release): pkg-config, GNU make, GCC/Clang with C++17 support (GCC-6+, Clang-5.0+)
  • Required (git): autoconf, automake, libtool

Latest Release

Download and extract the audacious-uade-<version>.tar.bz2 file from https://github.com/mvtiaine/audacious-uade/releases

Git

# NOTE: running `libtoolize` before `autoreconf` may be needed on some platforms
git clone --depth 1 --shallow-submodules --recurse-submodules https://github.com/mvtiaine/audacious-uade.git
autoreconf -i

Build and Install

# NOTE: see ../configure --help for build options
# NOTE: DeaDBeeF plugin support may require adjusting CPPFLAGS and --with-deadbeef-plugindir as it does not use pkg-config
# NOTE: gmake is required on some platforms
mkdir -p build
cd build
../configure
make -j check
sudo make install

Installation via Package Managers

Homebrew (Latest Release)

# NOTE: DeaDBeeF support not available with Homebrew install (TODO)
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"

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

Arch/Manjaro PKGBUILD

# (optional) install libxmp from AUR https://aur.archlinux.org/packages/libxmp
# (optional) install DeaDBeeF from AUR https://aur.archlinux.org/packages/deadbeef

# Latest release
wget https://raw.githubusercontent.com/mvtiaine/arch-repo/main/audacious-uade/PKGBUILD
makepkg -s
sudo pacman -U audacious-uade*.pkg*

# Git
makepkg -c -s -f -D scripts
sudo pacman -U scripts/audacious-uade*.pkg*

FreeBSD/MidnightBSD/DragonFlyBSD Ports (Latest Release)

# NOTE: DeaDBeeF support not available with ports install (too old version)
git clone https://github.com/mvtiaine/freebsd-ports.git
cd freebsd-ports/multimedia/audacious-uade
make install clean

HaikuPorter (Latest Release)

# NOTE: DeaDBeeF support not available with HaikuPorter install (not in haikuports)
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-*

Alpine aports (Latest Release)

# (optional) install deadbeef and deadbeef-dev packages for DeaDBeeF plugin support
wget https://raw.githubusercontent.com/mvtiaine/aports/main/audacious-uade/APKBUILD
abuild -r
sudo apk add "${HOME}/packages/*/*/audacious-uade*.apk"

MacPorts (Latest Release)

# (optional) install with +deadbeef variant for DeaDBeeF plugin support
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

pkgsrc (Latest Release)

# NOTE: DeaDBeeF support not available with pkgsrc install (TODO)
# change /usr/pkgsrc to correct pkgsrc location below as needed
git clone https://github.com/mvtiaine/pkgsrc.git
cp -rp pkgsrc/* /usr/pkgsrc/
cd /usr/pkgsrc/audio/audacious-uade
make install clean clean-depends

OpenBSD Ports (Latest Release)

# NOTE: DeaDBeeF support not available with ports install (TODO)
git clone https://github.com/mvtiaine/openbsd-ports.git
cp -rp openbsd-ports/* /usr/ports/
cd /usr/ports/audio/audacious-uade
make install clean

Debian/Ubuntu (Git or Latest Release)

# Debian: (optional) install deadbeef and deadbeef-plugins-dev from https://www.deb-multimedia.org/
# Ubuntu: (optional) install deadbeef and deadbeef-plugins-dev from https://launchpad.net/~spvkgn/+archive/ubuntu/deadbeef
scripts/make_deb.sh
sudo dpkg -i build-deb/audacious-uade*.deb

Fedora/openSUSE (Git or Latest Release)

# NOTE: with CentOS, EPEL repo is required, DeaDBeeF and libxmp support not available
# add --with-deadbeef for DeaDBeeF support (requires RPM Fusion repo on Fedora)
scripts/make_rpm.sh
sudo dnf install build-rpm/rpmbuild/RPMS/*/*.rpm
# or: sudo yum install build-rpm/rpmbuild/RPMS/*/*.rpm
# or: sudo zypper install build-rpm/rpmbuild/RPMS/*/*.rpm

CLI Tools

Some CLI programs used in unit tests are included, which may also be useful as standalone executables. The CLI programs are built under src/plugin/cli/, but not packaged or installed with make install.

Note:: Paths below assume using separate build directory as described in build instructions.

If using the CLI tools without running make install, some environment variables need to be set:

# for songdb
export SONGDB_DIR="$(pwd)/../conf/songdb"
# for player, precalc
export UADE_BASE_DIR="$(pwd)/build-tmp/uade"
export UADE_CORE_FILE="$(pwd)/uade/src/uadecore"

src/plugin/cli/songdb/songdb - queries songdb for given file

src/plugin/cli/songdb/songdb ../testdata/mdat.turrican\ loader

songlengths.tsv:4bfa00711278	0	30840,p
modinfos.tsv:4bfa00711278	TFMX	0
metadata.tsv:4bfa00711278	Chris Hülsbeck	Factor 5 & Rainbow Arts	Turrican	1990

src/plugin/cli/player/player - plays given file with audio data written to stdout

src/plugin/cli/player/player 48000 ../testdata/mdat.turrican\ loader | play -t raw -r 48000 -e signed -b 16 -c 2 -

src/plugin/cli/converter/converter - converts MED4 sng+samples format file to (OctaMED) MMD0

src/plugin/cli/converter/converter ../testdata/chipsong.med > chipsong.mmd0

src/plugin/cli/precalc/precalc - support tool for songdb database generation

src/plugin/cli/precalc/precalc ../testdata/mdat.turrican\ loader

9878bd072ac12f04a8cdf353731110cc	0	30844	player	uade	TFMX	0	4728	4bfa0071	591c32ea

src/plugin/cli/songend/songend - songlength detection from looping raw input audio. Input must be raw S16LE mono at 8062Hz and have at least 3600s of audio. Output is songlength in milliseconds

SONGEND_MODE=1 src/plugin/cli/player/player 8062 ../testdata/spellbound\ dizzy.bp | src/plugin/cli/songend/songend

220299

Contact

My email address is [firstname].[lastname][at]aalto.fi

The old address mvtiaine@cc.hut.fi no longer works.

About

UADE plugin for Audacious and DeaDBeeF

Topics

Resources

Stars

20 stars

Watchers

3 watching

Forks

Releases

Contributors

Languages