searchTrackPosition (tracks, currentTime) {
    let
      lo = 0,
      hi = tracks.length - 1,
      mid,
      start,
      stop
    ;

    while (lo <= hi) {
      mid = ((lo + hi) >> 1);
      start = tracks[mid].start;
      stop = tracks[mid].stop;

      if (currentTime >= start && currentTime < stop) {
        return mid;
      } else if (start < currentTime) {
        lo = mid + 1;
      } else if (start > currentTime) {
        hi = mid - 1;
      }
    }

    return -1;
  }
Perform binary search to look for proper track index

@param {Object[]} tracks
@param {Number} currentTime
@return {Number}