In the previous two articles, we approached looping in Live in two different ways. Both have their advantages, and each offers a distinct workflow. One thing they both lack, however, is some sort of LED feedback so that we can tell what’s going on in Live by looking at our SoftStep. In this article we will look at… Read more »

In the last article we created a very simple, bare-bones looping setup in Live using Session Mode, Audio Clips, and the SoftStep. In this article we will explore the other built in solution to looping in Live by exploring how to setup a looping template using the Looper device.

In the last article we managed to bundle a bunch of transport related code into one function and import that function into our script. This is great for encapsulating code, but we are overlooking one of the biggest boons of javascript: the ability to create objects. Everything in javascript is an object. Functions, variables, arrays, everything…. Read more »

In the last installment we successfully implemented some transport control in our script to play, stop and record from our controller, as well as input notes. This article will focus on creating and using observers to get information from Bitwig sent to our controllers. This is useful if your controller has any type of LED feedback. You… Read more »

When I first heard about Bitwig Studio years ago, there was one feature that really caught my eye. In promotions for the software they always mentioned that they would have an ‘Open Controller Scripting API’. Coming from an environment like Ableton Live, which has an undocumented and ‘closed’ API, this was hugely exciting. In this… Read more »

In the previous installment we discussed locating and gathering information about loaded Control Surface scripts using M4l and the Live API. In this installment we will look at applying our session control to any Control Surface that has a SessionComponent. This will involve some iterations and checks, things which aren’t the cleanest in Max, but they… Read more »