Overview
With the release of Windows 10 comes a new music application, Groove Music. Groove Music has Zune DNA, except that it loses any Windows Media Player (WMP) or Zune syncing capability. The assumption is that the mobile phone is the new MP3 player and file copy is the preferred method of syncing. For better or worse, this is the new normal.
Groove is much closer to the aesthetics of Zune than of WMP, and aside from the lost syncing capability and the toned-down Now Playing screen, it’s a reasonable Zune replacement – as a music player. Syncing, well… not as much. You have your usual views: Artist, Album, Song, Playlists, plus Albums for an Artist. Genre view is missing. Typing will expand the hamburger menu and put the text in the search box, proving immediate search. Of course you have the Marketplace, to purchase and download more content.
Technical Details
Groove is a successor to Zune, although the outward branding does not hint at it. The code library is called ZuneMusic and is found at %userprofile%\AppData\Local\Packages\Microsoft.ZuneMusic_8wekyb3d8bbwe. In the subfolder LocalState you will find plenty of runtime details. LocalState has a folder for the database, which is in ESENT format. There are the ImageCache and imageStore folders that hold album artwork and artists photos from the Zune web services.
As far as the database is concerned, it seems to be similar if not exact to the old Zune database, which was in SQL Server Compact format. The most common tables would be: tblAudioAlbum, tblPerson, tblGenre, and tblTrack to hold the music metadata and tblFolder and tblFile to hold the physical file references.
There are utilities and libraries to work with ESENT databases. One is called ESENT Workbench. If you do want to play around with the database, you may need to do a repair on it because it may not have shut down cleanly. You can run the command “esentutl.exe /p EntClientDb.edb” to clean up the files for reading.
The Groove Music app uses another couple of packages extensively: Microsoft.Windows.CloudExperienceHost and Microsoft.Windows.ContentDeliveryManager, but probably not for primary functions. The majority of data is likely pulled from the Zune web services, since the entries in the matadata database tables have references to GUIDs that, when used with the web services, retrieve the proper artist or album info.
The database for Groove Music appears to sync between computers, which makes a lot of sense for cloud-based music, but may get hairy when different machines have different local files.
Extension Ideas
What can be done with having access to the music database? My impetus for this research was trying to change the Now playing slideshow to use all the artist pictures like Zune does, instead of a single album picture. I haven’t gotten that far yet. But some ideas for apps would be:
- Statistic app showing most played artists, albums, songs, genres
- Smart playlist generator based on statistics
- Statistics on files: sizes, bitrates, dates, and something intriguing called FingerprintData
- Utility to clean, purge, delete, export library
- Post Now Playing, Recently Played to social media
- Create a smart sync utility that utilizes the library’s metadata with file copy