code: func (c *Parser) NextChunk() (*Chunk, error) {
  	if c == nil {
  		return nil, errors.New("can't calculate the duration of a nil pointer")
  	}
  	id, size, err := c.IDnSize()
  	if err != nil {
  		return nil, err
  	}
  
  	// all RIFF chunks (including WAVE "data" chunks) must be word aligned.
  	// If the data uses an odd number of bytes, a padding byte with a value of zero must be placed at the end of the sample data.
  	// The "data" chunk header's size should not include this byte.
  	if size%2 == 1 {
  		size++
  	}
  
  	ch := &Chunk{
  		ID:   id,
  		Size: int(size),
  		R:    c.r,
  	}
  	return ch, nil
  }
docs: // NextChunk returns a convenient structure to parse the next chunk.
  // If the container is fully read, io.EOF is returned as an error.