func NewReader(in io.Reader) (*Reader, error) {
	r := new(Reader)
	r.r.source = in
	r.r.seeker, _ = in.(io.Seeker)
	if err := r.init(); err != nil {
		return nil, err
	}
	return r, nil
}
NewReader creates a new Reader.
Some of the returned reader's methods will only work if in also implements
io.Seeker
package oggvorbis
import (
	"errors"
	"io"
	"github.com/jfreymuth/vorbis"
)
type Reader struct {
	r   oggReader
	dec vorbis.Decoder
	position       int64
	buffer         []float32
	originalBuffer []float32
	toSkip         int
	length int64
}