Festival

Festival is a music player designed specifically for local album collections, offering a clean and intuitive interface for managing and playing your music files. Developed in Rust, Festival emphasizes performance and reliability, making it a solid choice for audiophiles and casual listeners alike.

Documentation

For detailed information, visit the Festival documentation.

Comparison

To see how Festival stacks up against other music players, check out the comparison page.

Build

General Info

You need cargo and at least rustc 1.70. Clone the repository with the submodules included:

git clone --recursive https://github.com/hinto-janai/festival

The built binary will be found in target/release/festival[.exe] by default.

Linux

The pre-compiled Linux binaries are built on Ubuntu 20.04. You'll need these packages to build:

sudo apt install build-essential pkg-config libdbus-1-dev libpulse-dev libgtk-3-dev

To build the latest stable release:

git checkout gui-v1.4.0
cargo build --release

macOS

To build the latest stable release:

git checkout gui-v1.4.0
cargo build --release

Windows

To build the latest stable release:

git checkout gui-v1.4.0
cargo build --release

There is a build.rs file in gui/ solely for Windows-specific things:

  • It sets the icon in File Explorer
  • It sets some miscellaneous metadata
  • It statically links VCRUNTIME140.dll (the binary will not be portable without this)

License

Festival is licensed under the MIT License. Note that its dependency tree includes many other licenses.

FAQ

Compilations

Festival does not directly support compilations (a single album with various artists) at the moment. The album will be loaded but spread out for each different artist.

Missing Music

Your audio files must have proper metadata for Festival to detect them. The required tags are Artist and Album. If the song title tag does not exist, the filename will be used instead. For more details on metadata-related errors, start Festival in a console:

./festival

Look for yellow W (Warn) log messages during a Collection reset.

Missing Album Art

If your audio file has embedded album art, Festival will use it. If no embedded album art metadata is found, Festival will search for an image file in the same directory as the file, then in the file's parent directory. If an image file is not found, a default '?' album art will be used. The supported image file formats are JPG/JPEG, PNG, BMP, ICO, TIFF, and WebP.

Missing Date

Festival will look for a date metadata tag resembling the YYYY-MM-DD format. Examples of acceptable formats include:

  • 2022-12-31 (YYYY-MM-DD)
  • 2022 (YYYY)
  • 31-12-2022 (DD-MM-YYYY)
  • 12-31-2022 (MM-DD-YYYY)
  • 2022/12/31 (YYYY-MM-DD but with a different separator)
  • 20221231 (YYYY-MM-DD but with no separator)
  • 2022-1-1 (YYYY-MM-DD)
  • 2022-01-01 (YYYY-MM-DD)

As long as the year exists, the date will be parsed correctly. Formats like MM-DD or DD-MM without a year will not be parsed correctly and will appear as ????-??-?? in Festival.

Metadata Editing

Festival is a music player, not a metadata editor. Some recommended metadata editors include Kid3, mp3tag, puddletag, and MusicBrainz Picard.

Supported Audio Codecs

The supported audio codecs are:

  • AAC
  • ADPCM
  • ALAC
  • FLAC
  • MP3/MP2/MP1/MPA/MPEG
  • Ogg/Vorbis
  • Opus
  • WAV
  • WavPack

Supported Metadata Formats

Festival supports various metadata formats with the following statuses:

  • ID3v1: Great
  • ID3v2: Great
  • ISO/MP4: Great
  • RIFF: Great
  • Vorbis comment (FLAC): Perfect
  • Vorbis comment (OGG): Perfect

Similar Projects

Rustfinity.com

Links

  1. Home
  2. Learn Rust
  3. Get Started
  4. Practice Rust
  5. Challenges
  6. Tutorials
  7. Blog
  8. Open source
  9. Learn Gleam

Socials

  1. GitHub
  2. X

Legal

  1. Privacy Policy
  2. Terms of Service