Parat+ is an Open Sound Control (OSC) and MIDI controller for iOS which controls sound and visual computer software and hardware devices. Parat+ gives ultimate control and flexibility to the user while keeping technical considerations to a minimum, allowing intuitive use and letting the user focus on creative tasks.
The philosophy behind Parat+ is to have powerful gestural touch screen controls and multi-touch gestures available in the most efficient and intuitive ways possible. Parat+ serves as a tool for the musician, artist and technician whose approach is to use technology to advance their art.
The structure of the app combines powerful software and hardware parameter control with data automation and manipulation. Parat+ allows detailed yet simultaneous control through its powerful scaling and modulation capabilities. At its core the controller adopts the vertical fader-type design to allow for versatile use.
Multiple simultaneous OSC targets and full MIDI implementation allows the user to employ Parat+ as the perfect, versatile control hub. Parat+ slots into existing performance and production setups as it allows the creation of control structures which exceed other controller apps. More than just a virtual ‘fader box’, it allows you to record, remap and set controls instantly and intuitively. Control sound levels, effects parameters, synthesis, lights and more via OSC and MIDI simultaneously.
Behind every successful performance system lies a suitable design of appropriate routing, modulation and scaling of the control streams. A seamless integration of various controller types, interactive technology and device control are usually undertaken by specialists in technology and left ambiguous to artists. Parat+ offers coherent tools which are so intuitive and easy that it empowers you – the artist – both to develop your solution for your individual approach while keeping the focus on your music and art.
The simplicity and coherence of the tools enable any novice to venture into custom built controls, while the accustomed performance system developer will appreciate the time saved for complex setups.
The fundamental control structure of Parat+:
INCLUDE KEY :
Parat+ features fader-type controller modules at its core. These Faders can control parameters and functions of any MIDI and/or OSC enabled software and hardware. Multiple OSC targets can be defined to optimise user flexibility.
The internal structure of Parat+ allows each fader to be controlled by direct touch, automations from its internal Gesture Recorder and LFO Generators, and remotely controlled by external OSC sources (sensors) and MIDI controllers.
The Faders offer unparalleled realtime control via the multi-touch three point control feature to remap the interval and responsivity curve of each fader in real-time.
The touch gestures features include:
One finger gestures control the fader value.
Two finger gestures adjust the faders minimum and maximum values.
Three finger gestures adjust the minimum, maximum and responsivity curve.
In addition to interacting with the Faders by touch, each Fader can be remotely controlled and automated by the Gesture Recorder, internal LFO generators, audio analysis and sensors and external OSC sources. MIDI controllers can also be used to control Parat+ Faders.
Parat+ can become a central control hub for any performance and production setup as Source Faders can also be used to modify and modulate any incoming OSC data stream, for example from sensors, analysis modules and generative algorithms. When controlled remotely, all scaling and modulation features of Parat+ Faders can be used to shape the gestures and sources to adapt the incoming data stream as an appropriate control for your software and hardware parameters.
The gesture recording and playback allows looped and one-shot automations of unlimited length.
Parat+ can be expanded with the optional Polar controller optimised to work with ambisonic sound. However, it’s innovative approach to control sound diffusion and placement in a three dimensional space in angle, distance and elevation, the Polar controller can be intuitively explored for any other situation …
Because Parat+ Faders are the core element within the controller structure, the Source Faders and the Polar Control can form sophisticated expansions to integrate the potential of multitouch control, digital data manipulation and generation into the existing performance setups and instruments of your choice.
The philosophy behind Parat+ is to extend your artistic potential with tools to assist your practice without imposing an approach.
Navigating through Parat+:
The main views of Parat+ can be selected with the tabs of the Navigation Bar.
- Select Fader View Page:
Tap and slide from the Faders tab in a semi circular motion to select from the available Fader View Pages.
A short tab on the Faders tab will move to the successive Fader View page.
The tab indicates the selected page of number of pages available (e.g. 3rd page of 6).
- Edit tab:
When Faders are shown in the View Page, the Edit tab will open the Edit Fader Detail view.
- Select Source View Page:
Tap and slide from the Sources tab in a semi circular motion to select from the available Sources View Pages.
- A short tab on the Faders tab will move to the successive Sources View page.
The tab indicates the selected page of number of pages available (e.g. 1st page of 2).
- Edit tab:
When Sources are shown in the View Page, the Edit tab will open the Edit Sources Detail view.
- Fader and Gesture Presets.
- Setup View:
Parat+ Faders enable parameter control of any MIDI or OSC enabled software and hardware via a Wireless Network.* Multiple devices can be controlled simultaneously, allowing maximum flexibility in creating your optimal control hub.
* With additional adapters cabled connections are possible. Unfortunately this is more of a workaround and not fully supported by Apple.
Parat+ Faders multi-gestural controls maximise the user experience and control in realtime:
- One finger gestures control the Fader Value.
- Two fingers gestures (pinch) set the range and rescale. The first finger will be assigned to control the Range Minimum, the second to control the Range Maximum.
- Add a third finger to adjust the curvature of the response, optimising sensitivity.
For example a Fader with Parameter Range 0. to 1. can easily be adjusted to the Range Minimum of 0.2 and Maximum of 0.5 using the two finger pinch. Now the Fader will give much greater value resolution for the values between 0.2 and 0.5 as they are stretched over the whole length of the Fader run.
Using the two finger gesture to zoom in on the parameter range adjusts the number range assigned for the entire Fader run.
Add a third finger to adjust the Response curve of the Fader to logarithmic or exponential value distribution. This can be useful for having more sensitive control of higher volumes for example, but can also be used to have more natural control of filter cutoff frequencies.
The Option Wheel for further Fader control
The Option Wheel is designed to give a number of features within a small space by utilising a finger swipe from the centre of the wheel to select the function. The user easily memorises the angle to swipe in this powerful, quick approach.
- Start your gesture (touch down) in the centre of the Option Wheel and the options will visually expand.
- Use a cyclical gesture to dial through the options available.
- You can swipe (touch move) through the options in any radius from the centre. The suggested option (displayed in orange in the centre of the Fader) is always the closest one to your finger (see touch (1) in this figure).
- The option is selected and confirmed when the finger is lifted off the screen surface (touch up).
- To cancel the selection, move the finger back into the centre of the wheel.
In the case of selecting Looped or One-Shot Playback without an existing recorded gesture, recording standby will be activated automatically as it is assumed that the next recorded gesture should start playback upon finishing the gesture.
Available functions of the Option Wheel
When activating the Record Next Gesture mode all value changes of a single movement will be recorded between the next touch down and touch up. This creates a precise recording of your touch gesture. Activating the Looped or One-Shot Playback will playback the gesture in the exact timing it was recorded in.
Looped Playback of recorded gesture.
Activates a continuously looping playback of the recorded gesture. Choosing this option while the looped playback is on will stop the playback.
If the looped playback is activated before any gesture is recorded, the Gesture Recorder will automatically go into Record Next Gesture record standby and activate the looped playback at the moment the recording stops.
This feature is great to capture a quick idea and have it played back immediately on lifting your finger from the Fader.
- activate Gesture Record and Looped Playback
- record a single touch gesture
- playback starts immediately on lifting the finger.
One-Shot Playback of recorded gesture.
- Plays the gesture once from the beginning to end and automatically stops.
- Activating the One-Shot mode while the gesture is playing back in One-Shot mode will restart the gesture from the beginning.
- While the One-Shot Playback is active, acts as a stop button for the playback.
- Activating the One-Shot mode while the gesture is playing back in Looped mode will continue the playback to the end of the gesture and then stop. This can be used to ensure that the looped playback ends cleanly at the end of the gesture. The One-Shot playback can also be restarted by swiping quickly from the Fader area to the left, so that the touch up is to the left of the Fader area.
If the one-shot playback is activated before any gesture is recorded, the Gesture Recorder will automatically go into Record Next Gesture record standby and activate the One-Shot Playback at the moment the recording stops.
This feature is great to capture a quick idea and have it played back immediately on lifting your finger from the Fader.
- activate Gesture Record and One-Shot Playback
- record a single touch gesture
- playback starts immediately on lifting the finger
- playback stops automatically at the end of the gesture.
This recording mode allows the user to record any Fader movement, including multiple touch gestures. All Fader changes are recorded from the first value change, either from the first touch or from the first change from a Source (for example amplitude analysis /aa/amp2). The recording can be stopped manually by reselecting or by activating one of the playback modes ( or ).
The remaining Option Wheel functions are:
Locking the Fader to the current value will fix the Fader at its current position and prevent any Source or gesture playback having an effect on the Fader value.
Please note that this does not stop or pause the playback, so unlocking the Fader will pick up wherever the continuous loop happens to be at that moment.
- A locked Fader does not prevent changes by touch, because touch will always take precedence while setting the Fader value.
- Touch down followed by touch up on the Fader will unlock the Fader.
- Finishing a gesture to right of the Fader will lock it.
The calibration mode enables the user to calibrate and modify the incoming values from a Source (see Sources). This enables the Fader to react to a selected portion of the Source range.
E.g. When the Fader is controlled by the source /amp/2, which is an envelope follower of the mic input of your iOS device, the minimum of the calibration mode can be used to create a noise gate, specifying an amplitude threshold below which the values will be ignored. The maximum acts as a gain; when it is lowered, the amplitude values are rescaled so that the values will be at the Fader’s maximum when the amplitude reaches the maximum of the calibrator.
The incoming values are normalised according to the minimum and maximum values of the calibrator. The Fader is at 0 when the incoming Source values are smaller or equal the calibration minimum and the Fader top (value 1) will be reached when the incoming Source values reach the calibration maximum.
The touch control is in absolute mode by default, which means that the Fader position will be underneath your fingertip even if it involves a sudden jump. In certain circumstances it is an advantage to change the Fader to a relative mode, for example when volume changes should be gradual and pick up from the exact value at which they were left. In relative mode the finger movement changes the Fader position in relation the the touch movement. This mode enables very accurate and fine changes to avoid any jumps of the Fader value to a new finger position.
Prevent OSC output / solo MIDI
This option has a double function:
- When active, the OSC transmission is prevented while all functions remain working. This can be useful to prepare a gesture for later playback. It is also great if you need to make any changes to the calibration of the Fader without causing audible changes.
- When active, this mode will also affect the MIDI output and put the Fader in solo mode. This is useful in order to stop MIDI transmission of all other Faders for example when they are controlled by Sources. Most MIDI enabled software allows a MIDI learn mode, which can be very helpful, but if you have no means to ensure that you can isolate MIDI controllers, it can be difficult to avoid unwanted connections.
Parat+ Fader Edit View – basics
Each Parat+ Fader can be fully customised. This includes the basic OSC and MIDI settings which are available in the App.
- OSC address
- Parameter range sent over OSC
- MIDI channel and controller number
Open the Edit View by tapping on the first menu tab (highlighted in orange),
or double tapping on the centre of the Option Wheel.
It is possible to resize the Edit View (see image below) with a pinch gesture. Scroll up and down to access all the available settings.
All of the following points refer to the Edit View image below.
OSC address (transmitting):
Set the OSC address you want to use. Unlike many other apps, Parat+ enables you to edit all OSC addresses in the app. This is particularly useful for OSC enabled software that has fixed OSC addresses to speak to its parameters. For example when working with Reaper, the volume fader of Track 1 can be adjusted with the OSC address /tracks/1/value and the panning with /tracks/1/panning.
MIDI controller number and channel:
Scroll down to access and edit the MIDI controller number and channel.
Parameter range sent over OSC:
Define the number range transmitted via OSC. Software and hardware developers might have implemented a standardised value range of 0. to 1., however, OSC itself does not limit the user to any range.
For example when controlling the cutoff frequency of a high pass filter, it might be better to use a parameter range of 150 to 5000 to reflect the values. N.B. Ensure you know what ranges the receiving software has, as sometimes only default ranges are used (e.g. 0. to 1.).
‘<<‘ resets the range to the default linear range of 0. to 1..
OSC data type.
By default a F is setup to send floating point numbers (decimal numbers). Because some software and hardware might be limited to receive and process integers (whole numbers) only, the data type for the OSC transmission can be changed.
Please note that changing the data type to integers will most likely require the parameter minimum and maximum to be adjusted to a higher range than 0 to 1, as otherwise the Fader will only produce these two numbers – 0 and 1 – and nothing in between!
Fader Range Minimum, Maximum and Curve:
In certain situations you might prefer to set the Range Minimum, Maximum and Curve manually rather than through the multi-touch gestures. (see Multi-gestural controls)
Use ‘<<‘ to reset the range to the default range of 0. to 1. with linear distribution (0.5).
OSC transmission of value and range:
Parat+ can be set to limit transmission of the scaled Fader Value only (‘OSC value only’) or add the Range Minimum and Maximum (‘OSC transmit all’). In either case the transmission is as individual messages in the following format:
The transmitted value is calculated in relation to the minimum, maximum and curve and scaled according to the defined Parameter Range.
The transmitted value is the Fader minimum.
The transmitted value is the Fader maximum.
Transmitting the Range Minimum and Maximum, as well as the actual value (‘OSC transmit all’ mode) enables the use of all available streams for custom processing in suitable software (e.g. Max7, Max4Live, PD etc.).
Parat+ Fader Edit View – further settings:
Further customisations allow more complex setups and integration of Parat+ into performance and production systems.
Value controlled by (OSC address).
When Parat+ receives OSC data streams it automatically creates Source Faders for each OSC address received. When entering the OSC address in the ‘Value controlled by (OSC address)’ the data of the respective Source Fader is used to control the Fader.
If you enter an OSC address which is not found in the available Input Faders, it will be created automatically on the assumption that this was done to prepare Parat+ to receive this OSC address.
N.B. Currently there is no limit to the amount of Source Faders in Parat+, however you should keep an eye on how many streams Parat+ receives to ensure that the internal processing power (CPU) remains adequate to deal with the connections of the streams.
Input Calibration (minimum and maximum):
The minimum and maximum value for the Input Calibration can be set manually in the Edit View or by activating the calibration mode in the Option Wheel. The incoming values from a Source fader can be calibrated and modified to set the Fader to react to only a portion of the Source range. The incoming values are normalised according to the minimum and maximum values of the calibrator. The fader is at 0 when the incoming Source values are smaller or equal to the calibration minimum and the fader top (value 1) will be reached when the incoming source values reach the calibration maximum.
E.g. When the Fader is controlled by the source /quaternion/x, which report the tilt of your iOS device on the x-axis, the minimum and maximum of the calibration mode can be used to set convenient tilts of the device to have the Fader at its lowest and highest value.
Minimum controlled by Source (OSC address):
When Parat+ receives OSC data streams it automatically creates a Source for each OSC address received. When entering the OSC address in the ‘Minimum controlled by Source (OSC address)’ the data of the respective Source Fader is used to control the Range Minimum.
Maximum controlled by Source (OSC address):
When Parat+ receives OSC data streams it automatically creates a Source for each OSC address received. When entering the OSC address in the ‘Maximum controlled by Source (OSC address)’ the data of the respective Source Fader is used to control the Range Maximum.
Parat+ Source Faders
OSC data streams are often used to interface sensor devices with software. The sensors send their values according to the sensor range decided by the developer/programmer and most of the time scaling and calibration is only available by using device specific software or software such as OSCulator (OSC to MIDI). Software packages such as Max/MSP and PD are also often used to enable the extraction and modification of such data streams to map them to parameters in your software.
OSC data streams can be sent to Parat+ from any Ethernet or WiFi enabled device. When sending OSC data streams to Parat+, OSC addresses which do not start with the name of the faders (/fader/0, /fader/1, etc.) followed by a single number value (integer or float) will automatically get a Source Fader created with the name of the OSC address: e.g. /sensor/x, /sensor/y etc..
Source Faders enable the user to manage incoming OSC data streams. This includes several ways to conveniently deal with potentially required calibration and scaling stages.
The Source Faders of incoming OSC data streams have been implemented to ensure easy adjustment of complex performance systems during sound checks, development and rehearsal stages. This approach has proven very successful to allow the quick and easy adjustments during performances, so that users have started to use these elements as for performative controls as well.
The Option Wheel for further Source Fader control:
The Option Wheel includes controls to set and learn the incoming data range to calibrate the input stream for convenient adjustments of the performance setup.
OSC data streams of more than one integer or float will be separated into individual Source faders. For example, /listOfValues <value0> <value1> <value2> will appear as Source Faders with OSC addresses of /listOfValues/0 /listOfValues/1 /listOfValues/2.
Open the Source Edit View by tapping on the first menu tab (highlighted in orange),
or double tapping on the centre of the Option Wheel.
As OSC data streams can be created by anyone, the value range can differ drastically. For example many standardised OSC implementations ensure that the range is normalised to the range of 0. to 1. as floats. However, any range is possible and in certain circumstances the values reflect the units of the measurment they describe or the resolution of the hardware which is used to generate the OSC data stream (e.g. 0 – 360 degrees or 0 – 1024 as integers from an Arduino etc.). Parat+ offers a convenient way to learn the incoming range. Simply activate and produce the lowest to highest value you want to use, for example, tilt an acceleration sensor to the desired extremes.
Scale incoming range to the learned or manually defined range (see Source Fader Edit view).
Take current value as calibration minimum
Take current value as calibration maximum
Lock Source fader to current value
Source Fader Edit view:
To create a new Source Fader tap on the on the right hand side of the listed Source Faders.
A new source will be created with a default name of /lfo/<no>* and automatically opens the SourceFaderEdit view:
* <no> stands for the number of available Source Faders (starting count at 0). E.g. creating the eighth Source Fader will have a default name of /lfo7.
The new /lfo<no> fader will be added in alphabetical order and will be automatically shown in the Source Fader Editor view. By default it will be a looped ramp generator moving from 0. to 1. over the time of 1000 ms.
The Source Fader Edit view enables the adjustment of:
- Duration (ramp time), set in milliseconds
A new value is produced and sent in the frame rate of your iOS device (usually 60Hz = every 16.67 ms).
* Please Note: the phase will only be apparent if more than one ramp with the same duration is used. E.g. use the phase value of 0.5 to have a ramp starting at the halfway point of another ramp.
A selection of other generator types are available: triangle, sine, random and gauss.
The parameters for ramp, triangle and sine function the same way. The parameters for random and gauss differ slightly. They are:
- ‘Interval’, sets the time interval (in milliseconds) when a new random number is produced.
** Please Note: the offset will only be apparent if more than one random generator with the same interval is used. E.g. use the offset value of 0.5 to have a new random value starting at the halfway point of another generator.
Parat+ Setup view:
Settings for the IP address and port numbers of the OSC targets are available in the Setup view.
Use the Setup tab in the Navigation bar to open the Setup View.
Parat+ enables four OSC Targets (a computer or iOS device on your WiFi network) to be defined.
For most users this might be irrelevant, therefore target ‘one’ is considered the main OSC target which cannot be removed.
Define the IP address and port number of your target device.
For example, a common scenario for users will be to enter the IP address of the computer you are running OSC enabled software on such as Max7, Ableton Live with Max4Live, PD or Reactor etc.
The port number can be user defined, however it is necessary to check whether the software/hardware you want to control has a fixed port number.
If you want to send OSC data to Parat+ ensure that your source software is sending the OSC data to the IP address of your iOS device (shown as Local IP) and the Receiving Port number.