docs: public void setTempo(double bpm) {
          if (bpm == 0.0) {
              throw new IllegalArgumentException("Tempo cannot be zero.");
          }
  
          final double oldTempo = metronome.getTempo();
          metronome.setTempo(bpm);
          notifyBeatSenderOfChange();
  
          if (isTempoMaster() && (Math.abs(bpm - oldTempo) > getTempoEpsilon())) {
              deliverTempoChangedAnnouncement(bpm);
          }
      }