Skip to content

Dimple is a cross-platform, open source, local first, private music player.

License

Notifications You must be signed in to change notification settings

vonnieda/dimple

Repository files navigation

Dimple Music Player

Dimple is a local-first, cross-platform music player for people who want the convenience of a music streaming service without all the ick. I'm writing Dimple to replace music streaming services in my life with privacy respecting software that is built to last.

If you like Dimple, and would like to help me keep working on it, please consider helping with one of the methods below. Dimple is my full time job and only source of income, and every single bit helps me keep working on open source software full time:

Status

Dimple is currently under heavy development and is ALPHA QUALITY SOFTWARE. Everything is subject to change, and you should back up your database regularly if you use it. There are several known issues, and you should expect to run into bugs and crashes. Many features that are shown in the UI do not work yet.

I am working towards a 1.0 release after which the data model will be stable and only modified through migrations.

If you would like to try Dimple now you can download the source and run it with cargo run --release --bin dimple_ui_slint.

Prebuilt binaries for macOS and Windows are available in Actions under assets.

How Does It Work?

Dimple plays your local music files and can stream from online and self-hosted music services using plugins.

It keeps your music, images, metadata, and listening history in a Library, which is a SQLite database. Dimple can sync your Library between all your devices with end-to-end encryption.

As you use Dimple it searches public music databases and sites for new information like events, lyrics, artwork, new releases, etc. and adds it to your Library.

Dimple uses plugins to perform many tasks, and you can write your own plugins to extend Dimple and add new functionality.

Features

  • Cross-platform desktop music player for macOS, Linux, and Windows. Mobile coming later.
  • Stores music, artwork, and metadata locally so it always works offline.
  • Sync, stream, and download your music on any supported device, with any S3 compatible storage service, including self-hosted ones.
  • Personalized recommendations based on your listening history, stored and processed locally.
  • Artwork and metadata from popular public music databases like MusicBrainz, fanart.tv, and TheAudioDB. More being added via plugins!
  • Fast and responsive UI built with Rust and Slint.
  • Waveform and spectrograph scrubbers.
  • Playlist management.
  • Timestamp reactions, notes, and emoji.
  • Lyrics.
  • Synchronized lyrics.
  • ReplayGain.

Platform Roadmap

  • Desktop App (In Progress)
    • macOS
    • Linux
    • Windows
  • Mobile App
    • iOS
    • Android
  • Car App
    • CarPlay
    • Android Auto
  • Home App
    • Apple tvOS

See TODO.md for additional backlog and wish list items.

Development

I'm writing Dimple as a way to learn Rust. If you see weird things in the code it's probably because I didn't know a better way. Please feel free to email me and let me know! I'm still learning, and I appreciate the help!

I'm not currently accepting PRs or new Issues while I focus on getting a v1.0 finished. Much of the architecture of the app is still in flux and I want to focus on the app for now.

Greetings and Thanks