Notifications
Clear all

Unify and OSC

18 Posts
3 Users
2 Likes
466 Views
karlfranz
(@karlfranz)
Estimable Member
Joined: 2 years ago
Posts: 124
Topic starter  

Like many others, I commonly use Unify as a tool to explore the many thousands of presets in the VSTs I own and to find combinations of presets that sound pleasing together.

I’m a bit impaired, so I’m trying to minimize interaction via the mouse pointer as much as possible. To that end, I devised a cool mechanism that allows me to navigate up & down the list of presets, snapshots and banks, tag favorites, and other functions on the majority of instrument and audio effect plugins using the same, consistent set of keystrokes or buttons on a touch interface. The first time I open a brand new VST, I can just hover my mouse over different elements in its GUI and press a keyboard shortcut to train my application. It can then perform those functions any time that particular VST is opened in the future.

My solution uses a combination of tools including Keyboard Maestro, Touch Portal, OSCulator, AppleScript, HTML, and Bome MIDI Translator. Since Unify is built on JUCE, it does not respond to typical AppleScript, nor does it provide a way to query things such as window titles, etc. As such, some of the remote control functionality has to be accomplished via some creative use of screen coordinates, image matching and OCR.

To simplify this and make my application more universal, here is some additional OSC functionality I’d like to see:

  • Show/Hide/Bring-to-foreground a plugin’s GUI by specifying layer’s name or number as well as the desired target:
    • MIDI effect;
    • Instrument; or
    • Effect slot number
  • Show/Hide macro knobs by specifying bank number
  • Show/Hide Linked Parameters window by specifying macro number
  • Show/Hide MIDI controls
  • Specify window coordinates and size for Unify and its child windows
  • Specify tempo
  • Specify MIDI trigger mode
  • Toggle Preset favorite
  • Toggle Favorites filter
  • Load next or previous preset
  • Change setting to load or load embedded
  • Load a Layer Preset by providing a path relative to the Unify/Presets/Layer Presets folder
  • Specify a Macro Definition file to be loaded alongside the Layer Preset and whether to replace or append to any existing linked parameters.
  • Remove a Layer by layer name
  • Remove a Layer by layer number

 

Importantly, it would also be crucial to provide a message to any registered listener when any of the above actions are preformed via the native Unify GUI so the remote control application can stay in sync with any changes made.


   
terrybritton reacted
Quote
getdunne
(@getdunne)
Illustrious Member Admin
Joined: 3 years ago
Posts: 3683
 

@karlfranz

This is a terrific detailed list, thank you. I've pasted it verbatim into my to-do list.

Unify is built on JUCE 6.0.7. Newer versions may support some of the automation/accessibility features you mention.


   
karlfranz reacted
ReplyQuote
karlfranz
(@karlfranz)
Estimable Member
Joined: 2 years ago
Posts: 124
Topic starter  

@getdunne  do you think there will be any progress on the OSC implementation for 2022 or is this a very low priority task?


   
ReplyQuote
craigr68
(@craigr68)
Member
Joined: 2 years ago
Posts: 172
 

Yes please.  And I would very much like to see it work with DAW instances where you can assign it different Port numbers.


   
ReplyQuote
getdunne
(@getdunne)
Illustrious Member Admin
Joined: 3 years ago
Posts: 3683
 
Posted by: @karlfranz

@getdunne  do you think there will be any progress on the OSC implementation for 2022 or is this a very low priority task?

I had hoped to make more progress on OSC already, but the challenges of supporting Apple's new ARM-based Macs must come first.


   
ReplyQuote
getdunne
(@getdunne)
Illustrious Member Admin
Joined: 3 years ago
Posts: 3683
 
Posted by: @craigr68

Yes please.  And I would very much like to see it work with DAW instances where you can assign it different Port numbers.

Please explain how you would use this. I have some ideas of my own, but only for very esoteric cases.


   
ReplyQuote
craigr68
(@craigr68)
Member
Joined: 2 years ago
Posts: 172
 

I have a Cakewalk project where I have two midi controller keyboards with their own Unify instance in Cakewalk.  I use an alternative full screen patch browser that I created in Autohotkey (screenshot below).  I use it for playing and testing various patch combinations for the two midi keyboards.  If I right click on a patch, it changes the patch for one of my controller keyboards.  If I left click a patch, it changes the patch for the other midi keyboard.  As it is currently, I'm using your "Changing patches with midi" methodology where I utilize midi bank files.  It works well.  The script also creates the bank files but I have to update those files any time I add a library or even a patch or two - but it does do this quickly.  

I assume I'll have a 128 bank limitation eventually and I'm not far from that now.  I already created another version of this script that has been tested with Standalone Unify that uses OSC instead of midi, which would eliminate this 128 bank limitation.  And also, it would be much nicer not to have to create all those text files when I add patches or libraries.  I could also embed patches.  I would think I should be able to address each of those two Unify instances separately if they were assigned different port numbers.

I'm curious how you could implement this in Unify VST version since Standalone Unify has the port numbers in the settings.

By the way, we started discussing this in February in this thread: https://forums.pluginguru.com/welcome/miscellaneous-osc-questions/

 

This post was modified 3 weeks ago by craigr68

   
ReplyQuote
getdunne
(@getdunne)
Illustrious Member Admin
Joined: 3 years ago
Posts: 3683
 
Posted by: @craigr68

I have a Cakewalk project where I have two midi controller keyboards with their own Unify instance in Cakewalk.  I use an alternative full screen patch browser that I created in Autohotkey (screenshot below).  I use it for playing and testing various patch combinations for the two midi keyboards.

What does Cakewalk add in this scenario, versus running two embedded Unify layers in the Unify stand-alone app?


   
ReplyQuote
craigr68
(@craigr68)
Member
Joined: 2 years ago
Posts: 172
 

I would like to use Standalone instead of Cakewalk.  I don't quite understand how that could work.  Say I start out by embedding 2 Unify layers.  I could have layer1 triggered by one midi kybd which I have set to Midi ch1.  I could have layer2 triggered by the other midi kybd which I have set to Midi ch8 (arbitrary channel number I picked).  If I wanted to change a patch on either layer without affecting the other layer, how is that possible with Osc? I thought embedding would only add a layer, not replace a layer.  The reason I use Cakewalk with 2 separate instances, is to send the prog changes independent of each other.


   
ReplyQuote
getdunne
(@getdunne)
Illustrious Member Admin
Joined: 3 years ago
Posts: 3683
 
Posted by: @craigr68

I would like to use Standalone instead of Cakewalk.

...

The reason I use Cakewalk with 2 separate instances, is to send the prog changes independent of each other.

I understand now. I'm working on adding code to Unify to allow this, which will be available to you in the next public beta version (coming very soon).


   
ReplyQuote
craigr68
(@craigr68)
Member
Joined: 2 years ago
Posts: 172
 

How is one to know when a beta release comes out?  Is it posted in the forum or something? 


   
ReplyQuote
getdunne
(@getdunne)
Illustrious Member Admin
Joined: 3 years ago
Posts: 3683
 
Posted by: @craigr68

How is one to know when a beta release comes out?  Is it posted in the forum or something? 

Normally, beta releases are only announced in a special section of the forum for official beta testers. With the latest "public betas", we've entered entirely territory. John will definitely announce in his weekly YouTube livestream, and to the newsletter mailing list. I suppose I could add an "announcements" section to the public forum.


   
ReplyQuote
craigr68
(@craigr68)
Member
Joined: 2 years ago
Posts: 172
 
Posted by: @getdunne

Normally, beta releases are only announced in a special section of the forum for official beta testers. With the latest "public betas", we've entered entirely territory. John will definitely announce in his weekly YouTube livestream, and to the newsletter mailing list. I suppose I could add an "announcements" section to the public forum.

I'm currently on Unify 1.8.2 Public Beta.  Is that the latest/greatest?  How does one become an official beta tester?  Does that special section appear in the PluginGuru forum main page?  Or where?


   
ReplyQuote
getdunne
(@getdunne)
Illustrious Member Admin
Joined: 3 years ago
Posts: 3683
 
Posted by: @craigr68

I'm currently on Unify 1.8.2 Public Beta.  Is that the latest/greatest?  How does one become an official beta tester?  Does that special section appear in the PluginGuru forum main page?  Or where?

Very latest is 1.8.3, but it turns out to have serious problems, so won't be released until I fix them (this week).

Email John at UnifySupport@PlugInGuru.com to request to be put on the beta testers list. Special sections (there are several) appear on the Forum main page, or under "Forums".


   
ReplyQuote
craigr68
(@craigr68)
Member
Joined: 2 years ago
Posts: 172
 

Ok, I just emailed support.  I think I did that quite a while ago but never got a reply.  I thought maybe being in nerds group would give me access, but I guess not.  Hope the hurricane wasn't too problematic for you.


   
ReplyQuote
getdunne
(@getdunne)
Illustrious Member Admin
Joined: 3 years ago
Posts: 3683
 

@craigr68

I think I just added you to the Beta Testers list here on the Forum. You might need to refresh your browser and/or log out and in again. Look at the list of forums and you should see the beta forums at the bottom.

I'll let John know to look for your email. He has a mailing list for beta testers that only he can add to.


   
ReplyQuote
craigr68
(@craigr68)
Member
Joined: 2 years ago
Posts: 172
 

Yes, I now see Beta Testers forum.  Thanks. I've got some catching up to do.  I hope participation is considered optional because I would probably just want to test things of particular interest to me.  I do the same thing with Cakewalk beta updates.


   
ReplyQuote
getdunne
(@getdunne)
Illustrious Member Admin
Joined: 3 years ago
Posts: 3683
 
Posted by: @craigr68

I hope participation is considered optional because I would probably just want to test things of particular interest to me.

No problem. Better that you concentrate on the areas where you can be most observant. Any and all feedback is useful, thank you!


   
ReplyQuote
Share: