Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/dinaraparanid/crescendo

Media Streamer App for Android
https://github.com/dinaraparanid/crescendo

android-application audio-effect audio-player audio-streaming audio-visualizer equalizer jetpack-compose koin kotlin ktor music-player youtube-downloader youtube-player

Last synced: 2 months ago
JSON representation

Media Streamer App for Android

Awesome Lists containing this project

README

        

**Crescendo**
-----------------

[![Kotlin](https://img.shields.io/badge/kotlin-2.0.0-blue.svg?logo=kotlin)](http://kotlinlang.org)

## **Developer**
[Paranid5](https://github.com/dinaraparanid)

## **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*](https://www.figma.com/design/SHLuNtTvCyh6HSVVWxtThS/Crescendo?node-id=0-1&m=dev&t=riock3EVbBVkipzT-1)

**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*