![]() It’s probably fair to say that QLab still has some way to go in its response to rapid streams of OSC messages. However the amount of data, and calculations on that data, puts a considerable strain on the resources of the computer. ![]() This is a project that, beyond a proof of concept, for some applications, can produce usable results. You can download the workspace for this project here There are more complex functions that could be used, but these give acceptable results for general quad panning purposes. This is a fairly simplified set of formulae to convert x y coordinates to slider values. The complexities of the scripting are to execute the formulae below in an efficient manner, which is necessary to get an adequate processing speed for the conversion. We then convert the x,y coordinates to absolute values for the four sliders in the audio cue by preparing the data and performing a shell script which passes the data to AWK to do the advanced mathematical processing. We then call a subroutine, constrainValue which constrains these values to 0.01 to 0.99 so we do not get errors from performing log calculations on 0 or 1. Normalises these coordinate values to 0 to 100 from their raw values of -100 to 100 which enabled us to use the whole of the 2D fade plotting space to draw our path. Gets the coordinate values for the current cursor position from the x and y translation values of the dummy video cue numbered DUMVID. The script first sets its target cue to the audio cue we are using, which we previously stored in the notes of the cue numbered SCRIPT.įor as long as the cue numbered LOOPGROUP is running it then repeats the following: To get the maths to work fast enough the script needs has to be efficient and Rich Walsh did the detailed work on this script to optimise it for speed. To get round this we use shell scripts to harness the power of the AWK processing language which is included as part of OS X. This is a fairly complex script, as AppleScript doesn’t have much in the way of maths functions, including the log calculations we need for this project. The engine of this project is the script cue in the loop group: This sets the x and y translation values of the cue numbered DUMVID to the current cursor values 20 times per second.Ī Start Cue numbered LOOP later in the group restarts the group every time the pattern completes, so that the pattern loops.įinally, the group contains the disarmed text cue which stores our cursor values as translation x and y values. The 2D fade replaces #x# and #y# argument placeholders in the OSC message: The density of the cursor data is set with the fps menu. We are using x and y scales with a maximum value of 100. This starts the Network cue we have previously armed that has the path we wish to use drawn within it as a 2D OSC fade The final cue in the group starts the Group cue numbered LOOPGROUP. The fade cue following fades the master slider of the audio cue, allowing the cue to fade in independently of the panning activity. ![]() The next cue arms one of the Network cues with the Patterns e.g if we wanted to use pattern 3 we would edit the OSC of this cue to:Īgain this allows the group cue to be copied and pasted and used with different audio and different patterns, with minimal reprogramming. There are 5 Paths numbered PAN 1-5 with different paths drawn in the 2D fade well of an OSC message in a Network cue. The workspace can store any number of patterns in the group cue PATTERNS which is nested in another group cue numbered LOOPGROUP. The next cue in the group disarms all Pan Paths. This allows the same script to be used for other cues with different audio, e.g if we had another group cue with a train effect in an audio cue numbered TRAIN the OSC message would set the notes of cue SCRIPT to TRAIN. This is followed by a Network cue which sets the notes field of the cue numbered SCRIPT to the number of the audio cue we are using, in this case, cue HELI. We can then use a script with some maths functions to take these coordinates and interpret them as 4 slider levels which will give a voltage panned output that approximates the cursor position on a quadraphonic soundstage.Ĭue 1 is a ‘fire all children’ group cue which contains the mono audio cue matrixed to 4 sliders corresponding to L, R Ls & Rs. This allows us to use the x and y translation of a dummy video cue, (a disabled text cue works very well for this), to store the current values of the x and y coordinates of the current cursor position on a drawn path in a 2D OSC fade. The new QLab 4.2 feature which enables this project is the OSC message: Because you may not have a multi-channel playback system with which to listen to the demo, I have encoded the soundtrack as a binaural recording for playback on headphones.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |