Actually, it kind of solved itself, which is not much help, I know. Might have been something with the location of WDL.
But what I realized is that both reaper_quneo and my own adaptation do not function properly. You can "Add" the control surface in the "Control surfaces/OSC/web control" section of the preferences, and it works fine, but when you select it and click "edit", the interface fields are not populated. Also, the surface does not persist when you close Reaper and re-open it.
This is probably due to some confusion in dlgProc due to the various constants inherited from MFC (if memory serves, I haven't done any MFC in 15 years...). I was about to roll up my sleeves and dig through it when a last ditch attempt at finding a better source turned up the Faderport XT csurf plugin (with source!).
Thread:
http://forum.cockos.com/showthread.php?t=170036
Source:
https://github.com/TheNimaj/Faderport_XT
This compiled wit some minor fixes:
- jmde/csurf/csurf_faderport.h: Commented out #include <Windows.h>
- Some other issue where the compiler was complaining about a function being redeclared with a different type. I just copied in the declaration from the .c into the .h and all was fine. Unfortunately, I can't track it down now, for some mysterious reason.
- For convenience, the original author (The_Nimaj, blessed he be for his efforts) had hardcoded a copy of the .dylib to the UserPlugin folder of his Reaper resources folder. To fix, select the .dylib target in the Products folder of your project and click on the "Build Phases" "tab" at the top. You'll see two "Copy Files" phases. Expand them and fix the paths there. There must be a better way of doing this than hardcoding the path of your home directory (like using $HOME or something), but my (limited) XCode-fu fails me here. Anyways, when hardcoding a different path, it works.
Sorry for the rambling post, but I wanted to dump all this somewhere.
This plugin has a very simple interface in the "Add" dialog, just two combos for MIDI in and MIDI out. The rest of the options are set using a .ini file, which suits me fine. But this may not be to everybody's taste.
So I'm off to rip this apart and implement my (much simpler) csurf. No offense to The_Nimaj, and much thanks for giving me this starting point.
Last thoughts: the source includes a version of WDL, which may not be the greatest idea in the long run, but, hey, it works for now.
'nuff said.
Paul