code: func New(r io.Reader, options ...OptionsFunc) (*Waveform, error) {
  	// Generate Waveform struct with sane defaults
  	w := &Waveform{
  		// Read from input stream
  		r: r,
  
  		// Read audio and compute values once per second of audio
  		resolution: 1,
  
  		// Use RMSF64Samples as a SampleReduceFunc
  		sampleFn: RMSF64Samples,
  
  		// Generate solid, black background color with solid, white
  		// foreground color waveform using ColorFunc
  		bgColorFn: SolidColor(color.White),
  		fgColorFn: SolidColor(color.Black),
  
  		// No scaling
  		scaleX: 1,
  		scaleY: 1,
  
  		// Normal sharpness
  		sharpness: 1,
  
  		// Do not scale clipping values
  		scaleClipping: false,
  	}
  
  	// Apply any input OptionsFunc on return
  	return w, w.SetOptions(options...)
  }
docs: // New generates a new Waveform struct, applying any input OptionsFunc
  // on return.