I’m trying to use buttons in a Control Surface to perform a variety of actions when I click it. One thing I’d like to be able to do is trigger a specific clip in a Media Bin. How can I do this?
Create your buttons then add a midi send from each button and you will be able to map them to the media bin slots.
From the Media Bin inspector under “Triggers” you can manually add data-source receivers, and these can be set to be controlled from any local data-source just the same as a MIDI / OSC / key detect by using the pop-up option in each row.
There are several other ways you can go about this by using the options in the “Control” tab of the Media Bin inspector, including:
- Use a slider along with the “Trigger by Float” option
- Use a pop-up button along with “Trigger by Index” or “Trigger by Name”
(along with each of these options you can use button triggers to jump to particular slider marks / menu options as needed)
I recorded a short video that demonstrates a couple of these different techniques,
Similar to the “Sync UI with Device” feature of OSC/MIDI, if I have a slider controlling which clip is playing in a Media Bin, can I have two way feedback so that when I directly click on the clip in the Media Bin, the slider position is also updated?
I tried placing a receiver for the Media Bin on the slider, but it clicking on a clip makes it jitter on the first few frames of the clip, like the Media Bin is firing the slider which is firing the Media Bin and so on…
Give this a try…
- Use the ignore duplicate vals setting for the float receiver (you won’t be able to ‘re-trigger’ a clip, but you won’t get duplicate triggers)
- Use the “Normalize Trigger Index” data source to update the slider
(Note that the “Triggered Index” can be used for index based UI elements like pop-up buttons)
Thanks this is super helpful. Last challenge in trying to get a control surface button to trigger clips is that I would like my button to be able to select a Media Bin Page as well as the clip. I almost have it working… I have two sliders, one controlling the Media Bin Page and another controlling the Clip. I have a button that sends both sliders to the desired page and clip number that I want to fire.
However, the new clip always fires before the page change, resulting in the clip from the old page firing rather than the clip from the new page. I am trying to figure out if there is a way to sequence the order that the receivers fire, so that the Media Bin page would change before the clip?
There is no direct way to specify the order in which actions sent from a data-provider are received, so having a single thing switch a page and then trigger a clip off a single button isn’t directly possible…
but of course this is VDMX so there are a bunch of different ways you can go about doing something like this; the exact route may depend on the specifics of what you are trying to accomplish…
- In some cases I’ll need like a ‘cut to blah’ buttons that override whatever page I’m currently using; rather than change pages in my main bin, I’ll usually set up an extra media bin that always stays on the page with the special set of media files set up on the needed target layer(s). Then I’ll usually hide that bin and trigger it via shortcuts as needed. This technique also allows me to have shortcuts for jamming set up on my main media bins.
- Another trick you can use is to have a very short ‘one shot’ (non-looping) LFO or Step Sequencer; the button can change the page and restart the LFO / SS, and a data-source from that plugin then performs the appropriate triggers (this can be useful if you want to set up multiple actions that happen on a button press in a particular order).
The Cue List plugin almost does what I need… I’d like to have a drum rack in Ableton trigger several things to happen at once in VDMX, and so far I have a drum rack firing a cue points to do things like play a specific clip on a specific layer, turn on or off effects, etc.
However, the Cue List has to be playing for the actions to fire. For example if I have the cue list paused, and I hit my first pad in the drum rack, it sends the cue list playhead to cue 1, but the clips do not change unless the cue list is playing. If it is playing, then it will unintentionally hit cue 2.
Any ideas on how to have a playhead-less cue list?
Hm, maybe send this to us as an example setup that demonstrates exactly what you are doing and we can perhaps just fix this behavior in the next update. Feel free to send over an email with a project.
Otherwise maybe you can get away with using a Step Sequencer plugin, which can trigger clips along the lines of this tutorial,
(step sequencers also have support for most of the same data-types as the Cue List, eg color tracks, https://vdmx.vidvox.net/tutorials/step-sequencer-color-tracks)
Thanks for the continued help with this!
The step sequencer is missing the data type of “Trigger to Layer” that the cue list has, which makes playing any clip on any page in your project possible with one single action. For the step sequencer to do this, it looks like you would need to change the page in one step, and fire a clip in a second step.
I’m hoping to have a single button fire several things at once, including playing a clip from any page in my project. The ultimate feature request would be to have buttons be able to do all the things that a Cue List can do, including “Trigger to Layer” in which I can choose a layer as my target and a specific clip as my value.
I have a pretty good workaround that accomplishes this with two button clicks (one button preps the actions, the second button executes the actions)…
- Cue list, set to auto-pause at cues
- Cue list, cues at some time such as 4:1:1, have a variety of actions like triggering some clips to specific layers
- Cue list, has a blank or dummy cue a few beats later such as 4:3:1 that does nothing except cause the playhead to pause when it arrives
- Button that sends the paused Cue list to 4:1:1 a short while before I actually want the actions to fire
- a second button that toggles the Cue list playhead to play at the moment I want the actions to fire.