synchronized void start(){
  running=true;
  if (!dataPump.hasCachedTempo()) {
    long tickPos=getTickPosition();
    dataPump.setTempoMPQ(tempoCache.getTempoMPQAt(tickPos));
  }
  dataPump.checkPointMillis=0;
  dataPump.clearNoteOnCache();
  dataPump.needReindex=true;
  dataPump.resetLoopCount();
synchronized (lock) {
    lock.notifyAll();
  }
  if (Printer.debug)   Printer.debug(" ->Started MIDI play thread");
}

synchronized void start ( ) { running = true ; if ( ! dataPump . hasCachedTempo ( ) ) { long tickPos = getTickPosition ( ) ; dataPump . setTempoMPQ ( tempoCache . getTempoMPQAt ( tickPos ) ) ; } dataPump . checkPointMillis = 0 ; dataPump . clearNoteOnCache ( ) ; dataPump . needReindex = true ; dataPump . resetLoopCount ( ) ; synchronized ( lock ) { lock . notifyAll ( ) ; } if ( Printer . debug ) Printer . debug ( " ->Started MIDI play thread" ) ; }
start thread and pump . requires up - to - date tempocache
