All BitwigBuddy Actions
This page combines all available Bitwig actions.
Clip Actions
Clip actions allow you to manipulate clips in Bitwig Studio. These actions include creating, renaming, and coloring clips.
Clip Actions List
Action | Description | Example |
---|---|---|
Clip Create | Creates a new clip (Slot, Length). If in Arranger mode, slot param will be ignored | Clip Create(3, 16) |
Clip Delete | Deletes the selected clip | Clip Delete() |
Clip Select | Selects a clip by index | Clip Select(2) |
Clip Duplicate | Duplicates the selected clip | Clip Duplicate() |
Clip Loop On | Enables looping for the selected clip | Clip Loop On() |
Clip Loop Off | Disables looping for the selected clip | Clip Loop Off() |
Clip Rename | Renames the selected clip | Clip Rename("Intro") |
Clip Color | Sets the color of the selected clip | Clip Color("#FF0000") |
Clip Move | Moves the selected clip to a specified position | Clip Move(4) |
Clip Offset | Sets the playback start offset for the selected clip | Clip Offset(2.5) |
Clip Accent | Sets the accent value for the selected clip | Clip Accent(0.75) |
Clip Length | Changes the length of the selected clip | Clip Length(8.2) |
Clip Actions Example
// Create a clip and set its properties
Clip Create(3, 16)
Clip Rename("Intro")
Clip Color("#FF0000")
// Enable looping for the clip
Clip Loop On()
// Set the clip's accent and length
Clip Accent(0.8)
Clip Length(8)
Device Actions
Device actions allow you to manipulate devices in Bitwig Studio. These actions include inserting devices and VSTs.
Device Actions List
Action | Description | Example |
---|---|---|
Insert Device | Inserts a Bitwig device | Insert Device("Drum Machine") |
Insert VST3 | Inserts a VST3 plugin | Insert VST3("Reverb") |
Device Actions Example
// Insert a device and a VST
Insert Device("Drum Machine")
Insert VST3("Reverb")
Drum Pad Actions
Drum pad actions allow you to manipulate drum pads in Bitwig Studio. These actions include selecting pads, inserting devices, and managing files within drum pads.
Drum Pad Actions List
Action | Description | Example |
---|---|---|
Select Drum Pad | Selects a drum pad by note | Drum Pad Select ("C1") |
Drum Pad Insert Empty | Creates an empty drum pad | Drum Pad Insert Empty("C#2", "Name", "#D00000) |
Drum Pad Insert Device | Inserts a Bitwig device into the drum pad | Drum Pad Insert Device("C1", "Reverb") |
Insert File In Drum Pad | Inserts a file into the selected drum pad | Insert File In Drum Pad("C1", "c:\MySamplesDir\sample.wav") |
Insert VST3 In Drum Pad | Inserts a VST3 plugin into the selected drum pad | Insert VST3 In Drum Pad("C1", "Reverb") |
Drum Pad Actions Example
// Select a drum pad
Drum Pad Select("C1")
// Insert a device into a drum pad
Drum Pad Insert Device("C1", "Reverb")
// Create an empty drum pad with name and color
Drum Pad Insert Empty("C#2", "Snare", "#D00000")
// Insert a file into a drum pad
Insert File In Drum Pad("C1", "c:\MySamplesDir\sample.wav")
// Insert a VST3 plugin into a drum pad
Insert VST3 In Drum Pad("C1", "Reverb")
State Functions and Variables
BitwigBuddy provides a set of functions to retrieve state information from Bitwig Studio. These functions can be used in macros to access information about the current track, device, clip, transport, and more.
Overview of State Functions
State functions allow you to:
- Get information about the current track (name, number, color, etc.)
- Retrieve details about the current device
- Access clip properties and status
- Check transport settings (BPM, time signature, etc.)
- Get project information
These values can be used in your macros for conditional logic, displaying information, or creating dynamic behaviors.
Function List
Track Information
Function | Return Type | Description |
---|---|---|
getCurrentTrackName() | String | Gets the name of the currently selected track |
getCurrentTrackNumber() | Integer | Gets the position of the current track (1-based index) |
getCurrentTrackColor() | String | Gets the color of the current track as hex code (without #) |
isCurrentTrackMuted() | Boolean | Checks if the current track is muted |
isCurrentTrackSoloed() | Boolean | Checks if the current track is soloed |
isCurrentTrackArmed() | Boolean | Checks if the current track is armed for recording |
getCurrentTrackVolume() | Double | Gets the current track volume (0.0 to 1.0) |
getCurrentTrackPan() | Double | Gets the current track pan position (-1.0 to 1.0) |
getTrackCount() | Integer | Gets the total number of tracks in the current project |
Device Information
Function | Return Type | Description |
---|---|---|
getCurrentDeviceName() | String | Gets the name of the currently selected device |
isCurrentDeviceEnabled() | Boolean | Checks if the current device is enabled |
isCurrentDeviceWindowOpen() | Boolean | Checks if the current device window is open |
getDeviceCount() | Integer | Gets the total number of devices in the current track |
Clip Information
Function | Return Type | Description |
---|---|---|
getCurrentClipName() | String | Gets the name of the currently selected clip |
getCurrentClipColor() | String | Gets the color of the current clip as hex code (without #) |
isCurrentClipLooping() | Boolean | Checks if the current clip is set to loop |
getCurrentClipLength() | Double | Gets the length of the current clip in beats |
isCurrentClipPlaying() | Boolean | Checks if the current clip is playing |
isCurrentClipRecording() | Boolean | Checks if the current clip is recording |
isCurrentClipSelected() | Boolean | Checks if the current clip is selected |
Transport Information
Function | Return Type | Description |
---|---|---|
getCurrentBpm() | Double | Gets the current project tempo in BPM |
getTimeSignatureNumerator() | Integer | Gets the numerator of the current time signature |
getTimeSignatureDenominator() | Integer | Gets the denominator of the current time signature |
isPlaying() | Boolean | Checks if transport is currently playing |
isRecording() | Boolean | Checks if transport is currently recording |
getPlayPosition() | Double | Gets the current play position in beats |
isMetronomeEnabled() | Boolean | Checks if the metronome is enabled |
isArrangerLoopEnabled() | Boolean | Checks if the arranger loop is enabled |
Project Information
Function | Return Type | Description |
---|---|---|
getProjectName() | String | Gets the name of the current project |
Scene Information
Function | Return Type | Description |
---|---|---|
getCurrentSceneIndex() | Integer | Gets the index of the current scene |
getCurrentSceneName() | String | Gets the name of the current scene |
Using State Functions in Macros
Here's an example of how to use these functions in a macro:
Macro: "Get Functions and Variables"
Description: "Examples of get functions."
Author: "Centomila"
// Track and project information example
// Assign the current track name to a variable
var trackName = getCurrentTrackName()
Wait (1500)
// Show the track name in a message popup
Message(Current track name is: ${trackName})
Wait (1500)
// Get track position (number)
var trackNumber = getCurrentTrackNumber()
Message(Track position: ${trackNumber})
Wait (1500)
// Get device information
var deviceName = getCurrentDeviceName()
Message(Current device: ${deviceName})
Wait (1500)
// Get transport information
var bpm = getCurrentBpm()
Message("Project tempo: ${bpm} BPM")
Wait (1500)
// Time signature information
var num = getTimeSignatureNumerator()
var denom = getTimeSignatureDenominator()
Message("Time signature: ${num}/${denom}")
// Send information to the console for logging
Console("== Bitwig State Information ==")
Console("Track: ${trackName} (#${trackNumber})")
Console("Device: ${deviceName}")
Console("Tempo: ${bpm} BPM")
Console("Time signature: ${num}/${denom}")
Using Variables in Expressions
You can use these functions directly in expressions or assign them to variables:
// Direct use in expressions
Message("Current project: ${getProjectName()}")
// Using variables
var trackName = getCurrentTrackName()
var deviceName = getCurrentDeviceName()
var isArmed = isCurrentTrackArmed()
Message("Track: ${trackName}, Device: ${deviceName}")
// Using in conditional statements
if (${isArmed}) {
Message("Track is armed for recording!")
}
if (!${isArmed}) {
Message("Track is NOT armed for recording!")
}
Notes for Using State Functions
- These functions provide read-only access to Bitwig Studio's state
- Values are retrieved at the moment the function is called
- For real-time monitoring, you may need to call these functions periodically
Step Actions
Step actions allow you to manipulate individual steps in a MIDI pattern. These actions include setting velocity, length, and other properties for selected steps.
Step Actions List
Action | Description | Example |
---|---|---|
Step Selected Velocity | Sets the velocity for selected steps | Step Selected Velocity(100) |
Step Selected Length | Sets the length for selected steps | Step Selected Length(0.5) |
Step Selected Chance | Sets the chance value for selected steps | Step Selected Chance(0.75) |
Step Selected Transpose | Transposes the selected steps | Step Selected Transpose(12) |
Step Selected Gain | Sets the gain for selected steps | Step Selected Gain(0.8) |
Step Selected Pressure | Sets the pressure (aftertouch) for selected steps | Step Selected Pressure(0.6) |
Step Selected Timbre | Sets the timbre for selected steps | Step Selected Timbre(0.7) |
Step Selected Pan | Sets the pan value for selected steps | Step Selected Pan(0.5) |
Step Selected Velocity Spread | Sets the velocity spread for selected steps | Step Selected Velocity Spread(0.2) |
Step Selected Release Velocity | Sets the release velocity for selected steps | Step Selected Release Velocity(0.5) |
Step Selected Is Chance Enabled | Enables/disables chance for selected steps | Step Selected Is Chance Enabled(true) |
Step Selected Is Muted | Mutes/unmutes selected steps | Step Selected Is Muted(true) |
Step Selected Is Occurrence Enabled | Enables/disables occurrence for selected steps | Step Selected Is Occurrence Enabled(true) |
Step Selected Is Recurrence Enabled | Enables/disables recurrence for selected steps | Step Selected Is Recurrence Enabled(true) |
Step Selected Is Repeat Enabled | Enables/disables repeat for selected steps | Step Selected Is Repeat Enabled(true) |
Step Selected Occurrence | Sets the occurrence condition for selected steps | Step Selected Occurrence(FIRST) |
Step Selected Recurrence | Sets the recurrence pattern for selected steps | Step Selected Recurrence(4, 15) |
Step Selected Repeat Count | Sets the repeat count for selected steps | Step Selected Repeat Count(4) |
Step Selected Repeat Curve | Sets the repeat timing curve for selected steps | Step Selected Repeat Curve(0.5) |
Step Selected Repeat Velocity Curve | Sets the repeat velocity curve for selected steps | Step Selected Repeat Velocity Curve(0.3) |
Step Selected Repeat Velocity End | Sets the end velocity for note repeats | Step Selected Repeat Velocity End(0.4) |
Step Set | Sets multiple properties for selected steps | Step Set(velocity=100, length=0.5) |
Step Actions Example
// Set velocity and length for selected steps
Step Selected Velocity(100)
Step Selected Length(0.5)
// Enable chance and set its value
Step Selected Is Chance Enabled(true)
Step Selected Chance(0.75)
// Set recurrence pattern and repeat count
Step Selected Recurrence(4, 15)
Step Selected Repeat Count(4)
Track Actions
Track actions allow you to manipulate tracks in Bitwig Studio. These actions include creating, renaming, and selecting tracks.
Track Actions List
Action | Description | Example |
---|---|---|
Create Instrument Track | Creates a new instrument track | Create Instrument Track |
Track Rename | Renames the selected track | Track Rename("Drums") |
Track Select | Selects a track by index | Track Select (2) |
Track Next | Selects the next track | Track Next |
Track Previous | Selects the previous track | Track Previous |
Track Actions Example
// Create a new track and rename it
Create Instrument Track
Track Rename("Drums")
Transport Actions
Transport actions allow you to control the transport in Bitwig Studio. These actions include setting the tempo and controlling playback.
Transport Actions List
Action | Description | Example |
---|---|---|
Bpm | Sets the tempo | Bpm(120) |
Play | Starts playback | Play() |
Stop | Stops playback | Stop() |
Transport Actions Example
// Set the tempo and start playback
Bpm(120)
Play()
Utility Actions
Utility actions provide general-purpose functionality in Bitwig Studio. These actions include waiting and showing messages.
Utility Actions List
Action | Description | Example |
---|---|---|
Wait | Pauses execution for a specified time | Wait(1000) |
Message | Displays a message box | Message("Hello World!") |
List Commands | Lists all registered commands in the console. | List Commands |
Utility Actions Example
// Wait for 1 second and display a message
Wait(1000)
Message("Hello World!")
TIP
You can also access each action category separately through the sidebar navigation.