====== MusicMaster and mAirListDB Synchronization via Nexus ====== This tutorial explains how to synchronize mAirListDB with [[http://www.musicmaster.com|MusicMaster]] through the [[https://www.musicmaster.com/nexus.php|MusicMaster Nexus API]]. It can be used as an alternative to the [[tutorials:musicmaster:mairlistdb-sync-files|traditional file-based synchronization]]. In particular, this interface supports the following tasks: * Library Synchronization: (Newly added) songs in the mAirListDB library will be added to the MusicMaster library * Schedule import: The music schedule created in MusicMaster will be incorperated into the mAirListDB Mini Scheduler process, so that it is imported into the mAirListDB playlist. The feature described her was introduced in mAirList 6.1. Please check if it is covered by your particular license. ===== Prerequisites ===== Generally, you need a MusicMaster license that includes the Nexus server, and a mAirList license that includes the NexusSync module. Before you can use the synchronization, you must set up the Nexus API in the mAirList configuration. Please follow the instructions found here: [[tutorials:musicmaster:nexus-api-setup|MusicMaster Nexus API Setup]] In particular, make sure that the //ID// field is properly mapped to a MusicMaster field; this is where mAirList will store the internal database IDs during library synchronization, and it is also used to identify tracks during schedule import. ===== Library Synchronization ===== Library synchronization is actually **one-way**: You always add new songs (as audio files) to mAirListDB first, then use synchronization to create or update the corresponding datasets in MusicMaster. To perform the synchronization, open the mAirListDB app and go to the Library tab. In the main menu, click //Database -> Export//, and choose one of //Entire library//, //current view// or //current selection//. A dialog will appear that asks for the desired export format: {{ :tutorials:musicmaster:pasted:20170831-180311.png?400 }} There are two relevant entries here: * MusicMaster Nexus (new items only) -- only new songs will be added, existing songs will not be updated. * MusicMaster Nexus (new items and updates) -- new songs will be added, and existing songs will be updated. For updates, mAirList will check if there is a song with the same internal Database ID (in the ID field in MusicMaster). If you have multiple Nexus APIs set up in the config, you must also select which Nexus server to synchronize with. ===== Schedule Import ===== This section is about scheduling export, that is, exporting the music log created in MusicMaster and loading it into the mAirListDB playlist view. We assume that you have used the Automatic Scheduler in MusicMaster to create some music schedules. It is not necessary to export the schedule as file, as mAirList will pick it up directly through the Nexus API. We can now set up the import in mAirListDB, using appropriate hour and music templates. **Because even when we use MusicMaster as an external music scheduling software, we will still use the mAirListDB Mini Scheduler in order to import the MusicMaster schedule into the mAirListDB playlist!** We will just advise the Mini Scheduler to request the schedule via Nexus rather than using the internal music scheduling function. (In fact, you can even combine the internal scheduler and Nexus import, e.g. use the hour template to schedule fixed elements like news breaks and advertising, and only use MusicMaster for the music items.) So the first thing to do is to set up one or more Hour Templates in mAirListDB, as described in the [[tutorials:mairlistdb:music-scheduling|mAirListDB Music Scheduling Tutorial]]. In the most simple case, the hour template will just contain the //Start of Hour// and //End of Hour marker//, and then one large //Fill with music// section in between where content from MusicMaster will be inserted: {{ :tutorials:musicmaster:pasted:20170821-153931.png?400 }} Note: Use //Music block// instead of //Fill with music// in order to import the entire log MusicMaster generated for that hour, including any possible overplanning. Next, we create a new Music Template. In the definition of Block 1 (we only work with Block 1 all the time), set the source to //External scheduler//: {{ :tutorials:musicmaster:pasted:20170821-154306.png?400 }} Then click //Configure// and set the import source to "MusicMaster Nexus": {{ :tutorials:musicmaster:pasted:20170831-181222.png?400 }} Click the //Configure// button for the import source, and select the Nexus API that you wish to import from: {{ :tutorials:musicmaster:pasted:20170831-181300.png?400 }} You can leave all other settings for the playlist import untouched, as they only affect file import, not Nexus import. That's actually all. When you run the Mini Scheduler now, it will grab the schedule from MusicMaster and insert it into the generated playlist.