Custom triggers have been moved from their own bindable object to a simpler User Trigger on the Engine object (for both sending and receiving user triggers).
Navigation bindable used to provide invokable commands for a limited set of navigation keystrokes. This has now been replaced with a “Send Key” binding point under PC Keyboard and lets you send any key you like:
And that’s all the binding points converted to the new system. Now I just need to finish the new system.
In my original post on this I mentioned that I was terrible at estimating this kind of work, and I was right. I completely underestimated just how extensive the binding system in Cantabile is. There still a lot of work to be done here, but I feel like I’m starting to make inroads.
This required updating TranslateTool to be able to extract strings from C# attributes. Rather than full parse, I’m just using regular expressions (see here). Not perfect but it works well enough for what I need here.
This re-engineering looks really helpful. Just curious, what’s the progress (%) so far of your expected task(s), and what is the ETA (days, weeks, etc.) for a beta?
The Trello card is the best indicator of work remaining. Unfortunately, somedays I’m adding more tasks than I cross off - but usually those are smaller tasks.
As mentioned above, I completely underestimated the scale and complexity of this work, but I will get there eventually.
I was so bad at estimating when I was doing my energy software business that I finally started just multiplying them by 7. And it actually worked pretty good!
When our software developers give us estimates, we usually triple them… That seems to work for us
PS: I am of course a developer myself, so I am often equally guilty of over optimism. And I seem to be getting slower (other priorties). I purchase my Yamaha Montage in 2017 and I still have not finished my librarian for it (soooo close now…)
Also made some improvements to the manual invoke button. Previously it only worked with some bindings. Now you can test by sending various values, depending on the binding source kind: