code: func (b *PCMBuffer) AsInt16s() (out []int16) {
  	if b == nil {
  		return nil
  	}
  	switch b.DataType {
  	case Integer, Float:
  		out = make([]int16, len(b.Ints))
  		for i := 0; i < len(b.Ints); i++ {
  			out[i] = int16(b.Ints[i])
  		}
  	case Byte:
  		// if the format isn't defined, we can't read the byte data
  		if b.Format == nil || b.Format.Endianness == nil || b.Format.BitDepth == 0 {
  			return out
  		}
  		bytesPerSample := int((b.Format.BitDepth-1)/8 + 1)
  		buf := bytes.NewBuffer(b.Bytes)
  		out := make([]int16, len(b.Bytes)/bytesPerSample)
  		binary.Read(buf, b.Format.Endianness, &out)
  	}
  	return out
  }
docs: // AsInt16s returns the buffer samples as int16 sample values.