Skip to content

dinaraparanid/PrimaPC

Repository files navigation

Prima (PC version)

Kotlin Rust

Developer

Paranid5

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