Interface Track

All Superinterfaces:
Channel, DeleteableObject, DeviceChain, DuplicableObject, ObjectProxy, Subscribable
All Known Subinterfaces:
CursorTrack, MasterTrack

public interface Track extends Channel
Instances of this interface represent tracks in Bitwig Studio.
Since:
API version 1
  • Method Details

    • position

      IntegerValue position()
      Value that reports the position of the track within the list of Bitwig Studio tracks.
      Since:
      API version 2
    • addPositionObserver

      @Deprecated void addPositionObserver(IntegerValueChangedCallback callback)
      Deprecated.
      Use position() instead.
      Registers an observer that reports the position of the track within the list of Bitwig Studio tracks.
      Parameters:
      callback - a callback function that receives a single integer parameter
      Since:
      API version 1
    • getClipLauncherSlots

      @Deprecated ClipLauncherSlotBank getClipLauncherSlots()
      Deprecated.
      Returns an object that can be used to access the clip launcher slots of the track.
      Returns:
      an object that represents the clip launcher slots of the track
      Since:
      API version 1
    • clipLauncherSlotBank

      ClipLauncherSlotBank clipLauncherSlotBank()
      Returns an object that can be used to access the clip launcher slots of the track.
      Returns:
      an object that represents the clip launcher slots of the track
      Since:
      API version 2
    • getClipLauncher

      Deprecated.
      Since:
      API version 1
    • addIsQueuedForStopObserver

      @Deprecated void addIsQueuedForStopObserver(BooleanValueChangedCallback callback)
      Deprecated.
      Use isQueuedForStop() instead.
      Registers an observer that reports if the clip launcher slots are queued for stop.
      Parameters:
      callback - a callback function that receives a single boolean argument.
      Since:
      API version 1
    • getArm

      Deprecated.
      Use arm() instead.
      Returns an object that provides access to the arm state of the track.
      Returns:
      a boolean value object
      Since:
      API version 1
    • arm

      Returns an object that provides access to the arm state of the track.
      Returns:
      a boolean value object
      Since:
      API version 5
    • getMonitor

      Deprecated.
      Use monitor() instead.
      Returns an object that provides access to the monitoring state of the track.
      Returns:
      a boolean value object
      Since:
      API version 1
    • monitor

      Deprecated.
      Returns an object that provides access to the monitoring state of the track.
      Returns:
      a boolean value object
      Since:
      API version 5
    • isMonitoring

      BooleanValue isMonitoring()
      Returns an object that provides a readout of the monitoring state of the track.
      Returns:
      a read-only boolean value object
      Since:
      API version 14
    • getAutoMonitor

      Deprecated.
      Use autoMonitor() instead.
      Returns an object that provides access to the auto-monitoring state of the track.
      Returns:
      a boolean value object
      Since:
      API version 1
    • autoMonitor

      Deprecated.
      Returns an object that provides access to the auto-monitoring state of the track.
      Returns:
      a boolean value object
      Since:
      API version 5
    • monitorMode

      SettableEnumValue monitorMode()
      Returns an object that provides access to the auto-monitoring mode of the track.
      Returns:
      a boolean value object
      Since:
      API version 14
    • getCrossFadeMode

      @Deprecated SettableEnumValue getCrossFadeMode()
      Deprecated.
      Use crossFadeMode() instead.
      Returns an object that provides access to the cross-fade mode of the track.
      Returns:
      an enum value object that has three possible states: "A", "B", or "AB"
      Since:
      API version 1
    • crossFadeMode

      SettableEnumValue crossFadeMode()
      Returns an object that provides access to the cross-fade mode of the track.
      Returns:
      an enum value object that has three possible states: "A", "B", or "AB"
      Since:
      API version 5
    • isStopped

      BooleanValue isStopped()
      Value that reports if this track is currently stopped. When a track is stopped it is not playing content from the arranger or clip launcher.
      Since:
      API version 2
    • getIsMatrixStopped

      @Deprecated BooleanValue getIsMatrixStopped()
      Deprecated.
      Use isStopped() instead.
      Returns a value object that provides access to the clip launcher playback state of the track.
      Returns:
      a boolean value object that indicates if the clip launcher is stopped for this track
      Since:
      API version 1
      See Also:
    • getIsMatrixQueuedForStop

      @Deprecated BooleanValue getIsMatrixQueuedForStop()
      Deprecated.
      Use isQueuedForStop() instead.
      Returns a value object that provides access to the clip launcher's queue-for-stop state on this track. A clip is considered to be queued for stop when playback has been requested to be stopped on that clip, but the playback has not stopped yet due to the current launch quantization settings.
      Returns:
      a boolean value object that indicates if the clip launcher slots have been queued for stop
      Since:
      API version 1
      See Also:
    • isQueuedForStop

      BooleanValue isQueuedForStop()
      Value that reports if the clip launcher slots are queued for stop.
      Since:
      API version 2
    • getSourceSelector

      @Deprecated SourceSelector getSourceSelector()
      Deprecated.
      Use sourceSelector() instead.
      Returns the source selector for the track, which is shown in the IO section of the track in Bitwig Studio and lists either note or audio sources or both depending on the track type.
      Returns:
      a source selector object
      Since:
      API version 1
    • sourceSelector

      SourceSelector sourceSelector()
      Returns the source selector for the track, which is shown in the IO section of the track in Bitwig Studio and lists either note or audio sources or both depending on the track type.
      Returns:
      a source selector object
      Since:
      API version 5
    • stop

      void stop()
      Stops playback of the track.
      Since:
      API version 1
    • stopAction

      Action to call stop().
      Since:
      API version 10
    • stopAlt

      void stopAlt()
      Stops playback of the track using alternative quantization.
      Since:
      API version 18
    • stopAltAction

      HardwareActionBindable stopAltAction()
      Action to call stopAlt().
      Since:
      API version 18
    • returnToArrangement

      void returnToArrangement()
      Calling this method causes the arrangement sequencer to take over playback.
      Since:
      API version 1
    • setName

      void setName(String name)
      Updates the name of the track.
      Parameters:
      name - the new track name
      Since:
      API version 1
    • addPitchNamesObserver

      void addPitchNamesObserver(IndexedStringValueChangedCallback callback)
      Registers an observer that reports names for note key values on this track. The track might provide special names for certain keys if it contains instruments that support that features, such as the Bitwig Drum Machine.
      Parameters:
      callback - a callback function that receives two arguments: 1. the key value in the range [0..127], and 2. the name string
      Since:
      API version 1
    • playNote

      void playNote(int key, int velocity)
      Plays a note on the track with a default duration and the given key and velocity.
      Parameters:
      key - the key value of the played note
      velocity - the velocity of the played note
      Since:
      API version 1
    • startNote

      void startNote(int key, int velocity)
      Starts playing a note on the track with the given key and velocity.
      Parameters:
      key - the key value of the played note
      velocity - the velocity of the played note
      Since:
      API version 1
    • stopNote

      void stopNote(int key, int velocity)
      Stops playing a currently played note.
      Parameters:
      key - the key value of the playing note
      velocity - the note-off velocity
      Since:
      API version 1
    • sendMidi

      void sendMidi(int status, int data1, int data2)
      Sends a MIDI message to the hardware device.
      Parameters:
      status - the status byte of the MIDI message
      data1 - the data1 part of the MIDI message
      data2 - the data2 part of the MIDI message
      Since:
      API version 2
    • trackType

      StringValue trackType()
      Value that reports the track type. Possible reported track types are `Group`, `Instrument`, `Audio`, `Hybrid`, `Effect` or `Master`.
      Since:
      API version 2
    • addTrackTypeObserver

      @Deprecated void addTrackTypeObserver(int numChars, String textWhenUnassigned, StringValueChangedCallback callback)
      Deprecated.
      Use trackType() instead.
      Registers an observer that reports the track type. Possible reported track types are `Group`, `Instrument`, `Audio`, `Hybrid`, `Effect` or `Master`.
      Parameters:
      numChars - the maximum number of characters used for the reported track type
      textWhenUnassigned - the default text that gets reported when the track is not yet associated with a Bitwig Studio track.
      callback - a callback function that receives a single track type parameter (string).
      Since:
      API version 1
    • isGroup

      BooleanValue isGroup()
      Value that reports if the track may contain child tracks, which is the case for group tracks.
      Since:
      API version 2
    • isGroupExpanded

      SettableBooleanValue isGroupExpanded()
      Value that indicates if the group's child tracks are visible.
      Since:
      API version 15
    • getIsPreFader

      SettableBooleanValue getIsPreFader()
      If the track is an effect track, returns an object that indicates if the effect track is configured as pre-fader.
      Since:
      API version 10
    • addIsGroupObserver

      @Deprecated void addIsGroupObserver(BooleanValueChangedCallback callback)
      Deprecated.
      Use isGroup() instead.
      Registers an observer that reports if the track may contain child tracks, which is the case for group tracks.
      Parameters:
      callback - a callback function that receives a single boolean parameter.
      Since:
      API version 1
    • getCanHoldNoteData

      @Deprecated SettableBooleanValue getCanHoldNoteData()
      Deprecated.
      Use canHoldNoteData() instead.
      Returns an object that indicates if the track may contain notes.
      Returns:
      a boolean value object
      Since:
      API version 1
    • canHoldNoteData

      SettableBooleanValue canHoldNoteData()
      Returns an object that indicates if the track may contain notes.
      Returns:
      a boolean value object
      Since:
      API version 5
    • getCanHoldAudioData

      @Deprecated SettableBooleanValue getCanHoldAudioData()
      Deprecated.
      Use canHoldAudioData() instead.
      Returns an object that indicates if the track may contain audio events.
      Returns:
      a boolean value object
      Since:
      API version 1
    • canHoldAudioData

      SettableBooleanValue canHoldAudioData()
      Returns an object that indicates if the track may contain audio events.
      Returns:
      a boolean value object
      Since:
      API version 5
    • createCursorDevice

      CursorDevice createCursorDevice()
      Returns an object that provides access to the cursor item of the track's device selection as shown in the Bitwig Studio user interface.
      Returns:
      the requested device selection cursor object
      Since:
      API version 1
    • createCursorDevice

      CursorDevice createCursorDevice(String name)
      Creates a named device selection cursor that is independent from the device selection in the Bitwig Studio user interface, assuming the name parameter is not null. When `name` is `null` the result is equal to calling createCursorDevice().
      Parameters:
      name - the name of the custom device selection cursor, for example "Primary", or `null` to refer to the device selection cursor in the arranger cursor track as shown in the Bitwig Studio user interface.
      Returns:
      the requested device selection cursor object
      Since:
      API version 1
      See Also:
    • createCursorDevice

      CursorDevice createCursorDevice(String name, int numSends)
      Creates a named device selection cursor that is independent from the device selection in the Bitwig Studio user interface, assuming the name parameter is not null. When `name` is `null` the result is equal to calling createCursorDevice().
      Parameters:
      name - the name of the custom device selection cursor, for example "Primary", or `null` to refer to the device selection cursor in the arranger cursor track as shown in the Bitwig Studio user interface.
      numSends - the number of sends that are simultaneously accessible in nested channels.
      Returns:
      the requested device selection cursor object
      Since:
      API version 1
      See Also:
    • getPrimaryDevice

      @Deprecated Device getPrimaryDevice()
      Deprecated.
      Gets the channels primary device.
      Returns:
      an object that provides access to the channels primary device.
      Since:
      API version 1
    • getPrimaryInstrument

      @Deprecated Device getPrimaryInstrument()
      Deprecated.
      Since:
      API version 1
    • createTrackBank

      TrackBank createTrackBank(int numTracks, int numSends, int numScenes, boolean hasFlatTrackList)
      Returns a track bank with the given number of child tracks, sends and scenes. The track bank will only have content if the connected track is a group track.
      A track bank can be seen as a fixed-size window onto the list of tracks in the connected track group including their sends and scenes, that can be scrolled in order to access different parts of the track list. For example a track bank configured for 8 tracks can show track 1-8, 2-9, 3-10 and so on.
      The idea behind the `bank pattern` is that hardware typically is equipped with a fixed amount of channel strips or controls, for example consider a mixing console with 8 channels, but Bitwig Studio documents contain a dynamic list of tracks, most likely more tracks than the hardware can control simultaneously. The track bank returned by this function provides a convenient interface for controlling which tracks are currently shown on the hardware.
      Creating a track bank using this method will consider all tracks in the document, including effect tracks and the master track. Use createMainTrackBank(int, int, int, boolean) or createEffectTrackBank(int, int, boolean) in case you are only interested in tracks of a certain kind.
      Parameters:
      numTracks - the number of child tracks spanned by the track bank
      numSends - the number of sends spanned by the track bank
      numScenes - the number of scenes spanned by the track bank
      hasFlatTrackList - specifies whether the track bank should operate on a flat list of all nested child tracks or only on the direct child tracks of the connected group track.
      Returns:
      an object for bank-wise navigation of tracks, sends and scenes
      Since:
      API version 1
      See Also:
    • createMainTrackBank

      TrackBank createMainTrackBank(int numTracks, int numSends, int numScenes, boolean hasFlatTrackList)
      Returns a track bank with the given number of child tracks, sends and scenes. Only audio tracks, instrument tracks and hybrid tracks are considered. The track bank will only have content if the connected track is a group track. For more information about track banks and the `bank pattern` in general, see the documentation for createTrackBank(int, int, int, boolean).
      Parameters:
      numTracks - the number of child tracks spanned by the track bank
      numSends - the number of sends spanned by the track bank
      numScenes - the number of scenes spanned by the track bank
      hasFlatTrackList - specifies whether the track bank should operate on a flat list of all nested child tracks or only on the direct child tracks of the connected group track.
      Returns:
      an object for bank-wise navigation of tracks, sends and scenes
      Since:
      API version 1
      See Also:
    • createEffectTrackBank

      TrackBank createEffectTrackBank(int numTracks, int numScenes, boolean hasFlatTrackList)
      Returns a track bank with the given number of child effect tracks and scenes. Only effect tracks are considered. The track bank will only have content if the connected track is a group track. For more information about track banks and the `bank pattern` in general, see the documentation for createTrackBank(int, int, int, boolean).
      Parameters:
      numTracks - the number of child tracks spanned by the track bank
      numScenes - the number of scenes spanned by the track bank
      hasFlatTrackList - specifies whether the track bank should operate on a flat list of all nested child tracks or only on the direct child tracks of the connected group track.
      Returns:
      an object for bank-wise navigation of tracks, sends and scenes
      Since:
      API version 1
      See Also:
    • createEffectTrackBank

      TrackBank createEffectTrackBank(int numTracks, int numSends, int numScenes, boolean hasFlatTrackList)
      Returns a track bank with the given number of child effect tracks and scenes. Only effect tracks are considered. The track bank will only have content if the connected track is a group track. For more information about track banks and the `bank pattern` in general, see the documentation for createTrackBank(int, int, int, boolean).
      Parameters:
      numTracks - the number of child tracks spanned by the track bank
      numSends - the number of sends spanned by the track bank
      numScenes - the number of scenes spanned by the track bank
      hasFlatTrackList - specifies whether the track bank should operate on a flat list of all nested child tracks or only on the direct child tracks of the connected group track.
      Returns:
      an object for bank-wise navigation of tracks, sends and scenes
      Since:
      API version 18
      See Also:
    • createMasterTrack

      MasterTrack createMasterTrack(int numScenes)
      Returns an object that represents the master track of the connected track group. The returned object will only have content if the connected track is a group track.
      Parameters:
      numScenes - the number of scenes for bank-wise navigation of the master tracks clip launcher slots.
      Returns:
      an object representing the master track of the connected track group.
      Since:
      API version 1
    • createSiblingsTrackBank

      TrackBank createSiblingsTrackBank(int numTracks, int numSends, int numScenes, boolean shouldIncludeEffectTracks, boolean shouldIncludeMasterTrack)
      Returns a bank of sibling tracks with the given number of tracks, sends and scenes. For more information about track banks and the `bank pattern` in general, see the documentation for createTrackBank(int, int, int, boolean).
      Parameters:
      numTracks - the number of child tracks spanned by the track bank
      numSends - the number of sends spanned by the track bank
      numScenes - the number of scenes spanned by the track bank
      shouldIncludeEffectTracks - specifies whether effect tracks should be included
      shouldIncludeMasterTrack - specifies whether the master should be included
      Returns:
      an object for bank-wise navigation of sibling tracks
      Since:
      API version 1
      See Also:
    • afterTrackInsertionPoint

      InsertionPoint afterTrackInsertionPoint()
      InsertionPoint that can be used to insert after this track.
      Since:
      API version 7
    • beforeTrackInsertionPoint

      InsertionPoint beforeTrackInsertionPoint()
      InsertionPoint that can be used to insert after this track.
      Since:
      API version 7
    • createParentTrack

      Track createParentTrack(int numSends, int numScenes)
      Creates an object that represent the parent track.
      Since:
      API version 10
    • addNoteSource

      void addNoteSource(NoteInput noteInput)
      Routes the given noteInput directly to the track regardless of monitoring.
      Since:
      API version 10
    • removeNoteSource

      void removeNoteSource(NoteInput noteInput)
      Removes a routing operated by addNoteSource(NoteInput)
      Since:
      API version 10
    • createNewLauncherClip

      void createNewLauncherClip(int slotIndex, int lengthInBeats)
      Will create a new empty clip at or after slot index. If necessary, a new scene will be created. The new clip will be selected.
      Parameters:
      slotIndex - absolute slot index in the track (unrelated to banks)
      Since:
      API version 10
    • createNewLauncherClip

      void createNewLauncherClip(int slotIndex)
      Will create a new empty clip at or after slot index. It will use the default clip length. If necessary, a new scene will be created. The new clip will be selected.
      Parameters:
      slotIndex - absolute slot index in the track (unrelated to banks)
      Since:
      API version 10
    • recordNewLauncherClip

      void recordNewLauncherClip(int slotIndex)
      Will start recording a new clip at or after slot index. If necessary, a new scene will be created. The new clip will be selected.
      Parameters:
      slotIndex - absolute slot index in the track (unrelated to banks)
      Since:
      API version 10
    • selectSlot

      void selectSlot(int slotIndex)
      Selects the slot at the given index.
      Parameters:
      slotIndex - absolute slot index in the track (unrelated to banks)
      Since:
      API version 10
    • launchLastClipWithOptions

      void launchLastClipWithOptions(String quantization, String launchMode)
      Launches the last clip with the given options:
      Parameters:
      quantization - possible values are "default", "none", "8", "4", "2", "1", "1/2", "1/4", "1/8", "1/16"
      launchMode - possible values are: "default", "from_start", "continue_or_from_start", "continue_or_synced", "synced"
      Since:
      API version 16
    • launchLastClipWithOptionsAction

      HardwareActionBindable launchLastClipWithOptionsAction(String quantization, String launchMode)
    • createCursorRemoteControlsPage

      CursorRemoteControlsPage createCursorRemoteControlsPage(int parameterCount)
      Creates a cursor for the selected remote controls page in the device with the supplied number of parameters. This section will follow the current page selection made by the user in the application.
      Parameters:
      parameterCount - The number of parameters the remote controls should contain
      Since:
      API version 18
    • createCursorRemoteControlsPage

      CursorRemoteControlsPage createCursorRemoteControlsPage(String name, int parameterCount, String filterExpression)
      Creates a cursor for a remote controls page in the device with the supplied number of parameters. This section will be independent from the current page selected by the user in Bitwig Studio's user interface. The supplied filter is an expression that can be used to match pages this section is interested in. The expression is matched by looking at the tags added to the pages. If the expression is empty then no filtering will occur.
      Parameters:
      name - A name to associate with this section. This will be used to remember manual mappings made by the user within this section.
      parameterCount - The number of parameters the remote controls should contain
      filterExpression - An expression used to match pages that the user can navigate through. For now this can only be the name of a single tag the pages should contain (e.g "drawbars", "dyn", "env", "eq", "filter", "fx", "lfo", "mixer", "osc", "overview", "perf").
      Since:
      API version 18