protected void movePlayHead(int delta) {
      if (flip && Math.abs(delta) == 1) return;
      if (Math.abs(delta) > 1) delta /= 2;
      SimStream stream = model.getStream();
      int index = model.getPlayHead() + delta;
      if (!model.isLoaded()) return;
      while (index > stream.getMaxIndex()) {
         model.tick();
      }
      model.setPlayHead(index);
      if (index <= stream.getMinIndex()) pstate = 0;
   }