Ableton This Sample Contains No Audio Data

Using Virtual Instruments In Ableton Live. The MIDI track contains a Scale MIDI effects plug-in, an instance of Cakewalk's Rapture, and Live's Saturator audio plug-in at the output. The MIDI track's Monitor is set to Auto, so the track needs to be record-enabled in order to pass the incoming MIDI data through to the instrument. MIDI File = note data. In contrast to audio samples and audio tracks, MIDI files and MIDI tracks do not contain any sound. You need to run your MIDI track through an instrument to play sound. This allows you to make an infinite variety of melodies, chords, and notes. This sample pack contains the following: 24 WAV files of drum and percussion samples recorded with the ARP Odyssey. Kontakt file with samples organized into 2 kits, ranging from C1 to B2. Ableton file with samples organized in 2 drum racks, starting from C1. Every time I try and double-click on or otherwise import a non-lossless audio file (mp3, m4a, etc), Ableton gives me a pop-up notice saying 'This sample contains no audio data.' A single click on a non-lossless audio file will make the status bar turn red and read 'file could not be read.

Live Tips & Techniques
  • DAWs >Ableton Live

The MIDI track contains a Scale MIDI effects plug-in, an instance of Cakewalk's Rapture, and Live's Saturator audio plug-in at the output. The MIDI track's Monitor is set to Auto, so the track needs to be record-enabled in order to pass the incoming MIDI data through to the instrument.

When Ableton added MIDI support to Live, they also added virtual instrument support – this month we look at how to take full advantage of software synths within Live.

One of Live 's more appealing aspects is how it has managed to add increased functionality while retaining the simple, yet clever, operational paradigm that was its initial source of appeal. It's understandable that when Live 4 added MIDI, the ' Live faithful' were concerned the program would veer precariously in the direction of bloat. Instead, Ableton crafted a seamless MIDI implementation that added another dimension to the program, including virtual instruments.

However, Live's virtual instrument implementation requires an understanding of how signals are routed within Live, as well as the differences (and similarities) between MIDI, audio, and instrument tracks. We'll cover these topics, and more, in this issue's column.

Let's start by covering the simplest way to use a virtual instrument, then build on that foundation.

Simply Soft Synths

A virtual instrument requires a MIDI track, but once inserted, the track becomes a hybrid MIDI/audio track. Here's how the process works.

Begin by dragging an instrument from the Live Browser into the Mixer Drop Area. This automatically creates a MIDI track, inserts the instrument into the MIDI Track View, and opens up the instrument GUI for editing. An alternate method is to create a MIDI track by going Insert > Insert MIDI Track, then dragging a VST instrument from the browser into the track's MIDI Track View.

In the track's upper MIDI From field, select your MIDI controller (which should be enabled in the Preferences menu) and select the controller channel you want to monitor in the lower MIDI From field. Typically this will be All Channels, unless you need the instrument to respond to a specific channel; in this case, choose a specific channel.

Set Monitor to Auto if the track is record-enabled. If it isn't, set monitor to 'In'. 'In' will also work in Auto mode, but if set to 'In', remember to return the Monitor function to Auto when you want to play back the track.

With an instrument inserted, the MIDI track accepts MIDI at its input, but outputs audio from the soft synth's audio output. As a result, you'll need to specify Audio To; usually this will be the Master Out. However, as we're now dealing with an audio track, the Master Out could also feed the Sends Only, or the input of another audio track.

Finally, play a few notes on your controller, and you should hear the soft synth play. If not, check the MIDI setup and the track input and output assignments.

More To The Track Than Meets The Ear

You're not limited to dragging an instrument into a MIDI instrument track. You can drag MIDI effects into the MIDI Track View prior to the instrument (to the instrument's left), or audio effects after (to the right of) the instrument.

The MIDI track has a USB keyboard chosen as its input, and is sending the output to audio track one. The audio track is receiving its input from MIDI track two, and sending its audio to the Master out. As both tracks are recording simultaneously (Ctrl-click to enable multiple record buttons), both are record-enabled and Monitor is set to Auto.Also note that the configuration of the track itself changes automatically, depending on whether you're recording MIDI data or playing back the instrument sound. When the track is record-enabled, the meter shows incoming MIDI velocity. When it's set for playback, the meter changes into an audio output meter.

Simultaneous Audio Recording

It's possible to simultaneously record the instrument output into an audio track as you record the MIDI data. Sound useless? Well, remember that Live is about being able to make decisions and changes on the fly, so consider this: You're using Live in a live performance, and building up loops over which you can play. You're playing a soft synth via MIDI, and then plan to switch over to another sound and play that. Of course, you can just record the sound of the soft synth into an audio track, and be done with it. But if you record into MIDI and audio simultaneously, you have the option of going with the audio track 'as is', or tweaking the MIDI track if there are problems, then recording this data through the instrument, which converts it into audio for the audio track. Once recorded as audio, you can move on to recording the next MIDI part.

Doing this takes advantage of Live 's flexible routing, which you can consider as a sort of 'matrix modulation without the matrix' as you can choose an input from any of several sources, and send an output to any of several destinations.

It's easy to set up Live for this scenario: first set the input of the MIDI instrument track to receive input from your MIDI source, record-enable the MIDI track, and set monitor to Auto. Send the MIDI track output to an audio track and set the audio track's input to monitor the MIDI instrument track. Record-enable the audio track by control-clicking on its Arm Session recording button, and set monitor to Auto. Now when you record in Live, you'll be recording MIDI data into the MIDI track and audio data into the audio track.

Data is being recorded via a MIDI track (four), and sent to channel three of the MIDI track (one) containing the instrument. There are a few fine points. Because the audio track is monitoring the MIDI track output, it doesn't really matter where you send the MIDI track's out — it could go to the sends, or even an external out, and you'll still hear the MIDI instrument through the audio track. Similarly, if you're sending the MIDI instrument track out to the audio track input, then the audio track input can be set to any input because it's always going to receive input from the MIDI instrument track.

Let's Get Multitimbral

In case you're wondering why I used Cakewalk's Rapture in the first example, it's because it has the ' Live mentality'. Rapture has six different 'elements' (basically, voices) that offer lots of looping and tempo-sync options, and can be set up for multitimbral operation so that each element receives data over a separate MIDI channel. When loaded into Live, this allows a variety of MIDI-based looping options that complement the way Live treats digital audio.

Anyway, taking advantage of this requires setting up Live for a multitimbral synth. In this instance, the 'MIDI + instrument' track becomes a kind of container for the soft synth, and is fed by multiple MIDI tracks (one for each channel you want to address). As an example, we'll set up Live to play back three MIDI tracks into Rapture elements one, two, and three, which are set to those respective channels.

Create the MIDI instrument track, which we'll call track one. I generally set this to No Input to avoid confusion, as I want to add inputs only from other MIDI tracks and create as many MIDI tracks as there are multitimbral channels to be driven. In this case, there are three. Set the input for each of these MIDI tracks as desired.

In each MIDI track's upper MIDI To field, select the track containing the instrument (in this case, MIDI track one).

In the lower MIDI To field, assign the MIDI output to the desired instrument channel (in this case channels one, two, and three for the three element channels). Now set the Monitor switches for the three MIDI tracks to Auto. If you record-enable a track, it will send the incoming MIDI data to the channel that you have just selected, and of course, you'll also be able to record this into the sequencer.

Now you can record as desired into the various tracks, and play them all back when completed into the MIDI Instrument track.

What About Multiple Outputs?

Live can also accommodate instruments with multiple outputs. We'll use the Impulse drum machine as an example, as it comes with Live and is a cool little instrument anyway. In this scenario, we'll play the drum sounds from a MIDI controller, and send each Impulse sound to its own output for individual processing. Here are the steps required to accomplish this.Impulse, the drum module included with Live, provides up to eight individual audio outputs (one for each drum sound). This screenshot shows channel nine feeding Impulse MIDI data, and each sound appearing over its own audio track.

  • Create a MIDI track.
  • Set the MIDI From field to whatever will receive your controller's MIDI output (such as All Ins).
  • Decide how many individual outputs you want to use, and create an equivalent number of audio tracks. For example, if you want to assign each of the eight Impulse sounds to an individual output (and you can indeed do this), you would create eight audio tracks dedicated to Impulse.
  • Set each audio track's upper Audio From field to the MIDI track.
  • Each audio track's lower Audio From field provides a pop-up menu showing Impulse 's individual outputs. Choose the desired output for each track.
  • In terms of monitoring, you have the usual two options: Record-enable a track and set Monitor to Auto, or simply have the track monitor the input ('In'). I generally prefer not to record all the outputs as Audio, but simply monitor the 'In' while recording so I can hear the results of playing the MIDI part. After the part is recorded, I switch Monitor to Auto.

Of course, when using instruments which have multiple outputs, you need to make sure that you've assigned sounds properly to output channels within the instrument itself.

Creating Splits & Layers

A basic MIDI function is creating a split, so that a master controller can be divided into regions, with each region triggering a different sound. The stereotyped application is a bass sound played by the left hand and a lead sound with the right hand, but splits are good for special effects as well — high 'C' might trigger a special sample, for example.

Thanks to MIDI effects, Live allows setting up as many splits as you like. We'll use the example of splitting a keyboard so that playing C2 or below plays through one instrument, while playing C#2 or above plays through a different instrument.

The Pitch MIDI plug-in can be set up to create keyboard splits.Set up two MIDI tracks with the instruments that will play the two different sounds. Set each of their MIDI From fields to respond to your MIDI controller, or to the same MIDI data track.

Ableton This Sample Contains No Audio Data File

Drag the Pitch MIDI effect from the Browser into the instrument that's intended to play C2 and below.

The Pitch effect passes notes in a certain range while rejecting all others. To edit it the way we want, set the Lowest parameter (the lowest note of the range) to C-2. Set Range to 48st, which means that the range will extend 48 semitones above C-2. This places the range's upper note at C2. Do not adjust the Pitch parameter itself — leave it at zero.

As we did before, drag the Pitch MIDI effect from the Browser into the instrument that's intended to play notes C#2 and above. Set the Lowest parameter to 'C#2'. For Range, as we want to play anything above C#2, we can just choose the maximum range of 127st. As before, leave the Pitch parameter at zero.

And now we have a keyboard split. Note that the Pitch plug-in has a small light below the Pitch control that glows yellow when the plug-in is receiving a note outside of its specified range. This is very thoughtful, because if you don't hear anything, you can check here first and make sure the problem isn't just that you're playing out of the specified range.

Layering two (or more) synths so that they play together is easy. All you need do is to have the two MIDI instrument tracks monitor the same MIDI data track at their inputs. And as expected, you can combine splits and layers by simply creating an overlapping range with the Pitch plug-in. For example, you could place the highest note of the lower split above the lowest note of the upper split, thus creating a range where the two sounds overlap.

If you're still using Live strictly as a digital audio-oriented machine, that's all well and good — but you're missing out on a lot. Start by exploring the Impulse and Simpler instruments included with Live; you might be surprised at how getting MIDI instruments involved can expand your musical horizons.

TDAbleton is a tool for linking TouchDesigner tightly with Ableton Live. It offers full access to most everything going on in an Ableton set, both for viewing and setting. The TDAbleton system contains a number of components for 2 way communication, and a framework for building custom components and new features.

TDAbleton operates through Ableton's MIDI Remote Scripts system and, when necessary, Max for Live (M4L) devices. Communication with TouchDesigner is via OSC (using UDP). It is fully network-capable, so TouchDesigner can be running on a separate machine from Ableton. The Python in TDAbleton extensively uses Ableton's Live Object Model.

See also: TDAbleton System Components, Creating Custom TDAbleton Components, and TDAbletonCompBaseExt Extension

Common Ableton Tasks[edit]

The following is a list of commonly used data from Ableton Live and where to find it in TDAbleton.

  • Scene: abletonSongComponent, channels song/info/triggered_scene and song/info/last_started_scene. Also available via callbacks.
  • Time and Tempo Data: abletonSongComponent, channels song/info/bars, song/info/beats, song/info/sixteenths, song/info/time. Note: Include Time Data parameter must be On.
  • Cue Points (a.k.a Timeline Locators): abletonSongComponent property LastLocatorPassed. Also available via callbacks.
  • Output Levels: abletonTrackComponent, channels .../output_meter_left, .../output_meter_right, .../output_meter_level. Note: Due to a bug in Ableton Live Object Model, these are only updated when the meters are visible in the Ableton interface! Also, Include Audio Data parameter must be on.
  • Track Slots: abletonTrackComponent, channels .../playing_slot_index, .../fired_slot_index.
  • Clips: abletonTrackComponent, out_clips DAT output. When the Include Playing Clip Data parameter is on, abletonTrack's CHOP output will also show clip time and loop information.
  • Device Parameter Values: abletonParameter or abletonChainParameter Components.
  • Control Ableton Parameters (without creating undo steps): abletonParameterComponent. Also abletonRackComponent.
  • MIDI Data: abletonMIDIComponent.
  • MIDI Notes in a Clip: abletonClipSlotComponent.
  • Audio Levels and Audio Spectrum Analysis: abletonLevelComponent. This includes level data on a per-track basis, and can be combined with filters to provide spectrum analysis.
  • Sending/Receiving Rack Macro data: abletonRackComponent. This is also the smoothest way to receive parameter data.
  • Ignore Parts of Your Ableton Live Set: Large Sets can be slow to load and change when TouchDesigner is connected. To ignore parts of your set, use the TDA_Ignore and TDA_Ignore_MIDI devices in your tracks. Everything from these devices forward in the device chain will be completely ignored by TDAbleton.
  • Access obscure Live Object Model features: abletonValueListenerComponent.
  • Get string data from Live: abletonValueListenerComponent.

Getting Started[edit]

Note for TouchDesigner 2021.10k users: Later 10k versions have two TDAbleton packages in the palette. The tdAbletonPackage is only compatible with Live 10 and earlier. The tdAbletonPackageBeta is compatible with Live 11 and earlier, but will be in beta until TouchDesigner 2021.30k. In TouchDesigner 2021.30k and later, tdAbletonPackage will be compatible with Live 11 and earlier.

System Requirements[edit]

  • Ableton Live 9.7.2 and up.
  • Max for Live 7.3.3 and up. (Note: Max 7.3.3 has a MIDI pitch bend bug. Use 7.3.4!)
  • TDAbleton has been in Touch installs since TouchDesigner version 099 2018.28070. Features may or may not work when moving TDAbleton versions backwards through TD builds.

Install the latest TDAbleton system[edit]

Make sure Ableton Live is closed before installing TDAbleton. Note: your Live install must have been opened at least once for the installation to work.

  1. Drag the tdAbletonPackage component into your project from Palette>TDAbleton
  2. On the Utilities parameter page, use the Ableton Live Install menu to pick which Live version you want to install the system on.
  3. Click Install.

This sets up Ableton Live Remote Scripts and User Folders for standard installs of Ableton Live. If you have customized your Live install locations, you may have to set up the MIDI Remote ScriptFolder and Preferences Folder parameters yourself. Do this on the tdAbleton master component inside TDAbleton. Instructions for finding the correct locations can be found here for the remote script folder and here for the preference folder.

If the automatic install doesn't work, try the manual installation method, found here

Set up Ableton Live[edit]

  1. Open Ableton preferences (in the Options menu) and select the Link MIDI tab on left. In one of the Control Surface dropdowns, select TouchDesigner. Input and Output should be set to None.
  2. Reload your Live Set

Set up TouchDesigner and Confirm the Connection[edit]

  1. If Ableton Live and TouchDesigner are running on the same computer, no additional network setup is necessary. If they are running on different computers, you must set TouchDesigner to connect to Live's address. On the tdAbletonPackage/tdAbletonComponent, set the Ableton Address parameter to the network address of the computer running Ableton Live. The network address of the Live computer is displayed on the TDA Master Max device, which can be found (or dropped) on the Master track. The port parameters on the tdAbleton component should also match the port numbers on the TDA Master device.
  2. If the tdAbletonComponent does not have a disconnected error flag, the connection is successful. (If you see error messages or are not connected, check the Troubleshooting section below.)
  3. TouchDesigner will open a dialog asking you to add a TDA Master Device to your set. You can also use the Add TDA Master Device parameter on the tdAbletonPackage/abletonSongComponent.

If this is your first time using TDAbleton, the best way to learn the basics is the TDAbleton Feature Tour

Upgrading TDAbleton[edit]

These are instructions for updating a previously installed TDAbleton. You will have to make changes to both Ableton Live and your TouchDesigner project. All TDAbleton components have a version number on their TDAbleton parameter page which you can check against the version numbers in the palette package. The latest update is always available in the TouchDesigner palette.

  1. Close Ableton Live
  2. Delete the tdAbletonPackage in your project. This will probably cause errors in your network until you finish this process.
  3. Follow the Install the latest TDAbleton system instructions above.
  4. On the tdAbleton master component in tdAbletonPackage, go to the Utilities parameter page and click the Update All To <version> parameter. This updates all the TDAbleton components deployed in your project.
  5. Reopen your Ableton Live Set
  6. You may have to update your TDAbleton Max 4 Live devices. See below.

Updating TDA Max Devices[edit]

Ableton This Sample Contains No Audio Data Download

When you install a new version of TDAbleton, you may have to replace TDA Max devices stored locally in your Live Set. This happens when you use the Collect All and Save feature in Live, because it creates local copies of the devices. To make sure you have the proper versions of all TDAbleton Max 4 Live devices, do the following in your Live Set:

  1. Go to the Master Track of you Set and right-click on the top bar of the TDA Master device. Select Manage Device File. A window will appear on the right side showing all Max devices in your Set.
  2. TDAbleton Max devices are always prefixed with 'TDA_'. If any of these devices say 'Current Project' in their location column, you should update them.
  3. To Update A TDA Max Device: drag the device with the corresponding name from the TouchDesigner User Folder in Live's browser (see image) onto the device on the right. This will replace it with the updated copy.

The three locations for TDA devices are:

Ableton This Sample Contains No Audio Data
  • TouchDesigner
  • TouchDesigner>TDA Project>Presets>Audio Effects>Max Audio Effect>Imported
  • TouchDesigner>TDA Project>Presets>MIDI Effects>Max MIDI Effect>Imported

TDAbleton Feature Tour[edit]

The easiest way to learn the basics of TDAbleton is to explore the provided demo. To get started, run the TDAbletonDemo.toe file in the /Samples/TDAbleton folder (choose Browse Samples from TouchDesigner Help menu). In the same folder you'll find the TDADemo Live Set for Ableton Live. Inside that folder, open the TDADemo Set.als Ableton Set. Press play in Ableton Live and you should immediately see CHOP data moving in the TouchDesigner demo TDAbleton Components. If you don't, be sure you have properly set up Ableton Live (see Getting Started).

The TDA Master Device[edit]

On the Master track of the TDADemo Set, you'll find the TDA Master Max Device. This device shows if Live is connected to TouchDesigner and allows you to apply some master settings for your Live Set. TouchDesigner does not have a way to access the file name loaded into Live, so the Song ID is provided as a numeric field you can use to identify your song. The name of your TDA Master device will be used as a text song name that is readable by TouchDesigner. The Ableton Port is the network port that will be used by the TouchDesigner remote script to receive messages from TouchDesigner. The Max In Port is the network port that will be used by TDA Max devices to receive messages from TouchDesigner.

Tip: you can add a TDA Master device to a Live Set using the Add TDA Master Device pulse parameter on an abletonSongComponent (see below).

Anatomy of a TDAbleton Component[edit]

To look at the basic structure of a TDAbleton Component, we'll use abletonSong1 as an example.

Data from Ableton Live[edit]

You will notice that the data shown in the viewer reflects the current state of the Ableton Live Set. You can see a number of channels reflecting time data (e.g. song/info/beats) and a few others reflecting various states (e.g. song/info/play). Data coming in from Live is generally CHOP data, and can be accessed by wiring from the TDAbleton Component, as has been done with the nullSongCHOP. Look in the parameters of the circle1SOP to see one way of using this incoming data. Some data from Live come in DAT format, and can be accessed similarly from outputs.

In certain cases, incoming data may also come via callback. Examples of this can be found in the abletonSong1_callbacksDAT. Python callbacks are beyond the scope of this guide, but if you know a little Python, looking in this DAT will reveal the examples which set the locatorByCallback and sceneByCallback textTOPs.

Sending Data to Ableton Live[edit]

Data to be sent out to Ableton is usually sent via parameters. If you go to the Ableton Song parameter page of abletonSong1 you will see the Play, Loop, and Tempo parameters which set the corresponding values in the Live Set. The abletonChainOrTrack1 and abletonChainParameter1 Components show examples of using CHOP exports to automatically change an outgoing parameter and thereby change a value in Live.

These parameter values are kept up to date with incoming Live data only if the Auto Sync Pars To CHOP toggle is on. This option is provided because in certain cases Auto Sync can cause echoing changes between TouchDesigner and Ableton.

Navigating your Live Set using the Live Object Model[edit]

The Ableton Live Object Model (or LOM) describes all the aspects of an Ableton Live Set, including Tracks, Devices, Parameters, Scenes, etc. For more information about the Live Object Model, see: LOM Python Reference (another version here) and LOM Max For Live Reference.

For this section, we'll use abletonParameter1 as an example.

In the previous section, abletonSong1 shows data for the entire Live Set. Most TDAbleton Components are made for observing particular parts of a Set. For example, abletonParameter is used to get and set the value of a single Ableton Device Parameter. As you can see in the Component's parameters, this one is set to work with Track: 1 Muugy, Device: Pitch, and Parameter: Pitch. In Ableton Live, navigate to that device and you will see that its Pitch value is being mirrored in TouchDesigner.

TDAbleton uses menu parameters to navigate the Live Object Model. For example, all available Tracks, including Returns and the Master, will be shown in the Track parameter. Once you have selected a Track, its available Devices will be shown in the Device parameter, and so on down. To see other examples of this, take a look at the abletonTrack1Component, which observes a single Track, and the abletonChainParameter1Component, which gives access to Ableton Device Parameters within sub-chains such as those in an Instrument Rack.

Note: You can change the Pitch value in Ableton by changing the Value Send parameter on abletonParameter1, but notice that this stops Ableton's automation of that parameter. This is another reason why Auto Sync is not always desirable.

MIDI Data[edit]

The abletonMIDI1Component has a unique feature: a Max For Live device is necessary in order to get MIDI data out of Ableton Live. Each abletonMIDI component is connected to a specific TDA MIDI device in Live. If you look on the 1 Muggy Track in the Ableton Set, you will see the TDA MIDI device.

TDA MIDI devices in your Live set should be created from TouchDesigner by using the Add TDA MIDI Device pulse parameter on an abletonMIDIComponent. Just select the Track to put it on and press that button.

For more details about using TDAbleton MIDI features, see abletonMIDI.

Incoming MIDI[edit]

The TDA MIDI device transmits MIDI data back to TouchDesigner, based on its position in its Track. In the image, for example, the changes in MIDI notes created by the Pitch MIDI Device (just left of it in the Ableton Track) will be reflected in TouchDesigner.

Outgoing MIDI[edit]

The TDA MIDI device can also be used to send MIDI commands to Ableton Live. To see this, use the sendNote button and the pitchBend slider next to the abletonMIDI1Component.

Ableton This Sample Contains No Audio Data

TDAbleton Rack Devices[edit]

The smoothest way to control and watch Live's parameter values from TouchDesigner is using the abletonRack component, and its corresponding Max devices in live. These racks can be created in Live using the pulse buttons on the abletonRack component. For an example, look at the device chain in the '2 Muggy' Track in the Demo Set.

The TDA Rack devices are Live presets that include standard Ableton Live Racks with a special Max device on the first chain that sends and receives data between TouchDesigner and the rack macros. In the image, this Max device is called 'TDA_Rack_OSC'. For the most part, you won't have to interact with this device, though it does have on/off controls for incoming and outgoing values.

The general strategy for using these racks is to put the Live device whose parameters you want to control and/or watch into the rack. Then map the appropriate rack macros to the parameters you want to interact with. This will create a fast connection between those parameters and the corresponding abletonRack device. For more information, see abletonRack.

Ableton This Sample Contains No Audio Data Required

Using TDAbleton Package[edit]

In tdAbletonPackage, you will see the tdAbleton master Component on the top-left. This master component maintains the connection to Ableton Live and will generally not need to be altered once your connection is in place.

The other TDAbleton Components provide the actual real-time data to and from Ableton. To use these Components, copy them into your project from tdAbletonPackage. In general, they use CHOP channels to transmit data from Ableton Live and custom parameters for Component set up and also for transmission of data to Live. For specific information about the Components see TDAbleton System Components.

The TDAbleton system also provides a number of features for creating your own custom Components. See Creating Custom TDAbleton Components for more information.

Setting Up Your Project[edit]

As you have seen, TDAbleton uses a separate Component for each aspect of the Live Object Model that you want TouchDesigner to interact with. To set up all your observers, just copy as many TDAbleton Components from tdAbletonPackage as you need and set them up appropriately. As always, using select CHOPs for duplicate data will be more efficient than creating duplicate Components.

Caveats and Gotchas[edit]

  • Most Importantly: the system will be confused by tracks with duplicate names and devices with duplicate names on the same track or in the same chain. In some cases, this is also true of names that are the same after being converted to valid TouchDesigner Channel names. TDAbleton will pop up a warning dialog if it finds duplicate names, and will give an option to automatically rename duplicates. This behavior can be controlled using the tdAbleton master Component's Report Duplicate Names parameter.
  • Automatic Ableton Track Names with '#' in them can cause some problems because Ableton does some strange renaming stuff behind the scenes. The best solution is to just rename your tracks without using the # character.
  • Duplicate VST effects in the same chain are particularly nasty, because VST effects cannot be renamed. The auto-fix features will fail and you cannot rename the effects manually. There are two solutions for this. If you don't want to control/watch the effects in TouchDesigner, you can just ignore them by placing a TDA_Ignore Max device before them in the chain. All devices after the TDA_Ignore will be ignored. If you do want to control/watch the effects in TouchDesigner, place each one inside an effect rack. TDAbleton's abletonRack components will work particularly well for this.
  • TDAbleton M4l devices on the same track (e.g. TDA_MIDI and TDAbleton Racks) will need different names to broadcast properly from Max.
  • If Ableton Live objects are renamed when TDAbleton is not connected to Live, the connections will be broken when TDAbleton is reconnected. Connections will be maintained properly if renaming occurs while TDAbleton is connected.
  • Ableton parameters that are selected via Comp menus will always report their data as float values, even if they are integers in Ableton.
  • When using the TDAbleton Rack devices, you can't use spaces in Macro names.
  • Ableton parameters that are being controlled by TouchDesigner are not disabled in the Ableton interface, as is common when a value is being controlled by another value. Once TouchDesigner has altered an Ableton parameter value, that value's Ableton automation can only be restored in the Ableton interface. Important: changing Ableton values from TouchDesigner will create Undo steps in Ableton, which can destroy your ability to undo if a value is constantly streaming into Live. You can avoid this by using the TDAbleton Rack devices.

Troubleshooting[edit]

Because TDAbleton is linked to Ableton Live's Python Remote Scripts via OSC and the Python Remote Scripts are linked to the Ableton app through a lower-level system, troubleshooting can be a bit tricky. If you are having problems, your most important tool is the Textport. Be sure to have it open while troubleshooting, as most errors will be reported there.

Ableton This Sample Contains No Audio Database

The most common issues with TDAbleton will have to do with connections. The simplest connection test is the Ping parameter on the tdAbleton master. Press that and you should see a response in the textport. If not, you may have incorrect address or port settings on tdAbleton. All TDAbleton Components, including the master, have a Connect parameter. Toggling that on and off will reset the connection and will often print useful error messages as to the problem.

If you are not connecting make sure that the Ableton Port (on the TDA_Master device on your Live master track) matches the Ableton Port parameter (on the tdAbleton component in TouchDesigner). If those are matching, you may have an OSC conflict with something else running on your system. Change them both to a different matching number. Unfortunately there is no way to tell if an OSC port is taken, so this must be done by trial and error.

If you are still not connecting try closing your external text editor and any other sub-processes of TouchDesigner. For some reason, OSC ports can be associated with these sub-processes and the ports will not reopen until the applications are closed.

TDAbleton will attempt to transmit any errors from the TouchDesigner Remote Script to the textport. In most cases this will be sufficient, but sometimes it may be necessary to look at the Ableton log file. There are Log file helper parameters on the Utilities page of the tdAbleton component. To find your log file, see this Ableton help page.

Tip: the Log TDA Debug Msgs parameter turns on and off verbose debugging in Ableton's log file. If this parameter is off, only errors and the most basic information will be put in the Ableton log.

TouchDesigner Build:

Ableton This Sample Contains No Audio Data
Retrieved from 'https://docs.derivative.ca/index.php?title=TDAbleton&oldid=23348'