Expert Sleepers Augustus Loop v2.3.
Copyright © 2009-2010 Expert Sleepers. All rights reserved. This manual, as well as the software described in it, is furnished under licence and may be used or copied only in accordance with the terms of such licence. The content of this manual is furnished for informational use only, is subject to change without notice, and should not be construed as a commitment by Expert Sleepers. Expert Sleepers assumes no responsibility or liability for any errors or inaccuracies that may appear in this document.
Contents Introduction 12 Installation 14 Mac OS X, Audio Unit (AU)! Mac OS X, VST! Windows (VST)! System Requirements Mac OS X! Windows! 14 14 14 14 14 14 Registration 15 What’s New in Version 2 16 Quality Improvements 16 Freeze Loop 16 Sync Groups 16 Tape Sim 16 Skinnable and Scriptable GUI 16 OSC 17 MIDI & OSC Scripting 17 Waveform Display 17 Record Offset 17 Tape Read Mode 17 Quickstart 18 Using Augustus Loop 19 Using the controls Knobs! 19 19
Sliders! Dropdown menus! Value edit boxes! Name/value display! 19 19 19 19 Overview 20 Delay Time 21 Max Delay! Delay Time! Min! Max! Current delay time! Delay Slider! 21 21 21 21 21 21 Delay Taps 22 Delay Time! Delay Level! Master! 22 22 22 Pitch Pitch! Pitch Slider! 'Piano Keys'! Reverse! Stop! LFO Speed! LFO Depth! Filter Cutoff! Q! Type! LFO Speed! LFO Depth! Saturate! Saturation! Shape! Tape Sim Drive! Crunch! Gain! Lo Freq/Lo Amnt! 23 23 23 23 23 24 24 24 25 25 25 25 25 25 25 25 26 26
Hi Freq/Hi Amnt! Sync Host Tempo! Beat Divisor & Triplet! Beats! Using Beats with Tap Record! Sync Groups! 26 27 27 27 27 27 27 Clock Out 28 Ping-Pong/Read Mode 28 Mono-ize & Init Pan! Tape Read Mode! Levels Dry! Effect! Input! PISIL and POSIL! Loop Tap Rec! Hold Rec! Tap Length & Hold Length! Freeze Loop! Freeze Loop Mode! Clear Loop! Misc Fix Delay! Trigger Arm! 28 28 29 29 29 29 29 30 30 30 30 30 30 31 31 31 31 Fade 31 Punch In/Out 32 Punch In Quantize (menu)! Punch Out Quantize (menu
Record Offset 34 Waveform Display 35 Augustus Loop Fx Loop 36 Introduction 36 Using the Fx Loops 36 Setting up your DAW for Fx Loops 37 Ableton Live! Current Limitations Preferences 37 37 38 MIDI In 38 Skin 38 OSC Base Port 39 MIDI output 39 Rounded tempos (for Live) 39 Legacy filter behaviour 39 Ignore AudioUnitReset 40 Skins 41 Preamble 41 Learn by example 41 Share your Skins! 41 Anatomy of a Skin 42 Mac OS X! Windows! Bundle structure! Image requirements! 42 42
getFont()! getLabelFont()! getTextFieldFont()! createUI()! Functions callable from createUI() setBannerPosition( y [, showVersion ] )! setGroupActiveColour( r, g, b, a ), setGroupInactiveColour( r, g, b, a )! texture( filename )! setBackgroundTexture( texture )! setBackgroundColour( r, g, b )! sliderRenderer( texture )! buttonRenderer( texture )! knobRenderer( texture, u, v, size )! group( name )! group:add( control )! group:width()! group:height()! group:bounds()! group:setPosition( x, y )! group:setVisib
getParameterID( param )! Functions callable from luaButton functions getParameter( param )! setParameter( param, value )! setOthersParameter( id, param, value )! getOthersParameter( id, param )! sendOSC( address, path [, format ] [, values ] )! control:setVisible() / control:isVisible()! control:setState() / control:getState()! redrawLabels()! 50 51 51 51 51 51 52 52 52 52 Pre-defined Global Values 53 Debugging 53 Mac OS X! Windows! 53 53 MIDI control CC messages! NRPN messages! OSC Control Recei
Script locations Mac OS X! Windows! 59 59 59 Overriding the default script 59 MIDI & OSC Script Functions 59 getParameterID( param )! getParameter( param )! setParameter( param, value )! getParameterMinMax( param )! setOthersParameter( id, param, value )! getOthersParameter( id, param )! sendOSC( address, path [, format ] [, values ] )! requestAllNoteOn( function )! requestAllNoteOff( function )! requestAllCC( function )! requestAllNRPN( function )! requestAllProgramChange( function )! requestAllPolyP
Version History v2.3.0 5th August 2010! v2.2.2 28th June 2010! v2.2.1 24th February 2010! v2.2.0 9th February 2010! v2.1.1 24th August 2009! v2.1.0 8th May 2009! v2.0.4 17th April 2009! v2.0.3 19th March 2009! v2.0.2 3rd March 2009! v2.0.1 11th January 2009! v2.0.0 23rd October 2008! v1.8.2 (unreleased)! v1.8.1 19th July 2008! v1.8.0 5th June 2008! v1.7.3, 24th March 2008! v1.7.2, 18th March 2008! v1.7.1, 17th March 2008! v1.7.0, 14th March 2008! v1.6.5, 30th September 2007! v1.6.3, 31st October 2006! v1.6.
oscpack 74 glew 75 FreeType 76 FTGL 76 libpng 76 zlib 76
Introduction Augustus Loop is an emulation of a tape-based delay effect, with some extra features to facilitate its use as a looping device. (If you're unfamiliar with the concept/genre of looping, pay a visit to www.loopers-delight.com). The key features of Augustus Loop that make it more than just a big delay effect are: • • • • • • • • • • Really long maximum delay (3600 seconds - that's one hour). Tap length/tap record. You can set the loop time while recording your first phrase. Virtual tape.
• • • • • • • • • Ability to sync multiple instances of the plug-in running at once. Automatic fades up and down to allow smooth transitions in your playing. It can even automatically clear the loop for you once it’s faded out. Host transport-sync’d punch in and out when recording. ‘Inertia free’ mode suppresses the tape-like behaviour when changing delay times to allow seamless transitions between loop lengths.
Installation Mac OS X, Audio Unit (AU) One file (ExSlAugustusLoop.component) contains all variants of the plug-in. Simply copy the file to the folder: Library/Audio/Plug-Ins/Components Mac OS X, VST There is one file per plug-in configuration, named ExSlAugustusLoop.vst and ExSlAugustusLoopFxLoop.vst. Simply copy the files to the folder: Library/Audio/Plug-Ins/VST Windows (VST) There is one file per plug-in configuration, named augustusloop.dll and augustusloop_fxloop.dll.
Registration The downloadable version of Augustus Loop stops working after 15 minutes every time you use it. To stop this happening, you need to buy a registration. You can buy a registration key online using a credit card or PayPal from the Expert Sleepers Licence Manager application. See here for more information. Note that you need at least version 1.0.12 of the Licence Manager. The e-commerce side of things is handled by eSellerate.
What’s New in Version 2 This section summarises the new features of Augustus Loop version 2. It is aimed at users who are already familiar with the previous versions of the plug-in. If you’re new to Augustus Loop, please skip ahead to the Quickstart section. For a complete list of changes, please refer to the version history. Quality Improvements Great attention has been paid to removing the niggling little clicks and pops that used to occur if you used some features and were unlucky with your timing.
of the interface. With Augustus Loop you can move user interface elements around, remove things you don’t use, add new buttons to drive your own new functionality. A general purpose scripting language lies behind all this, so your new buttons aren’t just limited to setting plug-in parameters - you can build complex systems limited only by your imagination (and programming skill!). See the Skins section below for details. OSC Augustus Loop can now be remotely controlled via the Open Sound Control protocol.
Quickstart Augustus Loop is designed to be used as an insert effect, but you can use it as a send effect if you wish. By default, the effect produces a straightforward one second delay, with fairly high feedback. Play a note through it - you should hear it echo once a second for quite some time. The GUI consists of two sliders, a number of knobs and a smaller number of buttons. The shorter of the two sliders and the cluster of edit boxes around it control the delay time.
Using Augustus Loop Using the controls Knobs Basic use of the knobs is to click on them and drag the mouse up and down. However you can obtain different results by holding keys as follows: • • Shift : Values change more slowly as you move the mouse. Command1 (Mac OS X)/Alt (Windows) : The knob assumes its default position. Sliders Sliders behave similarly. • • Shift : Values change more slowly as you move the mouse. Command : The slider assumes its default position.
Overview Here's a block diagram of the 'circuitry' of Augustus Loop. It can help to visualise this when understanding the effect of some settings, particularly the delay time settings.
Delay Time The delay time controls consist of a slider and four text boxes. Max Delay This field sets the maximum delay time the plug-in is capable of using. The highest value that you can enter here is '3600', which is an hour (60 minutes times 60 seconds). NB Changing this value causes the plug-in to reallocate its delay buffers. This can be a slow operation, especially if the value entered is large.
Delay Taps A total of nine knobs make up this section. Eight of these are in pairs, giving you control of delay time and feedback level for each of the four taps. Delay Time Sets the delay time for the tap, expressed as a percentage of the master delay time set in the delay time section. Delay Level Sets the feedback level for the tap. This is the same as the actual output level of the tap in our architecture. The four taps let you feedback sound between the two stereo channels.
Pitch Pitch This text field simply reflects the current pitch value. You can type numbers directly in here. The values represent semitones (12 semitones is an octave). Pitch Slider The slider controls the speed of the virtual tape, over a range of two octaves i.e. you can go from half-speed up to double-speed. If you hold the Option (Mac OS X)/Ctrl (Windows) key while dragging the slider, it will only move to whole number values.
In a more complex example, say the tap times are set to 100%, 75%, 50% and 25%. When the tape is reversed, the tap times become 100%, 125%, 150% and 175%. Note that the display of the tap times values does not change, only their internal interpretation. Because in reverse delay times can reach 200%, you should try to make sure that the maximum (allocated) delay time is set to at least twice the actual delay time. Note that the speed at which the tape reverses is controlled by the inertia setting (below).
Filter Cutoff Controls the filter cut-off frequency (in Hz). Q Controls the filter resonance. Type Allows you to smoothly change between the following filter types: • • • • Thru - no filtering Low - lowpass filter Band - bandpass filter High - highpass filter LFO Speed Controls the speed of the filter LFO (in Hz), which modulates the cutoff frequency. LFO Depth Controls the depth of the filter LFO. The value is a number of octaves to sweep the cutoff frequency by.
Shape Controls the shape of the saturation. At '1.0' the effect is that of soft saturation and clipping. At '0.0' the effect is of hard digital clipping. Note that at shape settings other than '0.0', some alteration is applied to the signal even if the Saturation level is zero. Tape Sim The Tape Sim controls are displayed by clicking on the ‘Filter’ button at the top left of the filter controls.
Sync The controls in the Sync group (to the right of the delay slider) allow you to sync the delay time to the tempo of the host application, or to another instance of Augustus Loop. (NB not all plug-in hosts provide tempo information.) Host Tempo This button activates the host tempo mode. Beat Divisor & Triplet The 'Beat Divisor' drop-down menu lets you set the units in which you want to control the loop length. '1/4' corresponds to quarter notes, '1/8' to eighth notes etc.
• • Tempo - the plug-in takes its tempo information from the group master, instead of from the host application. If you enable ‘Host Tempo’ as above, the loop length will be based on the master’s tempo, not the host tempo. This is typically useful if you want the loop times of two Augustus Loops to be rhythmically connected, but not actually the same. Time - the plug-in takes its delay time directly from the delay time of the group master.
Levels Dry Controls the amount of the input signal that is fed directly to the plug-in's output. The level meter to the left of the ‘Dry’ knob shows the level of the signal entering the plug-in. The slider to the left of the meter sets the trigger level (see below). The small button at the bottom right of the meter increases the meter sensitivity, which can be useful when setting the trigger level on signals with a low noise floor.
Loop Tap Rec When first clicked, • • • silences the effect output sets the pitch to 0.0 turns off the 'reverse' feature When clicked again, sets the delay time to the interval between the two clicks, and immediately begins playback of the signal recorded in that time. Hold Rec Same as 'Tap Rec', except the delay time is set by the length of time the button is held down. Tap Length & Hold Length Similar to 'Tap Rec' and 'Hold Rec' except that the only effect is to change the delay time.
Clear Loop Wipes the virtual 'tape'. Because this can be a lengthy operation (especially when the max delay time is large) you should not expect to press this button and immediately be able to begin recording again. During the clear operation, the Clear Loop button remains lit, and the output level meters show a decreasing level to indicate progress. Misc Fix Delay Normally when you change the pitch the delay time is changed as well. E.g.
The menu below the indicator allows you to automatically clear the loop (i.e. as if you pressed the 'Clear Loop' button) when the fade out is complete. There are two settings (plus 'No Clear'): • • AutoClear - simply activates loop clearing after a fade out. AutoClr2 - activates loop clearing after a fade out, then does an instant fade-in after the loop is clear. Punch In/Out These controls are used in conjunction with Tap Record, and affect the exact time that the start and end of recording take place.
Inertia Pitch Inertia The ‘Inertia’ knob controls how long the tape speed takes to react to changes in pitch (including reversing and stopping the tape). Low inertia settings cause the pitch to change more quickly. Delay Inertia The 'Inertia Free' button controls how Augustus Loop behaves when a delay time is changed. (This includes a change to the overall delay time setting, or to one or more of the delay tap times.
Also note that if you want a totally clean loop, you should also set the filter to 'Thru' and turn off the saturation. NB setting the saturation knob to zero is not the same as turning it off (by pressing the button). Likewise all the Tape Sim controls (Crunch, Drive and Hi and Lo Amnt) should be zeroed. Record Offset Record Offset is a feature designed to help with latency issues when using Augustus Loop as a looper in live situations.
Waveform Display The waveform, or ‘tape’, display is shown and hidden by the small button marked ‘Tape’ just above the Delay Time controls. Showing the waveform display hides the entire top half of the GUI the Filter, Inertia, Ping-Pong and Pitch groups. The displays shows the stereo waveform on Augustus Loop’s virtual tape - the left channel is on the top. Five lines are overlaid on the waveforms. The red line shows the write position, at which audio is recorded onto the tape.
Augustus Loop Fx Loop Introduction The normal Augustus Loop configuration is a stereo or mono-to-stereo plug-in. As of version 1.8.0, another configuration is also available; known as Augustus Loop Fx Loop, it’s a 6-in 6-out plug-in. The 6 inputs and output are arranged as 3 stereo pairs. (At this point it may help to refer to the overview diagram earlier in this manual.) The first stereo pairs (inputs 1&2 and outputs 1&2) are the regular inputs and outputs that the stereo plug-in configuration has.
leaves it - i.e. it affects the delay time. The compensation controls allow you to make up for this, so the delay time you specify is the one you actually get. Note this is not the same as the latency usually meant by “plug-in latency” in DAWs, which refers to the internal latency introduced by a given plug-in. In the case of Augustus Loop’s fx loops, the latency is introduced by the host’s buffering of plug-in inputs and outputs.
Preferences Pressing the ‘Prefs’ button brings up a dialogue where various preferences are set. These global settings are shared by all instances of Augustus Loop, and are not stored with presets. The top section shows the product version. The Windows version also shows which SSE variant has been detected (there are optimised versions of the core processing routines for systems with SSE2). The central section will show your serial number once you’ve bought a registration.
OSC Base Port Sets the base port number for OSC. See the section on OSC, below. MIDI output This checkbox enables or disables the output of MIDI clock messages (see above). The Windows version also has a drop-down menu for choosing which MIDI output port to send the MIDI clock on. Rounded tempos (for Live) Note - the following applies to version 7.0.10 of Ableton Live and earlier versions. Version 7.0.12 changed the behaviour of the application in this area, but it also introduced other issues.
Ignore AudioUnitReset This setting applies to the Audio Unit version of the plug-in only. Audio Unit plug-ins usually have the ability to be ‘reset’ by the host application, which usually occurs when the transport is started or stopped (e.g. Logic resets AUs on transport start, Ableton Live resets AUs on transport stop), and is intended to clear any delay or reverb tails which might be undesirable when re-starting playback at a new position.
Skins Preamble From Augustus Loop v2.0.0 onwards it is possible to completely redefine the plug-in’s GUI. Typical uses for this would be to simplify the GUI to show only the parameters you need to access when playing live, or to add new buttons which perform actions specific to your needs. Or maybe you just don’t like the default colour scheme. The skin GUIs are defined by a script file, and by any graphical resources the script uses (e.g. images for the buttons and knobs).
Anatomy of a Skin Skins use the standard Mac OS X bundle system. Since this is essentially just a folder hierarchy with a special structure, this works just fine on Windows as well.
return 773, 491 end getFont() This function should return a list of fonts that the GUI should attempt to use as the general purpose font for e.g. group labels. The first font in the list that the system can successfully find and load will be used. Each entry in the list is a Lua table, defining the file name and point size of the font. All the standard locations are searched for the font file - on Mac OS X, that’s Library/Fonts in the user, local and system domains; on Windows, it’s $WINDIR \Fonts. E.g.
Functions callable from createUI() The following functions are defined by the skin system, and may be called from your createUI() function. setBannerPosition( y [, showVersion ] ) Sets the vertical position of the banner, which is where the plug-in displays its version information, and the name and value of the parameter currently being edited. An optional second parameter lets you disable the version information and only show the parameter information, which is useful for small skins.
You can create multiple renderers, but there is a concept of a ‘current’ renderer. When a new slider is created, it automatically associates itself with the current renderer. The current renderer is the one named ‘theSliderRenderer’. E.g.: atlas = texture( "buttons.png" ) theSliderRenderer = sliderRenderer( atlas ) buttonRenderer( texture ) As sliderRenderer(), but for buttons. The current button renderer is named ‘theButtonRenderer’.
y = y + miscButtonsGroup:height() group:bounds() Returns the extremities of the group. E.g. local minx, miny, maxx, maxy = delayTimeGroup:bounds() group:setPosition( x, y ) Sets the position of the group within the GUI. E.g. miscButtonsGroup:setPosition( x, y ) group:setVisible( v ) Sets the visibility of the group. The parameter ‘v’ should be a boolean value (i.e. true or false). E.g. recordOffsetGroup:setVisible( false ) group:isVisible() Returns whether the group is visible or not. E.g.
u, v specify the location in the renderer’s image of the sub-image to be used to draw the button. The optional ‘hold’ parameter lets you create a button that sets the parameter value to 1.0 while the button is held down; without this option, the button toggles the parameter value each time it’s pressed. E.g.
x, y, w, h specify the position, width and height of the button. u, v specify the position of the sub-image within the renderer’s image to be used to draw the button. E.g.
delaySlider( x, y, w, h, orient, u, v, du, dv ) Creates Augustus Loop’s slider that controls the delay time. The parameters correspond to those of the ‘slider’ function. control:setVisible( v ) Sets the visibility of the control (where ‘control’ is a knob, button, slider etc.). The parameter ‘v’ should be a boolean value (i.e. true or false). E.g. theWaveformDisplay:setVisible( false ) control:isVisible() Returns whether the control is visible or not. E.g.
u, v specify the position of the sub-image within the texture image to be used to draw the meter. w, h specify the meter’s width and height. levelMeters:add( id, x, y ) Adds a level meter to be drawn by the levelMeter object. ‘id’ should be one of "InputRmsLeft", "InputRmsRight", "FxRmsLeft" and "FxRmsRight". E.g. meters = levelMeters( atlas, 512-5, 0, kMeterW, kMeterH ) meters:add( "InputRmsLeft", x, y ) waveformDisplay( x, y, w, h ) Creates a graphical representation of the plug-in’s virtual tape. E.g.
Functions callable from luaButton functions These functions should not be called from your createUI() function, but can be used within functions invoked by any luaButton (see above) that you create. getParameter( param ) Returns the value of the plug-in parameter. ‘param’ can either be the parameter name (as used in all the control creation functions above) or the parameter ID (as returned from getParameterID()). Using the ID is more efficient.
sendOSC( address, path [, format ] [, values ] ) Sends an OSC message. ‘values’ is an optional array of data items to be sent with the message. If ‘values’ is used, then ‘format’ is an optional string that indicates how the items in the values array should be interpreted. This is required because Lua treats all numbers as being of the same type, whereas OSC differentiates between integers and floating point values. The number of characters in ‘format’ should be the same as the number of values.
Pre-defined Global Values The system defines some values before calling your script, which you can use to make the script’s behaviour dependent on, for example, what kind of computer you’re using. These values (which are pretty self-explanatory) are: • • • • • • • • • isMac isWin isVST isAU isFxLoopVersion majorVersion minorVersion dotVersion version The plug-in’s version number is of the form x.y.z (e.g. 2.1.4) where x is the major version number, y is the minor version number, and z is the dot version.
MIDI control Most of Augustus Loop's controls can be controlled via MIDI. There is a preference setting in the 'Prefs' dialog that controls whether Augustus Loop responds to MIDI events on all channels, or just on channels 1&2. In the latter case, the plug-in responds to MIDI controller messages on channel 1 (see table below) and to note on messages (to alter the pitch setting) on channel 2. This can make it more convenient to play a soft-synth and control Augustus Loop from the same keyboard.
OSC Control From version 2.0.0 Augustus Loop can be controlled via the Open Sound Control (OSC) protocol. If you’re new to OSC, start by visiting opensoundcontrol.org. Two settings control what port Augustus Loop uses to listen on for OSC commands. One is the base OSC port, set in the preferences. The second is the OSC Port Offset control. If the port offset is set to something other than ‘Off’, then the two numbers are added together and the result used as the port number. E.g.
replies to 10.0.0.2:7000 with (assuming parameter 14 has the value 64.0) /foo 14 64.0 /getAll s:returnUrl s:returnPath Behaves exactly as if a /get message was received for every parameter. /getNumParameters s:returnUrl s:returnPath Responds by sending a message back to the returnUrl and returnPath with the parameters i:numParameters where ‘numParameters’ is the total number of parameters defined by the plug-in. E.g. /getNumParameters osc.udp://10.0.0.2:7000 “/foo” replies to 10.0.0.
Lua function, as can best be managed given the varying limitations of the two. Specifically, the following table describes the mapping from OSC types to Lua types: OSC Lua bool bool float number double number int32 number int64 number string string nil nil /call s:func s:returnUrl s:returnPath ... As /exec, but also responds to the returnUrl and returnPath with the results of the Lua function call.
MIDI & OSC Scripting Preamble From Augustus Loop v2.0.0 onwards it is possible to extend the plug-in’s MIDI & OSC functionality via user-writeable scripts. Indeed, the standard MIDI functionality described above has been re-implemented using such a script, which you can use as reference for your customisations. The language used for the MIDI scripts is Lua. You will find a complete description of the language, and some useful tutorials, at the Lua website: www.lua.
Script locations Augustus Loop looks for MIDI & OSC scripts in standard locations. Scripts must have the filename extension “.lua”.
pitch = getParameter( “Pitch” ) pitch = getParameter( paramID_Pitch ) setParameter( param, value ) Sets the value of the plug-in parameter. See the description of getParameter() for the meaning of ‘param’. E.g. setParameter( “Pitch”, 12.0 ) setParameter( paramID_Pitch, 12.0 ) getParameterMinMax( param ) Returns the minimum and maximum values allowable for a plug-in parameter. See the description of getParameter() for the meaning of ‘param’. E.g.
E.g. sendOSC( "osc.udp://localhost:7001", "/foo" ) sendOSC( "osc.udp://localhost:7001", "/foo", { 3, 5.2, "hello" } ) sendOSC( "osc.udp://localhost:7001", "/foo", "ifs", { 3, 5.2, "hello" } ) Note that the second example sends two floats and a string; the third sends an integer, a float and a string. requestAllNoteOn( function ) Request that the given function be called in response to any MIDI note on event. E.g.
requestAllPolyPressure( function ) Request that the given function be called in response to any MIDI poly pressure (polyphonic aftertouch) event. E.g. local function handlePolyPressure( channel, key, value ) -- do stuff end requestAllPolyPressure( handlePolyPressure ) requestNoteOn( note, function ) Request that the given function be called in response to a MIDI note on event matching the given note number. E.g.
local function handlePC( channel, value ) -- do stuff end requestProgramChange( 2, handlePC ) requestPolyPressure( key, function ) Request that the given function be called in response to a MIDI poly pressure (polyphonic aftertouch) event on the given key. E.g. local function handlePolyPressure( channel, key, value ) -- do stuff end requestPolyPressure( 60, handlePolyPressure ) requestPitchWheel( function ) Request that the given function be called in response to a MIDI pitch wheel event.
end requestTimedCallback( 2.0, timerTimeOut ) requestPeriodicCallback( interval, function ) Requests that the given function should be called every interval seconds. Returns a timer object that can be passed to cancelTimer() (see below). E.g. local function timerCallback() print( "tick" ) end requestPeriodicCallback( 1.0, timerCallback ) cancelTimer( timer ) Cancels a timer that was created with requestTimedCallback() or requestPeriodicCallback().
The OSC packet should include a float value after the path, which will be the value for the parameter. E.g. registerOSCPathForParameter( "/1/fader1", "Env 1 Scale" ) registerOSCPathForParameterNormalized( path, param ) As registerOSCPathForParameter() except that incoming OSC values in the range 0-1 are renormalized to control the full parameter range between its minimum and maximum values.
Windows The system OutputDebugString API. Use an application like Sysinternal’s DebugView to view it.
Version History v2.3.0 5th August 2010 • • • First 64 bit Mac OS X VST release. Improved handling of mouse events (dragging knobs would temporarily freeze the host UI on some platforms). Improved accuracy of MIDI event handling. v2.2.2 28th June 2010 • • • Fixed GUI issue in Reaper on Windows. Added new OSC command (registerOSCPathForFunction). Fixed a keypress issue in certain VST hosts (plug-in would respond to numeric input but not to pressing Return). v2.2.
v2.0.3 19th March 2009 • (AU version only updated) Further improved the behaviour of parameter automation in Logic - specifically: the pitch buttons now cause automation to be recorded. • the four delay time parameters (delay slider min/max, max delay and delay • time) now use 'high resolution' mode automation. v2.0.2 3rd March 2009 • (AU version only updated) Fixed recording of parameter automation in Logic. v2.0.1 11th January 2009 • • The default MIDI/OSC script (midi.
v1.8.1 19th July 2008 • • Fixed a problem where Augustus Loop's GUI would stop Logic's Key Commands from working. Fixed an issue which could cause Apple’s AU validation tool (as used by Logic) to run very slowly when validating Augustus Loop. v1.8.0 5th June 2008 • • New 6-in 6-out configuration of the plug-in, allowing audio to be routed through external processing either side of the virtual tape.
v1.6.3, 31st October 2006 • Added rounded tempos option. v1.6.2, 2nd July 2006 • Fixed a GUI issue with certain hosts (notably Plogue Bidule on Intel). v1.6.1, 20th March 2006 • First 'Universal Binary' version for Intel and PowerPC Macs. v1.6.0, 9th January 2006 • • Added 'digital mode'. Fixed bug which could result in orphaned threads being created. v1.5.1, 5th October 2005 • Added wider range of values for punch in/out drop-down menus. v1.5.
• • • • • • Loop input level can be controlled by punch in/out. Extensive CPU efficiency improvements. Now correctly reports silent output to downstream processing, resulting in further efficiency improvements in hosts that support this feature. Fixed potential crash when using Freeze Loop and Host Tempo. Improved behaviour of Freeze Loop in conjunction with Reverse. Maximum delay time is now limited according to installed system RAM. v1.2.
Release Notes Issues with keyboard input There are known issues with some hosts, in particular Ableton Live, and all plug-ins that require keyboard input. (Augustus Loop is such a plug-in.) Ableton have done something to address this issue in Live 7.0.2. See • • http://www.ableton.com/forum/viewtopic.php?t=84434 http://www.ableton.com/pages/faq/options_text Basically you can enable keyboard presses in plug-ins by creating or editing a file called Options.
Contact The Expert Sleepers website is here: http://www.expert-sleepers.co.uk/ Or you can email info@expertsleepers.co.uk Or you can use the forum, which is here: http://www.kvraudio.com/forum/viewforum.
Acknowledgements The software described in this manual makes use of the following open source projects. The author is greatly indebted to them for their efforts and generosity. Below are reproduced the various copyright notices and disclaimers that accompany these software projects, in accordance with their terms of use. Lua Copyright (C) 1994-2008 Lua.org, PUC-Rio.
glew The OpenGL Extension Wrangler Library Copyright (C) 2002-2007, Milan Ikits Copyright (C) 2002-2007, Marcelo E. Magallon Copyright (C) 2002, Lev Povalahev All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. FreeType The FreeType Project is copyright (C) 1996-2000 by David Turner, Robert Wilhelm, and Werner Lemberg.