How to trigger movie from DAW

Hi!
I’m very new to TouchDesigner, and I have to use it at my job. We are projecting a video on three screens, and playing some music in an 8 channel setup.
We want to be able to loop the music and the video, until we close it for the night.
I have been working with MadMapper before, and in MM, OSC messages are fairly easy to use, and I could send a trigger from Ableton (MIDI to OSC) to MadMapper and everything is fine.

I basically would just want to trigger the movie, so its starts from from the beginning every time the music ends. That way we wouldn’t end up everything not syncing after an hour because of 5 miliseconds difference.

Is there a relatively easy way to do this? It sounds so simle in my head, but I’ve been googling and watching YouTube videos, and read forums, and I’ve been looking at TDAbleton, which I couldn’t get to work…

How you can help a noobie! :slight_smile:

Hi and welcome to the forum.

You can easily receive midi or osc inside TD.

And then use the midi or osc message to trigger (pulse) the video.

Which part are you having trouble with? Receiving osc or triggering the video?

Hi, thank you!

I see my MIDI notes in Ableton, as OSC notes in TD, I have trouble how to trigger the video to start from the beginning when TD receives a note :slight_smile:

Doesn’t confuse OSC and Midi! Ableton doesn’t use natively OSC, only with maxForLive. Its easier with midi.
You have first to establish a virtual midi channel, easy in macOs (Audio-Midi Config), needs an auxiliary app in Windows
https://www.tobias-erichsen.de/software/loopmidi.html
You have to activate the midi channel in TD (Midi device mapper) and then use midiin Chop to receive the note inside TD and link it to moviefilein Top.
I prefere to use chopexecute Dat to do that.
Some research will help you to find the way

Hi meleeupgrade !

First off, make sure you follow the steps in the ‘Getting Started’ section of the TDAbleton wiki here. This will help you immensely if you can get the plugin working.

There’s a couple of ways that you could approach syncing the video file from Ableton.

Prepping the Movie File In TOP

First, get your Movie File In TOP set-up in Touchdesigner. Go to the Trim tab and set the Extend Right parameter to ‘Zero’ or ‘Black’. This will make it so that once the video has finished playing, it won’t just loop back to the beginning. You can then Pulse the Reload parameter to start/restart the video.

Option 1: Send A Trigger from Ableton with a Midi Note

So this approach involves sending a midi message to Touchdesigner to trigger the playback of the video. I would make a new Midi Track in your Ableton project (named Touchdesigner or something). If you’re in the arrangement view, just make a small 1 bar midi clip. You can then just create a Note (doesn’t matter which one, let’s use C3). Make sure this midi clip is placed at the very beginning of your arrangement. In Touchdesigner, you can now pull an abletonMidi TOX from the Palette browser into your network. Fill out the requisite parameters to specifically be pulling information about the ‘Touchdesigner’ track you made in Ableton. You should see note information in there that you can then use to pulse the Movie File In ‘Reload’ parameter (you can do this a few ways, either by directly referencing those channels or using a CHOP Execute DAT and a little bit of python).

Option 2: Use the Arrangement/Song timeline to drive the Movie File In TOP

This approach involves pulling the current timeline position from Ableton into Touchdesigner, and using that to drive the Video in the Movie File In TOP. By default, the Movie File In TOP will automatically play when the Play Mode parameter is set to Sequential. However, if you set that to Specify Index, you can then drive the playback using the Index parameter at the bottom of the parameter window. If you grab an abletonSong TOX from the Palette Browser, you should be able to grab information about the current timeline position from Ableton, normalize that to a value between 0 and 1 (find the duration of your arrangement and divide the current time by the total time, or use the Math CHOP and set the range in the Range tab), and then reference that value in the Index parameter in the Movie File In TOP. (Make sure you set the Index units to Fraction first). This way, your video will always be in lockstep to your Ableton timeline.


This all assumes you’re using the Arrangement view in Ableton, however I’m sure you can solve the problem in a similar way in the Session view as well. I don’t have Ableton on the machine I’m currently using, but let me know if you have any questions and I can try and set-up an example for you and upload it here.

Let me know if you have any questions or comments !

1 Like

Lots of help here already but I’ll answer this question.

There are a few ways to do this. The way I would do it is with a ChopExec DAT and one line of python.

Example here:
MovieFile Trigger From start.toe (4.1 KB)

Here I am using a button instead the incoming OSC message, but the same principle applies.
Press the button to trigger the movie file from the start.
The line of python is inside the pink chopexec DAT and is op('moviefileinExample').par.cuepulse.pulse()

press on the little star on the bottom right of the chopexec to change this line to martc the name of the movie file in TOP you need to trigger, for example:
op('moviefilein1').par.cuepulse.pulse()

The info CHOP is just a way to visualise the movie file being triggered from the beginning by pointing at the movie file in index fraction, which is always between 0 and 1 no matter of how long the movie file is.

i hope this helps!

1 Like

@FaustoB @wooliii (could only mention two)

Wow. Thank you guys so much for your time and very helpful replies!!
Such a kind and helpful forum.

I ended up figuring out how to get TouchDesigner to react to my OSC messages (I use ConnectionKit in Ableton that transforms my midi notes into OSC messages, sorry for not explaining that, I know it’s two different things :slight_smile: ) from ableton, and used the values from the note, to trigger the reload button!
I found that as the simplest solution, which I have used in other softwares as well.
I am so new, that I didn’t understand what each operator did.

I am planning to watch the 4 hour introduction video soon, this project just had a very close due date (tomorrow).

1 Like