code: func TempoEvent(bpmF float64) *Event {
  	ms := uint32(60000000 / bpmF)
  
  	// bpm is expressed in in microseconds per MIDI quarter-note
  	// This event indicates a tempo change.  Another way of putting
  	// "microseconds per quarter-note" is "24ths of a microsecond per MIDI
  	// clock".  Representing tempos as time per beat instead of beat per time
  	// allows absolutely exact dword-term synchronization with a time-based sync
  	// protocol such as SMPTE time code or MIDI time code.  This amount of
  	// accuracy provided by this tempo resolution allows a four-minute piece at
  	// 120 beats per minute to be accurate within 500 usec at the end of the
  	// piece.  Ideally, these events should only occur where MIDI clocks would
  	// be located Q this convention is intended to guarantee, or at least
  	// increase the likelihood, of compatibility with other synchronization
  	// devices so that a time signature/tempo map stored in this format may
  	// easily be transferred to another device.
  	return &Event{
  		MsgType:        uint8(EventByteMap["Meta"]),
  		Cmd:            uint8(MetaByteMap["Tempo"]),
  		MsPerQuartNote: ms,
  	}
  }
docs: // TempoEvent returns a new tempo event of the passed value.