Re-engineering Cantabile's Bindings Framework

Transport was a tricky one - primarily because of the transport position bindings:


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:

5 Likes

6 Likes

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.

12 Likes

It’s sounding like the new bindings will have greater potential, and be easier to maintain. Your efforts do not go unnnoticed.

Great work!

4 Likes

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.

6 Likes

Miscellaneous jobs todays:

image

5 Likes

@brad

How does circular bindings prevention work in this case?

Thanks,

Dave

Same as before - if a binding is invoked while it’s already dispatching itself then it ignores the reentrant invocation.

1 Like

Started on the UI for mapping values between source and target binding points:

5 Likes

2 Likes

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?

Hi @easteelreath,

you can have a look at the Trello card to get an idea.
Gabriel

Thanks. Getting there…

The Trello card is the best indicator of work remaining. Unfortunately, somedays I’m adding more tasks than I cross off :frowning: - 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.

6 Likes

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! :laughing:

4 Likes

When our software developers give us estimates, we usually triple them… That seems to work for us :wink:

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…) :slight_smile:

1 Like

Listen to Scotty …

5 Likes

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:

image

image

image

9 Likes

Nice to see ‘Send 0.0 dB’ there! I have to edit that every time.