The Story behind
This is a how-to guide how to migrate your music library with mobile sync from MediaMonkey to Navidrome/Feishin/Symfonium. MediaMonkey has been my music library organizer for at least a decade and I have been mostly satisfied over the years. So why switch? If you are satisfied with MediaMonkey and plan to stay on Windows, just keep MediaMonkey.
Beeing a Linux user from nearly day one, starting with Linux 0.11, I am now completely running on Linux for years, leaving just a little dual-boot option for those few applications that I need and which are not running on Linux. And for the last years, except from gaming, MediaMonkey was the last remaining Windows application for me.
Also, MM has a few annoying flaws. Sometimes, songs are not synced to the device an I cannot figure out why. Say, I bought a new album in mp3-format, put everything in a playlist with new songs and for whatever reason, one or two songs are always missing on the device. This gets more annoying in a playlist for dancing rounds, which always consist of five different dances in a given order when by magic, one of these songs is missing. And sometimes, the cover images are missing on a few tracks. Not a showstopper, but this hasn't been fixed in years.
It was not so easy to switch because of my use case. As a ballroom dancer, I regularly buy new albums with music for our ballroom training. I imported the tracks into MediaMonkey and sync them with the MM Android App. I created smart playlist, eg. per dance like Quickstep and by rating and synced these to my phone. Rating is something, we mostly do in the car, so I also need syncing back from the app to MM on Windows.
The concept
MediaMonkey comes with a built-in sync server in the desktop app. In the Android app, just choose the playlists you want to sync and you are done ... except for the some-tracks-wont-sync issue. There is no 1:1 equivalent in the Linux world. But there is a concept, which might look more complicated at first look, but in the end offers you more flexibility and platform independence.
You need to go from 2 components (Desktop app and phone app) to 3 components: a media server running in the background, a local client for your desktop and a mobile client for your phone with sync capabilities.
In my case, I decided to go with Navidrome as media server, Feishin as my desktop client and Symfonium as Android client. You can mix and match these to your needs, but to keep things easy and give you cookbook recipe to switch, I will concentrate on these. Important: for my use case I need clients that support 5-star ratings and smart playlists. Not all clients have these features.
The server: Navidrome
There a other servers out there with broader functionality, like movies management. But Navidrome concentrates on Music, keeping it simpler. Just look at their long list of compatible client apps to see, what choice it offers. It is available for several platforms, like Windows and Mac. Installation on Linux is simple. On Arch-based Manjaro, I found it in Add/Remove Software and installed it. It is a systemd service, start it with
sudo systemctl start navidrome.service; systemctl status navidrome.service
Point your Navidrome server to your music libraries, it will immediate start indexing your music and the 1st step is already done. But wait, where is all my stuff? My playlists, smart playlists and ratings that I created over decades. Where is my info in my custom fields? Don't worry, there is a way to get all that stuff on your new platform. But there is some one-time setup stuff needed.
Import Playlists
Static playlists are the easiest part and this is also what is needed to cover the rest. In MediaMonkey, export all playlists you want to migrate as .m3u to a directory in your media library. Navidrome will pick up the playlists and import them.
There is no direct way to import ratings and smart playlists to Navidrome because there is no standard for smart playlists. And Navidrome is a multi user system, so ratings can be individual for each user. But as we can easily import playlist, we can use these as a workaround.
For ratings, in MediaMonkey create Smart Playlists for your ratings and export these as .m3u to your playlists directory, so Navidrome will pick them up. For example create a smart playlist for all titles with rating=5 and export it to rating-5.m3u Also, in MediaMonkey I made use of their custom tags to organize my Ballroom music like genre=Ballroom and custom1=Quickstep. These are non-standard tags, but multiple genres will help here. These can be sparated by a semiolon, for example genre=Ballroom;Quickstep;QS. The rest is the same as with ratings: create smart playlists with all titles that match the custom tags and export these also as .m3u to your playlists directory.
A more powerful player: Feishin
Now that we have all playlists imported into Navidrome, we need to re-create the ratings. And here comes the flexibility of this solution comes into play. What we would want to do is to tag all titles in the imported playlists with the derived metadata. For example, tag all titles in the 3-stars playlist with a 3-star rating. But the standard player from Navidrome cannot do that. But Feishin can batch tag files, so next install Feishin. Manjaro finds it in AUR, it is also available on Flathub or just download it directly from github.
Feishin will do the trick: mark all titles in a playlist and give all a common rating. I haven't found a good solution for batch genre editing. So to take over all my information from custom tags, I already exported these as genres in MediaMonkey. When I get new tracks, I set the genres in Kid first.
Feishin is also capable of creating smart playlists, so you can rebuild all of them here. As I don't have much more than a dozen smart playlists, this was done in half an hour for my setup. So for the server/desktop side, we are already done.
Mobile client and sync
As player for my Android phone, I picked Symfonium from the AppStore. Connect it to your pc or server on first startup and you are immediately good to go. Only two things need to be set up to have similar functionality to MediaMonkey.
First, recreate all smart playlist that you want on your device again in Symfonium. That is a bit cumbersome, because you have to do this twice. But on the other hand, the smart playlists are then updated on the device. I have a smart playlist Ballroom-unrated for all new songs, that need a rating from us. On MediaMonkey, when we rated songs they still remain in that playlist until I sync them back to the desktop. And as that would require booting into Windows, I did not do that very often. So we often get tracks that already have been rated when shuffeling through that list. Not a big thing, but Symfonium immediate updates the list on the device so we don't get the songs offered for rating twice.
Syncing playlists is as easy as can be. Open the properties of the playlist, go to Offline cache and downloads and click Add to permanent cache. So we have all the training music on the phone and if we make any changes to the metadata on the road, these will automatically got synced back, when Symfonium gets a Connection to Navidrome again. Sync is faster and seems more reliable compared to MediaMonkey.
Summary
What took me a bit time was figuring out everything for the first time. There are so many options to choose from and I tried different servers and clients. But with a plan, the whole migration is done in 1-2 hours. This is what this guide is meant for.
I haven't tested, if the Navidrome/Feishin/Symfonium combination does absolutely everything, that MediaMonkey does. But it does everything I need and works faster and more reliable.
Keine Kommentare:
Kommentar veröffentlichen