Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AtomEvent ¶
type AtomEvent struct { TrackNo int Pos uint8 // in 32th Duration uint8 // in 32th for noteOn messages, it is the length of the note, for all other messages, it is 0 Message smf.Message // may only be channel messages or sysex messages. no noteon velocity 0, or noteoff messages, this is expressed via Duration // contains filtered or unexported fields }
func (*AtomEvent) AbsTicks ¶
func (e *AtomEvent) AbsTicks(b *Bar, ticks smf.MetricTicks) (start, end int64)
func (*AtomEvent) TrackEvents ¶
func (ev *AtomEvent) TrackEvents(b *Bar, ticks smf.MetricTicks) (evts smf.TrackEvents)
type Bar ¶
type Bar struct { Number uint TimeSig [2]uint8 Events Events Key *smf.Key // TODO a key change, if != nil AbsTicks int64 }
func (*Bar) SortEvents ¶
func (b *Bar) SortEvents()
func (*Bar) TrackEvents ¶
func (b *Bar) TrackEvents(ticks smf.MetricTicks) (evts smf.TrackEvents)
type EmptyEvent ¶
type EmptyEvent uint8
func (EmptyEvent) Inspect ¶
func (e EmptyEvent) Inspect() string
func (EmptyEvent) Position ¶
func (ev EmptyEvent) Position() uint8
func (EmptyEvent) TrackEvents ¶
func (ev EmptyEvent) TrackEvents(b *Bar, ticks smf.MetricTicks) (evts smf.TrackEvents)
type Event ¶
type Event interface { Position() uint8 TrackEvents(b *Bar, ticks smf.MetricTicks) (evts smf.TrackEvents) Inspect() string }
type MultiEvent ¶
type MultiEvent []*AtomEvent
MultiEvent are multiple AtomEvents at the same time
func (MultiEvent) Inspect ¶
func (mev MultiEvent) Inspect() string
func (MultiEvent) Len ¶
func (e MultiEvent) Len() int
func (MultiEvent) Position ¶
func (mev MultiEvent) Position() uint8
func (MultiEvent) Swap ¶
func (e MultiEvent) Swap(a, b int)
func (MultiEvent) TrackEvents ¶
func (mev MultiEvent) TrackEvents(b *Bar, ticks smf.MetricTicks) (evts smf.TrackEvents)
TODO: test
type NTupleEvent ¶
type NTupleEvent struct { Duration uint8 // contains filtered or unexported fields }
NTupleEvent are AtomEvents spread evenly over the time
func (*NTupleEvent) Inspect ¶
func (ntev *NTupleEvent) Inspect() string
func (*NTupleEvent) Len ¶
func (e *NTupleEvent) Len() int
func (*NTupleEvent) Less ¶
func (e *NTupleEvent) Less(a, b int) bool
warning: only works within a bar
func (*NTupleEvent) Position ¶
func (ntev *NTupleEvent) Position() uint8
func (*NTupleEvent) Swap ¶
func (e *NTupleEvent) Swap(a, b int)
func (*NTupleEvent) TrackEvents ¶
func (ntev *NTupleEvent) TrackEvents(b *Bar, ticks smf.MetricTicks) (evts smf.TrackEvents)
TODO: test
type Song ¶
type Song struct { Title string Composer string TrackNames []string Ticks smf.MetricTicks // contains filtered or unexported fields }
func (*Song) SetBarAbsTicks ¶
func (s *Song) SetBarAbsTicks()
Click to show internal directories.
Click to hide internal directories.