Control of Digico desks with OSC – Part 2 - Solutions
Part 2 of a three part series about practical ways to use OSC to remotely control Digico desks. I don’t pretend to be an OSC expert but the information and solutions included in this series have been tested and work well.
Here in Part 2 we discuss different software approaches with pros and cons of each along with suggestions on how to test your remote controllers.
We will talk about TouchOSC and Protokol, both published by Hexler.net, OSC Pilot from OSCPilot.com and OSC Controller by Adam Katz from the Google Play Store.
Here are the download sites –
Touch OSC and Protokol https://hexler.net/products Win / Mac / Linux / IPad / Android
OSCPilot https://oscpilot.com/pages/downloads Win / Mac / IPad
OSC Controller https://play.google.com/store/apps/details?id=com.ffsmultimedia.osccontroller
All of these are free to try but need a license to use. Nothing is more than $50.00 so it is totally worth buying the application that suits you best, but check them out first.
TouchOSC is the most complex and deep of these programs and I will devote Part 3 of this series to an in depth look at TouchOSC, how it works and how to make it work for you to control Digico desks amongst other things.
Protokol - Seeing what OSC messages are being sent on your network
In part 1 of this series I pointed out that OSC messages do not have any handshaking, response or error catching protocol. You send your message and the only way you know it works is if the device you are controlling responds by activating the OSC command.
So how do you test what messages you are sending and their format.
This is what Protokol does and it should be the first thing you download. (while you are on Hexler’s site you might as well download your flavour of TouchOSC at the same time).
Here is an example of what Protokol shows you. I sent an OSC command to port 8002 on my local host (IP address 127.0.0.1) that mutes and then unmutes Channel 1 on a Digico desk.
Line 1 shows Protokol connecting to Port 8002 where it listens for incoming commands
Line 2 shows the incoming command for muting Channel 1
Line3 shows the incoming command for unmuting Channel 1.
These commands are sent from a toggle (boolean) button with state 1 to latch the mute and state 0 to unlatch the mute. These are sent as Float data.
Protokol is fast and easy to use. You can select a port in the port box, select the OSC tab on the tab bar and clear a long list of commands using the Clear button. Note that any experiments with the Digico offline editor are best done using two different computers with seperate IP addresses.
If you assign a port on the local host to one piece of software then no other software can monitor it. So when using Protokol you need unique ports for testing and then change the ports to operate the control client. Protokol gives you the complete message including states, integer types, other arithmetic types or text strings.
Here are examples of other Digico commands that control Macros and Snapshots.
Note that the Snapshot number is a numerical 32-bit Integer, here Snapshot 4. This is because Snapshots on the Digico platform can have decimal numbers e.g. 4.5. That is a common result from inserting a new Snapshot into an existing list so it makes the command format different from an integer command such as a Macro call which is an integer and nothing else. Also note that Digico macro calls start at 0 for the first one in the list.
Now we know how to check the commands we are sending and receiving, let’s look at some software that builds GUI panels to send these commands. Note that all the examples below are from the Windows 10 version of the software, the Mac versions may be slightly different.
OSCPilot
This software was developed to meet the needs of DJ’s and live music producers who needed clear and simple graphical representations to control multiple sources including tracks, live audio streams, video and games interfaces. The design program is a page editor that let’s you build up to 32 pages of any combinations of widgets (their name for control objects) per page. It’s really fast to build controls with lots of colour and size options and allows fast swipes between pages, or you can build buttons to jump pages.
OSC Pilot Layout
Along the top of the editor page is a selection of editor controls and widgets that you use to construct your control page.
The first six buttons are for file management along with Settings. All the rest are widgets that place controls onto the blank page.The first place you go when building a new file is the Settings widget
Settings
This is where you define your control parameters for your OSC clients on the network. Up to 5 different device addresses (A – E) can be logged in these settings pages.
Here the stock OSC information is stored, network address of the host along with send and listen ports. You can add MIDI commands if a MIDI controller is connected to your computer. The rest control the look of the pages
Button Widget
As you may suspect this is a control that can issue either a single command (e.g. recall a macro) or an on/off type of command (e.g. operate a mute). You drag and drop a button onto the blank space below the top bar and resize it by grabbing the white corner of the highlight and dragging. On the right hand side is a list of properties that apply to this highlighted control. The colour and font of the selected item can be changed directly using the buttons on the far right.
Along the bottom of this screen is the current workspace which here is workspace 2.You can select these by swiping left or right or by clicking
a number.
This panel shows the right hand side of the page with the various control properties for the highlighted button.
The OSC command is entered into the OSC Address space and can be much longer than the alloted display. Click on the command and move the cursor to the right to see the rest of it.
The other things to look at are OSC Socket to confirm which device you are controlling and OSC on and off values, here indicating a boolean switch.
Toggle makes the switch boolean, if not selected only one command is issued. The rest of the properties are for labelling and display.
This
page is designed for higher resolution displays than I am using so there is
some overlap at the bottom.
Button Properties
Now you have built a button and assigned it’s OSC commands you are ready to test; simply press TAB to move backwards and forwards between editor mode and operator mode. After doing this a couple of times you will find it very fast and easy.
Slider Widget
Added to the control page in the same way as a button, drag and drop to where you want it, change size and colour as required. It’s called a slider because you can use it as a desk fader or as a horizontal panner or as a control for something motorised or display oriented. (e.g. screen brightness on a Digico desk - low 0, high 256).
Now we can use Protokol to look at exactly what OSC commands the slider issues.
As you can see from this list of commands the levels are automatically calculated by the program from the position of the fader and automatically configured to the correct number format. OSC Pilot does this automatic formatting for all it’s widgets so you don’t have to decide if the command should be this or that format. All you need is the correct command and the program does the rest. In this case the command is:-
/Input_Channels/1/fader.
Other Widgets
The Dial widget can be used to represent a pan control or a rotary volume control. It could also be used as a frequency sweep indicator with different ranges based on what you specify in the OSC Low and High ranges in the Dial properties.
The Pad widget is designed to simulate a mouse pad and has both X and Y parameters along with touch sensing.
The Label widget lets you add informative labels to your displays.
The Multi Sliders and Multi Button widgets enable you to assemble panels of contiguous controls. You can specify the number of controls in each panel and they will assign target command addresses automatically.
Support
There are excellent on line tutorials, manuals and an active on line community for this software. The trial version is fully featured except that it does not allow you to store any programs you build, but it’s a great way to find your way around the interface and test your commands. I use it frequently to build a test page when I am working on a specific new application for controlling a Digico desk, Reaper DAW and any other devices. It is very fast and easy to use so I heartily recommend that you check it out and read the documentation.
----------------------------------------------------------------------------------------------------------------
OSC Controller - for Android devices
I use this program to set up an Android device for testing commands when working on a new implementation. Both OSC Pilot and TouchOSC require you to use their editor to build a program that you then copy to your phone or tablet. The phone and tablet apps are not editors and need a compiled program to work.
The beauty of OSC Controller is that you build your commands right in the application without needing any external editor.
This makes it very fast for testing commands and new applications. Here is the main operating page.
What you see here is Page 1.
Page 2 is a touch pad
Page 3 is filled with 24 toggle buttons and
Page 4 is filled with 24 momentary buttons.
Settings Page
Press the Settings icon on the page above and you get the following:-
Enter the IP address and port number for the device you wish to control. Pathing is not necessary if you are addressing devices directly over the network. Start/End runs the program, Controls gets you back to the page layout shown above.
Once you program some events a couple of other options may appear on this screen.
Editing individual ControlsGo to the operating page, press the Editor page button and the screen will turn light blue to indicate control editor mode. Press a control to edit it.
Here Slider 3 was selected and you now have the options of Min and Max level settings along with labelling.
If you are setting the slider to act as a Digico fader you will want to change the address to the required OSC command and probably change the Min value to -60 and the Max to +6.
Change the label as you see fit and press update.
Whilst editing a button a colour option is available.When a button is selected with the editor a colour band is presented to the right of the Label, pressing this colour bar gives you button colour options.
This is not available for faders, just for buttons.
That page looks like this.
Once again this program is very quick to setup and edit your OSC settings along with individual control properties. It’s speed and useability make it great for testing and doing anything that only requires a basic layout.
-------------------------------------------------------------------------------------------------------------------
Summary
There are pros and cons to the programs discussed above, here are some of them.
Protokol
This is a must have program for checking the format and routing of your commands.
Pros
Fast and efficient display of incoming OSC commands.Fast and easy to switch ports and even protocols e.g. MIDISimple and easy to use.
Cons
I can’t think of any, it does what it needs to do and works very well.
OSC Pilot
Capable of building excellent interactive displays over a lot of pages with any mix of controls that you desire. Simple, straightforward and very fast to operate.
Pros
Fast and easy to program and takes care of much of the command configuration.
Excellent display properties, lots of colours, any size you like and various backgrounds.
Up to 32 pages of controls with mixed controls on every page formatted as you wish.
Excellent support, documentation and videos to get you up and running very quickly.
Cons
Linited ways to make controls properties interactive with each other.
Only one command per control, no way to send multiple OSC commands with one control.
OSC Controller
Fast and easy Android app with a fixed interface.
Pros
Very fast and easy to program
Does not need any external editor for programming, you do it right in the app.
Basic addressing for sliders, buttons and toggles, some have colour options available.
Cons
Very restricted interface, no way to build your own pages and only 4 pages available.
Only one command per control.
Coming up next
Control of Digico desks with OSC – Part 3 – The more complex and programmable solution. TouchOSC
In this part we’ll discuss one program only, TouchOSC. It is much more complicated than the solutions discussed above but adds many more abilities including mutually interactive controls, multiple commands per controller and a form of scripting to expand the control capabilities. All this and create a pleasing GUI. I’ll include some examples of working controls which include these different and more complex properties.
Please keep checking this site for Part 3.
---------------------------------------------------------------------------------------------------------------
© Clive Alcock 2023


No comments:
Post a Comment
Please Feel Free to Comment