Wednesday, July 22, 2015

Lightroom SDK opens up the development module

sooooo....Adobe opened up the Lightroom SDK to make adjustments in the develop module.

geek link: http://lightroomsolutions.com/sdk/modules/LrDevelopController.html

Lightroom always had a way to write "plugins" in an obscure language called LUA. Now for the first time in LR CC, these plugins can influence the slider settings in the develop module. To be clear: you can now write a native plugin that changes the sliders in the develop module. The friends over at Knobroom will use this it seems. this is cool. However, Paddy has traditionally taken a very different course (since this wasn't available before). What was a strength (it worked) now is a weakness (old tech). I also have no idea how LUA works.

I am sitting here, pondering the following:

1. This new interface doesn't allow everything, but can influence a lot of the sliders in the panels.
2. It's really cool and a sign for more to come
3. Communicating with this would require me to learn a bunch of new things, like how to send HTML requests to Lightroom, receive from Lightroom, and mostly, learn LUA
4. I have no inclination to learn LUA as it is super obscure and I am too old for this. I am not a programmer by trade (nor a professional photographer)
5. Maybe I can make the old tech work, maybe not. It will be a pain
6. Lots of work in my real job, and lots of family stuff
7. New cool products for professionals that use this start popping up (expensive but cool)

Right now, I am concluding that Paddy is not a priority for me. It is a pain in the behind and I am not moving to CC (yet?).

However, what we have is really cool. So, if somebody out there wants to learn how to use LUA, and write an HTML receiver/sender in LUA for this new Plugin module, I am happy to implement that in Paddy - I would in fact be delighted. Short of that, I will play with a few things going forward but not pushing as hard as I had previously. It's just not fun at the moment



102 comments:

  1. Really sorry to hear that things were shaken up so drastically so as to make further development not fun... Thank you for the update, however. I just bought a bcf2000 in hopes to soon be able to use it with LR CC, but now I'm gonna return it since I'm unwilling to use a mac.

    I hope someone decides to develop further with LUA. Get the word out!

    ReplyDelete
    Replies
    1. Dont sell that BCF, use Pfixer on a Mac, its light years ahead of Paddy on a Mac: http://www.pusherlabs.com/

      Delete
    2. Just got my BCF2000 today, and was hoping to run older Paddy version on LR CC, but it seems impossible? Bummer...

      Any other way guys to run BCF2000 on Windows? Can one emulate Pfixer software on Windows machine? Or maybe you know any other Win software for midi controllers?

      Delete
  2. I had a quick look at Lua and it looks to me as just another scripting language just like Python. Is Paddy written in C/C++? In that case one can link in the Lua library and call Lua files/function. I don't know how Paddy works to day but when you want to change a certain slider you call the Lua LR function for that.........This is all in theory and it will cost some time to get everything in place. But I'll have a look at it this week, if nothing unexpected happens. I don't have LR CC (just LR5) but I can try as small C++ with embedded Lua and see what has to be installed etc to start development.
    You mention HTML command to/from LR..............I don't where that fits into the picture but I have never written a LR plugin so I might just be ignorant.
    I'm a professional software developer though.....I was planning to use Eclipse as IDE for Lua..........Is paddy developed in Visual Studio or something else?

    No guarantees, but I'll keep you posted

    ReplyDelete
    Replies
    1. In Alex we trust.... Please save us Windows folks...

      Delete
    2. I am happy to donate again if Paddy can be made compatible with LR CC!!!

      Delete
  3. I hope there will be a solution! Thank you for your work guys!

    ReplyDelete
  4. I wrote a small lua script for LR which receives strings via a socket
    it can do adjustments depending on the string
    (for the beginning only + or - Exposure)
    for testing a sender can be invoked by
    telnet localhost 4242
    from a command shell

    nest step is a dll as sender and a "keyboardhandler" to catch the keys in LR
    i will try AHK as good old paddy


    here is the lua script:

    --[[----------------------------------------------------------------------------

    ReceiveMessage with a socket

    ------------------------------------------------------------------------------]]


    local LrSocket = import "LrSocket"
    local LrTasks = import "LrTasks"
    local LrFunctionContext = import "LrFunctionContext"
    local LrDialogs = import 'LrDialogs'

    local LrDevelopController = import 'LrDevelopController'

    LrTasks.startAsyncTask( function()
    LrFunctionContext.callWithContext( 'socket_remote', function( context )
    local running = true
    local receiver = LrSocket.bind {
    functionContext = context,
    port = 4242,
    plugin = _PLUGIN,
    mode = "receive",
    onConnecting = function( socket, port )
    -- TODO
    end,
    onConnected = function( socket, port )
    -- LrDialogs.message( "Connection established", "4242", "info" );
    end,
    onMessage = function( socket, message )
    if message =="+" then LrDevelopController.increment ( "Exposure" ) end
    if message =="-" then LrDevelopController.decrement ( "Exposure" ) end
    end,
    onClosed = function( socket )
    running = false
    end,
    onError = function( socket, err )
    if err == "timeout" then
    socket:reconnect()
    end
    end,
    }
    while running do
    LrTasks.sleep( 1/3 ) -- seconds
    end
    receiver:close()
    end )
    end )

    ReplyDelete
  5. here is the complete plugin, I guess it is not perfect but works...:
    which Port (4242) can be used?
    Error handling
    and of course a small parser for the commands

    open telnet and enter + or - and hit return
    you have to be in develop Module to apply changes

    http://sk-webserver.de/download/LR/ReceiveMessage.lrdevplugin.0.9.zip

    ReplyDelete
  6. more info to sockets in LR is here: http://lightroomsolutions.com/sdk/modules/LrSocket.html

    ReplyDelete
  7. looks very promising, keep it up !
    i also bought a bcf2000 last week and i'm wondering whether i should return it :(

    ReplyDelete
    Replies
    1. use Pfixer, http://www.pusherlabs.com/

      Delete
  8. These comments gives us hope! :)

    ReplyDelete
  9. Haven't had much time yet. Have been able to call Lua files from C++ code. Next step will be to try calling LR Lua functions.
    But it could well be that the socket way is a more flexible and clean-cut solution.

    ReplyDelete
  10. OK, I though it was possible to call LR Lua function from C++ but after a quick look it is the C++ exe that interpretes the Lua code which makes no sense for the LR case. Stefan's socket solution should be relatively easy to implement.

    ReplyDelete
  11. I found this ahk library: http://www.autohotkey.com/board/topic/94376-socket-class-%C3%BCberarbeitet/?hl=+socket
    which uses Ws2_32.dll from windows

    so this small ahk script should work:

    #include %A_ScriptDir%\ahk.socket2.ahk

    myTcp := new SocketTCP()
    con := myTcp.connect("localhost", 4242)
    MsgBox % con
    return

    ^F3::
    ret := myTcp.sendText("send something\r")
    MsgBox % ret

    return



    I get a connect, sending gives no Error, but nothing is received :-(

    here is an example from ms:
    https://msdn.microsoft.com/en-us/library/windows/desktop/ms737591%28v=vs.85%29.aspx
    connecting is a bit different there, I will see...

    ReplyDelete
  12. I don't have LR CC but LR 5 so I 'll try a different LR command just to test the ahk and plugin

    ReplyDelete
  13. Bummer...LRSocket is only part of the SDK 6........so I cannot test it yet

    ReplyDelete
  14. I tried the AHK script but at Send I cannot see anything being sent with WireShark.I'll dig a bit into that this weekend

    ReplyDelete
  15. I tested your AK script against a Python server and that works fine.....

    ReplyDelete
    Replies
    1. how do you connect, is it UDP???
      can you share that code?

      Delete
  16. I am a liitle bit frustrated :-(
    I tried a lot of things to send from ahk oder c++ with a socket direct ti LR
    but only telnet and some implementations of netcat work...
    https://secwiki.org/w/Nmap/Ncat_Portable the precompiled bin works but I cant compile it to see what happens
    wireshark cant see anything on localhost

    ReplyDelete
  17. ok but a (not very smart ) solution is easy:
    open a telnet window, or ncat with the port (hide it :-)
    and send the keystrokes with ahk to that window, which sends it to LR

    ReplyDelete
  18. in ahk e.g:

    ^F3::
    ControlSend, , hello LR{Enter} , Telnet
    return

    ReplyDelete
  19. The version 6 SDK looks like it makes external control of development lots easier. In pseudo code, I think the following is the basic work flow for the plugin:

    //When new photo is opened in develop module:
    LrDevelopController.getValue( param ) //to set sliders
    LrDevelopController.addAdjustmentChangeObserver( functionContext, observer, callback )
    LrDevelopController.setTrackingDelay( seconds )
    LrDevelopController.setMultipleAdjustmentThreshold( seconds )
    LrDevelopController.revealAdjustedControls( reveal )
    //send values to sliders

    //if slider moved
    LrDevelopController.startTracking( param )
    LrDevelopController.setValue( param, value )


    //if default button for a parameter pressed
    LrDevelopController.resetToDefault( param )


    //callback for adjustment change observer
    //read the controls
    //send values to sliders

    ReplyDelete
  20. here is the Pyhton server I used
    '''
    Simple socket server using threads
    '''

    import socket
    import sys

    HOST = '' # Symbolic name, meaning all available interfaces
    PORT = 4242 # Arbitrary non-privileged port

    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    print ('Socket created')

    #Bind socket to local host and port
    try:
    s.bind((HOST, PORT))
    except socket.error as msg:
    print ('Bind failed. Error Code : ' + str(msg[0]) + ' Message ' + msg[1])
    sys.exit()

    print ('Socket bind complete')

    #Start listening on socket
    s.listen(10)
    print ('Socket now listening')

    #now keep talking with the client
    while 1:
    #wait to accept a connection - blocking call
    conn, addr = s.accept()
    print ('Connected with ' + addr[0] + ':' + str(addr[1]))
    #infinite loop so that function do not terminate and thread do not end.
    while True:

    #Receiving from client
    data = conn.recv(1024)
    newStringThing = data.decode(encoding='UTF-8')
    reply = 'OK...' + newStringThing
    print(reply)
    if not data:
    break


    #came out of loop

    ReplyDelete
  21. which python do you use? ( and tabs are missing :-)

    ReplyDelete
  22. 3.4.
    '''
    Simple socket server using threads
    '''

    import socket
    import sys

    HOST = '' # Symbolic name, meaning all available interfaces
    PORT = 4242 # Arbitrary non-privileged port

    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    print ('Socket created')

    #Bind socket to local host and port
    try:
    s.bind((HOST, PORT))
    except socket.error as msg:
    print ('Bind failed. Error Code : ' + str(msg[0]) + ' Message ' + msg[1])
    sys.exit()

    print ('Socket bind complete')

    #Start listening on socket
    s.listen(10)
    print ('Socket now listening')

    #now keep talking with the client
    while 1:
    #wait to accept a connection - blocking call
    conn, addr = s.accept()
    print ('Connected with ' + addr[0] + ':' + str(addr[1]))
    #infinite loop so that function do not terminate and thread do not end.
    while True:

    #Receiving from client
    data = conn.recv(1024)
    newStringThing = data.decode(encoding='UTF-8')
    reply = 'OK...' + newStringThing
    print(reply)
    if not data:
    break


    #came out of loop

    ReplyDelete
  23. crap..it keeps removing the spaces..but it should be clear...indent on while 1:, while true and if not

    ReplyDelete
  24. ok the python server runs, but LR is also a server, how can they connect?? can you send characters?

    ReplyDelete
  25. Nono I used the Python server only to verify your ahk script and that worked fine. And since your connection to LR from with FTP worked. it is a question why ahk doesn't work with LR?But you can look for a python tcp client just to see whether that works. I don't have LR CC however so I cann't test that part. LR a sockets are only supported by LR CC

    ReplyDelete
  26. I tested it with another program, and found out that sending a "real" line feed is the key, I guess this will work in ahk too :-)

    ReplyDelete
  27. ...ok you have to send `n not \n for a new line in ahk, this works, but only about 2 lines per second :-(
    meanwhile I found a way to send from ahk over a netcat shell, which works very fast :-))
    stay tuned...

    ReplyDelete
  28. Very Interested in this, tried installing paddy for LR6 (did not work, duh)
    Keep us updated.

    ReplyDelete
  29. Guys, this is awesome. i agree with the pseudocode. For Midi to work, we need to send some data out. For the keyboard shortcuts, only data in. We might have to branch Paddy a bit

    Version (1) - keyboard only - simple slider up/down for what's available
    Version (2) - Midi - this is a bit trickier as Midi send the absolute position of the slider and we would need to send data from LR to Paddy as wlel

    In the case AHK doesn't work - try to run in Admin mode. You might have to compile and then run.

    Should we open a code deposit somewhere? I would love to get into this at some point

    ReplyDelete
  30. 1. will work with my plugin, but I will define the keys in the ahk-script or in a simple Textfile
    in the Moment starting and restarting is sometimes a bit difficult
    what Parameters/functions do you need to access in LR? how do you access presets?
    http://photographers-toolbox.com/products/keyboardtamer.php can change the given keys in LR, you can make it yourself by changing translatedstrings.txt
    2. returning values should work, but a short test this morning didnt...

    ReplyDelete
  31. Hi Dorfl68, whats your email and how do i donate to this?

    ReplyDelete
  32. ok. here a new Version with functionality:
    http://sk-webserver.de/download/LR/ReceiveMessage.0.9.2.zip
    it may be detected as a Virus cause of the included nc.exe (http://joncraton.org/blog/46/netcat-for-windows/) I trusted him :-)
    in keys.ahk you can define your own keys,
    after changing them reload the LR-Plugin to reconnect, not the send2lr.ahk!!
    sometimes nc.exe remains in Memory, than no reconnect is possible, then kill nc.exe in the taskmanager and reload plugin.
    after closing LR you have to exit the ahk
    not perfect but usable :-)

    ReplyDelete
  33. Dorfl68, if you could open your repository on github please? It can apparently be used from a subversion client as well, so you probably don't even have to change your workflow. Other than that, Atlassian SourceTree is a client that feels fairly simple to use without exposing too much of git itself (unless you want it to)!

    ReplyDelete
  34. how are the key presets selected in paddy?, this seems to be not in the new API, maybe the old way works...

    ReplyDelete
  35. here with some more functions, developpresets by Index or uuid (which seem to change when updating values :(
    http://sk-webserver.de/download/LR/ReceiveMessage.lrdevplugin.0.9.4.zip

    ReplyDelete
  36. here is the sdk now officially: http://www.adobe.com/devnet/photoshoplightroom.html

    ReplyDelete
  37. with the param names taken from an sidecar xmp you can set the crop !!!
    numbers are relative, so you have to look at the aspect ratio for different files

    e.g.:
    !F1:: send2LR("SetVal CropTop 0.1" ) return

    from an xmp
    CropTop="0"
    CropLeft="0.204416"
    CropBottom="1"
    CropRight="0.795584"
    CropAngle="6.75401"
    CropConstrainToWarp="1"


    and no, a preset does not accept this params :-(

    ReplyDelete
  38. I think Dorfl68 should make a new post about the crowd-based development. Perhaps it will help push things along faster.

    As a Creative Cloud customer who relies on Paddy, I'm really frustrated by not being able to use LrCC yet.

    ReplyDelete
  39. Hi Luke,

    i (we) understand it, but as the developer has stated on this site, its more of a challenge/passion for him.

    Pushing a long things faster, can maybe have the opposite effect:)

    But trust me i know where you are coming from:)

    Edward

    ReplyDelete
  40. I wonder if experimenting with this project would help you update Paddy faster.

    http://thegouger.github.io/MIDI2LR/

    ReplyDelete
  41. why would that make it faster Luke?

    ReplyDelete
    Replies
    1. Wouldn't taking a peek at its source code give you guys some tips on how to proceed?

      Delete
  42. well MIDI2LR might be viable alternative...

    ReplyDelete
  43. MIDI2LR seems do the job, but I don't think there is feedback so the slider move to the correct position when switching to a new photo.....

    ReplyDelete
    Replies
    1. It does now Alex, I just tested this new requested functionality with developer, and it works!

      http://thegouger.github.io/MIDI2LR/

      Enjoy!

      Delete
  44. Stefan Keller: Nice work and thanks for sharing! This can serve as a basis for other experiments.


    I am currently thinking about this solution for common keyboard or other non-MIDI keyboards (I have also left-hand-only Logitech G13 gaming keyboard):

    General idea:
    Press _and hold_ a key to mark that a certain slider is going to change. Scroll the mouse wheel to adjust it (say one step means +/- 0.1 value). Release the key to mark you are finished.

    I believe it has several usability advantages and one could also easily use LrDevelopController.startTracking() and stopTracking() to speed up the preview.

    It would be also great to send the command from AutoHotkey (or whatever utility) using SendMessage, possibly with WM_COPYDATA, instead of using network... AutoHotkey can send the messages by itself, but I don't know it LR allows their easy processing.

    What do you think about it?
    (I am still not decided whether to attempt to code it myself :) I am an experienced programmer, but not in LUA or LR SDK so far.)

    ReplyDelete
  45. Seems that the idea described above is working :) I discard the idea of SendMessage, the sockets are very fast indeed.

    I have modified sources by Stefan Keller and now while holding F1 it is possible to change Exposure using the mouse wheel. While holding F2 the wheel is changing Shadows and F3 means Highlights. It's more like prototype then a lovely code and I also deleted most of the previous Keys.ahk code, so it is not as educational as original sources. But for Stefan and other developers, I have put the result here:
    http://www.pastel.cz/temp/Stefans_ReceiveMessage.0.9.2_Modified.zip

    The changes happen very fast and real-time... no way to tell difference between this solution and actual slider dragging in Lightroom.

    ReplyDelete
    Replies
    1. I love this so much!! Thanks for putting that together.

      I have a Wacom tablet, so quickly made this modification. You can hold down a function key then move the mouse left or right to change value:

      F11::
      pixels = 3
      MouseGetPos, xVal
      Loop
      {
      MouseGetPos, xValNew
      if (xValNew > (xVal + pixels))
      {
      xVal := xValNew
      sendSliderChange2LR(+1)
      }
      else if (xValNew < (xVal - pixels))
      {
      xVal := xValNew
      sendSliderChange2LR(-1)
      }
      GetKeyState, state, F11, P
      if state = U
      break
      }
      return

      Delete
    2. Full code with nice transparent overlay down the bottom of Lightroom:

      Numpad0::tabletSlider("Numpad0", "Temperature")
      NumpadDot::tabletSlider("NumpadDot", "Tint")
      Numpad1::tabletSlider("Numpad1", "Exposure")
      Numpad4::tabletSlider("Numpad4", "Contrast")
      Numpad2::tabletSlider("Numpad2", "Highlights")
      Numpad3::tabletSlider("Numpad3", "Shadows")
      Numpad5::tabletSlider("Numpad5", "Whites")
      Numpad6::tabletSlider("Numpad6", "Blacks")
      Numpad7::tabletSlider("Numpad7", "Clarity")
      Numpad8::tabletSlider("Numpad8", "Vibrance")
      Numpad9::tabletSlider("Numpad9", "Saturation")
      NumpadDiv::tabletSlider("NumpadDiv", "PostCropVignetteAmount")
      NumpadMult::tabletSlider("NumpadMult", "PostCropVignetteMidpoint")

      tabletSlider(key, slider)
      {
      pixels = 3
      MouseGetPos, xVal

      ; Create the notification window
      WinGetActiveStats, winTitle, winW, winH, winX, winY
      progressX := winX + Floor(winW / 2) - 150
      progressY := winY + winH - 80
      Progress, B zh0 w300 cw000000 ctFFFFFF x%progressX% y%progressY% fs18, %slider%, , CurrentEffect
      WinSet, Transparent, 200, CurrentEffect ; level of transparency - 255 is opaque

      Loop
      {
      MouseGetPos, xValNew
      if (xValNew > xVal + pixels)
      {
      xVal := xValNew
      sendSliderChange2LR(slider, +1)
      }
      else if (xValNew < xVal - pixels)
      {
      xVal := xValNew
      sendSliderChange2LR(slider, -1)
      }
      if (!GetKeyState(key, "P"))
      break
      }
      Progress, Off
      return
      }

      Delete
    3. This comment has been removed by the author.

      Delete
    4. Hi
      I am also trying to control develop sliders in LR CC via keyboard/numberpad, etc. I have AHK but am a beginner and a non-scripter in general. I looked at your download. Is this usable at this time? If so, do you mind providing a brief user instruction/"how-to".
      Thanks!!!!

      Delete
  46. If this ends up getting forked as an open source project, I would happily throw money into it as a donation. I bought a BCF2000 a month ago for my Windows machine and it's doing nothing but collecting dust.

    ReplyDelete
  47. Hi guys!
    I was in the same situation as all of you here, and did a bit of searching for alternatives.

    I found freeware MIDI2LR, which was working in the same way as Paddy, but not supporting motorised sliders of BCF2000.
    I wrote to developer, and in one day he managed to add this functionality. I tested, and it works perfectly fine. Super easy to setup LR functions too.

    Now I asked to add few extra functionality, like mapping any key combination from keyboard, and few extras.

    There is a new version available here, for WIN, for LR CC - so feel free and download it. HAVE FUN and say thanks to our guy!

    http://thegouger.github.io/MIDI2LR/

    Andrzej

    ReplyDelete
  48. This comment has been removed by the author.

    ReplyDelete
  49. As a G13 owner, it doesn't look like MIDI2LR is going to work for me.

    I'm really hoping that Paddy development doesn't slow down and I will happily donate money to the cause.

    ReplyDelete
  50. Ach!

    I'm running Paddy with LR 5, and it is REALLY frustrating as paddy does start, says "Paddy settings loaded" but the BCF stays silent... I'ts annoying as I just keep restarting paddy until it suddenly works. Any tips on this? So IF someone is actually so wonderful that creates an app to use my BCF that works I would be eternally grateful, especially if it will work with LR6, as that will be my final version (and I DO hope it is still for sale) as I plan on never joining CC...

    ReplyDelete
  51. Elmo , I really would advice you to have a look at MIDI2LR. Works fine with my BCF2000 and does all the basic stuff, Most important feature that is missing for me is the ALT-mode which actually seems to be not supported by the LR API

    ReplyDelete
  52. This comment has been removed by the author.

    ReplyDelete
  53. Just bumping this in the hope something can be done to get Paddy working with LR6. I can't imagine going back to using Lightroom without Paddy and my trusty G13! Help me Obi Wan, you're my only hope.

    ReplyDelete
  54. I think it's pretty clear now that Dorfl68 has no intention of making Paddy a priority again so you're probably better off moving to a different platform.

    ReplyDelete
  55. It seems to me that there is a way forward for Paddy. VSCO Keys works in lightroom 6/cc and is now open source. MIDI2LR, mentioned above, has the MIDI angle covered, and Paddy has the interface that brings both keystrokes and midi sliders together. It's all here, or am I missing something? BTW, I would love to throw in my donation to such a unifying project. Is this a possibility?

    ReplyDelete
  56. TheGouger handed over development of MIDI2LR to me. It is available at http://rsjaffe.github.io/MIDI2LR/ .

    ReplyDelete
    Replies
    1. This looks perfect for those using Paddy alongisde midi controllers, but is it possible to set it up for use with something like the Logitech G13? If not, would you consider developing that? Thanks.

      Delete
    2. Also, is it possible in MIDI2LR to assign develop presets to the clickable buttons on the BCF2000? If so then I'm thinking aI might have to buy one. Annoyingly I had one years ago when I made music but sold it!

      Delete
    3. MIDI2LR should work with any MIDI controller but does not work with gameboards, unless it has a MIDI-emulation mode.

      Delete
    4. OK, thanks for the clarification. Any chance game controllers etc will be supported in a future update? Thanks Rory.

      Delete
  57. This comment has been removed by the author.

    ReplyDelete
  58. Develop presets are in the queue, but not ready for the next release (need to do some UI work first). The wiki (https://github.com/rsjaffe/MIDI2LR/wiki) lists all commands currently implemented and the issues page (https://github.com/rsjaffe/MIDI2LR/issues) is where issues and suggested enhancements are.

    ReplyDelete
    Replies
    1. I installed the MIDI2LR Lightroom 6 and Behringer BCF2000. Everything works perfectly and is very easy to configure.
      The only problem I found is that the Temperature is not working properly.
      When I open a photo, the cursor (set to channel 1) is positioned correctly, then if I move from the BCF, Lightroom is locked and does not change the values, but if I do the opposite process, adjusting from Lightroom, the channel is on the BCF moving properly.
      I also tried to change the channel, but the result is always the same.

      Delete
  59. This comment has been removed by the author.

    ReplyDelete
  60. Any chance there will be a Christmas miracle, either for Paddy or another similar utility?

    I hate it that I'm paying for an Adobe CC membership that I can't really use because nobody supports the G13 now.

    ReplyDelete
  61. I would seriously pay big money for this to be updated and carried on...I am still on LR5 because of this, and I seriously do not know how I will keep editing if I have to stop using Paddy

    ReplyDelete
  62. Hi does your plugin support the PFiXer MiniMal aka Behringer X-Touch Mini. Looks like a possible way forward for us Windows users for this device. If not would you consider adding support? Keep up the good work bud... There's Many of us willing to support your development. Cheers!

    ReplyDelete
  63. MIDI2LR supports virtually any MIDI control surface that works with a computer via USB port.

    ReplyDelete
  64. In the latest versions of MIDI2LR motorized sliders have the full support. So, nothing will prevent to migrate there with a devices like Behringer BCF2000. I shared the system template and MIDI2LR settings here: https://github.com/rsjaffe/MIDI2LR/issues/84 - feel free to try it if you want to switching from Paddy, probably you will found it useful. I made some controller's reprogramming to do workaround of some MIDI2LR limitations and preserve the basic buttons functionality trough different presets.

    ReplyDelete
  65. Hi guys new here and OMG love the way light room works with the BCF2000 :) I just wanted to confirm that do u guys have a program that works with LR CC ? And would the PFiXer work with tbis program as in the web site its only for mac :( any help would be great as I don't want to spend money 💰 on something that isn't going to work :)

    ReplyDelete
  66. Try MIDI2LR - freeware, works magic, both Mac and Win, on LR CC.

    ReplyDelete
    Replies
    1. Yeah i installed that to lightroom CC already just need to buy the expense part lol... I just wanted to know if the BCF2000 is pretty much fully functional with it :)

      Delete
    2. Is there a cheaper midi controller that we can use?

      Delete
  67. Hi guys new here and OMG love the way light room works with the BCF2000 :) I just wanted to confirm that do u guys have a program that works with LR CC ? And would the PFiXer work with tbis program as in the web site its only for mac :( any help would be great as I don't want to spend money 💰 on something that isn't going to work :)

    ReplyDelete
  68. Giving this another kick in the hope LR6 might one day be supported. Tried MIDI2LR but couldn't get it to install, and it doesn't support the Logitech G13 unfortunately (which is a bit part of my workflow alongside the BCF2000).

    ReplyDelete
  69. Can this software be open sourced please?

    ReplyDelete
  70. I found an alternative, after looking high and low, staying in LR5 despite paying for Adobe cloud, and debating if I needed to buy a midi controller or even (yikes) moving completely to a mac...

    Motibodo!
    http://www.motibodo.com/motibodo-pro-for-lightroom/

    They have a software only version that doesn't require buying their own keyboard. So the keys work on my personal keyboard.

    You can't remap the keys, so it's set already, but it's super intuitive and actually does a lot more then I need. For example, exposure is 'j' and 'k', and if you press the shift key it increases the adjustment level. And a ton more shortcuts.

    The creator, Dave is very responsive with questions.

    I got it to work on Windows 10 and LR CC. Totally worth it!

    ReplyDelete
    Replies
    1. No midi support though so really not an alternative to Paddy for those of us using midi controllers.

      Delete
  71. I have a tab open in my browser for nearly a year now as I'm checking every few days if status: "I am working on Paddy for LR CC. Please be patient. This will take a few weeks" has changed..
    I bought a midi controller especially for a paddy last April 2015 and it's still gathering dust on the shelf :) Is this update ever coming out?

    ReplyDelete
  72. https://github.com/rsjaffe/MIDI2LR

    that's an alternative but with Novation Nocturn you have to pick up every slider as position of sliders_to_leds is not synced with LR when changing photos (I'm not sure how with other midi controllers).. so it's not nearly as good as Paddy

    it simply doesn't do this:
    https://youtu.be/M68543e80D4?t=4m1s

    ReplyDelete
  73. Yep. OUr hop is in MIDI2LR. I desperedly need those shortcuts for Custom Local Adjustment Brush Presets there

    ReplyDelete
  74. Abandoned project - what a shame the originator can;t be bothered to inform us as such..

    ReplyDelete
  75. After sticking to lr 5.x with paddy an a logitech g13 i switched to midi2lr using a midi fighter twister and lr cc which i subscribed to a year ago, beeing unable to use it becaus workflow was so much easier with paddy.

    Still paddy has some advantages, but midi2lr is also working quick and well for me beeing a wedding photographer, where time just matters when processing a lot of photos. My g13 is still used without paddy in library mode for tagging photos.

    In the end it's really sad, that paddy might not be worked on anymore.

    ReplyDelete
  76. No sure if anyone is still looking for a Paddy replacement for LR and the Logitech G13. Found the now open source VSCOKEYS and it works wonderfully in LR CC and Windows 10. It does need some programming/manual key mapping, but does work great.

    ReplyDelete
  77. That's good to know. Hope this try it out soon. However what do you mean by manual programming? I'm not technically minded.

    ReplyDelete