code: private void setTempoMaster(DeviceUpdate newMaster) {
          DeviceUpdate oldMaster = tempoMaster.getAndSet(newMaster);
          if ((newMaster == null && oldMaster != null) ||
                  (newMaster != null && ((oldMaster == null) || !newMaster.getAddress().equals(oldMaster.getAddress())))) {
              // This is a change in master, so report it to any registered listeners
              deliverMasterChangedAnnouncement(newMaster);
          }
      }
docs: Establish a new tempo master, and if it is a change from the existing one, report it to the listeners.
  
  @param newMaster the packet which caused the change of masters, or {@code null} if there is now no master.