code: public double getValueAt(int component, int offset) {
      if (component < pointers.length) {
        if (pointers[component] == null) return 0;
        else if (sparse[component]) {
          for (int j = 0; j < pointers[component].length / 2; j++) {
            int sparseIndex = (int) pointers[component][j * 2];
            if (sparseIndex == offset) return pointers[component][(j * 2) + 1];
          }
        } else {
          if (offset < pointers[component].length) {
            return pointers[component][offset];
          }
        }
      }
      return 0;
    }
docs: This assumes infinite padding with 0s. It will return you 0 if you're OOB (use getSegmentSizes() to check, if
  that's undesirable behavior). Otherwise it will return you the correct value.
  
  @param component the index of the component to retrieve a value from
  @param offset    the offset within that component
  @return the value retrieved, of 0 if OOB