Skip to content

dinaraparanid/Crescendo

Repository files navigation

Crescendo

Kotlin

Developer

Paranid5

About App

Crescendo is a music player Android app that plays audio from the YouTube (including livestreams)! Additionally, it supports caching of videos to multiple audio and video formats. Application allows to play both networked audio and local files with multiple audio effects. Crescendo provides multiple features to move your music experience to a new level!

Preview

Figma Design Frame

Playback of local tracks

playing_preview   tracks   track_sort

Support of audio effects (Equalizer, Bass, Reverb, Pitch and Speed shifter)

audio_effects   audio_effects

Customize your current playlist

cur_playlist

Stream tracks and live streams from the YouTube, cache your favourites

fetch_youtube   playing_youtube   live_streaming

Control playback and caching with notifications

notifications

Trim tracks and convert to different audio formats

landscape   landscape   landscape

Stack

  • General
    • Kotlin 2.0
    • Coroutines + Flow
    • Koin
    • Ktor + OkHttp (Content Negotiation + Json)
    • KotlinX.Serialization
    • SQLDelight
    • Arrow

  • Media
    • Exoplayer (as part of AndroidX.Media3)
    • FFMpeg
    • JAudioTagger
    • Java Audio Video Encoder
    • AndroidX.Media (audio effects)
    • Android Storage Access Framework
    • Android Media Store
    • Android Media Scanner

  • UI
    • Compose Material
    • Coil + Compose extensions
    • AndroidX.Palette
    • AndroidX.Navigation.Compose (NavHost)
    • AndroidX.ConstraintLayout (Compose version)
    • Composition Local
    • Android Canvas (Compose version)

  • Android specific
    • View Model (+ Kotlin extensions)
    • Foreground Services + Broadcast Receivers
    • DataStore
    • KotlinX.Parcelize

Current Status:

Beta V 0.4.0.0

Implemented features:

  1. Media playback of YouTube videos and live streams
  2. Media playback of local tracks
  3. Audio and Video caching to multiple formats
  4. Current playlist system (add and remove tracks)
  5. Audio Effects: EQ, Bass Boost, Reverb, Pitch and Speed shifters
  6. Audio tracks trimming
  7. Updates notifications

TODO:

  1. Recently listened videos/livestreams
  2. Tags changing
  3. Artists, albums and custom playlists
  4. Favourites
  5. Lyrics
  6. App customization and settings

System Requirements

Android 7.0 or higher

Stable internet connection to play audio from YouTube and cache video is required

License

GNU Public License V 3.0