Skip to content

A music player for Linux written in dart and rust using flutter inspired by namida

License

Notifications You must be signed in to change notification settings

ChaosTheChaotic/Adiman

Repository files navigation

Adiman

A flutter music player app I made for linux using flutter_rust_bridge for efficency (as I can't code well) inspired by namida as you will have seen by the obvious fact that the name is just namida backwards.

Dependencies (These apply even when not building)

  • FFmpeg
  • SpotDL (via python if you want downloading songs to work)
  • GTK
  • SQLite

Installing

(There are only linux builds currently) Head over to releases, download the appimage for your architecture, mark executable (if needed using chmod +x TheAppImage) and run the appimage

Features

  • Can play music (duh)
  • Customisable
  • Adaptive UI
  • Intuitive UI
  • Non-intrusive UI
  • Smooth animations
  • Plugin Support (to develop or add plugins look through the documentation)
  • Playlists
  • Downloading songs via spotdl command line tool (requires spotdl installed and this takes a while due to all the rate limits so unfortunately you just have to wait it out)
  • Waveform seekbar
  • Lyrics from online source (lrclib)
  • Shuffle option (mostly untested due to me not using it that often)
  • Mpris support (app is recognised by playerctl etc)
  • Shuffling
  • Sorting
  • Searching
  • Artist separators (Also untested due to me not using it that often)
  • Caching
  • Choosable music folder
  • In-app volume slider
  • CD Support
  • Playlist sorting
  • Playlist merging
  • Customisable seekbar
  • Auto conversion of non-mp3 songs via ffmpeg (if you have many of these files you might have to wait a bit before reloading the library)
  • Horribly inefficent code

Plugin development

You may find plugin development in the PLUGINS.md

Screenshots

Building

Preqrequisites

  • flutter
  • flutter_rust_bridge_codegen (installed via cargo)
  • cdparanoia (this is required for my cd_audio library to build as it uses cdda_interface.h)
  • libcdio
  • libcdio_cdda
  • git
  • gtk
  • rustup
  • rust
  • AcoustID API key

Build steps

  1. Git clone the repo and go into the directory
git clone "https://github.com/ChaosTheChaotic/Adiman.git" && cd Adiman
  1. Add API to .env file
echo "ACOUSTID_API=YOUR_API" >> rust/.env
  1. Run the build commands
flutter_rust_bridge_codegen generate && flutter build linux --release
  1. The app should be done and you can now run it
build/linux/<your_architecture>/release/bundle/adiman

Helpful people

  • MSOB7Y (the creator of namida) for the inspiration and motivation for this and where I got the original icons from
  • DuckTheCrowolf (thevietnamesecrow on discord) for making the logo