code: function(start, end) {
      var data_length = this.adapter.length;
  
      if (end < 0) {
        throw new RangeError("End point must be non-negative [" + Number(end) + " < 0]");
      }
  
      if (end < start) {
        throw new RangeError("End point must not be before the start point [" + Number(end) + " < " + Number(start) + "]");
      }
  
      if (start < 0) {
        throw new RangeError("Start point must be non-negative [" + Number(start) + " < 0]");
      }
  
      if (start >= data_length) {
        throw new RangeError("Start point must be within range [" + Number(start) + " >= " + data_length + "]");
      }
  
      if (end > data_length) {
        end = data_length;
      }
  
      this.offset_start = start;
      this.offset_end = end;
      this.offset_length = end - start;
    }
docs: Clamp an offset of data upon the whole response body.
  Pros: it's just a reference, not a new array. So it's fast.
  
  ```javascript
  var waveform = WaveformData.create({ ... });
  
  console.log(waveform.offset_length);   // -> 150
  console.log(waveform.min[0]);          // -> -12
  
  waveform.offset(20, 50);
  
  console.log(waveform.min.length);      // -> 30
  console.log(waveform.min[0]);          // -> -9
  ```
  
  @param {Integer} start New beginning of the offset. (inclusive)
  @param {Integer} end New ending of the offset (exclusive)