Design
Ubuntu Touch is no longer maintained as a core product by Canonical. However, the Ubports community are continuing development.
Ubuntu Touch Core Apps Project: |
Music Spec
User story #1: Search
As a user, I want to search my music, so that I can quickly find and listen to a track, album, artist or genre
Functional definition
- Search is to be performed for the given term on track names, album names, and genre name
- If there isn't a performance hit, search results should be returned live while typing
- Optional: type-ahead. When typing a term, present suggestions from previous searches
- Optional: define search syntax and keywords, e.g. "artist:abba", "genre:trash metal"
Design
- Search view with results (phone)
- Search view with results (tablet)
User story #2 Queue
As a user I want to add and remove songs to the play queue, so that I can listen to music and decide what I want to hear
Functional definition
- System for storing the play queue
- Method for selecting the next track either sequentially or randomly based on user settings
Design
- Play queue (phone)
- Play queue (tablet)
- Remove song from play queue (phone)
- Remove song from play queue (tablet)
- Clear play queue (phone)
- Clear play queue (tablet)
User story #3 Share
As a user, I want to share the music I'm listening to, so that my friends know what I'm playing
Functional definition
- Sharing will be carried out via the Friends API, thus the supported services will be those supported by Friends
- Login to the supported social services will be carried out via Online accounts
Design
- Share button
- Share button in panel
User story #4 Scrobble
As a user, I want to scrobble the music I'm listening to, so that I can build a history of plays and tastes
Functional definition
- Initial service to use for scrobbling: last.fm
- An Online Accounts plugin will be required
- Log in will be carried out in the standard System Settings dialog, not via the Music app
- Scrobbling can be added in a settings view in the music app. If no account is configured, the Music app should call System Settings with the trusted online accounts helper to open the accounts page, and then return to the app once the account has been configured
Design
- Settings pane for scrobbling
User story #5 Playlist
As a user, I want to add songs to a play list so I can listen to them in sequence later
Functional definition
- Data store for keeping playlists
- Method for creating and deleting playlists
- Method for adding individual or multiple tracks to playlists
- Optional: Method for sharing playlist content to 3rd parties
- Optional: Sync playlists between devices
Design
- Playlist (phone)
- Playlist (tablet)
- Playlist (desktop)
User story #6 Navigate
As a user I want to navigate the tracks in the current play queue / playlist so that I can select which track to play next
Functional definition
- User interface for selecting skipping forward and backward
- User interface for selecting tracks directly, overriding the current 'next track'
- User interface for toggling shuffle and repeat modes
Design
- Toolbar with play controls (phone)
- Toolbar with play controls (tablet)
- Toolbar with play controls (desktop)
User Story #7 Browse
As a user I want to browse my music by meaningful groups so that I can find music I am in the mood to listen to
Functional definition
- Method to extract and store metadata from music
- Method to filter based on criteria including artist, album
- Optional: Allow filtering by metadata including (but not limited to) year, genre, rating
Design
- Filtered view (phone)
<insert image here>
- Filtered view (tablet)
- Filtered view (desktop)
User Story #8 Rate
As a user I want to rate my music so that I can remember and listen to my favourite tracks later
Functional definition
- Method for rating arbitrary tracks while browsing or playing
- Method for storing ratings of tracks as numeric
- Optional: Method for rating playlists
- Optional: Method for rating artists and albums
Design
- Rating a track while playing (phone)
- Rating a track while another track is being played (phone)
- Rating a playlist (phone)