Last night I got variable track length
more fully implemented. It's now unlimited in the sequencer, but the UI
only allows 256 steps, which is similar to Bongo's limit (384) and good
enough for now. Unlimited steps in the UI will have to wait until the UI
redesign that's coming next. Right now the UI is implemented as an
array of track dialogs, but that's still no good. The step area needs to
be implemented as a single window (a scrolling view), and the
configuration area also needs to be implemented as a single window (a
grid control). The two windows need to be children of a splitter window,
with synchronized vertical scrolling. Probably! But this is where
things start getting really hard.
I know it seems like a lot of progress had been made, but I expect it will take at least a year from now before the program has all of Bongo, Jock, and Stencil's features. But the good news is, I've generally been proceeding in descending order of risk, and most of the stuff that I had serious doubts about is already working. The epic risk was making a Windows MIDI sequencer that uses streaming mode and doesn't glitch or crash. I no longer have doubts about that. That was tentatively proved in October 2016, just before my mother died, but then the project got derailed for more than a year, and didn't get underway again until March 2018. Overall I figure I've put roughly three months into the Polymeter port so far, maybe a bit more if you count thinking about it in the bathtub but not coding anything. It's still a brand-new project, not even an alpha: pre-alpha.
The sequencer engine is high risk stuff, fun to develop and relatively quick. But most of the road ahead isn't that, it's UI design. UI design is slow and tedious and design mistakes are expensive because it takes so long to start over. Essentially it's the difference between engine work and body work. You need both but they require different temperaments. Engine work is more mercurial and adventurous, with easily defined goals--the engine runs or it doesn't--whereas body work is more of a slow steady grind with goals that are highly subjective.
I know it seems like a lot of progress had been made, but I expect it will take at least a year from now before the program has all of Bongo, Jock, and Stencil's features. But the good news is, I've generally been proceeding in descending order of risk, and most of the stuff that I had serious doubts about is already working. The epic risk was making a Windows MIDI sequencer that uses streaming mode and doesn't glitch or crash. I no longer have doubts about that. That was tentatively proved in October 2016, just before my mother died, but then the project got derailed for more than a year, and didn't get underway again until March 2018. Overall I figure I've put roughly three months into the Polymeter port so far, maybe a bit more if you count thinking about it in the bathtub but not coding anything. It's still a brand-new project, not even an alpha: pre-alpha.
The sequencer engine is high risk stuff, fun to develop and relatively quick. But most of the road ahead isn't that, it's UI design. UI design is slow and tedious and design mistakes are expensive because it takes so long to start over. Essentially it's the difference between engine work and body work. You need both but they require different temperaments. Engine work is more mercurial and adventurous, with easily defined goals--the engine runs or it doesn't--whereas body work is more of a slow steady grind with goals that are highly subjective.
No comments:
Post a Comment