code: func (o *Osc) Fill(buf *audio.PCMBuffer) error {
  	if o == nil {
  		return nil
  	}
  	len := buf.Len()
  	for i := 0; i < len; i++ {
  		switch buf.DataType {
  		case audio.Integer:
  			buf.Ints[i] = int(o.Sample())
  		case audio.Float:
  			buf.Floats[i] = o.Sample()
  		case audio.Byte:
  			// TODO: check the format bitdepth and endianess and convert
  			return errors.New("bytes buffer not yet supported")
  		}
  	}
  	return nil
  }
docs: // Fill fills up the pass PCMBuffer with the output of the oscillator.