func CheckSMTPE(SMTPEFrames int8) bool {
	switch SMTPEFrames {
	case NOSMTPE, SMTPE24, SMTPE25, SMTPE29, SMTPE30:
		return true
	default:
		return false
	}
}
CheckSMTPE return true if SMTPEFrames is valid values
package smf
const (
	NOSMTPE int8 = 0
	SMTPE24 int8 = -24
	SMTPE25 int8 = -25
	SMTPE29 int8 = -29
	SMTPE30 int8 = -30
)
const (
	TicksMaxValue uint16 = 0x7FFF
	SMTPETicksMaxValue uint16 = 0xFF
)
type Division struct {
	ticks       uint16
	smtpeFrames int8
}
func (d *Division) GetTicks() uint16 {
	return d.ticks
}
func (d *Division) GetSMTPE() int8 {
	return d.smtpeFrames
}
func (d *Division) IsSMTPE() bool {
	return d.smtpeFrames != NOSMTPE
}
func NewDivision(ticks uint16, SMTPEFrames int8) (*Division, error) {
	if !CheckSMTPE(SMTPEFrames) {
		return nil, &MidiError{"No supported SMTPE"}
	}
	if SMTPEFrames != NOSMTPE && ticks > SMTPETicksMaxValue {
		return nil, &MidiError{"Wrong ticks for SMTPE"}
	}
	if ticks > TicksMaxValue {
		return nil, &MidiError{"ticks has msb = 1"}
	}
	return &Division{ticks: ticks, smtpeFrames: SMTPEFrames}, nil
}