Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/dinaraparanid/primapc

Prima music player for PC
https://github.com/dinaraparanid/primapc

audio-player compose-desktop coroutines decompose-navigation diesel-rs jni koin kotlin rodio rust serde sqlite tokio yaml

Last synced: about 1 month ago
JSON representation

Prima music player for PC

Awesome Lists containing this project

README

        

**Prima (PC version)**
------------------------
[![Kotlin](https://img.shields.io/badge/kotlin-1.9.0-blue.svg?logo=kotlin)](http://kotlinlang.org)
[![Rust](https://img.shields.io/badge/rust-1.73.0-orange.svg?logo=rust)](https://www.rust-lang.org)

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

## **About App**

**Prima** is a music player application that works with local music on your device.
Application is written with domain layer (audio player + database) on Rust language
and UI layer with Kotlin and Compose Multiplatform

### **Preview**

**Playback of local tracks +
audio effects +
current playlist**



 

 

**Ordering and filtering search**



 

**Artists and their tracks**



 

**Favourites**

## **Stack**


  • General


    • Kotlin 1.9.0

    • Rust 1.73.0

    • Java 11

    • Cargo Gradle extension

    • JNI Rust crate


  • Concurrency


    • Rust


      • Tokio

      • Futures + Futures Timer (Delay extension)

      • Async Recursion

      • Atomic Float

      • Once Cell


    • Kotlin


      • Coroutines

      • State Flow



  • Databases and files


    • Diesel ORM + Diesel Migrations

    • Dirs2

    • Serde

    • Yaml-Rust

    • Dotenv (Rust)

    • Kaml + Kotlinx.Serialization


  • Audio


    • Rodio

    • Chrono (duration and dates of tracks)

    • JAudioTagger


  • UI


    • Compose Desktop

    • Decompose navigation library

    • Koin


**Current status**
------------------------
**Alpha V 0.3.0**

### **Implemented features:**
1. Media playback with local tracks
2. Current playlist system (add, remove, replace tracks)
3. Audio Effects: Pitch, Speed, Amplifier
4. Searching + filtering
5. Artists and their tracks
6. Favourites (tracks and artists)

### **TODO:**
1. Albums
2. Changing tracks' tags
3. Tracks' lyrics and information
4. Custom playlists
5. Settings
6. Track trimming
7. Statistics
8. *"Guess the Melody"* game

## **System Requirements**

Project is currently supported on **Linux only**.
Support for other platforms is coming soon.

## **License**

*GNU Public License V 3.0*