docs: @SuppressWarnings("WeakerAccess")
      public synchronized void stop() {
          if (isRunning()) {
              BeatFinder.getInstance().removeBeatListener(beatListener);
              VirtualCdj.getInstance().removeUpdateListener(updateListener);
              running.set(false);
              positions.clear();
              updates.clear();
              deliverLifecycleAnnouncement(logger, false);
          }
      }