Music application implementation

Registered by Michael Hall

Initial Music Development

New blueprint created for tracking items in the current cycle.
https://blueprints.launchpad.net/ubuntu-phone-commons/+spec/coreapps-1404-music-dev

Blueprint information

Status:
Complete
Approver:
Ubuntu Core Apps Drivers
Priority:
Undefined
Drafter:
Ubuntu Core Apps Drivers
Direction:
Needs approval
Assignee:
Music App Developers
Definition:
New
Series goal:
Accepted for coreapps-13.10
Implementation:
Implemented
Milestone target:
milestone icon coreapps-13.10-month-6
Started by
Michael Hall
Completed by
Victor Thompson

Related branches

Sprints

Whiteboard

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

Play
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

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

Victor Thompson's music app:
  https://code.launchpad.net/ubuntu-music-app

Daniel Holm's music app:
  https://code.launchpad.net/musicapp

Lucas Romero's mockups:
  http://lucasromerodb.blogspot.co.uk/2013/05/music-app-for-ubuntu-touch.html

# Dogfooding goals July 2013

https://wiki.ubuntu.com/Touch/CoreApps/Dogfooding#Music

- 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.