New Knobroom version for LR4 is progressing steadily, and I’ve now reached the point that is sensible to create some UI elements as well. Except that Lightroom SDK is notoriously bad with growing UI elements. And if you’ve used the previous LR3 release, you might have noticed that creating lots of pulldown menus isn’t particularly fast either.
The main problem is that once you have created a list of elements, there is no way to grow the list. And since the creation of elements is slow, you really can’t just create lots of hidden controls either. MIDI protocol is quite extensive, e.g. there are 128 id’s of each event, possibly on several channels. And since I’d like to support quite advanced configurations, I need something which I can grow dynamically.
After few miserable attempts with pulldown menu spaghetti, I’ve come up with a list-based approach. Unfortunately, this simple_list component is only available on Lightroom 4. It is not dynamic either, but at least it is possible to unobtrusively fill it with blank rows.
Basically, you can load a mapping preset (in JSON format) and edit it further by clicking the row in the large listbox. When you select the develop setting from the last pulldown menu, it is updated to the listbox. You can also insert new rows into the listbox by selecting a new event type (note, control change) and note/controller key id.
Also, pay attention to the tab view section. The idea is that on the left there are the basic controls (“Base” for now), which specify the default controls. The other tabs override these controls, so that you can specify to use CC 4 as Fill Light when Process Version 2010 is in use. And similar handling to B&W Treatment and JPEGs (RAW Temperature, JPEG IncrementalTemperature)
I originally figured that it would maybe take me a couple of days to create the mapping UI. Fair estimate, but I’ve so far spent about ten times as many hours…
Anyway, I’m working on a new release, and no, I don’t have a set date yet, but I’m hoping to release few first releases during August.