Music application implementation

Registered by Michael Hall on 2013-05-22

Initial Music Development

New blueprint created for tracking items in the current cycle.

Blueprint information

Ubuntu Core Apps Drivers
Ubuntu Core Apps Drivers
Needs approval
Music App Developers
Series goal:
Accepted for coreapps-13.10
Milestone target:
milestone icon coreapps-13.10-month-6
Started by
Michael Hall on 2013-05-29
Completed by
Victor Thompson on 2013-11-02

Related branches



find local files and automatically push them to player app without user intervention
Sort and filter music into lists by: songs, albums, artists, playlists

Now playing screen with typical playback functionality: play, pause, stop, fast forward to next track, back to previous track, scrubber, shuffle, repeat
Now playing queue
Playlist viewing and playlist management

Tweet / Facebook / email what I'm listening to?

Victor Thompson's music app:

Daniel Holm's music app:

Lucas Romero's mockups:

# Dogfooding goals July 2013

- Read in music from ~/Music.
- Browse a list of artists.
- Browse albums by an artist.
- Browse songs by an artist.
- Play a song, with transport controls (Play, Stop/Pause, Skip Back/Forwards).
- Shuffle.
- Play music while the app is not focused.
- Bonus: pull in album cover/details from the net.

# Updates

[dpm, 2013-07-16]
- GSettings app isolation is not in scope for 13.10, so we'll be recommending app developers to keep using LocalStorage for settings
- I've suggested to postpone Dash interaction until we hear from the Unity team on the outcome of the media scanner research they are currently doing


Work Items

Work items for coreapps-13.10-month-2:
[mhall119] Package Daniel Holm's app for testing by Design team: DONE
[linapio] Provide initial list of functional requirements: DONE
[mhall119] Schedule weekly IRC meetings: DONE
[dpm] Schedule weekly Design meetings: DONE
[mhall119] Setup lp:music-app with Daniel's code: DONE
[mhall119] Setup ~music-app-dev team memberships: DONE
[vthompson] Add ability to automatically start the next track when one ends: DONE
[vthompson] Add playback order controls (queue, random): DONE
[vthompson] Implement Playback controls: DONE
[vthompson] Implement Playback options (repeat, shuffle, etc): DONE

Work items for coreapps-13.10-month-3:
[vthompson] Setup Autopilot: DONE
[vthompson] Use LocalStorage for music database: DONE
[vthompson] Read from music database to display tracks in the app: DONE
[vthompson] Test playing a song: DONE
[vthompson] Test pausing a song: DONE
[dkessel] Test loading your library: DONE
[danielholm] Initial playlist support: DONE
[vthompson] Implement Artist listview: DONE
[vthompson] Implement Album listview: DONE
[danielholm] Implement Playlist listview: DONE
[danielholm] Implement Queue listview: DONE

Work items for coreapps-13.10-month-4:
[vthompson] Test goto next song: DONE
[danielholm] Play tracks in playlist: DONE

Work items for coreapps-13.10-month-5:
[danielholm] HUD: DONE
[vthompson] When viewing an album, show album data in header and simplify track items: DONE
[ahayzen] Show play queue above/below now playing and remove from playlists: DONE
[vthompson] Show artist data in header and remove artist name from items: DONE
[vthompson] Add tab 'Songs' - current 'Music' tab goes here: DONE
[vthompson] Add 'Recently playing', 'Genres' to the Music Tab: DONE
[ahayzen] Swipe to remove items from queue and playlists: DONE
[danielholm] Add to track to playlist as a sheet, not dialog: DONE
[danielholm] Make visible the number of items in a playlist in the title 'Test (5)': DONE
[ahayzen] Add support in the UI for an empty play queue: DONE
[vthompson] Implement Grilo support: DONE
[vthompson] Add the listing of genres to the Music Tab: DONE
[vthompson] Investigate using Dash music search for results and meta-data: DONE
[danielholm] Add support for arguments: DONE

Work items for coreapps-13.10-month-6:
[danielholm] Implement NEW Playlist listview: DONE
[vthompson] Test goto prev song: DONE
[danielholm] Implement Add To Playlist option expander: DONE
[danielholm] New Settings UI/UX: DONE
[ahayzen] Undo functionality when swipe to remove: DONE
[danielholm] Add support for URL Dispatcher: DONE
[vthompson] Store usage statistics for listing the most recent items played: DONE
[vthompson] Create Powerd QML bindings to keep app alive: DONE
[lool] Use Powerd QML bindings in the Ubuntu Touch environment: DONE
[ahayzen] Allow reordering of items in play queue and playlist: DONE
[vthompson] Place single album view in a sheet: DONE
[vthompson] Test shuffle capability: DONE
[vthompson] Test mp3 playback: DONE

Work items:
[vthompson] Investigate how to add Favorites to Dash: POSTPONED
[mikemc] Provide Qt/QML bindings for U1 Music Streaming: INPROGRESS
Change settings (and maybe music library) from LocalStorage to GSettings (lp:gsettings-qt): POSTPONED
Implement Favorites listview: TODO
Implement Songs listview: DONE
Implement Song Options listitem: DONE
Implement Delete Song dialog: TODO
Implement Playback queue Options listitem: DONE
Implement phone form-factor Tabs layout: TODO
[danielholm] Scrobble support (using Last.FM): INPROGRESS
[danielholm] Sync playlist using Ubuntu One: POSTPONED
Show albums in gallery like view: TODO
[danielholm] Each row should have optional addition controls: DONE
Extend reorder support to scroll the viewport up/down and dodge the other items while reordering: TODO
Second level of pagestack needs to show info from parent at top of page: DONE
[ahayzen] Rewrite toolbar to support controls and overflow: DONE
[danielholm] Read playlist files into local database: POSTPONED
[danielholm] Add usermetrics: DONE

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.