-
Notifications
You must be signed in to change notification settings - Fork 1
Planned Features
Jason C. McDonald edited this page Apr 20, 2020
·
3 revisions
This is an overview of planned features.
- GUI library: Qt5
- Audio library: Qt5 (Gstreamer)
- ID3 Tags:
mutagenstagger
- Support all major audio formats [via Gstreamer] (AAC, FLAC, OGG, MP3, WAV, etc.).
- Advanced tag management [via ID3]. (See Tagging and Sorting)
- Optional file organization.
- Option 1: Move and organize files to a dedicated folder structure.
- Option 2: Maintain a dedicated folder structure, but create symbolic links for some/all imports.
- Option 3: Leave all files where they are.
- Display embedded and external album covers.
- A separate library section is maintained for audiobooks and spoken word tracks, which absolutely prevents them from being shuffled into music (unless explicitly added to playlist/queue). They can be imported or tagged into this group, and after that, they are NEVER filed under or treated as "music".
- Library database is repairable!
- Automatic computer-wide search for filenames to resolve broken paths; ID3 tags can be used to resolve ambiguity.
- "Dead tracks" are kept in library until removed, but it will just mark them as "dead" and won't try to play them. (Maybe display in greyed-out italics in library?)
- Import tracks from files and CD rips.
- Multiple instances of the same track, with arbitrary start/stop points. (Useful in separating tracks, interludes, hidden tracks, etc.)
- Master play queue, which can contain the following:
- Individual tracks
- Albums
- Playlists
- NOTE: When an Album or Playlist is on queue, the songs are individually added, but displayed to be coming from an album or playlist.
- Play queue can be edited on the fly...
- Play Now: Adds to beginning, pushing current song to next slot.
- Play Next Track: Adds to beginning of queue after current track.
- Play Next: Adds to beginning of queue, after current set (album/playlist).
- Play Later: Adds to end of queue.
- Replace Queue: Removes all tracks from queue and sets as next.
- Shuffle
- Reshuffle: Mix up the queue again.
- Surprise Mode: Conceal what's next on the queue (sometimes I like not knowing).
- Playlists are bound to database entries, not filenames, so they can be exported and imported.
- Arbitrary internal tags.
- Arbitrary binding between internal and ID3 tags.
- Mood tags: Select how a song makes you feel, and this will be used to generate mood-based playlists.
- Filter by "Complete albums only"
- Rating = 1 removes from circulation by default, but leaves in library.
- Mood tags: used to group music by what you want to listen to when you're feeling a particular way. You can add more, but the defaults are: (I'm feeling...)
- Happy
- Powerful
- Sleepy
- Peaceful
- Focused
- Thoughtful
- Sad
- Angry
- Activity tags: used to group music by what you're doing. These can also be linked/aliased to Moods. You can add more, but the defaults are:
- Working
- Studying
- Partying
- Relaxing
- Sleeping
- Inspiration tags: project-specific tags, especially used (by me) for creating book soundtracks. Involves:
- Project: These can also be linked together, so Project A contains all Project B. (Useful for having Series and Book designations).
- Notes: This can be used to indicate the role the song has in the project.
- Static playlists.
- Automatic playlists based on rules.
- Advanced logic on automatic playlists:
- Define multiple sets of conditions, internally joining multiple rules with "any" or "all".
- Select "any" or "all" on the sets of conditions.
- Note: It should be possible to define any conceivable tag-based ruleset, no matter how complicated.
- Playlist cover images: These can optionally be displayed in place of the album cover when the playlist is in queue.
- Playlists can be exported and imported.
- Playlist Interface: Customize what fields are displayed on a given playlist's Browse and Now Playing screens.
- Several automatic playlists are generated.
- Every Mood
- Every Genre
- New Music
- Forgotten Tracks (rating >= 4, not recently played)
- Unplayed Tracks
- Unplayed Albums
- Favorite Tracks (high play count AND/OR rating >= 4)
- Favorite Albums (full album, high play count AND/OR rating >= 4)
- DJ Mode: Starts randomly playing songs from your entire music library, with a preference towards Favorite and Unplayed tracks. As it plays tracks, it will tally scores for each tag encountered (except rating, which is always ignored). You can do one of three things on any track:
- Thumbs Up: Every tag on the track will receive +1 to its score.
- Thumbs Down: It will immediately skip the track. Every tag on the track will receive -1 to its score.
- Do Nothing: By default, this won't do anything. You can optionally set it to infer Thumbs Up if you let it play through ("silence is agreement").
- Moodifer: Uses DJ Mode to expand a Mood or Activity (the "target").
- Ignores the target in the tag scoring.
- Thumbs Up adds the current track to the target.
- Thumbs Down removes the current track from the target if it's there; adds a "not " property to prevent future suggestion.
- "Undo Session" option to reverse changes made to a Mood or Activity.
- Skip tracking: If a song has been frequently skipped, the user may be asked if they want to suppress the song.
- Welcome: Displays suggestions and several of the automatic playlists. It is different every time, and never leaves you staring at a boring alphabetical list.
- Includes:
- Last Played
- Random Favorite Album
- Random Unheard Album
- Random Artist (seeded from Random Favorite Tracks)
- Random Playlist
- Random Favorite Track (seeds DJ mode)
- Random Unheard Track (seeds DJ mode)
- Includes:
- Now Playing: Distraction-free screen displaying...
- The current album (or playlist) cover image.
- The current track name
- The current track number (optional)
- The current track artist
- The current rating (interactive)
- Up to 3 arbitrary fields; by default, Album and Year
- When in DJ Mode, includes Thumbs Up/Thumbs Down buttons.
- Queue may be toggled on the side.
- Mood/Activity tags
- Browse: Allows you to browse and organize your library.
- Manager: Controls settings, tag binding, and filesystem integration.
- MPRIS D-Bus Interface: Fully implement Player, Playlists, and TrackList. This should enable:
- GNOME Media Player Indicator integration
- Media keys integration
- Last.fm integration
- Internet radio streaming
These are some wild ideas we may play with later, but not anytime soon.
- Environmental sounds.
- Control from command line while running.
- CLI-only interface (may lack many advanced features).
- Attach YouTube links to tracks to stream the music video in-app.
- Stream from some external services (Archive.org, FreeMusicArchive)
- Download from some external services (Archive.org, FreeMusicArchive)
- Automatic cover fetching
Yeah, sure, some of this would be cool, but to avoid feeping creaturism, we won't be adding the following.
- We won't play videos.
- We won't record audio.
- Automatic music analysis. (We may add this later if a third-party library surfaces, but otherwise, no.)
- Visualizations. (These are more distracting than anything, and anyway, they're resource heavy.)
- I don't own any music player devices, so I won't be supporting syncing them.
- We won't integrate with music stores.
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.