docs: private void deliverWaveformDetailUpdate(final int player, final WaveformDetail detail) {
          if (!getWaveformListeners().isEmpty()) {
              SwingUtilities.invokeLater(new Runnable() {
                  @Override
                  public void run() {
                      final WaveformDetailUpdate update = new WaveformDetailUpdate(player, detail);
                      for (final WaveformListener listener : getWaveformListeners()) {
                          try {
                              listener.detailChanged(update);
  
                          } catch (Throwable t) {
                              logger.warn("Problem delivering waveform detail update to listener", t);
                          }
                      }
                  }
              });
          }
      }