Ableton Live and TouchDesigner

From TouchDesigner 088 Wiki
(Redirected from Ableton)

The TouchDesigner Ableton Live Sync Environment is a live performance and animation system developed for artists and musicians to construct and perform live, interactive Audio-Visual performances. Utilizing TouchDesigner and Ableton Live, the environment simplifies the passing of loop, controller, MIDI notes and timing data from Ableton Live to TouchDesigner, and maintains the two tools in sync with each other. The system provides an optimized framework to support collaboration and development of highly dynamic immersive audio-visual shows.

The system architecture is the product of years of development for the Plastikman Live shows. The environment has been refined and portions were also used in the Amon Tobin ISAM tour.

This core engine is robust enough to form the foundation of a new generation of Audio-Visual performance systems. Currently the development environment is quite raw with little user interface. Moving forward we will update this system and provide more UI elements. We are releasing this now to aid TouchDesigner artists and Ableton musicians in the creation of immersive audio-visual experiences. This iteration is just a first step, the idea here is for the TouchDesigner community to grow through the use and expansion of this system.

Highlights

- shared BPM and Timing Ramp data for perfect synchronization

- sophisticated control of both audio and MIDI data

- low latency communication via OSC

- single or multi-computer setup via wired or wireless LAN

- 32 shared Sliders

- bi-directional control, ie audio controls video and/or video controls audio


System Requirements

The following software is required to use the TouchDesigner AbletonSync Environment,

TouchDesigner - http://www.derivative.ca/088/Downloads/

Ableton Live - http://www.ableton.com/

Max4Live - http://www.ableton.com/maxforlive

Software Setup

Step 1 - Download and Install TouchDesigner

Visit http://www.derivative.ca/088/Downloads/ and download TouchDesigner. Read the 'Condition of Use' section to determine which TouchDesigner version - Commercial or Pro is right for you. Next, if you are new to TouchDesigner you must first register here, http://www.derivative.ca/Login/RegisterForm.asp . After downloading, run the installer and follow these directions to create a key, http://www.derivative.ca/wiki/index.php?title=Key_Manager_Dialog .


Note, if you have an existing version of TouchDesigner installed please install the latest version of TouchDesigner 088. To ensure TD_Sync runs properly on your computer, please consult the minimum system requirements for running TouchDesigner. These can be found on the download page, http://www.derivative.ca/088/Downloads/


Step 2 - Download and Install Ableton Live

Visit http://www.ableton.com/downloads and download the 'Ableton Live 9 Trial'. Extract and run the 'Setup' program.


Step 3 - Download and Install Max For Live

After installing Ableton Live 8 or Live 9, visit http://www.ableton.com/maxforlive and click the 'Free Trial' button. On the following page click the download button for 'Max 5' for Windows. Extract and run the 'Setup' program. Restart the computer per Max For Live requirements.

Required Files

The TouchDesigner AbletonSync Environment requires two files, an Ableton Live file, 'TouchDesignerSyncEnvironment_Live.als' and a TouchDesigner file, 'TouchDesignerAbletonSync.toe'.

You can download the entire demo package here:
File:TouchDesignerAbletonLiveSync.zip

Ableton Live System Setup

Open TouchDesignerAbletonSync.toe in TouchDesigner 088.

In Ableton, if using Live 8 open TouchDesignerSyncEnvironment_Live8.als, and if using Live 9 open TouchDesignerSyncEnvironment_Live9.als.

In Ableton note the TouchDesignerSync Master plugin at the bottom of the interface.


Tdlinkmaster.JPG


The TouchDesignerSync Master plugin co-ordinates data transmission from Ableton Live to TouchDesigner. The TouchDesignerSync Master plugin can communicate with up to two external computers. Under 'Send to IP Addresses' simply type the IP addresses of each machine running TouchDesigner. For setups running TouchDesigner and Ableton Live on the same computer, enter localhost.

Click the both play button in the transport controls. Ableton Live and TouchDesigner are now linked and sharing data. To view the syncronization, in TouchDesigner navigate to /tdsync/osc/transport and verify the transport ramps in the get_transport Select CHOP are receiving values.

Note: if the sync transmission gets interrupted at any time, click the 'Reinitialize' button.


Using TouchDesignerSync Master

Now that Live and TouchDesigner are in sync, lets trigger some cues in Live. To see the visuals for a particular Live cue in TouchDesigner, click on the play button of any cue in the TouchDeisgnerSync Master MIDI track. This will just trigger the visuals in TouchDesigner on the next bar.

To see the visuals in sync with the audio, go to the Master track and click on the play button of a particular master cue. The audio and visuals will remain in sync and change on the next bar. Sample some of the Live cues that have been provided in the demo file and watch the visuals in TouchDesigner stay in perfect sync.

Creating Scenes and Cues

In order to build a cohesive audio/video show, the Ableton Live file is organized into a Scenes and Cues structure. Scenes can be thought of as songs, movements or tracks, while Cues are individual sub-units within each Scene.

On the MIDI Track containing the TouchDesignerSync Master plugin, create the scenes and cues to go with the audio of your show. To create a scene or cue, right click in an empty Clip Slot and select 'Insert MIDI Clip'. Then right click again and select 'Rename'. Use the nomenclature of SceneX_cueX, SceneX_cueX, SceneX_mixout . SceneX can be any name, however the _cueX and _mixout suffixes must remain unchanged. For clarity, rename each Scene Clip under the Master Track to match your scene names.


Abletonscenecues.JPG

Working with MIDI Notes

The TouchDesignerSync Master Plugin is able to send MIDI data from Ableton Live to TouchDesigner. Drag and drop a MIDI instrument to any clip under the TouchDesignerSync Master MIDI Track. Double click on the Clip Name to access the step sequencer and draw the desired MIDI notes. These notes are directly accessible in TouchDesigner AbletonSync Environment, place a Select CHOP anywhere inside the /tdsync network and type $OSC_NOTES in the 'CHOP' parameter.

Working with MIDI Sliders and Controls

The TouchDesigner Sync Master plugin includes 32 shared sliders. These sliders can be MIDI mapped to many parameters in Ableton Live. In TouchDesigner these sliders can be accessed from any Select CHOP. In the CHOP parameter, enter $OSC_CTRLS. From 'Channel Names' select the desired slider, s1 - s32. This setup enables external control of Ableton via Liine products or TouchOSC whose values can then be passed on to TouchDesigner.


To enable bi-directional functionality of these sliders, ie adding the ability to change sliders values in TouchDesigner to change values in Ableton Live, a MIDI device is required. First setup the MIDI preferences in both Ableton and TouchDesigner. In Ableton go to Options -> Preferences. Select the MIDI device Input and turn Track, Sync and Remote to On.

Abletonmidipreferences.JPG


In TouchDesigner open the MIDI Device Mapper and select the MIDI device output.

Touchdesignermidimapper.JPG


Next enable MIDI Map Mode in Ableton by clicking the MIDI Map Mode switch. Any MIDI mappable parameter turns purple.

Midimapmodeswitch.JPG


In TouchDesigner press F5 to launch the TD_Sync Controls. Select the parameter in Ableton to control and adjust the corresponding TD_Sync Control to map the parameter. Unclick the MIDI Map Mode switch.

Faderbank.JPG

TouchDesigner System Setup

The TouchDesigner Sync Component is utilized to create the visual portion of a Live-AV performance. The TouchDesigner Sync Component also sychronizes data exchange between the TouchDesignerSync Master in Ableton Live and TouchDesigner. Timing ramps, BPM, MIDI and audio data can all be accessed and mapped to parameters in the visual environment.


System Architecture and Overview

The TouchDesigner AbletonSync Environment consists of three main components, located at /tdsync - System, OSC and Show. While all content creation and editing happens in Show, familiarity with System and OSC will add to an overall understanding of the system architecture.

System contains prebuilt modules and UIs to control and edit the system. These include the Cue Manager, Audio Manager and TD_Sync Controls. On the keyboard press F3 to access the Cue Manager, F4 to access the Audio Manager and F5 to access the TD_Sync Controls.

OSC manages the data transmission to/from Ableton Live. These include MIDI notes, Transport data[timing and tempo], Scene data and Controller data[the 32 controls sent from TouchDesignerLinkMaster].

Show contains the Scenes which in turn contain the visual content of the Live Performance.


Setting up Scenes and Cues

The initial step to creating a visual composition is to setup the Scenes and Cues. First navigate to /tdsync/show. The TouchDesigner AbletonSync Environment is pre-configured to include 4 Scenes. Copy and paste or cut to create the required number of Scenes. Rename each Scene to match the Scenes from Ableton Live.

Next, edit the scenes table to match the created scenes. Under the Name column, enter each scene name. Under the MixScene column type the scene name to mix to, ie if under Name column Scene1 is listed type Scene2.

Scenestable.JPG


It is critical that the Cues in TouchDesigner match the Scenes and Cues in Ableton Live. This list must be maintained manually. To setup the Cues, edit the cues table to match the scenes and cues in Ableton Live. Under the 'Name' column type each Scene as listed under the TouchDesignerSync_Master from Ableton Live utilizing the same SceneX_cueX nomenclature.

Cuestable.JPG

Constructing Scenes

Once the initial Scene and Cue structure is created in TouchDesigner, the next step is to construct a Scene. Enter any scene, ie /tdsync/show/Scene1 and build the visual system here, utilizing the full spectrum of TouchDesigner tools.


Working with Data from Ableton Live

While constructing visual material for your scene, you can immediately start connecting to data from Ableton Live.


The OSC Global Variables

The TouchDesigner AbletonSync Environment contains useful OSC Global Variables that can be used to quickly pull in data from Ableton Live. To inspect this data check the 'local' Component at /tdsync.

Oscglobalvariables.JPG

These variables can be utilized anywhere, simply place a Select CHOP and define the desired variable in the CHOP parameter, ie $OSC_TRANS.


Global Variable Definitions

TIMEPATH: in tdsync, TIMEPATH should be set to /local/time

PLUGIN_LIVE: The location of the abletonsync OSC plugin. /local/abletonsync

OSC_ROOT: The root of the TD_Sync hierarchy. /tdsync

OSC_NOTES: Path to select MIDI note CHOP channels from the TouchDesignerSync_Master Ableton plugin. /tdsynk/osc/notes/out

OSC_NOTES1-8: Path to select midi note chop channels from the TouchDesignerSync_MidiNoteSend Ableton plugin. /tdsynk/osc/notes1/out

OSC_CTRLS: Path to select chop channels for Ableton plugin controllers. /tdsynk/osc/controllers/out

OSC_TRANS: Path to select chop channels for Ableton plugin controllers. /tdsynk/osc/transport/out

OSC_SCENE: Path to select DAT table for Ableton's current scene and cue information. /tdsynk/osc/scene/out

AUDIO_RAW: Path to select chop channels for raw audio waveform. /tdsynk/system/audio/raw

AUDIO_ENV: Path to select chop channels for resampled audio waveform envelopes. /tdsynk/system/audio/out

SCENELIST: Path to select DAT for the show scene property list. /tdsynk/show/scenes

CUELIST: Path to select DAT for the show's list of cues. /tdsynk/show/cues

SHOW: The root of customizable show content.

OUTRESX: The global show horizontal resolution.

OUTRESY: The global show vertical resolution.

SCENE_CURRENT: The string holding the name for the currently playing scene.

SCENE_NEXT: The string holding the name for the currently fired scene that will play next.

CUE_CURRENT: The string holding the name for the currently playing cue.

CUE_NEXT: The string holding the name for the currently fired cue that will play next.

SCENE_CUE: The string holding the name for the currently playing {scenename}_{cuename}.



MIDI Data

To access MIDI data from Ableton Live, locate the 'get_notes' CHOP. Active MIDI notes appear flashing on their channel. Place a Select CHOP and pick the desired MIDI channel. Next place a Math CHOP and navigate to the 'Range' page. Change the 'From Range' to 0 - 127 and the 'To Range' to the desired value, this maps the MIDI Slider Value[0-127] to the desired value in TouchDesigner. Finally export the value from the Math CHOP to the TOP parameter.

Midinotestop.JPG


MIDI Note Maps

The MIDI Note Maps allow you to rename each MIDI Channel received from Ableton. Double click the note_maps component at /tdsync/show. notes represents MIDI data from TouchDesignerSync Master. 'notes1-8' represent data from the TOUCHDESIGNER SYNC_MNS channels.

Midinotesmap.JPG

To edit, right click and select 'Edit Contents'. Replace unassigned with the desired name.

Fader Labels

To rename the fader contolers from the TouchDesignerSync Master plugin, edit the fader_labels table located at /tdsync/show.

Faderlabels.JPG

Timing Ramps

Timing ramp data from Ableton is stored in global variables. To access this data, first create a Select CHOP. In the 'CHOP' parameter type, $OSC_TRANS.

Osctrans.JPG

Next, by 'Channel Names', select the desired timing ramp, transport_ramp1 for 1 bar, transport_ramp2 for 2 bars, etc.

Osctranschannels.JPG



Audio Channels

The TouchDesigner AbletonSync Environment streams four audio channels from Ableton Live to TouchDesigner. These audio channels can be used to drive audio-reactive visuals. To view the audio channels press the 'F4' key. To access the raw audio feed create a Select CHOP. In the CHOP parameter type $AUDIO_RAW. Select from 'Channel Names' the desired audio channel.

Audioraw.JPG

To access the analyzed audio feed create a Select CHOP. In the CHOP parameter type $AUDIO_ENV. Select from 'Channel Names' the desired audio channel.

Audioenv.JPG

Working with Video and Effects

TouchDesigner is highly optimized for frame-accurate HD video playback, including real-time effects. To add Video to a Scene, create a Movie File In TOP. The Video can now be controlled by data from Ableton. For example, to loop video playback based on the tempo, locate the 'get_trans' CHOP , add a Select CHOP and pick the desired Transport Ramp. Next click the middle mouse button on the Movie File In TOP and note the 'Length' value. Now, place a Math CHOP and navigate to the 'Range' page. Keep the 'From Range' to 0 - 1 and change the 'To Range' to the Movie File In TOP 'Length' value. Change the Movie File In TOP 'Play Mode' to 'Specify Index'. Export the value from the Math CHOP to the 'Index' parameter. Change the the 'Units Menu' to 'Index'. The Movie now loops on tempo.

Movieloop.JPG


To add an Effect, place any TOP in the Scene, or roll your own shader with the GLSL TOP. To modify an Effect utilizing the shared Sliders, locate the 'get_ctrls' CHOP, add a Select CHOP and pick the desired Slider. Next place a Math CHOP and navigate to the 'Range' page. Change the 'From Range' to 0 - 127 and the 'To Range' to the desired value, this maps the MIDI Slider Value[0-127] to the desired value in TouchDesigner. Finally export the value from the Math CHOP to the TOP parameter.

Topeffectwithslider.JPG

Managing output to display devices

To manage final output to your display(s) first set your final output resolution at '/tdsync'. Change the 'Width' and 'Height' parameters to the preferred values.

Ablsync.jpg

Next, use the Window Comp, '/window', to select the correct output monitor,

Windowcomp.JPG

To output to an external monitor set the parameter 'Monitor' to '1', or the number corresponding to the monitor you wish to output to. Be sure the 'Borders' parameter is set to 'OFF'.

For more information see Window COMP and Perform Mode wiki pages.