"tickindex":trackState.tickindex-duration,#we parse the tickindex after we stepped over the item.
"midiBytes":[],
"text":self.text,
"UIstring":f"{self.text}(ch{self.value})"ifself.textelsef"ch{self.value}",#this is for a UI, possibly a text UI, maybe for simple items of a GUI. Make it as short and unambigious as possible.
#TODO: UIs work with 1-16. The rest of the laborejo engine works with 0-15 but this is dedicated for our own UI, read-only. Export the GUI value directly, even if it is a responsibility mismatch.
"UIstring":f"{self.text}(ch{self.value+1})"ifself.textelsef"ch{self.value+1}",#this is for a UI, possibly a text UI, maybe for simple items of a GUI. Make it as short and unambigious as possible.
self.ccGraphTracks={}#cc number, graphTrackCC. Every CC is its own SequencerTrack that routes to this tracks jack midi out
self.ccChannels=tuple()#numbers from 0-15 which represent the midi channels all CCs are sent to. Only replaced by a new tuple by the user directly. From json this becomes a list, so don't test for type. If empty then CC uses the initial midi channel.
self.ccChannels=tuple()#unsorted numbers from 0-15 which represent the midi channels all CCs are sent to. Only replaced by a new tuple by the user directly. From json this becomes a list, so don't test for type. If empty then CC uses the initial midi channel.
self.blocks=[Block(track=self)]
self.durationSettingsSignature=DurationSettingsSignature()#only one per track