[Rwp] Plug-in hot spots

James Teh jamie at nvaccess.org
Wed Mar 9 06:29:34 EST 2016


That's just the thing. Your parent, top level, whatever you're calling 
it isn't actually the plug-in window. The plug-in window is several 
windows beneath that. If you were dealing with the plug-in window 
itself, you wouldn't have to worry about bridging or not bridging. For 
the most part, the plug-in window usually doesn't have a name at all. 
The window you're talking about is generated by Sonar/REAPER, not the 
plug-in.


On 9/03/2016 9:27 PM, Chris Belle wrote:
> Right that's how sonar does it with ahk and hsc.
> the only time you want to use the parent window name is if you were 
> doing sets for botgh daw's and the plug-in windows were named the same.
> I was meaning the closest title or plug oin window when I said top 
> level window,
> on top of the tree.
> But I'll start saying child and parent.
> I get confused, there are so many types of windows, for instance 
> window-eyes uses overlap, and focussed,
> and current and
> on and on,
> jaws kind of does that too, along with home row and other stuff,
> but i understand parent and child.
> It's just different terminology but we're talking about boxes inside 
> of boxes,
> and we want to take the smallest box outside of the big box so we can 
> root around inside it and see what's in it.
> right now with my set-up reaper isn't cooperating, the window is 
> opening up I can use object nav and see the title window of say 
> sforzando or dimension pro,
> but it is incdeed opening up inside the fx window.
> So I need to figure out how to get it to fly outside.
> and I don't have those controls where I remember them being.
>
>
> On 3/9/2016 5:15 AM, James Teh wrote:
>> Actually, every plug-in renders at least one real "window" (or HWND) 
>> according to Windows. The problem is that many plug-ins just draw 
>> only into this single window. REAPER, Sonar, etc. don't do any 
>> interpretation at all; they just provide a parent window in which the 
>> plug-in can create its own windows. The reason coordinates are 
>> different in Sonar and REAPER is that coordinates in hot spot sets 
>> are being based off the top level window, which is, for example, the 
>> REAPER FX Chain dialog, the Sonar FX window, etc. I'm suggesting that 
>> they could instead be based on the plug-in window *beneath* that top 
>> level window, which would mean they're the same for every single DAW.
>>
>> Jamie
>>
>> On 9/03/2016 9:01 PM, Alan wrote:
>>> If I am not wrong, James, the bridge window is like a container for 
>>> non standar controls deffined by each plug in. However, it is not a 
>>> real window, but a kind of generated layout, so reaper, sonar or any 
>>> daw makes is own interpretation, that is the reason behind the need 
>>> of a different set of hotkeys for each daw. the window on screen is 
>>> not a real window according to the windows operating sistem api, so 
>>> you cannot access programatically to its properties.
>>>
>>>
>>> Enviado desde mi iPhone
>>>
>>>> El 9 mar 2016, a las 11:39, Chris Belle <cb1963 at sbcglobal.net> 
>>>> escribió:
>>>>
>>>> Here's my thinking.
>>>> If there's a compelling reason to go to fractions then we should, 
>>>> but right now jaws and window-eyes use cordinates which you can 
>>>> easily look at and translate say you want to re-produce
>>>> the hard work
>>>> of an hsc guy,k you can look in the file and say ok, the load 
>>>> button for sfz is 193,86
>>>> relative to the child window cordinates.
>>>> So that's easy to do, and it doesn't seem child windows resize that 
>>>> much or if they do those cordinates seem to always work,
>>>> maybe they stay relatively the same in ahk and hsc,
>>>> that no matter how the windows shrink or grow the cordinate amounts 
>>>> stay the same.
>>>> At least it seems to do so in sonar.
>>>> I don't know how they're pulling this trick off,
>>>> because I change display sizes and it doesn't usually break the hsc 
>>>> sets.
>>>> But if it does, then the bottom number seems to be more critical,
>>>> like 1024 by 768
>>>> if you change the 768 it breaks more hsc sets.
>>>> But that's the whole screen, the numbers of pixels across and down 
>>>> a child window seem to stay the same.
>>>> Anway it's easy to see what been done, and if we stay compatible 
>>>> with other tools doing this already, then we can share a lot more 
>>>> and not re-envent the wheel, unless there's a good reason to do so.
>>>> Just thoughts,
>>>> both jaws and window-eyes can use cordinate related to other 
>>>> windows than just the child window,
>>>> and maybe we could take advantage of NVDA's object nav and use 
>>>> container edges when they're available, and other stuff to zoom in 
>>>> on stuff even more.
>>>> With the jaws version there are lots of criteria you can use,
>>>> but like I said, even though I've done some hsc dev, the tool I am 
>>>> most familiar with is auto hot key.
>>>> It uses the title window you are working with,
>>>> and it can defferentiate between the parent and child windows
>>>> where it can fall down is when you need to drill down further than 
>>>> that and say you have different windows that open up in a child 
>>>> window say for instance sessindrummer 3 has a drumkit page and
>>>> a mixer page, but both have the same title window.
>>>> I hacked around it in autohotkey,
>>>> which can use hot strings and so doesn't limit the number of 
>>>> hotkeys you can use,
>>>> but I ran out of hotkeys in the jaws vesion and tried to make 
>>>> another hsc set for the mixer window but I had to hard-wire 
>>>> manually loading that set since the title windows were the same.
>>>> Hsc has come a ways since i did that a few years ago, but being 
>>>> able to designate a certain conrol or string, or something to say, 
>>>> hey, this set of controls is active now, use this set of commands 
>>>> and ignore those  others,
>>>> I hope I'm making sense.
>>>>
>>>>
>>>>> On 3/9/2016 4:14 AM, Chris Belle wrote:
>>>>> I meant the plug-in window.
>>>>> Not the application main window.
>>>>> Yes, we need to zero in on the closest container,
>>>>> for some reason I was thinking hot spot clicker called the top 
>>>>> level window the child window,
>>>>> but yeh, when I made my sfz ahk thing for reaper years ago I did 
>>>>> it for the
>>>>> window opening up in a separate window, and the sfz window title.
>>>>> Like it's supposed to be.
>>>>>
>>>>>
>>>>>> On 3/9/2016 3:59 AM, James Teh wrote:
>>>>>> My point is that the top level window isn't good enough. That's 
>>>>>> why it breaks when you use a different host or change bridging 
>>>>>> modes. The plug-in itself has a window beneath the top level 
>>>>>> window and I'm arguing that coordinates should be based off that 
>>>>>> window, not the top level.
>>>>>>
>>>>>> As for fractions being difficult for humans, that's certainly 
>>>>>> true, but I'm imagining a tool would calculate this for you. This 
>>>>>> is done already to some extent with HSC.
>>>>>>
>>>>>> Sent from a mobile device
>>>>>>
>>>>>>> On 9 Mar 2016, at 5:18 PM, Chris Belle <cb1963 at sbcglobal.net> 
>>>>>>> wrote:
>>>>>>>
>>>>>>> Hey Jamie,
>>>>>>> You are right, I am not the top dog developer of the pack,
>>>>>>> but I have used both hsc, and ahk and also hotspots from 
>>>>>>> window-eyes
>>>>>>> and golden cursor and I can see the differences in each method.
>>>>>>> You definitely want that top level window going on,
>>>>>>> hsc can slice it any way you want to,
>>>>>>> with lots of criteria for determining cordinates, but the most 
>>>>>>> common used is the plug-in name, or immediate application name.
>>>>>>> And yes, doing it with the plug in a separate windows is best.
>>>>>>> When I did my spots for golden cursor I was racking my brain on 
>>>>>>> how to make the plug express in a separate window, I have done 
>>>>>>> this before as I made the ahk script for sfz a while back for 
>>>>>>> reaper, but I'll be darned if I can remember where that setting 
>>>>>>> is, maybe it's not there anymore.\
>>>>>>> I look in vst and compatibility, and plug-ins,
>>>>>>> but I can't find that open plug in a separate process anymore.
>>>>>>> Huh, it's hell getting old,
>>>>>>> but anyway, I did the best I could,
>>>>>>> but the way I did it depends on the limits of golden cursor 
>>>>>>> which can only ping the main application,
>>>>>>> so if the plug moves around, or changes some how, it won't 
>>>>>>> account for that.
>>>>>>> But Rome wasn't built in a day,
>>>>>>> we got to start someplace right?
>>>>>>> I think a good first move would be to have that top level window 
>>>>>>> name and I think it will be easier for folks to remember 
>>>>>>> cordinates when programming instead of fractions, that seems to 
>>>>>>> be the way everyone else does it,
>>>>>>> going by the top left corner,
>>>>>>> of the window, other wise, you'd have things like what the heck 
>>>>>>> 600 by 800, and I'm at 125,136 what the heck is the fraction for 
>>>>>>> that?
>>>>>>> Maybe some sort of way to auto-resize,
>>>>>>> anyway, people with higher pay grades than me can figure out the 
>>>>>>> inner gears of this stuf,
>>>>>>> I can squeeze the oil can, and turn a screw driver, and wipe a 
>>>>>>> rag, but someone else will have to build the engine from the 
>>>>>>> whole frame 'grin'.
>>>>>>> Thank you for your attention to this, one final thought,
>>>>>>> I think hsc and ahk do searches by color and such from matching 
>>>>>>> patterns, and they set restrictinss on how far to search up and 
>>>>>>> down, it can get terribly complicated,
>>>>>>> but for us just having basic find me here in this location will 
>>>>>>> be a great start.
>>>>>>>
>>>>>>>
>>>>>>>> On 3/8/2016 10:49 PM, James Teh wrote:
>>>>>>>> Hi plug-in hot spot creators (HSC, AutoHotkey, whatever),
>>>>>>>>
>>>>>>>> As I've watched discussion about creation of hot spots for 
>>>>>>>> plug-ins and associated problems, I've been starting to wonder 
>>>>>>>> about why they aren't done in a way which makes them more 
>>>>>>>> reliable across different configurations. I don't have much 
>>>>>>>> experience in this area, so there may well be a good reason and 
>>>>>>>> I'm just not seeing it. So, I'd appreciate some thoughts on the 
>>>>>>>> below.
>>>>>>>>
>>>>>>>> In the following discussion, let's assume we're dealing with 
>>>>>>>> simple hot spots; i.e. spots which don't change such as the 
>>>>>>>> program browser button in Dimension Pro, the load button in 
>>>>>>>> SFZ, etc. I realise there are many cases where this isn't the 
>>>>>>>> case, but that's beyond the scope of what I'm getting at here.
>>>>>>>>
>>>>>>>> As I understand it, there are two main problems that cause 
>>>>>>>> basic hot spots to be unreliable:
>>>>>>>>
>>>>>>>> 1. Different screen resolutions/DPI settings. If hot spots are 
>>>>>>>> created for one screen configuration, they sometimes don't work 
>>>>>>>> on other configurations.
>>>>>>>> I notice that even though some hot spots use relative 
>>>>>>>> coordinates, they're still absolute as far as the window is 
>>>>>>>> concerned. That is, they don't account for the window being a 
>>>>>>>> different size, only the window being in a different starting 
>>>>>>>> position. So, why not use width and height fractions? So, if 
>>>>>>>> the coordinate is half way across the width of the window, you 
>>>>>>>> would store 0.5 instead of an absolute value like 200. This 
>>>>>>>> way, if the window shrinks to half size, you can still 
>>>>>>>> calculate the correct coordinates. In practice, some windows 
>>>>>>>> probably don't resize everything in direct proportion, but I 
>>>>>>>> would have thought this would be more rare than not.
>>>>>>>>
>>>>>>>> 2. Different applications. Hot spots created for Sonar don't 
>>>>>>>> work in REAPER and vice versa. Even in REAPER, hot spots 
>>>>>>>> created for bridged don't work in non-bridged.
>>>>>>>>  From what I've seen, even hot spots that are relative are 
>>>>>>>> calculated relative to the top level window. The problem is 
>>>>>>>> that the top level window is part of the host (e.g. REAPER), 
>>>>>>>> not the plug-in. That means it's going to be different for 
>>>>>>>> every host. So, why not calculate the coordinates relative to 
>>>>>>>> the window for the plug-in itself? The plug-in should render 
>>>>>>>> exactly the same way no matter where it's hosted. Therefore, if 
>>>>>>>> coordinates are all relative to the plug-in window, they will 
>>>>>>>> work the same regardless of the host used.
>>>>>>>>
>>>>>>>> On a related note, I'd be interested to know whether it'd be 
>>>>>>>> worth implementing some kind of basic hot spot support into 
>>>>>>>> OSARA. The question is what kind of complexity is needed for 
>>>>>>>> the majority of plug-ins. I know HSC has support for searching 
>>>>>>>> for colours, etc., but I never quite grasped how this was 
>>>>>>>> applied in practice.
>>>>>>>>
>>>>>>>> I'd appreciate any thoughts.
>>>>>>>>
>>>>>>>> Jamie
>>>>>>> _______________________________________________
>>>>>>> RWP mailing list
>>>>>>> RWP at bluegrasspals.com
>>>>>>> http://bluegrasspals.com/mailman/listinfo/rwp
>>>>>> _______________________________________________
>>>>>> RWP mailing list
>>>>>> RWP at bluegrasspals.com
>>>>>> http://bluegrasspals.com/mailman/listinfo/rwp
>>>>> _______________________________________________
>>>>> RWP mailing list
>>>>> RWP at bluegrasspals.com
>>>>> http://bluegrasspals.com/mailman/listinfo/rwp
>>>> _______________________________________________
>>>> RWP mailing list
>>>> RWP at bluegrasspals.com
>>>> http://bluegrasspals.com/mailman/listinfo/rwp
>>> _______________________________________________
>>> RWP mailing list
>>> RWP at bluegrasspals.com
>>> http://bluegrasspals.com/mailman/listinfo/rwp
>>
>
> _______________________________________________
> RWP mailing list
> RWP at bluegrasspals.com
> http://bluegrasspals.com/mailman/listinfo/rwp

-- 
James Teh
Executive Director, NV Access Limited
Ph +61 7 3149 3306
www.nvaccess.org
Facebook: http://www.facebook.com/NVAccess
Twitter: @NVAccess
SIP: jamie at nvaccess.org



More information about the RWP mailing list