docs: private void handleUpdate(final TrackMetadataUpdate update) {
          boolean foundInCache = false;
  
          if (update.metadata == null || update.metadata.trackType != CdjStatus.TrackType.REKORDBOX) {
              clearDeck(update);
          } else {
              // We can offer waveform information for this device; check if we've already looked it up. First, preview:
              final WaveformPreview lastPreview = previewHotCache.get(DeckReference.getDeckReference(update.player, 0));
              if (lastPreview == null || !lastPreview.dataReference.equals(update.metadata.trackReference)) {  // We have something new!
  
                  // First see if we can find the new preview in the hot cache
                  for (WaveformPreview cached : previewHotCache.values()) {
                      if (cached.dataReference.equals(update.metadata.trackReference)) {  // Found a hot cue hit, use it.
                          updatePreview(update, cached);
                          foundInCache = true;
                          break;
                      }
                  }
  
                  // If not found in the cache try actually retrieving it.
                  if (!foundInCache && activePreviewRequests.add(update.player)) {
                      clearDeckPreview(update);  // We won't know what it is until our request completes.
                      // We had to make sure we were not already asking for this track.
                      new Thread(new Runnable() {
                          @Override
                          public void run() {
                              try {
                                  WaveformPreview preview = requestPreviewInternal(update.metadata.trackReference, true);
                                  if (preview != null) {
                                      updatePreview(update, preview);
                                  }
                              } catch (Exception e) {
                                  logger.warn("Problem requesting waveform preview from update" + update, e);
                              } finally {
                                  activePreviewRequests.remove(update.player);
                              }
                          }
                      }).start();
                  }
              }
  
              // Secondly, the detail.
              foundInCache = false;
              final WaveformDetail lastDetail = detailHotCache.get(DeckReference.getDeckReference(update.player, 0));
              if (isFindingDetails() && (lastDetail == null || !lastDetail.dataReference.equals(update.metadata.trackReference))) {  // We have something new!
  
                  // First see if we can find the new detailed waveform in the hot cache
                  for (WaveformDetail cached : detailHotCache.values()) {
                      if (cached.dataReference.equals(update.metadata.trackReference)) {  // Found a hot cue hit, use it.
                          updateDetail(update, cached);
                          foundInCache = true;
                          break;
                      }
                  }
  
                  // If not found in the cache try actually retrieving it.
                  if (!foundInCache && activeDetailRequests.add(update.player)) {
                      clearDeckDetail(update);  // We won't know what it is until our request completes.
                      // We had to make sure we were not already asking for this track.
                      new Thread(new Runnable() {
                          @Override
                          public void run() {
                              try {
                                  WaveformDetail detail = requestDetailInternal(update.metadata.trackReference, true);
                                  if (detail != null) {
                                      updateDetail(update, detail);
                                  }
                              } catch (Exception e) {
                                  logger.warn("Problem requesting waveform detail from update" + update, e);
                              } finally {
                                  activeDetailRequests.remove(update.player);
                              }
                          }
                      }).start();
                  }
              }
          }
      }