Skip to content

Mahmud0808/Melodify

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎵 Melodify

Welcome to Melodify, a minimalistic music player application designed to provide you with a seamless and enjoyable music experience. Whether you’re relaxing at home or on the go, Melodify makes it easy to enjoy your favorite tunes with its elegant and user-friendly interface.

Screenshots 📱

Features 🔥

Library & browsing

  • Music Library: Access and manage your entire music library with ease.
  • Album / Artist / Genre views: Browse your music organized the way you think about it.
  • Folder browsing: Explore your library by its source folders.
  • Folder blacklist: Hide unwanted folders (ringtones, notifications, voice memos) from the library.
  • Sort & filter: Order by title, artist, album, duration, date added, or file size — ascending or descending.
  • Fast search: Instant, indexed search across titles, artists, and albums.

Playback

  • Gapless playback powered by a single, persistent queue (no per-track teardown).
  • Queue management: Reorder by drag, remove, jump to any track, "play next" / "add to queue".
  • Shuffle with a freshly randomized order each time, and proper next/previous handling.
  • Resume: Reopens your last session (paused) right where you left off.
  • Speed & pitch control, sleep timer (timed or end-of-track, with fade-out).
  • Equalizer: System equalizer with presets (Bass, Treble, Vocal, Rock, Pop, Jazz, Dance, Flat) plus a custom band editor and a loudness boost.

Experience

  • Dynamic theming: The whole app subtly recolors to match the current track's album art.
  • Beautiful Now Playing: Full-bleed blurred-artwork backdrop, frosted-glass controls, animated cover transitions on track change.
  • Miniplayer: Frosted compact player that persists across restarts (unless dismissed) and expands into Now Playing with a shared-element transition.
  • Gestures: Swipe artwork to change tracks or dismiss; swipe the miniplayer down to dismiss.
  • Smart playlists: Favorites, Recently played, Most played, Recently added — auto-generated, no curation needed.
  • Frosted top bars with content scrolling behind them.
  • Onboarding: A clean first-run permission flow.
  • Media notification & lock screen: Full media-session controls; tapping the notification opens Now Playing.
  • Accessibility: Semantic labels and tooltips on controls.
  • Lightweight: Cached, display-resolution artwork decoding and minimal rebuilds keep it fast and smooth.

Architecture 🗼

  • Framework: Flutter
  • State management & DI: GetX + get_it
  • Audio engine: just_audio with an editable ConcatenatingAudioSource queue and Android audio effects (AndroidEqualizer, AndroidLoudnessEnhancer)
  • Background / media session: audio_service
  • Media library: on_audio_query_pluse (maintained fork; all plugin calls serialized through a single lock to avoid its concurrent-call crash)
  • Dynamic color: Flutter's built-in ColorScheme.fromImageProvider (Material You), cached per track
  • Persistence: get_storage (favorites, play stats, resume position, preferences)

Build-Tool 🧰

You need Android Studio to build this project.

Toolchain: Android Gradle Plugin 9.0, Gradle 9.1, Kotlin 2.2.20, JDK 21, compileSdk/targetSdk 36.

Getting Started 🚀

  • Clone the project in your local Machine.

  • Open the melodify folder with Android Studio.

  • That's it. Now you are good to go!

Contact 📩

Wanna reach out to me? DM me at 👇

Email: mahmudul15-13791@diu.edu.bd

About

A minimalistic music player application designed to provide you with a seamless and enjoyable music experience.

Topics

Resources

Stars

Watchers

Forks

Contributors