Skip to content

Add UADE decoder plugin for Amiga music formats #2319

@jtraeholt

Description

@jtraeholt

Feature Request: Add UADE decoder plugin for Amiga music formats

Summary

Request to add a decoder plugin based on UADE (Unix Amiga Delitracker Emulator) to enable MPD to play Amiga music formats including TFMX, ProTracker modules, OctaMED, and many others.

Background

UADE is a mature, well-established library that provides accurate emulation of Amiga music formats. It supports a comprehensive range of formats used in the demoscene and classic Amiga games/demos. Currently, users need separate players like uade123 to play these formats, breaking the unified music experience that MPD provides.

Supported Formats

UADE supports numerous Amiga music formats, including but not limited to:

  • TFMX (.mdat, .tfmx) - Used in many classic games like Turrican series
  • ProTracker (.mod) - Classic 4-channel tracker format
  • OctaMED (.med) - Advanced Amiga tracker format
  • Future Composer (.fc)
  • SoundTracker variants
  • AHX/THX formats
  • And many others (50+ formats total)

Technical Details

  • Library: UADE is actively maintained and available at https://gitlab.com/uade-music-player/uade
  • License: GPL-compatible
  • Stability: Mature codebase, widely used in various music players
  • Dependencies: Relatively lightweight, mainly requires the UADE library itself
  • Platform: Cross-platform (Linux, macOS, BSD, Windows)

Precedent in MPD

MPD already includes specialized decoder plugins for niche music formats:

  • sidplay - For C64 SID music (libsidplayfp/libsidplay2)
  • gme - For various game music formats (Game Music Emu)
  • mikmod - For tracker modules
  • adplug - For AdLib music

A UADE decoder would follow the same pattern and philosophy.

Use Case & Community Benefit

  • Demoscene community: Large collection of high-quality Amiga music
  • Retro gaming: Soundtrack preservation from classic Amiga games
  • Music enthusiasts: Comprehensive format support in a single daemon
  • Existing MPD users: Many users already use MPD for specialized formats

The requester successfully integrated SID support into MPD using NixOS package overrides, demonstrating both demand for retro music format support and the extensibility of MPD's plugin architecture.

Implementation Considerations

  • File detection could use UADE's built-in format detection
  • Configuration options might include:
    • Subsong selection (many Amiga modules contain multiple songs)
    • Playback duration limits (some modules loop indefinitely)
    • Audio quality settings
  • Integration with MPD's existing tag system for metadata

Alternative Solutions Considered

Currently users must:

  1. Use separate players like uade123 for Amiga music
  2. Convert files to standard formats (lossy process, loses authenticity)
  3. Use different music players entirely

None of these provide the unified experience that MPD aims to deliver.

References

Request

Would the MPD team consider adding UADE as a decoder plugin? This would make MPD the definitive solution for both modern and retro music formats, serving the needs of a dedicated community while maintaining MPD's philosophy of comprehensive music format support.

Thank you for considering this feature request and for maintaining such an excellent music daemon!

Metadata

Metadata

Assignees

No one assigned

    Labels

    postponedNobody is working on this, because no developer appears to be interested in this.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions