Would someone give me a quick overview of the BB track architecture?
I've been debugging for a few hours and can't quite make sense of it yet.
>From a song, you can get a list of tracks, and some of those tracks are of
At this point I'm conceptually after the tracks within the BB. I want to
pull a list of them, but can't quite get at them.
I can get a list of TCOs (track->getTCOs) and these are
trackContentObjects. I've been confused because I thought TCOs were the
"tracks within the BB track", meaning for example, a kick, snare and high
hat. But they are actually blocks within the song editor. If I have three
measures in the BBTTrack, I'll have three trackContentObjects when I debug.
So to rephrase my original question, I want to access the tracks (in my
example they would be InstrumentTracks) that live within the BBTrack, and I
want to do it from the BBTrack object that is returned from the Song.
Thanks for any pointers.
All actual tracks of BB-tracks are located within BbTrackContainer
(see bb_track_container.h/bb_track_container.cpp). Get all tracks via
engine::getBBTrackContainer()->tracks(). Playing a certain BB track
(i.e. all TCOs of the tracks inside at a certain position) is achieved
BB track 0 = all TCOs (patterns) of the instrument tracks inside at
position 0. BB track 1 = all patterns at position 1 and so on.. See
bbTrackContainer::fixIncorrectPositions() for an illustration.
The architecture is really weird and ugly but LMMS was my first big
project and it grew evolutionary, I'm sorry.. ;-) Feel free to ask