BU16 x Bitwig Clip Launcher

Hi all/intech,

I’m working on setting up my BU-16 to control the Bitwig launcher with MIDI LED feedback that syncs with Bitwig’s launch play animation. Ideally, I’d like the timing to be as accurate as possible.

I’m a bit out of my depth here—I have no Lua experience, and the action blocks are proving challenging. I’ve also I tried the Flexi DrivenByMoss extension without success.

Current Setup:

  • I’m MIDI mapping each clip to individual buttons
  • I’ve managed to create a radio-type row switch where activating one button deactivates the others (using if conditions)

What I’m Trying to Achieve:

  • Toggle capability for the active switch
  • When a clip is cued, the button should flash in time with another color, then change when the clip becomes active
  • Currently, I have to toggle off twice when a clip is active, which isn’t ideal

I know this is somewhat complex to explain via text. Would anyone be available for a video call where I could screen share and walk through what I’m trying to accomplish? Any guidance would be greatly appreciated!

Thanks so much,
Ryan

Managed to get everything working now apart from the bitwig feedback

Struggling to get anywhere with midi feedback from bitwig clips to the bu 16 buttons

To receive clip feedback in the Bitwig Controller API, you can utilize the CursorClipProxy to access properties of the currently selected clip, such as its playback state and loop length. This allows you to create responsive scripts that react to changes in clip status during performance or production.

Receiving Clip Feedback in Bitwig Controller API

Overview of Clip Feedback

In Bitwig Studio, receiving feedback from clips is essential for creating responsive and interactive controller scripts. This feedback allows your controller to reflect the current state of clips, such as playback status, loop length, and other parameters.

Methods for Receiving Clip Feedback

To effectively receive feedback from clips, you can utilize the following methods within the Bitwig Controller API:

Method Description
getClip() Accesses the currently selected clip in the track.
getLoopLength() Retrieves the loop length of the selected clip.
isPlaying() Checks if the clip is currently playing.
getPlaybackPosition() Gets the current playback position within the clip.
getLoopEnabled() Determines if looping is enabled for the clip.

Implementation Tips

  • Context Sensitivity: Ensure that you are calling these methods in the correct context. Some methods may only be valid during specific events or states.
  • Error Handling: Implement error handling to manage cases where a clip may not be available or when methods return unexpected results.
  • Synchronization: Use the scheduleTask method to synchronize feedback updates with the clip’s state changes, ensuring that your controller reflects real-time changes.

Example Code Snippet

Here’s a simple example of how to check if a clip is playing and retrieve its loop length:

var clip = getClip();

if (clip.isPlaying()) {
    var loopLength = clip.getLoopLength();
    // Update your controller display with the loop length
}