UI draft for MIDI Mapping

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.

Thank you for all your hard work on this project – anything we can do to improve productivity is invaluable.

This question might be slightly off-topic, and please forgive me if this has already been addressed or another solution exists – but I don’t know if it…

Is there a way to tweak Knobroom (or perhaps have another plugin) so we can use Hot-Keys or Shortcuts in conjunction with a gesture from a Magic Mouse or Apple Track Pad for some of the developing channels?

For instance, if I wanted to slide my Exposure value a keystroke of Shift+E in addition to a one or two finger Up/Down swipe on the trackpad or mouse. Contrast, Highlights etc. would all work in similar fashion with their own designated keystroke plus gesture.

I know there is a wide world of plugins and programs out there, and it seems like all get close to solving this, but I don’t see it out there. Your work and the Better Touch Tool are about as close as I have found.

It just seems to me that this would be a great way to boost productivity using some of the hardware we already have in the keyboard and mouse. I would attempt to write my own plugin, but know nothing about that process. Again, sorry if this is out of bounds, but thought it might be worth asking. Thanks again for all the hard work and I look forward to the new plugin for LR4!

I’ve also been thinking about it, but there are some small essential parts that cannot be opened. And I don’t that there would be any other active developers, it’s more effort that what it would be worth

unfortunately i was in flu this week, and there have been some set backs with the Lightroom UI stuff. So the UI draft is gone, its just not reliable to try to use Lightroom controls in dynamic manner. So the first version will have oldschool json based text interface.

Thanks for the hard work, Jarno! This could seriously save me so much time!

Here’s what I got (I hope feedback is appreciated!): Downloaded the beta and followed instructions… Couldn’t map any midi though… Plug-in Manager only displays Status and Plug-in Author Tools segments… There is one diagnostic message (actually three, but they are all identical…): ?:0 attempt to index field ‘mapping’ (a nil value)

Sorry, there was a fatal bug in the preferences loading, which failed if there weren’t any preferences for the plugin. Fixed in r660. These are automated builds so the newer version isn’t always better

No problem & thank you! This is better… Now of course I’m trying to figure out how to do the midi mapping… For test purposes I’m trying to use my old M-Audio O2 controller… Before I decide to get a more knobby control surface mainly to control Lightroom…

So, my question now is: Are there any apps / utilities out there that tell me what the CC# a certain button of a controller triggers… That of course would help to set things up quickly…

Wow! This is very promising! Thank you for the quick reply and hand holding!

Here’s what I experienced: At first I didn’t know that I had to import at least an empty map to get the plug-in to work… Then sometimes the mapping I tried would “stick”… Found I had to stop and restart Knobroom to make it use the latest version of the maps I just did…

Of course I’m back with more questions ;):
a) I’m researching which midi controller would fit best for me and Knobroom / LR 4… Trying to decide between the Behringer BCR2000 and the Icon iStage ( http://www.icondigitalusa.com/content/istage-velocity-sensitive-drum-pads ): I don’t like about the BCR is that it seems quite bulky and needs mains power… The iStage seems smaller and is bus powered… On the other hand the BCR is tested for this application and has been around for a bit… The iStage seems uncharted territory… Now to my question: The iStage allows for mapping two buttons to one CC#, one for increasing and one for decreasing values… Would that theoretically even work with Knobroom?
b) I’d love to be able to select adjustment brush presets with a key command… Or with a button press… Is that possible in Knobroom? (I read on the Paddy discussion boards that the option exists in Paddy…) Or would a key macro program like Livid Instruments Selectrix ( http://blog.lividinstruments.com/forum/topic.php?id=3142 ) be needed (or even work aside Knobroom)?

I haven’t tried iStage, but generally I don’t like the rubbery feeling in buttons. In theory, using two buttons to increment/decrement values should work.

I think Paddy uses purely event stuffing to do it’s work, I’m more interested in using the Lightroom’s API functions. Thus, you can’t really control the UI of Lightroom, because there is no official API for it.

Using MIDI macro programs depends on the controller, you might need a virtual MIDI port to multiplex devices.

Hi Jarno. Looks promising indeed. It only looks at the moment though, for me. I registered knobroom even if it’s not working yet, as an encouragement: after the previous build problems, now I managed to create a list. Midi monitor receives data regularly on channel one, but in lightroom, with knobroom on, no changes happen… Any suggestion? Best regards and thanks for your work!
Matteo

Actually, there was a problem with Knobroom initialising, the sliders values were sent before the device was selected, which resulted in not getting proper output values. I fixed it today, so the build 678 should contain the fix (I haven’t tested the actual builds yet :).

When you have selected mapping, started knobroom from plugin extras, Knobroom should send MIDI out messages to your device. These messages should display in MIDI Monitor (make sure to tick ‘Spy on output’ active).

Yep… Latest build works! Thanks! Seems to be a bit slow-ish… Is that something you can address or it just depends on lightroom/my mac?
Also, a “previous pic” and “next pic” would be wonderful additions, together with a “crop” function, maybe starting from a corner and going down (or up) proportionally, even though I’m not sure that’s possible (though it would be wonderful!)…
Thanks!!!

I’m planning to implement accessibility API, which should be a bit faster. If you try e.g. prev/next navigation, you can see that it is not communication to LR that is slow. Slowness comes from LR’s internal way of processing develop presets.

I have just bought a Korg NanoKontrol2 and am looking to try it out with my LR4. I have followed the instructions in the readme file, however, when I go to Plug-in Extras and click on Start Knobroom, the TR4 application just closes down.

There is no option for that in the simple mapping UI, but if you edit the mapping json manually, it is keyed by MIDI event and a CC number (e.g. “0xb022″ stands for Control Change on channel 0 number 22 (hex), 0xbf22 would be same CC on channel 15). Haven’t tested it, but it should work.

I am new to this program – running MacOSX. I bought a BCF2000 & loaded your json file. That file works & I understand how to reprogram the buttons in the Lightroom plug-in manager. However I am not sure which button is which, e.g., CC1 or CC2 etc. Some I can figure out but I can’t figure out what is controlling the Hue, Sat, Adjustments for each individual color nor the presets button. Do you have a key or map of the buttons on this device?

I’ve been trying to use an Ableton Push with Knobroom. I’ve been able to get it to work, however when I turn the knobs on the Push to increase a setting it’s backwards and decreases the value. In addition it’s changing the maximum amount possible rather than having increments. Is there a way to control the sensitivity and the direction?