docs: function normalize (format) {
  	if (!format) format = {}
  
  	//bring default format values, if not present
  	formatProperties.forEach(function (key) {
  		if (format[key] == null) {
  			format[key] = defaultFormat[key]
  		}
  	})
  
  	//ensure float values
  	if (format.float) {
  		if (format.bitDepth != 64) format.bitDepth = 32
  		format.signed = true
  	}
  
  	//for words byte length does not matter
  	else if (format.bitDepth <= 8) format.byteOrder = ''
  
  	//max/min values
  	if (format.float) {
  		format.min = -1
  		format.max = 1
  	}
  	else {
  		format.max = Math.pow(2, format.bitDepth) - 1
  		format.min = 0
  		if (format.signed) {
  			format.min -= Math.ceil(format.max * 0.5)
  			format.max -= Math.ceil(format.max * 0.5)
  		}
  	}
  
  	//calc id
  	format.id = stringify(format)
  
  	return format
  }