Flow is a terminal music player, analyzer and cue point editor that aims to replace Rekordbox, Denon's Engine Prime, SeratoDJ etc. by being platform agnostic. Currently only the basic player capabilities are implemented, see Roadmap.
- UI (tui-realm or tui-rs)
- Mockup/Design
- Waveform - Overview
- Waveform - Live Preview
- File list viewer
- Playlists Editor
- Player (Symphonia)
- Async Event handling
- Play/Pause
- Seeking
- Cue
- Track Analysis
- BPM Detection (Aubio)
- Beatgrid Detection (Aubio)
- Waveform
- Creating cue points
- Data Import/Export
- Storing and loading track analysis results
- Exporting data in the following formats:
- Rekordbox with rekordcrate
- Denon engine prime
- SeratoDJ
- Bincode, since Kaitai doesn't support serialization yet, we're bound to a rust native solution
- Kaitai for serializing rekordbox file formats. There are also Kaitai rust bindings and a Kaitai-like serialization crate, but these seem to be outdated.
- rekordcrate -> This looks the most promising of a solution!
- Aubio for BPM, Beatgrid, Onset-detection and more
- tui-rs for genereal TUI implementation
- [Bliss](https://rustrepo.com/repo/Polochon-street-bliss-rs-rust-audio-and-music for smart playlists)
- Kaitai rekordbox database format, more info here