code: func square(out []int16, volume float64, freq float64, sequence float64) {
  	if freq == 0 {
  		for i := 0; i < len(out); i++ {
  			out[i] = 0
  		}
  		return
  	}
  	length := int(float64(sampleRate) / freq)
  	if length == 0 {
  		panic("invalid freq")
  	}
  	for i := 0; i < len(out); i++ {
  		a := int16(volume * math.MaxInt16)
  		if i%length < int(float64(length)*sequence) {
  			a = -a
  		}
  		out[i] = a
  	}
  }
docs: // square fills out with square wave values with the specified volume, frequency and sequence.