sequence.go
func (s *FileSequence) Split() FileSequences {
	if s.frameSet == nil {
		// Return a copy
		return FileSequences{s.Copy()}
	}

	franges := strings.Split(s.frameSet.FrameRange(), ",")
	if len(franges) == 1 {
		// Return a copy
		return FileSequences{s.Copy()}
	}

	var buf strings.Builder

	// Write the dir and base components once
	buf.WriteString(s.dir)
	buf.WriteString(s.basename)

	list := make(FileSequences, len(franges))
	var seq *FileSequence
	for i, frange := range franges {
		buf.WriteString(frange)
		buf.WriteString(s.padChar)
		buf.WriteString(s.ext)

		seq, _ = NewFileSequence(buf.String())
		list[i] = seq

		buf.Reset()
	}
	return list
}
func (s *FileSequence) Split() FileSequences {
	if s.frameSet == nil {
		// Return a copy
		return FileSequences{s.Copy()}
	}

	franges := strings.Split(s.frameSet.FrameRange(), ",")
	if len(franges) == 1 {
		// Return a copy
		return FileSequences{s.Copy()}
	}

	var buf strings.Builder

	// Write the dir and base components once
	buf.WriteString(s.dir)
	buf.WriteString(s.basename)

	list := make(FileSequences, len(franges))
	var seq *FileSequence
	for i, frange := range franges {
		buf.WriteString(frange)
		buf.WriteString(s.padChar)
		buf.WriteString(s.ext)

		seq, _ = NewFileSequence(buf.String())
		list[i] = seq

		buf.Reset()
	}
	return list
}
// Split a non-contiguous (i.e. comma-separated) sequence into
// a list of sequences that each use consistent stepping