Created
November 20, 2020 20:17
-
-
Save joslarson/ffa3b59b5c277f6663124caba3c71aca to your computer and use it in GitHub Desktop.
Typed Bitwig API v12
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
declare namespace com.bitwig.extension { | |
// source: com/bitwig/extension/Extension.java | |
import Host = com.bitwig.extension.api.Host; | |
class Extension< | |
HostType extends Host = Host, | |
DefinitionType extends ExtensionDefinition = ExtensionDefinition | |
> { | |
constructor(extensionDefinition: DefinitionType, host: HostType); | |
getHost(): HostType; | |
getExtensionDefinition(): DefinitionType; | |
mExtensionDefinition: DefinitionType; | |
mHost: HostType; | |
} | |
// source: com/bitwig/extension/ExtensionDefinition.java | |
import UUID = java.util.UUID; | |
/** Base class for defining any kind of extension for Bitwig Studio. */ | |
class ExtensionDefinition { | |
/** The name of the extension. */ | |
getName(): string; | |
/** The author of the extension. */ | |
getAuthor(): string; | |
/** The version of the extension. */ | |
getVersion(): string; | |
/** A unique id that identifies this extension. */ | |
getId(): UUID; | |
/** The minimum API version number that this extensions requires. */ | |
getRequiredAPIVersion(): number; | |
/** | |
* Is this extension is using Beta APIs? | |
* | |
* Beta APIs are still on development and might not be available in a future version of Bitwig Studio. | |
* | |
* Turning this flag to true, will flag your extension as being a beta extension which might not work after | |
* updating Bitwig Studio. | |
* | |
* @return true if the extension wants to use Beta APIs. | |
*/ | |
isUsingBetaAPI(): boolean; | |
/** | |
* Gets a remote URI or a path within the extension's jar file where documentation for this extension can | |
* be found or null if there is none. If the path is not a URI then it is assumed to be a path below the directory | |
* "Documentation" within the extension's jar file. | |
*/ | |
getHelpFilePath(): string; | |
/** | |
* If true then this extension should fail when it calls a deprecated method in the API. This is useful | |
* during development. | |
*/ | |
shouldFailOnDeprecatedUse(): boolean; | |
/** | |
* An e-mail address that can be used to contact the author of this extension if a problem is detected with | |
* it or null if none. | |
*/ | |
getErrorReportingEMail(): string; | |
toString(): string; | |
} | |
} | |
declare namespace com.bitwig.extension.api { | |
// source: com/bitwig/extension/api/Color.java | |
/** | |
* This class represents an RGBA color with each component being stored as double. | |
* | |
* @since API version 5 | |
*/ | |
class Color { | |
constructor(red: number, green: number, blue: number, alpha: number); | |
static fromRGB(red: number, green: number, blue: number): Color; | |
static fromRGBA( | |
red: number, | |
green: number, | |
blue: number, | |
alpha: number | |
): Color; | |
static fromRGB255(red: number, green: number, blue: number): Color; | |
static fromRGBA255( | |
red: number, | |
green: number, | |
blue: number, | |
alpha: number | |
): Color; | |
static fromHex(hex: string): Color; | |
/** | |
* Mixes two colors. | |
* @since API version 4 | |
*/ | |
static mix(c1: Color, c2: Color, blend: number): Color; | |
static nullColor(): Color; | |
static blackColor(): Color; | |
static whiteColor(): Color; | |
getRed(): number; | |
getGreen(): number; | |
getBlue(): number; | |
getAlpha(): number; | |
getRed255(): number; | |
getGreen255(): number; | |
getBlue255(): number; | |
getAlpha255(): number; | |
mRed: number; | |
mGreen: number; | |
mBlue: number; | |
mAlpha: number; | |
} | |
// source: com/bitwig/extension/api/Host.java | |
import Bitmap = com.bitwig.extension.api.graphics.Bitmap; | |
import BitmapFormat = com.bitwig.extension.api.graphics.BitmapFormat; | |
import FontFace = com.bitwig.extension.api.graphics.FontFace; | |
import FontOptions = com.bitwig.extension.api.graphics.FontOptions; | |
import Image = com.bitwig.extension.api.graphics.Image; | |
import OscModule = com.bitwig.extension.api.opensoundcontrol.OscModule; | |
/** | |
* Defines the interface through which an extension can talk to the host application. | |
*/ | |
interface Host { | |
/** | |
* Returns the latest supported API version of the host application. | |
* | |
* @return the latest supported API version of the host application | |
* @since API version 1 | |
*/ | |
getHostApiVersion(): number; | |
/** | |
* Returns the vendor of the host application. | |
* | |
* @return the vendor of the host application | |
* @since API version 1 | |
*/ | |
getHostVendor(): string; | |
/** | |
* Returns the product name of the host application. | |
* | |
* @return the product name of the host application | |
* @since API version 1 | |
*/ | |
getHostProduct(): string; | |
/** | |
* Returns the version number of the host application. | |
* | |
* @return the version number of the host application | |
* @since API version 1 | |
*/ | |
getHostVersion(): string; | |
/** | |
* The platform type that this host is running on. | |
*/ | |
getPlatformType(): PlatformType; | |
/** | |
* Sets an email address to use for reporting errors found in this script. | |
* | |
* @since API version 2 | |
*/ | |
setErrorReportingEMail(address: string): void; | |
/** | |
* Gets the OpenSoundControl module. | |
* @since API version 5 | |
*/ | |
getOscModule(): OscModule; | |
/** | |
* Allocates some memory that will be automatically freed once the extension exits. | |
* | |
* @since API version 7 | |
* @version Beta | |
*/ | |
allocateMemoryBlock(size: number): MemoryBlock; | |
/** | |
* Creates an offscreen bitmap that the extension can use to render into. The memory used by this bitmap is | |
* guaranteed to be freed once this extension exits. | |
* | |
* @since API version 7 | |
* @version Beta | |
*/ | |
createBitmap(width: number, height: number, format: BitmapFormat): Bitmap; | |
/** | |
* Loads a font. | |
* The memory used by this font is guaranteed to be freed once this extension exits. | |
* | |
* @since API version 7 | |
* @version Beta | |
*/ | |
loadFontFace(path: string): FontFace; | |
/** | |
* Creates a new FontOptions. | |
* This object is used to configure how the GraphicOutput will display text. | |
* The memory used by this object is guaranteed to be freed once this extension exits. | |
* | |
* @since API version 7 | |
* @version Beta | |
*/ | |
createFontOptions(): FontOptions; | |
/** | |
* Loads a PNG image. | |
* The memory used by this image is guaranteed to be freed once this extension exits. | |
* | |
* @since API version 7 | |
* @version Beta | |
*/ | |
loadPNG(path: string): Image; | |
/** | |
* Loads a SVG image. | |
* The memory used by this image is guaranteed to be freed once this extension exits. | |
* | |
* @since API version 7 | |
* @version Beta | |
*/ | |
loadSVG(path: string, scale: number): Image; | |
} | |
// source: com/bitwig/extension/api/MemoryBlock.java | |
import ByteBuffer = java.nio.ByteBuffer; | |
/** | |
* Defines a block of memory. The memory can be read/written using a {@link ByteBuffer} provided by | |
* {@link #createByteBuffer()}. | |
* | |
* @since API version 7 | |
*/ | |
interface MemoryBlock { | |
/** The size in bytes of this memory block. */ | |
size(): number; | |
/** Creates a {@link ByteBuffer} that can be used to read/write the data at this memory block. */ | |
createByteBuffer(): ByteBuffer; | |
} | |
// source: com/bitwig/extension/api/PlatformType.java | |
enum PlatformType { | |
WINDOWS = 0, | |
LINUX = 1, | |
MAC = 2, | |
} | |
} | |
declare namespace com.bitwig.extension.api.graphics { | |
// source: com/bitwig/extension/api/graphics/Bitmap.java | |
import MemoryBlock = com.bitwig.extension.api.MemoryBlock; | |
/** | |
* Represents a bitmap image which can be painted via {@link #render(Renderer)}. | |
* | |
* @since API version 7 | |
*/ | |
interface Bitmap extends Image { | |
getWidth(): number; | |
getHeight(): number; | |
getFormat(): BitmapFormat; | |
getMemoryBlock(): MemoryBlock; | |
/** | |
* Call this method to start painting the bitmap. | |
* This method will take care of disposing allocated patterns during the rendering. | |
* | |
* @since API version 7 | |
*/ | |
render(renderer: Renderer): void; | |
/** | |
* Call this method to show a window which displays the bitmap. | |
* You should see this as a debug utility rather than a Control Surface API feature. | |
* | |
* @since API version 7 | |
*/ | |
showDisplayWindow(): void; | |
/** | |
* Updates the display window title. | |
* | |
* @since API version 7 | |
*/ | |
setDisplayWindowTitle(title: string): void; | |
/** | |
* Saves the image as a PPM file. | |
* @param path the location of the target file. | |
* | |
* @since API version 7 | |
*/ | |
saveToDiskAsPPM(path: string): void; | |
} | |
// source: com/bitwig/extension/api/graphics/BitmapFormat.java | |
enum BitmapFormat { | |
ARGB32 = 0, | |
RGB24_32 = 1, | |
} | |
// source: com/bitwig/extension/api/graphics/FontExtents.java | |
/** | |
* Information about the dimensions of a font. | |
* @newSince API version 6 | |
*/ | |
interface FontExtents { | |
/** | |
* Returns the distance that the font extends above the baseline. Note that this is not always | |
* exactly equal to the maximum of the extents of all the glyphs in the font, but rather is | |
* picked to express the font designer's intent as to how the font should align with elements | |
* above it. | |
*/ | |
getAscent(): number; | |
/** | |
* Returns the distance that the font extends below the baseline. This value is positive for | |
* typical fonts that include portions below the baseline. Note that this is not always exactly | |
* equal to the maximum of the extents of all the glyphs in the font, but rather is picked to | |
* express the font designer's intent as to how the the font should align with elements below it. | |
*/ | |
getDescent(): number; | |
/** | |
* Returns the recommended vertical distance between baselines when setting consecutive lines of | |
* text with the font. This is greater than ascent+descent by a quantity known as the line | |
* spacing or external leading. When space is at a premium, most fonts can be set with only a | |
* distance of ascent+descent between lines. | |
*/ | |
getHeight(): number; | |
/** | |
* the maximum distance in the X direction that the the origin is advanced for any glyph in the | |
* font. | |
*/ | |
getMaxAdvanceX(): number; | |
/** | |
* Returns the maximum distance in the Y direction that the the origin is advanced for any glyph | |
* in the font. this will be zero for normal fonts used for horizontal writing. (The scripts of | |
* East Asia are sometimes written vertically.) | |
*/ | |
getMaxAdvanceY(): number; | |
} | |
// source: com/bitwig/extension/api/graphics/FontFace.java | |
/** | |
* @newSince API version 6 | |
*/ | |
interface FontFace { | |
/** | |
* Get the font name. | |
*/ | |
getName(): string; | |
} | |
// source: com/bitwig/extension/api/graphics/FontOptions.java | |
/** | |
* Configure the font rendering options. | |
* | |
* @newSince API version 6 | |
*/ | |
interface FontOptions { | |
getAntialiasMode(): GraphicsOutput; | |
setAntialiasMode(mode: GraphicsOutput): void; | |
getSubPixelOrder(): GraphicsOutput; | |
setSubPixelOrder(subPixelOrder: GraphicsOutput): void; | |
getHintStyle(): GraphicsOutput; | |
setHintStyle(hintStyle: GraphicsOutput): void; | |
getHintMetrics(): GraphicsOutput; | |
setHintMetrics(hintMetrics: GraphicsOutput): void; | |
} | |
// source: com/bitwig/extension/api/graphics/GradientPattern.java | |
import Color = com.bitwig.extension.api.Color; | |
/** | |
* This class represents a linear gradient. | |
* Add color stops between 0 and 1. | |
* @newSince API version 6 | |
*/ | |
interface GradientPattern extends Pattern { | |
addColorStop(offset: number, color: Color): void; | |
addColorStop( | |
offset: number, | |
red: number, | |
green: number, | |
blue: number | |
): void; | |
addColorStop( | |
offset: number, | |
red: number, | |
green: number, | |
blue: number, | |
alpha: number | |
): void; | |
} | |
// source: com/bitwig/extension/api/graphics/GraphicsOutput.java | |
enum AntialiasMode { | |
DEFAULT = 0, | |
OFF = 1, | |
GOOD = 2, | |
BEST = 3, | |
} | |
enum SubPixelOrder { | |
DEFAULT = 0, | |
RGB = 1, | |
BGR = 2, | |
VRGB = 3, | |
VBGR = 4, | |
} | |
enum HintStyle { | |
DEFAULT = 0, | |
NONE = 1, | |
SLIGHT = 2, | |
MEDIUM = 3, | |
FULL = 4, | |
} | |
enum HintMetrics { | |
DEFAULT = 0, | |
ON = 1, | |
OFF = 2, | |
} | |
enum FillRule { | |
WINDING = 0, | |
EVEN_ODD = 1, | |
} | |
enum LineCap { | |
BUTT = 0, | |
LINE = 1, | |
SQUARE = 2, | |
} | |
enum LineJoin { | |
MITER = 0, | |
ROUND = 1, | |
BEVEL = 2, | |
} | |
enum Operator { | |
CLEAR = 0, | |
SOURCE = 1, | |
OVER = 2, | |
IN = 3, | |
OUT = 4, | |
ATOP = 5, | |
DEST = 6, | |
DEST_OVER = 7, | |
DEST_IN = 8, | |
DEST_OUT = 9, | |
DEST_ATOP = 10, | |
XOR = 11, | |
ADD = 12, | |
SATURATE = 13, | |
MULTIPLY = 14, | |
SCREEN = 15, | |
OVERLAY = 16, | |
DARKEN = 17, | |
LIGHTEN = 18, | |
COLOR_DODGE = 19, | |
COLOR_BURN = 20, | |
HARD_LIGHT = 21, | |
SOFT_LIGHT = 22, | |
DIFFERENCE = 23, | |
EXCLUSION = 24, | |
HSL_HUE = 25, | |
HSL_SATURATION = 26, | |
HSL_COLOR = 27, | |
HSL_LUMINOSITY = 28, | |
} | |
/** | |
* Provides 2D vector drawing API very similar to cairo graphics. | |
* Please read https://www.cairographics.org/manual/ to get a better idea of how this API works. | |
* | |
* @since API version 6 | |
*/ | |
interface GraphicsOutput { | |
/////////// | |
save(): void; | |
restore(): void; | |
////////////// | |
clip(): void; | |
clipPreserve(): void; | |
resetClip(): void; | |
///////////////// | |
translate(x: number, y: number): void; | |
rotate(angle: number): void; | |
scale(factor: number): void; | |
scale(xFactor: number, yFactor: number): void; | |
///////////////////// | |
newPath(): void; | |
newSubPath(): void; | |
copyPath(): Path; | |
copyPathFlat(): Path; | |
appendPath(path: Path): void; | |
closePath(): void; | |
moveTo(x: number, y: number): void; | |
relMoveTo(x: number, y: number): void; | |
lineTo(x: number, y: number): void; | |
relLineTo(x: number, y: number): void; | |
rectangle(x: number, y: number, width: number, height: number): void; | |
arc( | |
xc: number, | |
yc: number, | |
radius: number, | |
angle1: number, | |
angle2: number | |
): void; | |
arcNegative( | |
xc: number, | |
yc: number, | |
radius: number, | |
angle1: number, | |
angle2: number | |
): void; | |
circle(centerX: number, centerY: number, radius: number): void; | |
curveTo( | |
x1: number, | |
y1: number, | |
x2: number, | |
y2: number, | |
x3: number, | |
y3: number | |
): void; | |
relCurveTo( | |
x1: number, | |
y1: number, | |
x2: number, | |
y2: number, | |
x3: number, | |
y3: number | |
): void; | |
/////////////////////////// | |
paint(): void; | |
paintWithAlpha(alpha: number): void; | |
mask(image: Image, x: number, y: number): void; | |
fill(): void; | |
fillPreserve(): void; | |
stroke(): void; | |
strokePreserve(): void; | |
setColor(red: number, green: number, blue: number): void; | |
setColor(red: number, green: number, blue: number, alpha: number): void; | |
setColor(color: Color): void; | |
setPattern(pattern: Pattern): void; | |
setAntialias(antialiasMode: AntialiasMode): void; | |
setLineWidth(width: number): void; | |
setDash(dashes: number, offset: number): void; | |
setDash(dashes: number): void; | |
setFillRule(rule: FillRule): void; | |
setLineCap(lineCap: LineCap): void; | |
setLineJoin(lineJoin: LineJoin): void; | |
setMiterLimit(limit: number): void; | |
setOperator(operator: Operator): void; | |
setTolerance(tolerance: number): void; | |
drawImage(image: Image, x: number, y: number): void; | |
////////////// | |
createLinearGradient( | |
x1: number, | |
y1: number, | |
x2: number, | |
y2: number | |
): GradientPattern; | |
createMeshGradient(): MeshPattern; | |
////////// | |
showText(text: string): void; | |
setFontSize(fontSize: number): void; | |
setFontFace(fontFace: FontFace): void; | |
setFontOptions(fontOptions: FontOptions): void; | |
getFontExtents(): FontExtents; | |
getTextExtents(text: string): TextExtents; | |
} | |
// source: com/bitwig/extension/api/graphics/Image.java | |
/** | |
* Represents an abstract image type. | |
* @newSince API version 6 | |
*/ | |
interface Image { | |
/** Returns the width */ | |
getWidth(): number; | |
/** Returns the height */ | |
getHeight(): number; | |
} | |
// source: com/bitwig/extension/api/graphics/MeshPattern.java | |
/** | |
* This represent a 2D gradient. | |
* | |
* @link https://www.cairographics.org/manual/cairo-cairo-pattern-t.html#cairo-pattern-create-mesh | |
* @newSince API version 6 | |
*/ | |
interface MeshPattern extends Pattern { | |
beginPatch(): void; | |
endPatch(): void; | |
moveTo(x: number, y: number): void; | |
lineTo(x: number, y: number): void; | |
curveTo( | |
x1: number, | |
y1: number, | |
x2: number, | |
y2: number, | |
x3: number, | |
y3: number | |
): void; | |
setCornerColor( | |
corner: number, | |
red: number, | |
green: number, | |
blue: number | |
): void; | |
setCornerColor( | |
corner: number, | |
red: number, | |
green: number, | |
blue: number, | |
alpha: number | |
): void; | |
} | |
// source: com/bitwig/extension/api/graphics/Path.java | |
/** | |
* @newSince API version 6 | |
*/ | |
interface Path {} | |
// source: com/bitwig/extension/api/graphics/Pattern.java | |
/** | |
* Abstract class for patterns (gradient, mesh gradient, ...) | |
* | |
* @newSince API version 6 | |
*/ | |
interface Pattern {} | |
// source: com/bitwig/extension/api/graphics/Renderer.java | |
/** | |
* This class is a renderer. | |
* The render method will be called by the Host with a provided GraphicsOutput context. | |
* | |
* @newSince API version 6 | |
*/ | |
interface Renderer { | |
render(gc: GraphicsOutput): void; | |
} | |
// source: com/bitwig/extension/api/graphics/TextExtents.java | |
/** | |
* @newSince API version 6 | |
*/ | |
interface TextExtents { | |
/** | |
* Returns the horizontal distance from the origin to the leftmost part of the glyphs as drawn. | |
* Positive if the glyphs lie entirely to the right of the origin. | |
*/ | |
getBearingX(): number; | |
/** | |
* Returns the vertical distance from the origin to the topmost part of the glyphs as drawn. | |
* Positive only if the glyphs lie completely below the origin; will usually be negative. | |
*/ | |
getBearingY(): number; | |
/** Returns the width of the glyphs as drawn. */ | |
getWidth(): number; | |
/** Returns the height of the glyphs as drawn. */ | |
getHeight(): number; | |
/** Returns the distance to advance in the X direction after drawing these glyphs. */ | |
getAdvanceX(): number; | |
/** | |
* Returns the distance to advance in the Y direction after drawing these glyphs. Will typically | |
* be zero except for vertical text layout as found in East-Asian languages. | |
*/ | |
getAdvanceY(): number; | |
} | |
} | |
declare namespace com.bitwig.extension.api.opensoundcontrol { | |
// source: com/bitwig/extension/api/opensoundcontrol/OscAddressSpace.java | |
/** | |
* An OSC address space. | |
* | |
* It contains the root OscContainer. | |
* | |
* @since API version 5 | |
*/ | |
interface OscAddressSpace { | |
/** | |
* Register all the methods annotated with @{@link OscMethod} from object. | |
* Also if a method is annotated with @{@link OscNode}, this method will be called and the returned object's method | |
* will be registered. | |
*/ | |
registerObjectMethods(addressPrefix: string, object: object): void; | |
/** | |
* Low level way to register an Osc Method. | |
* @param address The address to register the method at | |
* @param typeTagPattern The globing pattern used to match the type tag. Pass "*" to match anything. | |
* @param desc The method description. | |
* @param callback The OSC Method call handler. | |
*/ | |
registerMethod( | |
address: string, | |
typeTagPattern: string, | |
desc: string, | |
callback: OscMethodCallback | |
): void; | |
/** | |
* This method will be called if no registered OscMethod could handle incoming OscPacket. | |
*/ | |
registerDefaultMethod(callback: OscMethodCallback): void; | |
/** | |
* Should the address spaces log the messages it dispatches? | |
* Default is false. | |
*/ | |
setShouldLogMessages(shouldLogMessages: boolean): void; | |
/** | |
* This gives a display name for this address space. | |
* It is useful if you have multiple address space to identify them when we generate the documentation. | |
*/ | |
setName(name: string): void; | |
} | |
// source: com/bitwig/extension/api/opensoundcontrol/OscBundle.java | |
import List = java.util.List; | |
/** | |
* An OSC Bundle. | |
* | |
* @since API version 5 | |
*/ | |
interface OscBundle extends OscPacket { | |
getNanoseconds(): number; | |
getPackets(): List<OscPacket>; | |
} | |
// source: com/bitwig/extension/api/opensoundcontrol/OscConnection.java | |
/** | |
* This interface lets you send OscMessage through an connection which can be via Tcp, Udp, or whatever. | |
* | |
* OscPackets are sent when all the startBundle() have a matching endBundle(). | |
* If you call sendMessage() with startBundle() before, then the message will be sent directly. | |
* | |
* Our maximum packet size is 64K. | |
* | |
* @since API version 5 | |
*/ | |
interface OscConnection { | |
/** | |
* Starts an OscBundle. | |
*/ | |
startBundle(): void; | |
/** | |
* Supported object types: | |
* - Integer for int32 | |
* - Long for int64 | |
* - Float for float | |
* - Double for double | |
* - null for nil | |
* - Boolean for true and false | |
* - String for string | |
* - byte[] for blob | |
*/ | |
sendMessage(address: string, ...args: object[]): void; | |
/** | |
* Finishes the previous bundle, and if it was not inside an other bundle, it will send the message | |
* directly. | |
*/ | |
endBundle(): void; | |
} | |
// source: com/bitwig/extension/api/opensoundcontrol/OscMessage.java | |
/** | |
* An OSC message. | |
* | |
* @since API version 5 | |
*/ | |
interface OscMessage extends OscPacket { | |
getAddressPattern(): string; | |
getTypeTag(): string; | |
getArguments(): List<object>; | |
getString(index: number): string; | |
getBlob(index: number): number; | |
getInt(index: number): number; | |
getLong(index: number): number; | |
getFloat(index: number): number; | |
getDouble(index: number): number; | |
getBoolean(index: number): boolean; | |
} | |
// source: com/bitwig/extension/api/opensoundcontrol/OscMethod.java | |
// source: com/bitwig/extension/api/opensoundcontrol/OscMethodCallback.java | |
interface OscMethodCallback { | |
(source: OscConnection, message: OscMessage): void; | |
} | |
// source: com/bitwig/extension/api/opensoundcontrol/OscModule.java | |
/** | |
* Interface to create Osc related object. | |
* | |
* @since API version 5 | |
*/ | |
interface OscModule { | |
/** | |
* Creates a new OscAddressSpace. | |
* | |
* In short the OscAddressSpace dispatches the incoming messages to services. | |
* An OscAddressSpace is an OscService. | |
* | |
* @since API version 5 | |
*/ | |
createAddressSpace(): OscAddressSpace; | |
/** | |
* Creates a new OSC Server. | |
* | |
* @param addressSpace Use {@link #createAddressSpace()} | |
* @since API version 5 | |
*/ | |
createUdpServer(port: number, addressSpace: OscAddressSpace): void; | |
/** | |
* Creates a new OSC Server. | |
* This server is not started yet, you'll have to start it by calling server.start(port); | |
* Use this method if the port is not known during the initialization (coming from a setting) | |
* or if the port number can change at runtime. | |
* | |
* @param addressSpace Use {@link #createAddressSpace()} | |
* @return a new OscServer | |
* @since API version 10 | |
*/ | |
createUdpServer(addressSpace: OscAddressSpace): OscServer; | |
/** | |
* Tries to connect to an OscServer. | |
* | |
* @param addressSpace can be null | |
* | |
* @return a new OscConnection | |
* @since API version 5 | |
*/ | |
connectToUdpServer( | |
host: string, | |
port: number, | |
addressSpace: OscAddressSpace | |
): OscConnection; | |
} | |
// source: com/bitwig/extension/api/opensoundcontrol/OscNode.java | |
// source: com/bitwig/extension/api/opensoundcontrol/OscPacket.java | |
/** | |
* Base class for OscPackets. | |
* | |
* @since API version 5 | |
*/ | |
interface OscPacket { | |
/** | |
* If the message was part of a bundle, get a pointer back to it. | |
* If not, this methods returns null. | |
*/ | |
getParentBundle(): OscBundle; | |
} | |
// source: com/bitwig/extension/api/opensoundcontrol/OscServer.java | |
/** | |
* @since API version 10 | |
*/ | |
interface OscServer { | |
/** | |
* Starts or restarts the server and restarts it on the given port. | |
* @since API version 10 | |
*/ | |
start(port: number): void; | |
} | |
} | |
declare namespace com.bitwig.extension.api.util.midi { | |
// source: com/bitwig/extension/api/util/midi/ShortMidiMessage.java | |
class ShortMidiMessage { | |
static NOTE_OFF: number; | |
static NOTE_ON: number; | |
static POLY_PRESSURE: number; | |
static CONTROL_CHANGE: number; | |
static PROGRAM_CHANGE: number; | |
static CHANNEL_PRESSURE: number; | |
static PITCH_BEND: number; | |
static MIDI_TIME_CODE: number; | |
static SONG_POSITION_POINTER: number; | |
static SONG_SELECT: number; | |
static TUNE_REQUEST: number; | |
static TIMING_CLOCK: number; | |
static START: number; | |
static CONTINUE: number; | |
static STOP: number; | |
static ACTIVE_SENSING: number; | |
static SYSTEM_RESET: number; | |
constructor(status: number, data1: number, data2: number); | |
getStatusByte(): number; | |
getData1(): number; | |
getData2(): number; | |
getChannel(): number; | |
getStatusMessage(): number; | |
isNoteOff(): boolean; | |
isNoteOn(): boolean; | |
isPitchBend(): boolean; | |
isPolyPressure(): boolean; | |
isControlChange(): boolean; | |
isProgramChange(): boolean; | |
isChannelPressure(): boolean; | |
toString(): string; | |
mData: number; | |
} | |
// source: com/bitwig/extension/api/util/midi/SysexBuilder.java | |
class SysexBuilder { | |
static MAX_LENGTH: number; | |
static fromHex(hexString: string): SysexBuilder; | |
addByte(value: number): SysexBuilder; | |
addString(string: string, length: number): SysexBuilder; | |
add(bytes: number): SysexBuilder; | |
addHex(hex: string): SysexBuilder; | |
terminate(): number; | |
array(): number; | |
mData: number; | |
mLength: number; | |
} | |
} | |
declare namespace com.bitwig.extension.callback { | |
// source: com/bitwig/extension/callback/BooleanValueChangedCallback.java | |
interface BooleanValueChangedCallback extends ValueChangedCallback { | |
(newValue: boolean): void; | |
} | |
// source: com/bitwig/extension/callback/Callback.java | |
interface Callback {} | |
// source: com/bitwig/extension/callback/ClipLauncherSlotBankPlaybackStateChangedCallback.java | |
interface ClipLauncherSlotBankPlaybackStateChangedCallback extends Callback { | |
/** | |
* Registers an observer that reports the playback state of clips / slots. The reported states include | |
* `stopped`, `playing`, `recording`, but also `queued for stop`, `queued for playback`, `queued for | |
* recording`. | |
* | |
* @param callback | |
* a callback function that receives three parameters: 1. the slot index (integer), 2. the queued | |
* or playback state: `0` when stopped, `1` when playing, or `2` when recording, and 3. a boolean | |
* parameter indicating if the second argument is referring to the queued state (`true`) or the | |
* actual playback state (`false`) | |
* @since API version 1 | |
*/ | |
(slotIndex: number, playbackState: number, isQueued: boolean): void; | |
} | |
// source: com/bitwig/extension/callback/ColorValueChangedCallback.java | |
import Color = com.bitwig.extension.api.Color; | |
interface ColorValueChangedCallback extends ValueChangedCallback { | |
/** | |
* As alpha component was introduced after this interface was released, | |
* the alpha component is not part of the parameter and would have to be | |
* checked manually. | |
*/ | |
(red: number, green: number, blue: number): void; | |
} | |
// source: com/bitwig/extension/callback/ConnectionEstablishedCallback.java | |
import RemoteConnection = com.bitwig.extension.controller.api.RemoteConnection; | |
interface ConnectionEstablishedCallback extends Callback { | |
(connection: RemoteConnection): void; | |
} | |
// source: com/bitwig/extension/callback/DataReceivedCallback.java | |
interface DataReceivedCallback extends Callback { | |
(data: number): void; | |
} | |
// source: com/bitwig/extension/callback/DirectParameterDisplayedValueChangedCallback.java | |
interface DirectParameterDisplayedValueChangedCallback extends Callback { | |
(id: string, value: string): void; | |
} | |
// source: com/bitwig/extension/callback/DirectParameterNameChangedCallback.java | |
interface DirectParameterNameChangedCallback extends Callback { | |
(id: string, name: string): void; | |
} | |
// source: com/bitwig/extension/callback/DirectParameterNormalizedValueChangedCallback.java | |
interface DirectParameterNormalizedValueChangedCallback extends Callback { | |
(id: string, normalizedValue: number): void; | |
} | |
// source: com/bitwig/extension/callback/DoubleValueChangedCallback.java | |
interface DoubleValueChangedCallback extends ValueChangedCallback { | |
(newValue: number): void; | |
} | |
// source: com/bitwig/extension/callback/EnumValueChangedCallback.java | |
interface EnumValueChangedCallback | |
extends ObjectValueChangedCallback<string> {} | |
// source: com/bitwig/extension/callback/FloatValueChangedCallback.java | |
interface FloatValueChangedCallback extends Callback { | |
(newValue: number): void; | |
} | |
// source: com/bitwig/extension/callback/IndexedBooleanValueChangedCallback.java | |
interface IndexedBooleanValueChangedCallback | |
extends IndexedValueChangedCallback { | |
/** | |
* Registers an observer that reports the names of the scenes and slots. The slot names reflect the names | |
* of containing clips. | |
* | |
* @param callback | |
* a callback function receiving two parameters: 1. the slot index (integer) within the | |
* configured window, and 2. the name of the scene/slot (string) | |
* @since API version 1 | |
*/ | |
(index: number, newValue: boolean): void; | |
} | |
// source: com/bitwig/extension/callback/IndexedColorValueChangedCallback.java | |
interface IndexedColorValueChangedCallback | |
extends IndexedValueChangedCallback { | |
/** | |
* Registers an observer that reports the names of the scenes and slots. The slot names reflect the names | |
* of containing clips. | |
* | |
* @param callback | |
* a callback function receiving two parameters: 1. the slot index (integer) within the | |
* configured window, and 2. the name of the scene/slot (string) | |
* @since API version 1 | |
*/ | |
(index: number, red: number, green: number, blue: number): void; | |
} | |
// source: com/bitwig/extension/callback/IndexedStringValueChangedCallback.java | |
interface IndexedStringValueChangedCallback | |
extends IndexedValueChangedCallback { | |
/** | |
* Registers an observer that reports the names of the scenes and slots. The slot names reflect the names | |
* of containing clips. | |
* | |
* @param callback | |
* a callback function receiving two parameters: 1. the slot index (integer) within the | |
* configured window, and 2. the name of the scene/slot (string) | |
* @since API version 1 | |
*/ | |
(index: number, newValue: string): void; | |
} | |
// source: com/bitwig/extension/callback/IndexedValueChangedCallback.java | |
interface IndexedValueChangedCallback extends Callback {} | |
// source: com/bitwig/extension/callback/IntegerValueChangedCallback.java | |
interface IntegerValueChangedCallback extends ValueChangedCallback { | |
(newValue: number): void; | |
} | |
// source: com/bitwig/extension/callback/NoArgsCallback.java | |
interface NoArgsCallback extends Callback { | |
(): void; | |
} | |
// source: com/bitwig/extension/callback/NotePlaybackCallback.java | |
interface NotePlaybackCallback extends Callback { | |
(isNoteOn: boolean, key: number, velocity: number): void; | |
} | |
// source: com/bitwig/extension/callback/NoteStepChangedCallback.java | |
import NoteStep = com.bitwig.extension.controller.api.NoteStep; | |
interface NoteStepChangedCallback extends Callback { | |
(noteStep: NoteStep): void; | |
} | |
// source: com/bitwig/extension/callback/ObjectValueChangedCallback.java | |
interface ObjectValueChangedCallback<ValueType> extends ValueChangedCallback { | |
(newValue: ValueType): void; | |
} | |
// source: com/bitwig/extension/callback/ShortMidiDataReceivedCallback.java | |
interface ShortMidiDataReceivedCallback extends Callback { | |
/** | |
* Registers a callback for receiving short (normal) MIDI messages on this MIDI input port. | |
* | |
* @param callback | |
* a callback function that receives three integer parameters: 1. the status byte 2. the data1 | |
* value 2. the data2 value | |
* @ @since API version 1 | |
*/ | |
(statusByte: number, data1: number, data2: number): void; | |
} | |
// source: com/bitwig/extension/callback/ShortMidiMessageReceivedCallback.java | |
import ShortMidiMessage = com.bitwig.extension.api.util.midi.ShortMidiMessage; | |
interface ShortMidiMessageReceivedCallback | |
extends ShortMidiDataReceivedCallback { | |
/** | |
* Registers a callback for receiving short (normal) MIDI messages on this MIDI input port. | |
* | |
* @param callback | |
* a callback function that receives a ShortMidiMessage instance. | |
* @ @since API version 2 | |
*/ | |
(msg: ShortMidiMessage): void; | |
(statusByte: number, data1: number, data2: number): void; | |
} | |
// source: com/bitwig/extension/callback/StepDataChangedCallback.java | |
interface StepDataChangedCallback extends Callback { | |
/** | |
* A callback function that receives three parameters: 1. the x (step) coordinate within the note grid | |
* (integer), 2. the y (key) coordinate within the note grid (integer), and 3. an integer value that | |
* indicates if the step is empty (`0`) or if a note continues playing (`1`) or starts playing (`2`). | |
*/ | |
(x: number, y: number, state: number): void; | |
} | |
// source: com/bitwig/extension/callback/StringArrayValueChangedCallback.java | |
interface StringArrayValueChangedCallback | |
extends ObjectValueChangedCallback<string[]> {} | |
// source: com/bitwig/extension/callback/StringValueChangedCallback.java | |
interface StringValueChangedCallback | |
extends ObjectValueChangedCallback<string> {} | |
// source: com/bitwig/extension/callback/SysexMidiDataReceivedCallback.java | |
interface SysexMidiDataReceivedCallback extends Callback { | |
/** | |
* @param data | |
* The data encoded as a hex string | |
*/ | |
(data: string): void; | |
} | |
// source: com/bitwig/extension/callback/ValueChangedCallback.java | |
interface ValueChangedCallback extends Callback {} | |
} | |
declare namespace com.bitwig.extension.controller { | |
// source: com/bitwig/extension/controller/AutoDetectionMidiPortNames.java | |
class AutoDetectionMidiPortNames { | |
constructor(inputNames: string[], outputNames: string[]); | |
getInputNames(): string[]; | |
getOutputNames(): string[]; | |
mInputNames: string[]; | |
} | |
// source: com/bitwig/extension/controller/AutoDetectionMidiPortNamesList.java | |
import List = java.util.List; | |
class AutoDetectionMidiPortNamesList { | |
add(inputNames: string[], outputNames: string[]): void; | |
getPortNames(): List<AutoDetectionMidiPortNames>; | |
getCount(): number; | |
getPortNamesAt(index: number): AutoDetectionMidiPortNames; | |
mList: List<AutoDetectionMidiPortNames>; | |
} | |
// source: com/bitwig/extension/controller/ControllerExtension.java | |
import Extension = com.bitwig.extension.Extension; | |
import ControllerHost = com.bitwig.extension.controller.api.ControllerHost; | |
import MidiIn = com.bitwig.extension.controller.api.MidiIn; | |
import MidiOut = com.bitwig.extension.controller.api.MidiOut; | |
/** | |
* Defines an extension that enabled a controller to work with Bitwig Studio. | |
*/ | |
class ControllerExtension extends Extension< | |
ControllerHost, | |
ControllerExtensionDefinition | |
> { | |
constructor( | |
definition: ControllerExtensionDefinition, | |
host: ControllerHost | |
); | |
getMidiInPort(index: number): MidiIn; | |
getMidiOutPort(index: number): MidiOut; | |
/** | |
* Initializes this controller extension. This will be called once when the extension is started. During initialization the | |
* extension should call the various create methods available via the {@link ControllerHost} interface in order to | |
* create objects used to communicate with various parts of the Bitwig Studio application (e.g | |
* {@link ControllerHost#createCursorTrack(int, int)}. | |
*/ | |
init(): void; | |
/** | |
* Called once when this controller extension is stopped. | |
*/ | |
exit(): void; | |
/** | |
* Called when this controller extension should flush any pending updates to the controller. | |
*/ | |
flush(): void; | |
} | |
// source: com/bitwig/extension/controller/ControllerExtensionDefinition.java | |
import ExtensionDefinition = com.bitwig.extension.ExtensionDefinition; | |
import PlatformType = com.bitwig.extension.api.PlatformType; | |
/** | |
* Defines an extension that enabled a controller to work with Bitwig Studio. | |
*/ | |
class ControllerExtensionDefinition extends ExtensionDefinition { | |
toString(): string; | |
/** The vendor of the controller that this extension is for. */ | |
getHardwareVendor(): string; | |
/** The model name of the controller that this extension is for. */ | |
getHardwareModel(): string; | |
/** The number of MIDI in ports that this controller extension has. */ | |
getNumMidiInPorts(): number; | |
/** The number of MIDI out ports that this controller extension has. */ | |
getNumMidiOutPorts(): number; | |
/** | |
* Obtains a {@link AutoDetectionMidiPortNamesList} that defines the names of the MIDI in and out ports | |
* that can be used for auto detection of the controller for the supplied platform type. | |
*/ | |
getAutoDetectionMidiPortNamesList( | |
platformType: PlatformType | |
): AutoDetectionMidiPortNamesList; | |
/** | |
* Lists the {@link AutoDetectionMidiPortNames} that defines the names of the MIDI in and out ports that | |
* can be used for auto detection of the controller for the supplied platform type. | |
*/ | |
listAutoDetectionMidiPortNames( | |
list: AutoDetectionMidiPortNamesList, | |
platformType: PlatformType | |
): void; | |
getHardwareDeviceMatcherList(): HardwareDeviceMatcherList; | |
/** | |
* Lists the hardware devices that this controller needs to function. For each device that is listed the | |
* user will see a chooser in the preferences for this extension that allows them to choose a connected | |
* device. The {@link HardwareDeviceMatcher} will also be used during auto detection to automatically add | |
* and select the device if possible. | |
* | |
* @since API version 7 | |
*/ | |
listHardwareDevices(list: HardwareDeviceMatcherList): void; | |
/** Creates an instance of this extension. */ | |
createInstance(host: ControllerHost): ControllerExtension; | |
} | |
// source: com/bitwig/extension/controller/HardwareDeviceMatcher.java | |
/** Matcher that can match a particular hardware device that is connected to the user's machine. | |
* Sub classes of this define how the hardware is connected. | |
* Currently only USB devices are supported. | |
* @see UsbDeviceMatcher | |
* @see ControllerExtensionDefinition#listHardwareDevices(java.util.List)*/ | |
class HardwareDeviceMatcher { | |
constructor(name: string); | |
/** Human friendly name for the kinds of hardware devices this matcher matches. */ | |
getName(): string; | |
mName: string; | |
} | |
// source: com/bitwig/extension/controller/HardwareDeviceMatcherList.java | |
/** | |
* Defines a list of all the hardware devices that a controller needs. | |
* | |
* @since API version 7 | |
*/ | |
class HardwareDeviceMatcherList { | |
/** | |
* Adds information about a hardware device that is needed and how it can be matched. The hardware device | |
* will need to match at least one of the supplied matchers. | |
* | |
* For each entry added to this list the user will see a device chooser that lets them select an | |
* appropriate device. The information added here is also used for auto detection purposes. | |
*/ | |
add(...deviceMatchers: HardwareDeviceMatcher[]): void; | |
/** The number of hardware devices in the list. */ | |
getCount(): number; | |
getHardwareDeviceMatchersAt(index: number): HardwareDeviceMatcher[]; | |
getList(): List<HardwareDeviceMatcher[]>; | |
mList: List<HardwareDeviceMatcher[]>; | |
} | |
// source: com/bitwig/extension/controller/UsbConfigurationMatcher.java | |
class UsbConfigurationMatcher extends UsbMatcher { | |
constructor(expression: string, matchOccurrenceIndex: number); | |
constructor(expression: string); | |
constructor(matchOccurrenceIndex: number); | |
constructor(); | |
getInterfaceMatchers(): UsbInterfaceMatcher[]; | |
mInterfaceMatchers: UsbInterfaceMatcher[]; | |
} | |
// source: com/bitwig/extension/controller/UsbDeviceMatcher.java | |
/** | |
* Defines information needed to identify suitable USB devices for use by an extension. | |
* | |
* @since API version 7 | |
*/ | |
class UsbDeviceMatcher extends HardwareDeviceMatcher { | |
/** | |
* Creates a {@link UsbDeviceMatcher} that matches a USB device that matches the supplied expression and | |
* has a configuration matching the supplied {@link UsbConfigurationMatcher}. | |
* | |
* @param name | |
* A human friendly name that describes the kind of devices this matcher tries to match. | |
* | |
* @param expression | |
* An expression that can be used on the USB device descriptor to decide if the device matches. | |
* Variables in the expression can refer to the following fields of the device descriptor: | |
* | |
* - bDeviceClass - bDeviceSubClass - bDeviceProtocol - idVendor - idProduct | |
* | |
* For example to match a device that has vendor id 0x10 product id 0x20 the expression would be: | |
* | |
* "idVendor == 0x10 && idProduct == 0x20" | |
* | |
* @param configurationMatcher | |
* Object that tries to match a configuration on the device that it can use. | |
* | |
* @see https://beyondlogic.org/usbnutshell/usb5.shtml for more information about USB device descriptors. | |
*/ | |
constructor( | |
name: string, | |
expression: string, | |
configurationMatcher: UsbConfigurationMatcher | |
); | |
/** | |
* Creates a {@link UsbDeviceMatcher} that matches a USB device that matches the supplied expression and | |
* has a configuration matching the supplied {@link UsbInterfaceMatcher}s. | |
* | |
* @param name | |
* A human friendly name that describes the kind of devices this matcher tries to match. | |
* | |
* @param expression | |
* An expression that can be used on the USB device descriptor to decide if the device matches. | |
* Variables in the expression can refer to the following fields of the device descriptor: | |
* | |
* - bDeviceClass - bDeviceSubClass - bDeviceProtocol - idVendor - idProduct | |
* | |
* For example to match a device that has vendor id 0x10 product id 0x20 the expression would be: | |
* | |
* "idVendor == 0x10 && idProduct == 0x20" | |
* | |
* @param interfaceMatchers | |
* {@link UsbInterfaceMatcher}s that define the USB interface descriptors that a configuration of | |
* the device needs to have. | |
* | |
* @see https://beyondlogic.org/usbnutshell/usb5.shtml for more information about USB device descriptors. | |
*/ | |
constructor(name: string, expression: string); | |
/** An expression that can be used on the USB device descriptor to decide if the device matches. | |
* Variables in the expression can refer to the following fields of the device descriptor: | |
* | |
* - bDeviceClass - bDeviceSubClass - bDeviceProtocol - idVendor - idProduct | |
* | |
* For example to match a device that has vendor id 0x10 product id 0x20 the expression would be: | |
* | |
* "idVendor == 0x10 && idProduct == 0x20" | |
* */ | |
getExpression(): string; | |
/** Object that tries to match a configuration on the device that it can use. */ | |
getConfigurationMatcher(): UsbConfigurationMatcher; | |
mExpression: string; | |
mConfigurationMatcher: UsbConfigurationMatcher; | |
} | |
// source: com/bitwig/extension/controller/UsbEndpointMatcher.java | |
import UsbTransferDirection = com.bitwig.extension.controller.api.UsbTransferDirection; | |
import UsbTransferType = com.bitwig.extension.controller.api.UsbTransferType; | |
class UsbEndpointMatcher extends UsbMatcher { | |
constructor( | |
direction: UsbTransferDirection, | |
transferType: UsbTransferType, | |
expression: string, | |
matchOccurrenceIndex: number | |
); | |
constructor( | |
direction: UsbTransferDirection, | |
transferType: UsbTransferType, | |
expression: string | |
); | |
constructor(transferType: UsbTransferType, bEndpointAddress: number); | |
getDirection(): UsbTransferDirection; | |
getTransferType(): UsbTransferType; | |
mDirection: UsbTransferDirection; | |
mTransferType: UsbTransferType; | |
} | |
// source: com/bitwig/extension/controller/UsbInterfaceMatcher.java | |
class UsbInterfaceMatcher extends UsbMatcher { | |
constructor(expression: string, matchOccurrence: number); | |
constructor(expression: string); | |
getEndpointMatchers(): UsbEndpointMatcher[]; | |
mEndpointMatchers: UsbEndpointMatcher[]; | |
} | |
// source: com/bitwig/extension/controller/UsbMatcher.java | |
class UsbMatcher { | |
constructor(expression: string, matchOccurrence: number); | |
getExpression(): string; | |
getMatchOccurrence(): number; | |
mExpression: string; | |
mMatchOccurrence: number; | |
} | |
} | |
declare namespace com.bitwig.extension.controller.api { | |
// source: com/bitwig/extension/controller/api/AbsoluteHardwarControlBindable.java | |
/** | |
* Something that can be bound to an {@link AbsoluteHardwareControl} and can respond to the user input (such | |
* as user moving a slider up or down) in a meaningful way. | |
* | |
* @since API version 10 | |
*/ | |
interface AbsoluteHardwarControlBindable extends HardwareBindable { | |
/** | |
* Binds this target to the supplied hardware control so that when the user moves the hardware control this | |
* target will respond in a meaningful way. | |
* | |
* When the binding is no longer needed the {@link HardwareBinding#removeBinding()} method can be called on | |
* it. | |
* | |
* @return The newly created binding | |
*/ | |
addBinding( | |
hardwareControl: AbsoluteHardwareControl | |
): AbsoluteHardwareControlBinding; | |
/** | |
* Binds this target to the supplied hardware control so that when the user moves the hardware control this | |
* target will respond in a meaningful way. This target will be adjusted within the supplied normalized | |
* range. | |
* | |
* When the binding is no longer needed the {@link HardwareBinding#removeBinding()} method can be called on | |
* it. | |
* | |
* @return The newly created binding | |
*/ | |
addBindingWithRange( | |
hardwareControl: AbsoluteHardwareControl, | |
minNormalizedValue: number, | |
maxNormalizedValue: number | |
): AbsoluteHardwareControlBinding; | |
} | |
// source: com/bitwig/extension/controller/api/AbsoluteHardwareControl.java | |
/** | |
* Represents a hardware control that can input and absolute value (for example, a slider, knob or foot | |
* pedal). | |
* | |
* @since API version 10 | |
*/ | |
interface AbsoluteHardwareControl | |
extends ContinuousHardwareControl<AbsoluteHardwareControlBinding> { | |
/** | |
* Sets the {@link AbsoluteHardwareValueMatcher} that can be used to detect when the user adjusts the | |
* hardware control's value. | |
* | |
* @see MidiIn#createAbsoluteCCValueMatcher(int, int) | |
* @see MidiIn#createAbsoluteValueMatcher(String, String, int) | |
*/ | |
setAdjustValueMatcher(matcher: AbsoluteHardwareValueMatcher): void; | |
/** | |
* The current value of this hardware control (0..1) | |
*/ | |
value(): DoubleValue; | |
/** | |
* Determines if this hardware control should immediately take over the parameter it is bound to rather | |
* than respecting the user's current take over mode. | |
* | |
* This is useful for motorized sliders for example, where the slider is already at the value of the bound | |
* parameter. | |
*/ | |
disableTakeOver(): void; | |
/** Adds a new binding from this hardware control to the supplied target. */ | |
addBindingWithRange( | |
target: AbsoluteHardwarControlBindable, | |
minNormalizedValue: number, | |
maxNormalizedValue: number | |
): AbsoluteHardwareControlBinding; | |
/** | |
* Convenience methods that ensures there is only a single binding to the supplied target. This is | |
* equivalent to calling {@link #clearBindings()} and then | |
* {@link #addBindingWithRange(AbsoluteHardwarControlBindable, double, double)} | |
*/ | |
setBindingWithRange( | |
target: AbsoluteHardwarControlBindable, | |
minNormalizedValue: number, | |
maxNormalizedValue: number | |
): AbsoluteHardwareControlBinding; | |
} | |
// source: com/bitwig/extension/controller/api/AbsoluteHardwareControlBinding.java | |
/** | |
* Represents a binding from an {@link AbsoluteHardwareControl} to some target. | |
* | |
* @since API version 10 | |
* */ | |
interface AbsoluteHardwareControlBinding | |
extends HardwareBinding, | |
HardwareBindingWithRange {} | |
// source: com/bitwig/extension/controller/api/AbsoluteHardwareKnob.java | |
/** | |
* Represents a physical hardware knob that inputs an absolute value. | |
* | |
* @see HardwareSurface#createAbsoluteHardwareKnob(String) | |
* | |
* @since API version 10 | |
*/ | |
interface AbsoluteHardwareKnob extends AbsoluteHardwareControl {} | |
// source: com/bitwig/extension/controller/api/AbsoluteHardwareValueMatcher.java | |
/** | |
* Defines a means of recognizing when an absolute value is input by the user (for example, when moving a | |
* slider or turning a knob based on some MIDI message). This matcher can then be set on an | |
* {@link AbsoluteHardwareControl} using | |
* {@link AbsoluteHardwareControl#setAdjustValueMatcher(AbsoluteHardwareValueMatcher)}. | |
* | |
* @see MidiIn#createAbsoluteValueMatcher(String, String, int) | |
* @see MidiIn#createAbsoluteCCValueMatcher(int, int) | |
* @see MidiIn#createAbsolutePitchBendValueMatcher(int) | |
* | |
* @since API version 10 | |
* | |
*/ | |
interface AbsoluteHardwareValueMatcher | |
extends ContinuousHardwareValueMatcher {} | |
// source: com/bitwig/extension/controller/api/Action.java | |
/** | |
* Instances of this interface represent actions in Bitwig Studio, such as commands that can be launched from | |
* the main menu or via keyboard shortcuts. | |
* | |
* To receive the list of all actions provided by Bitwig Studio call {@link Application#getActions()}. The | |
* list of actions that belong to a certain category can be queried by calling | |
* {@link ActionCategory#getActions()}. Access to specific actions is provided in | |
* {@link Application#getAction(String)}. | |
* | |
* @since API version 1 | |
*/ | |
interface Action extends HardwareActionBindable { | |
/** | |
* Returns a string the identifies this action uniquely. | |
* | |
* @return the identifier string | |
* @since API version 1 | |
*/ | |
getId(): string; | |
/** | |
* Returns the name of this action. | |
* | |
* @return the name string | |
* @since API version 1 | |
*/ | |
getName(): string; | |
/** | |
* Returns the category of this action. | |
* | |
* @return the category string | |
* @since API version 1 | |
*/ | |
getCategory(): ActionCategory; | |
/** | |
* Returns the text that is displayed in menu items associated with this action. | |
* | |
* @return the menu item text | |
* @since API version 1 | |
*/ | |
getMenuItemText(): string; | |
/** | |
* Invokes the action. | |
* | |
* @since API version 1 | |
*/ | |
invoke(): void; | |
} | |
// source: com/bitwig/extension/controller/api/ActionCategory.java | |
/** | |
* Instances of this interface are used to categorize actions in Bitwig Studio. The list of action categories | |
* provided by Bitwig Studio can be queried by calling {@link Application#getActionCategories()}. To receive a | |
* specific action category call {@link Application#getActionCategory(String)}. | |
* | |
* @see Application#getActionCategories() | |
* @see Application#getActionCategory(String) | |
* @since API version 1 | |
*/ | |
interface ActionCategory { | |
/** | |
* Returns a string the identifies this action category uniquely. | |
* | |
* @return the identifier string | |
* @since API version 1 | |
*/ | |
getId(): string; | |
/** | |
* Returns the name of this action category. | |
* | |
* @return the name string | |
* @since API version 1 | |
*/ | |
getName(): string; | |
/** | |
* Lists all actions in this category. | |
* | |
* @return the array of actions in this category | |
* @since API version 1 | |
*/ | |
getActions(): Action[]; | |
} | |
// source: com/bitwig/extension/controller/api/Application.java | |
import BooleanValueChangedCallback = com.bitwig.extension.callback.BooleanValueChangedCallback; | |
import StringValueChangedCallback = com.bitwig.extension.callback.StringValueChangedCallback; | |
/** | |
* An interface that provides methods for accessing the most common global application commands.<br/> | |
* | |
* In addition, functions are provided for accessing any application action in a generic and categorized way, | |
* pretty much as displayed in the Bitwig Studio commander dialog (see {@link #getActions()}, | |
* {@link #getAction(String)}, {@link #getActionCategories()}), {@link #getActionCategory(String)}).<br/> | |
* | |
* To receive an instance of the application interface call {@link ControllerHost#createApplication()}. | |
* | |
* @since API version 1 | |
*/ | |
interface Application { | |
/** | |
* This identifier can be used as parameter for {@link #setPanelLayout(String)} in order to switch to the | |
* `ARRANGE` panel layout that is available in various display profiles. | |
*/ | |
PANEL_ARRANGE_ARRANGE: 'ARRANGE'; | |
/** | |
* This identifier can be used as parameter for {@link #setPanelLayout(String)} in order to switch to the | |
* `EDIT` panel layout that is available in various display profiles. | |
*/ | |
PANEL_MIX_ARRANGE: 'MIX'; | |
/** | |
* This identifier can be used as parameter for {@link #setPanelLayout(String)} in order to switch to the | |
* `MIX` panel layout that is available in various display profiles. | |
*/ | |
PANEL_EDIT_ARRANGE: 'EDIT'; | |
/** | |
* Creates a new audio track at the given position. | |
* | |
* @param position | |
* the index within the list of main tracks where the new track should be inserted, or `-1` in | |
* case the track should be inserted at the end of the list. Values outside the valid range will | |
* get pinned to the valid range, so the actual position might be different from the provided | |
* parameter value. | |
* @since API version 1 | |
*/ | |
createAudioTrack(position: number): void; | |
/** | |
* Creates a new instrument track at the given position. | |
* | |
* @param position | |
* the index within the list of main tracks where the new track should be inserted, or `-1` in | |
* case the track should be inserted at the end of the list. Values outside the valid range will | |
* get pinned to the valid range, so the actual position might be different from the provided | |
* parameter value. | |
* @since API version 1 | |
*/ | |
createInstrumentTrack(position: number): void; | |
/** | |
* Creates a new effect track at the given position. | |
* | |
* @param position | |
* the index within the list of effect tracks where the new track should be inserted, or `-1` in | |
* case the track should be inserted at the end of the list. Values outside the valid range will | |
* get pinned to the valid range, so the actual position might be different from the provided | |
* parameter value. | |
* @since API version 1 | |
*/ | |
createEffectTrack(position: number): void; | |
/** | |
* Returns a list of actions that the application supports. Actions are commands in Bitwig Studio that are | |
* typically accessible through menus or keyboard shortcuts. | |
* | |
* Please note that many of the commands encapsulated by the reported actions are also accessible through | |
* other (probably more convenient) interfaces methods of the API. In contrast to that, this method | |
* provides a more generic way to find available application functionality. | |
* | |
* @return the list of actions | |
* @ @since API version 1 | |
*/ | |
getActions(): Action[]; | |
/** | |
* Returns the action for the given action identifier. For a list of available actions, see | |
* {@link #getActions()}. | |
* | |
* @param id | |
* the action identifier string, must not be `null` | |
* @return the action associated with the given id, or null in case there is no action with the given | |
* identifier. | |
* @ @since API version 1 | |
*/ | |
getAction(id: string): Action; | |
/** | |
* Returns a list of action categories that is used by Bitwig Studio to group actions into categories. | |
* | |
* @return the list of action categories | |
* @ @since API version 1 | |
*/ | |
getActionCategories(): ActionCategory[]; | |
/** | |
* Returns the action category associated with the given identifier. For a list of available action | |
* categories, see {@link #getActionCategories()}. | |
* | |
* @param id | |
* the category identifier string, must not be `null` | |
* @return the action associated with the given id, or null in case there is no category with the given | |
* identifier | |
* @ @since API version 1 | |
*/ | |
getActionCategory(id: string): ActionCategory; | |
/** | |
* Activates the audio engine in Bitwig Studio. | |
* | |
* @since API version 1 | |
*/ | |
activateEngine(): void; | |
/** | |
* Deactivates the audio engine in Bitwig Studio. | |
* | |
* @since API version 1 | |
*/ | |
deactivateEngine(): void; | |
/** | |
* Value that reports whether an audio engine is active or not. | |
* | |
* @since API version 2 | |
*/ | |
hasActiveEngine(): BooleanValue; | |
/** | |
* Registers an observer that gets called when the audio engine becomes active or inactive. | |
* | |
* @param callable | |
* a callback function that accepts a single boolean parameter. The callback parameter indicates | |
* whether the audio engine became active (true) or inactive (false). | |
* @since API version 1 | |
* @deprecated Use {@link #hasActiveEngine()} instead. | |
*/ | |
addHasActiveEngineObserver(callable: BooleanValueChangedCallback): void; | |
/** | |
* Value that reports the name of the current project. | |
* | |
* @since API version 2 | |
*/ | |
projectName(): StringValue; | |
/** | |
* Registers an observer that reports the name of the current project. | |
* | |
* @param callback | |
* a callback function that accepts a single string parameter. | |
* @param maxChars | |
* the maximum length of the reported name. Longer names will get truncated. | |
* @since API version 1 | |
* @deprecated Use {@link #projectName()} instead. | |
*/ | |
addProjectNameObserver( | |
callback: StringValueChangedCallback, | |
maxChars: number | |
): void; | |
/** | |
* Switches to the next project tab in Bitwig Studio. | |
* | |
* @since API version 1 | |
*/ | |
nextProject(): void; | |
/** | |
* Switches to the previous project tab in Bitwig Studio. | |
* | |
* @since API version 1 | |
*/ | |
previousProject(): void; | |
/** | |
* Set BitwigStudio to navigate into the group. | |
* | |
* @since API version 2 | |
*/ | |
navigateIntoTrackGroup(track: Track): void; | |
/** | |
* Set BitwigStudio to navigate into the parent group. | |
* | |
* @since API version 2 | |
*/ | |
navigateToParentTrackGroup(): void; | |
/** | |
* Sends an undo command to Bitwig Studio. | |
* | |
* @since API version 1 | |
*/ | |
undo(): void; | |
undoAction(): HardwareActionBindable; | |
/** | |
* Sends a redo command to Bitwig Studio. | |
* | |
* @since API version 1 | |
*/ | |
redo(): void; | |
redoAction(): HardwareActionBindable; | |
/** | |
* Switches the Bitwig Studio user interface to the panel layout with the given name. The list of available | |
* panel layouts depends on the active display profile. | |
* | |
* @param panelLayout | |
* the name of the new panel layout | |
* @since API version 1 | |
*/ | |
setPanelLayout(panelLayout: string): void; | |
/** | |
* Switches to the next panel layout of the active display profile in Bitwig Studio. | |
* | |
* @since API version 1 | |
*/ | |
nextPanelLayout(): void; | |
/** | |
* Switches to the previous panel layout of the active display profile in Bitwig Studio. | |
* | |
* @since API version 1 | |
*/ | |
previousPanelLayout(): void; | |
/** | |
* Value that reports the name of the active panel layout. | |
* | |
* @since API version 2 | |
*/ | |
panelLayout(): StringValue; | |
/** | |
* Registers an observer that reports the name of the active panel layout. | |
* | |
* @param callable | |
* a callback function object that accepts a single string parameter | |
* @param maxChars | |
* the maximum length of the panel layout name | |
* @since API version 1 | |
* @deprecated Use {@link #panelLayout()} instead. | |
*/ | |
addPanelLayoutObserver( | |
callable: StringValueChangedCallback, | |
maxChars: number | |
): void; | |
/** | |
* Value that reports the name of the active display profile. | |
* | |
* @since API version 2 | |
*/ | |
displayProfile(): StringValue; | |
/** | |
* Registers an observer that reports the name of the active display profile. | |
* | |
* @param callable | |
* a callback function object that accepts a single string parameter | |
* @param maxChars | |
* the maximum length of the display profile name | |
* @since API version 1 | |
* @deprecated Use {@link #displayProfile()} instead. | |
*/ | |
addDisplayProfileObserver( | |
callable: StringValueChangedCallback, | |
maxChars: number | |
): void; | |
/** | |
* Toggles the visibility of the inspector panel. | |
* | |
* @since API version 1 | |
*/ | |
toggleInspector(): void; | |
/** | |
* Toggles the visibility of the device chain panel. | |
* | |
* @since API version 1 | |
*/ | |
toggleDevices(): void; | |
/** | |
* Toggles the visibility of the mixer panel. | |
* | |
* @since API version 1 | |
*/ | |
toggleMixer(): void; | |
/** | |
* Toggles the visibility of the note editor panel. | |
* | |
* @since API version 1 | |
*/ | |
toggleNoteEditor(): void; | |
/** | |
* Toggles the visibility of the automation editor panel. | |
* | |
* @since API version 1 | |
*/ | |
toggleAutomationEditor(): void; | |
/** | |
* Toggles the visibility of the browser panel. | |
* | |
* @since API version 1 | |
*/ | |
toggleBrowserVisibility(): void; | |
/** | |
* Shows the previous detail panel (note editor, device, automation). | |
* | |
* @since API version 1 | |
*/ | |
previousSubPanel(): void; | |
/** | |
* Shows the next detail panel (note editor, device, automation). | |
* | |
* @since API version 1 | |
*/ | |
nextSubPanel(): void; | |
/** | |
* Equivalent to an Arrow-Left key stroke on the computer keyboard. The concrete functionality depends on | |
* the current keyboard focus in Bitwig Studio. | |
* | |
* @since API version 1 | |
*/ | |
arrowKeyLeft(): void; | |
/** | |
* Equivalent to an Arrow-Right key stroke on the computer keyboard. The concrete functionality depends on | |
* the current keyboard focus in Bitwig Studio. | |
* | |
* @since API version 1 | |
*/ | |
arrowKeyRight(): void; | |
/** | |
* Equivalent to an Arrow-Up key stroke on the computer keyboard. The concrete functionality depends on the | |
* current keyboard focus in Bitwig Studio. | |
* | |
* @since API version 1 | |
*/ | |
arrowKeyUp(): void; | |
/** | |
* Equivalent to an Arrow-Down key stroke on the computer keyboard. The concrete functionality depends on | |
* the current keyboard focus in Bitwig Studio. | |
* | |
* @since API version 1 | |
*/ | |
arrowKeyDown(): void; | |
/** | |
* Equivalent to an Enter key stroke on the computer keyboard. The concrete functionality depends on the | |
* current keyboard focus in Bitwig Studio. | |
* | |
* @since API version 1 | |
*/ | |
enter(): void; | |
/** | |
* Equivalent to an Escape key stroke on the computer keyboard. The concrete functionality depends on the | |
* current keyboard focus in Bitwig Studio. | |
* | |
* @since API version 1 | |
*/ | |
escape(): void; | |
/** | |
* Selects all items according the current selection focus in Bitwig Studio. | |
* | |
* @since API version 1 | |
*/ | |
selectAll(): void; | |
selectAllAction(): HardwareActionBindable; | |
/** | |
* Deselects any items according the current selection focus in Bitwig Studio. | |
* | |
* @since API version 1 | |
*/ | |
selectNone(): void; | |
selectNoneAction(): HardwareActionBindable; | |
/** | |
* Selects the previous item in the current selection. | |
* | |
* @since API version 10 | |
*/ | |
selectPrevious(): void; | |
selectPreviousAction(): HardwareActionBindable; | |
/** | |
* Selects the next item in the current selection. | |
* | |
* @since API version 10 | |
*/ | |
selectNext(): void; | |
selectNextAction(): HardwareActionBindable; | |
/** | |
* Selects the first item in the current selection. | |
* | |
* @since API version 10 | |
*/ | |
selectFirst(): void; | |
selectFirstAction(): HardwareActionBindable; | |
/** | |
* Selects the last item in the current selection. | |
* | |
* @since API version 10 | |
*/ | |
selectLast(): void; | |
selectLastAction(): HardwareActionBindable; | |
/** | |
* Cuts the selected items in Bitwig Studio if applicable. | |
* | |
* @since API version 1 | |
*/ | |
cut(): void; | |
cutAction(): HardwareActionBindable; | |
/** | |
* Copies the selected items in Bitwig Studio to the clipboard if applicable. | |
* | |
* @since API version 1 | |
*/ | |
copy(): void; | |
copyAction(): HardwareActionBindable; | |
/** | |
* Pastes the clipboard contents into the current selection focus in Bitwig Studio if applicable. | |
* | |
* @since API version 1 | |
*/ | |
paste(): void; | |
pasteAction(): HardwareActionBindable; | |
/** | |
* Duplicates the active selection in Bitwig Studio if applicable. | |
* | |
* @since API version 1 | |
*/ | |
duplicate(): void; | |
/** | |
* @since API version 10 | |
*/ | |
duplicateAction(): HardwareActionBindable; | |
/** | |
* Deletes the selected items in Bitwig Studio if applicable. Originally this function was called `delete` | |
* (Bitwig Studio 1.0). But as `delete` is reserved in JavaScript this function got renamed to `remove` in | |
* Bitwig Studio 1.0.9. | |
* | |
* @since API version 1 | |
*/ | |
remove(): void; | |
removeAction(): HardwareActionBindable; | |
/** | |
* Opens a text input field in Bitwig Studio for renaming the selected item. | |
* | |
* @since API version 1 | |
*/ | |
rename(): void; | |
/** | |
* Zooms in one step into the currently focused editor of the Bitwig Studio user interface. | |
* | |
* @since API version 1 | |
*/ | |
zoomIn(): void; | |
zoomInAction(): HardwareActionBindable; | |
/** | |
* Zooms out one step in the currently focused editor of the Bitwig Studio user interface. | |
* | |
* @since API version 1 | |
*/ | |
zoomOut(): void; | |
zoomOutAction(): HardwareActionBindable; | |
/** | |
* Adjusts the zoom level of the currently focused editor so that it matches the active selection. | |
* | |
* @since API version 1 | |
*/ | |
zoomToSelection(): void; | |
zoomToSelectionAction(): HardwareActionBindable; | |
/** | |
* Toggles between zoomToSelection and zoomToFit. | |
* | |
* @since API version 10 | |
*/ | |
zoomToSelectionOrAll(): void; | |
zoomToSelectionOrAllAction(): HardwareActionBindable; | |
/** | |
* Toggles between zoomToSelection and the last śet zoom level. | |
* | |
* @since API version 10 | |
*/ | |
zoomToSelectionOrPrevious(): void; | |
zoomToSelectionOrPreviousAction(): HardwareActionBindable; | |
/** | |
* Adjusts the zoom level of the currently focused editor so that all content becomes visible. | |
* | |
* @since API version 1 | |
*/ | |
zoomToFit(): void; | |
zoomToFitAction(): HardwareActionBindable; | |
/** | |
* Moves the panel focus to the panel on the left of the currently focused panel. | |
* | |
* @since API version 1 | |
*/ | |
focusPanelToLeft(): void; | |
/** | |
* Moves the panel focus to the panel right to the currently focused panel. | |
* | |
* @since API version 1 | |
*/ | |
focusPanelToRight(): void; | |
/** | |
* Moves the panel focus to the panel above the currently focused panel. | |
* | |
* @since API version 1 | |
*/ | |
focusPanelAbove(): void; | |
/** | |
* Moves the panel focus to the panel below the currently focused panel. | |
* | |
* @since API version 1 | |
*/ | |
focusPanelBelow(): void; | |
/** | |
* Toggles between full screen and windowed user interface. | |
* | |
* @since API version 1 | |
*/ | |
toggleFullScreen(): void; | |
/** | |
* @deprecated Use {@link #setPanelLayout(java.lang.String)} instead. | |
* @since API version 1 | |
*/ | |
setPerspective(perspective: string): void; | |
/** | |
* @deprecated Use {@link #nextPanelLayout()} instead. | |
* @since API version 1 | |
*/ | |
nextPerspective(): void; | |
/** | |
* @deprecated Use {@link #previousPanelLayout()} instead. | |
* @since API version 1 | |
*/ | |
previousPerspective(): void; | |
/** | |
* @deprecated Use {@link #addPanelLayoutObserver(org.mozilla.javascript.Callable, int)} instead. | |
* @since API version 1 | |
*/ | |
addSelectedModeObserver( | |
callable: StringValueChangedCallback, | |
maxChars: number, | |
fallbackText: string | |
): void; | |
/** | |
* Returns the record quantization grid setting from the preferences. | |
* Possible values are "OFF", "1/32", "1/16", "1/8", "1/4". | |
* | |
* @since API version 10 | |
*/ | |
recordQuantizationGrid(): SettableEnumValue; | |
/** | |
* Returns a settable value to choose if the record quantization should quantize note length. | |
* | |
* @since API version 10 | |
*/ | |
recordQuantizeNoteLength(): SettableBooleanValue; | |
} | |
// source: com/bitwig/extension/controller/api/Arpeggiator.java | |
/** | |
* Proxy to an arpeggiator component. | |
* | |
* @since API version 10 | |
*/ | |
interface Arpeggiator extends ObjectProxy { | |
/** | |
* Returns an object to configure the arpeggiator mode. | |
* Possible values: | |
* - all | |
* - up | |
* - up-down | |
* - up-then-down | |
* - down | |
* - down-up | |
* - down-then-up | |
* - flow | |
* - random | |
* - converge-up | |
* - converge-down | |
* - diverge-up | |
* - diverge-down | |
* - thumb-up | |
* - thumb-down | |
* - pinky-up | |
* - pinky-down | |
* | |
* @since API version 10 | |
*/ | |
mode(): SettableEnumValue; | |
/** | |
* Returns an object to configure the range in octaves. | |
* The range is between 0 and 8. | |
* | |
* @since API version 10 | |
*/ | |
octaves(): SettableIntegerValue; | |
/** | |
* Returns an object to enable or disable the note repeat component. | |
* | |
* @since API version 10 | |
*/ | |
isEnabled(): SettableBooleanValue; | |
/** | |
* If true the arpeggiator will not try to sync to the transport. | |
* @since API version 10 | |
*/ | |
isFreeRunning(): SettableBooleanValue; | |
/** | |
* Return an object to configure the note repeat to use shuffle or not. | |
* | |
* @since API version 10 | |
*/ | |
shuffle(): SettableBooleanValue; | |
/** | |
* Returns an object to configure the note repeat rate in beats. | |
* | |
* @since API version 10 | |
*/ | |
rate(): SettableDoubleValue; | |
/** | |
* Returns an object to configure the note length, expressed as a ratio of the period. | |
* Must be between 1/32 and 8. | |
* | |
* @since API version 10 | |
*/ | |
gateLength(): SettableDoubleValue; | |
/** | |
* Let the arpeggiator play overlapping notes. | |
* | |
* @since API version 11 | |
*/ | |
enableOverlappingNotes(): SettableBooleanValue; | |
/** | |
* Will use the note pressure to determine the velocity of arpeggiated notes. | |
* | |
* @since API version 10 | |
*/ | |
usePressureToVelocity(): SettableBooleanValue; | |
/** | |
* Release all notes being played. | |
* @since API version 10 | |
*/ | |
releaseNotes(): void; | |
/** | |
* Will introduce human-like errors. | |
* Between 0 and 1. | |
* | |
* @since API version 11 | |
*/ | |
humanize(): SettableDoubleValue; | |
/** | |
* If set to true, it will terminate the playing note as soon as it is released, otherwise it will | |
* be held until its computed note-off time. | |
* | |
* @since API version 11 | |
*/ | |
terminateNotesImmediately(): SettableBooleanValue; | |
} | |
// source: com/bitwig/extension/controller/api/Arranger.java | |
/** | |
* An interface representing various commands which can be performed on the Bitwig Studio arranger.<br/> | |
* | |
* To receive an instance of the application interface call {@link ControllerHost#createArranger}. | |
* | |
* @since API version 1 | |
*/ | |
interface Arranger { | |
/** | |
* Gets an object that allows to enable/disable arranger playback follow. Observers can be registered on | |
* the returned object for receiving notifications when the setting switches between on and off. | |
* | |
* @return a boolean value object that represents the enabled state of arranger playback follow | |
* @since API version 1 | |
*/ | |
isPlaybackFollowEnabled(): SettableBooleanValue; | |
/** | |
* Gets an object that allows to control the arranger track height. Observers can be registered on the | |
* returned object for receiving notifications when the track height changes. | |
* | |
* @return a boolean value object that has the state `true` when the tracks have double row height and | |
* `false` when the tracks have single row height. | |
* @since API version 1 | |
*/ | |
hasDoubleRowTrackHeight(): SettableBooleanValue; | |
/** | |
* Gets an object that allows to show/hide the cue markers in the arranger panel. Observers can be | |
* registered on the returned object for receiving notifications when the cue marker lane switches between | |
* shown and hidden. | |
* | |
* @return a boolean value object that represents the cue marker section visibility | |
* @since API version 1 | |
*/ | |
areCueMarkersVisible(): SettableBooleanValue; | |
/** | |
* Gets an object that allows to show/hide the clip launcher in the arranger panel. Observers can be | |
* registered on the returned object for receiving notifications when the clip launcher switches between | |
* shown and hidden. | |
* | |
* @return a boolean value object that represents the clip launcher visibility | |
* @since API version 1 | |
*/ | |
isClipLauncherVisible(): SettableBooleanValue; | |
/** | |
* Gets an object that allows to show/hide the timeline in the arranger panel. Observers can be registered | |
* on the returned object for receiving notifications when the timeline switches between shown and hidden. | |
* | |
* @return a boolean value object that represents the timeline visibility | |
* @since API version 1 | |
*/ | |
isTimelineVisible(): SettableBooleanValue; | |
/** | |
* Gets an object that allows to show/hide the track input/output choosers in the arranger panel. Observers | |
* can be registered on the returned object for receiving notifications when the I/O section switches | |
* between shown and hidden. | |
* | |
* @return a boolean value object that represents the visibility of the track I/O section | |
* @since API version 1 | |
*/ | |
isIoSectionVisible(): SettableBooleanValue; | |
/** | |
* Gets an object that allows to show/hide the effect tracks in the arranger panel. Observers can be | |
* registered on the returned object for receiving notifications when the effect track section switches | |
* between shown and hidden. | |
* | |
* @return a boolean value object that represents the visibility of the effect track section | |
* @since API version 1 | |
*/ | |
areEffectTracksVisible(): SettableBooleanValue; | |
/** | |
* Returns an object that provides access to a bank of successive cue markers using a window configured with | |
* the given size, that can be scrolled over the list of markers. | |
* | |
* @param size | |
* the number of simultaneously accessible items | |
* @return the requested item bank object | |
*/ | |
createCueMarkerBank(size: number): CueMarkerBank; | |
/** | |
* Registers an observer that reports if playback-follow is enabled. | |
* | |
* @param callback | |
* a callback function object that accepts a single bool parameter | |
* @see #isPlaybackFollowEnabled() | |
* @deprecated call `isPlaybackFollowEnabled().addValueObserver` instead | |
* @since API version 1 | |
*/ | |
addPlaybackFollowObserver(callback: BooleanValueChangedCallback): void; | |
/** | |
* Registers an observer that reports the current configuration of the arranger track row height. | |
* | |
* @param callback | |
* a callback function object that accepts a single bool parameter. The parameter indicates if | |
* the row height is double (`true`) or single (`false`). | |
* @see #hasDoubleRowTrackHeight() | |
* @deprecated call `hasDoubleRowTrackHeight().addValueObserver` instead | |
* @since API version 1 | |
*/ | |
addTrackRowHeightObserver(callback: BooleanValueChangedCallback): void; | |
/** | |
* Registers an observer that reports if the cue marker lane is visible. | |
* | |
* @param callback | |
* a callback function object that accepts a single bool parameter. | |
* @see #areCueMarkersVisible() | |
* @deprecated call `areCueMarkersVisible().addValueObserver` instead | |
* @since API version 1 | |
*/ | |
addCueMarkerVisibilityObserver(callback: BooleanValueChangedCallback): void; | |
/** | |
* Toggles the playback follow state. | |
* | |
* @see #isPlaybackFollowEnabled() | |
* @deprecated call `isPlaybackFollowEnabled().toggle` instead | |
* @since API version 1 | |
*/ | |
togglePlaybackFollow(): void; | |
/** | |
* Toggles the arranger track row height between `double` and `single`. | |
* | |
* @see #hasDoubleRowTrackHeight() | |
* @deprecated call `hasDoubleRowTrackHeight().toggle` instead | |
* @since API version 1 | |
*/ | |
toggleTrackRowHeight(): void; | |
/** | |
* Toggles the visibility of the arranger cue marker lane. | |
* | |
* @see #areCueMarkersVisible() | |
* @deprecated call `areCueMarkersVisible().toggle` instead | |
* @since API version 1 | |
*/ | |
toggleCueMarkerVisibility(): void; | |
} | |
// source: com/bitwig/extension/controller/api/AsyncTransferCompledCallback.java | |
/** | |
* Callback that is notified when an asynchronous transfer has completed. | |
* | |
* @newSince API version 7 | |
*/ | |
interface AsyncTransferCompledCallback { | |
/** Called upon completion of an asynchronous read. */ | |
(amountTransferred: number): void; | |
} | |
// source: com/bitwig/extension/controller/api/Bank.java | |
/** | |
* A bank provides access to a range of items in Bitwig Studio. Instances of a bank are configured with a | |
* fixed number of items and represent an excerpt of a larger list of items. Various methods are provided for | |
* scrolling to different sections of the item list. It basically acts like a window moving over the list of | |
* underlying items. | |
* | |
* @since API version 2 | |
*/ | |
interface Bank<ItemType extends ObjectProxy = ObjectProxy> | |
extends ObjectProxy, | |
Scrollable { | |
/** | |
* The fixed size of this bank. | |
* This will be initially equal to the capacity of the Bank. | |
* | |
* @since API version 2 | |
*/ | |
getSizeOfBank(): number; | |
/** | |
* The maximum number of items in the bank which is defined when the bank is initially created. | |
* | |
* @since API version 7 | |
*/ | |
getCapacityOfBank(): number; | |
/** | |
* Sets the size of this bank | |
* | |
* @param size number of items in the bank that has to be greater than 0 and less or equal to the capacity of the bank. | |
* | |
* @since API version 7 | |
*/ | |
setSizeOfBank(size: number): void; | |
scrollPageForwards(): void; | |
scrollPageBackwards(): void; | |
/** | |
* Gets the item in the bank at the supplied index. The index must be >= 0 and < {@link #getSizeOfBank()}. | |
* | |
* @since API version 2 | |
*/ | |
getItemAt(index: number): ItemType; | |
/** | |
* Value that reports the underlying total item count (not the number of items available in the bank | |
* window). | |
* | |
* @since API version 2 | |
*/ | |
itemCount(): IntegerValue; | |
/** | |
* An integer value that defines the location of the cursor that this bank is following. If there is no | |
* cursor or the cursor is not within the bank then the value is -1. | |
* | |
* @since API version 2 | |
*/ | |
cursorIndex(): SettableIntegerValue; | |
/** | |
* Disabled items will not be accessible via the bank if set to true. | |
* @since API version 11 | |
*/ | |
setSkipDisabledItems(shouldSkip: boolean): void; | |
} | |
// source: com/bitwig/extension/controller/api/BeatTimeFormatter.java | |
/** | |
* Defines a formatter for a beat time that can convert a beat time to a string for display to the user. | |
* | |
* @since API version 2 | |
*/ | |
interface BeatTimeFormatter { | |
/** | |
* Formats the supplied beat time as a string in the supplied time signature. | |
* | |
* @param beatTime | |
* The beat time to be formatted | |
* @param isAbsolute | |
* If true the beat time represents an absolute time (such as a time on the arranger) otherwise | |
* it represents a beat time duration (such as the length of a clip). | |
* | |
* @since API version 2 | |
*/ | |
formatBeatTime( | |
beatTime: number, | |
isAbsolute: boolean, | |
timeSignatureNumerator: number, | |
timeSignatureDenominator: number, | |
timeSignatureTicks: number | |
): string; | |
} | |
// source: com/bitwig/extension/controller/api/BeatTimeValue.java | |
import DoubleValueChangedCallback = com.bitwig.extension.callback.DoubleValueChangedCallback; | |
/** | |
* Instances of this interface represent beat time values. | |
* | |
* Beat time values are double-precision number representing the number of quarter notes, regardless of time-signature. | |
* | |
* @since API version 1 | |
*/ | |
interface BeatTimeValue extends DoubleValue { | |
/** | |
* Add an observer which receives the internal raw of the parameter as floating point. | |
* | |
* @param callback | |
* a callback function that receives a single numeric parameter with double precision. | |
* @since API version 1 | |
* @deprecated This exists for backwards compatibility. Use | |
* {@link #addValueObserver(DoubleValueChangedCallback)} instead. | |
*/ | |
addRawValueObserver(callback: DoubleValueChangedCallback): void; | |
/** | |
* Gets the current beat time formatted according to the supplied formatter. | |
* | |
* @since API version 2 | |
*/ | |
getFormatted(formatter: BeatTimeFormatter): string; | |
/** | |
* Gets the current beat time formatted according to the default beat time formatter. | |
* | |
* @see ControllerHost#setDefaultBeatTimeFormatter(BeatTimeFormatter) | |
* @since API version 2 | |
*/ | |
getFormatted(): string; | |
/** | |
* Registers an observer that reports the internal beat time value as formatted text, for example | |
* "012:03:00:01". | |
* | |
* @param separator | |
* the character used to separate the segments of the formatted beat time, typically ":", "." or | |
* "-" | |
* @param barsLen | |
* the number of digits reserved for bars | |
* @param beatsLen | |
* the number of digits reserved for beats | |
* @param subdivisionLen | |
* the number of digits reserved for beat subdivisions | |
* @param ticksLen | |
* the number of digits reserved for ticks | |
* @param callback | |
* a callback function that receives a single string parameter | |
* @since API version 1 | |
* @deprecated Use {@link #getFormatted(BeatTimeFormatter)} instead. | |
*/ | |
addTimeObserver( | |
separator: string, | |
barsLen: number, | |
beatsLen: number, | |
subdivisionLen: number, | |
ticksLen: number, | |
callback: StringValueChangedCallback | |
): void; | |
} | |
// source: com/bitwig/extension/controller/api/BitwigBrowsingSession.java | |
/** | |
* Instances of this interface are used for browsing Bitwig Studio document such as devices, presets, | |
* multi-samples, or clips. Full access to all filter columns and the result column as shown in Bitwig | |
* Studio's contextual browser window is provided. | |
* | |
* @see BrowsingSession | |
* @since API version 1 | |
* @deprecated Use {@link PopupBrowser} instead. | |
*/ | |
interface BitwigBrowsingSession extends BrowsingSession { | |
/** | |
* Returns the creator filter as shown in the category column of Bitwig Studio's contextual browser. | |
* | |
* @return the requested creator filter object. | |
* @since API version 1 | |
*/ | |
getCreatorFilter(): BrowserFilterColumn; | |
/** | |
* Returns the tags filter as shown in the category column of Bitwig Studio's contextual browser. | |
* | |
* @return the requested tags filter object. | |
* @since API version 1 | |
*/ | |
getTagsFilter(): BrowserFilterColumn; | |
} | |
// source: com/bitwig/extension/controller/api/BooleanHardwareProperty.java | |
import BooleanSupplier = java.util.funktion.BooleanSupplier; | |
import Consumer = java.util.funktion.Consumer; | |
/** | |
* Represents an output value shown on some hardware (for example, if an LED is on or off). | |
* | |
* @since API version 10 | |
* */ | |
interface BooleanHardwareProperty extends HardwareProperty { | |
/** Gets the current value. This is the value that should be sent to the hardware to be displayed. */ | |
currentValue(): boolean; | |
/** The value that was last sent to the hardware. */ | |
lastSentValue(): boolean; | |
/** | |
* Specifies a callback that should be called with the value that needs to be sent to the hardware. This | |
* callback is called as a result of calling the {@link HardwareSurface#updateHardware()} method (typically | |
* from the flush method). | |
*/ | |
onUpdateHardware(sendValueConsumer: Consumer<boolean>): void; | |
/** Sets the current value. */ | |
setValue(value: boolean): void; | |
/** Sets the current value from a {@link BooleanSupplier} that supplies the latest value. */ | |
setValueSupplier(supplier: BooleanSupplier): void; | |
} | |
// source: com/bitwig/extension/controller/api/BooleanValue.java | |
interface BooleanValue | |
extends Value<BooleanValueChangedCallback>, | |
BooleanSupplier { | |
/** | |
* Gets the current value. | |
* | |
* @since API version 2 | |
*/ | |
get(): boolean; | |
getAsBoolean(): boolean; | |
} | |
// source: com/bitwig/extension/controller/api/Browser.java | |
/** | |
* Instances of this interface represent a contextual browser in Bitwig Studio. | |
* | |
* @since API version 1 | |
* @deprecated Use {@link PopupBrowser} instead. | |
*/ | |
interface Browser extends ObjectProxy { | |
/** | |
* Registers an observer that reports if a browsing session was started. | |
* | |
* @param callback | |
* a callback function that receivers a single boolean parameter. | |
* @since API version 1 | |
* @deprecated Use {@link #exists()} instead. | |
*/ | |
addIsBrowsingObserver(callback: BooleanValueChangedCallback): void; | |
/** | |
* Starts a new browser session. | |
* | |
* @since API version 1 | |
*/ | |
startBrowsing(): void; | |
/** | |
* Cancels the current browser session. | |
* | |
* @since API version 1 | |
*/ | |
cancelBrowsing(): void; | |
/** | |
* Finished the browser session by loading the selected item. | |
* | |
* @since API version 1 | |
*/ | |
commitSelectedResult(): void; | |
/** | |
* Activates the given search session. Please note that only one search session can be active at a time. | |
* | |
* @param session | |
* the session that should be activated. | |
* @since API version 1 | |
*/ | |
activateSession(session: BrowsingSession): void; | |
/** | |
* Return an object allows to observe and control if the browser window should be small or full-sized. | |
* | |
* @return a boolean value object | |
* @since API version 1 | |
*/ | |
isWindowMinimized(): SettableBooleanValue; | |
/** | |
* Return an object allows to observe and control if the selected result should be auditioned. | |
* | |
* @return a boolean value object | |
* @since API version 1 | |
*/ | |
shouldAudition(): SettableBooleanValue; | |
/** | |
* Returns an object that provided bank-wise navigation of the available search sessions. Each search | |
* session is dedicated to a certain material type, as shown in the tabs of Bitwig Studio's contextual | |
* browser. | |
* | |
* @param size | |
* the size of the windows used to navigate the available browsing sessions. | |
* @return the requested file column bank object | |
* @since API version 1 | |
*/ | |
createSessionBank(size: number): BrowsingSessionBank; | |
/** | |
* Returns an object that represents the selected tab as shown in Bitwig Studio's contextual browser | |
* window. | |
* | |
* @return the requested browsing session cursor | |
* @since API version 1 | |
*/ | |
createCursorSession(): CursorBrowsingSession; | |
/** | |
* Returns an object that provides access to the contents of the device tab as shown in Bitwig Studio's | |
* contextual browser window. | |
* | |
* @return the requested device browsing session instance | |
* @since API version 1 | |
*/ | |
getDeviceSession(): DeviceBrowsingSession; | |
/** | |
* Returns an object that provides access to the contents of the preset tab as shown in Bitwig Studio's | |
* contextual browser window. | |
* | |
* @return the requested preset browsing session instance | |
* @since API version 1 | |
*/ | |
getPresetSession(): PresetBrowsingSession; | |
/** | |
* Returns an object that provides access to the contents of the samples tab as shown in Bitwig Studio's | |
* contextual browser window. | |
* | |
* @return the requested sample browsing session instance | |
* @since API version 1 | |
*/ | |
getSampleSession(): SampleBrowsingSession; | |
/** | |
* Returns an object that provides access to the contents of the multi-samples tab as shown in Bitwig | |
* Studio's contextual browser window. | |
* | |
* @return the requested multi-sample browsing session instance | |
* @since API version 1 | |
*/ | |
getMultiSampleSession(): MultiSampleBrowsingSession; | |
/** | |
* Returns an object that provides access to the contents of the clips tab as shown in Bitwig Studio's | |
* contextual browser window. | |
* | |
* @return the requested clip browsing session instance | |
* @since API version 1 | |
*/ | |
getClipSession(): ClipBrowsingSession; | |
/** | |
* Returns an object that provides access to the contents of the music tab as shown in Bitwig Studio's | |
* contextual browser window. | |
* | |
* @return the requested music browsing session instance | |
* @since API version 1 | |
*/ | |
getMusicSession(): MusicBrowsingSession; | |
} | |
// source: com/bitwig/extension/controller/api/BrowserColumn.java | |
import IntegerValueChangedCallback = com.bitwig.extension.callback.IntegerValueChangedCallback; | |
/** | |
* Instances of this interface are used to navigate a column in the Bitwig Studio browser. | |
* | |
* @since API version 1 | |
*/ | |
interface BrowserColumn extends ObjectProxy { | |
/** | |
* Registers an observer that reports if the column exists. | |
* | |
* @param callback | |
* a callback function that receives a single boolean parameter | |
* @since API version 1 | |
* @deprecated Use {@link #exists()} instead. | |
*/ | |
addExistsObserver(callback: BooleanValueChangedCallback): void; | |
/** | |
* Value that reports the underlying total count of column entries (not the size of the column window). | |
* | |
* @since API version 2 | |
*/ | |
entryCount(): IntegerValue; | |
/** | |
* Registers an observer that reports the underlying total count of column entries (not the size of the | |
* column window). | |
* | |
* @param callback | |
* a callback function that receives a single integer parameter | |
* @since API version 1 | |
* @deprecated Use {@link #entryCount()}.addValueObserver(callback) | |
*/ | |
addEntryCountObserver(callback: IntegerValueChangedCallback): void; | |
/** | |
* Returns the cursor item, which can be used to navigate over the list of entries. | |
* | |
* @return the requested filter item object | |
* @since API version 1 | |
*/ | |
createCursorItem(): BrowserItem; | |
/** | |
* Returns an object that provides access to a bank of successive entries using a window configured with | |
* the given size, that can be scrolled over the list of entries. | |
* | |
* @param size | |
* the number of simultaneously accessible items | |
* @return the requested item bank object | |
*/ | |
createItemBank(size: number): BrowserItemBank; | |
} | |
// source: com/bitwig/extension/controller/api/BrowserFilterColumn.java | |
/** | |
* Instances of this interface are used to navigate a filter column in the Bitwig Studio browser. | |
* | |
* @since API version 1 | |
*/ | |
interface BrowserFilterColumn extends BrowserColumn { | |
/** | |
* Returns the filter item that represents the top-level all/any/everything wildcard item. | |
* | |
* @return the requested filter item object | |
* @since API version 1 | |
*/ | |
getWildcardItem(): BrowserFilterItem; | |
/** | |
* Returns the cursor filter item, which can be used to navigate over the list of entries. | |
* | |
* @return the requested filter item object | |
* @since API version 1 | |
*/ | |
createCursorItem(): BrowserFilterItem; | |
/** | |
* Returns an object that provides access to a bank of successive entries using a window configured with | |
* the given size, that can be scrolled over the list of entries. | |
* | |
* @param size | |
* the number of simultaneously accessible items | |
* @return the requested item bank object | |
*/ | |
createItemBank(size: number): BrowserFilterItemBank; | |
/** | |
* Value that reports the name of the filter column. | |
* | |
* @since API version2 | |
*/ | |
name(): StringValue; | |
/** | |
* Registers an observer that reports the name of the filter column. | |
* | |
* @param callback | |
* a callback function that receives a single string argument. | |
* @since API version 1 | |
* @deprecated Use {@link #name()} instead. | |
*/ | |
addNameObserver( | |
maxCharacters: number, | |
textWhenUnassigned: string, | |
callback: StringValueChangedCallback | |
): void; | |
} | |
// source: com/bitwig/extension/controller/api/BrowserFilterColumnBank.java | |
/** | |
* Instances of this interface are used to navigate the columns of a Bitwig Studio browser session. | |
* | |
* @since API version 1 | |
* @deprecated Use {@link PopupBrowser} instead. | |
*/ | |
interface BrowserFilterColumnBank extends Bank<BrowserFilterColumn> { | |
/** | |
* Returns the window size that was used to configure the filter column during creation. | |
* | |
* @return the size of the filter column. | |
*/ | |
getSize(): number; | |
/** | |
* Returns the filter column for the given index. | |
* | |
* @param index | |
* the item index, must be in the range `[0..getSize-1]` | |
* @return the requested filter column object | |
*/ | |
getItem(index: number): BrowserFilterColumn; | |
/** | |
* Scrolls the filter columns one item up. | |
* | |
* @since API version 1 | |
*/ | |
scrollUp(): void; | |
/** | |
* Scrolls the filter columns one item down. | |
* | |
* @since API version 1 | |
*/ | |
scrollDown(): void; | |
/** | |
* Scrolls the filter columns one page up. For example if the bank is configured with a window size of 8 | |
* entries and is currently showing items [1..8], calling this method would scroll the window to show | |
* columns [9..16]. | |
* | |
* @since API version 1 | |
*/ | |
scrollPageUp(): void; | |
/** | |
* Scrolls the filter columns one page up. For example if the bank is configured with a window size of 8 | |
* entries and is currently showing items [9..16], calling this method would scroll the window to show | |
* columns [1..8]. | |
* | |
* @since API version 1 | |
*/ | |
scrollPageDown(): void; | |
/** | |
* Registers an observer that reports the current scroll position, more specifically the position of the | |
* first item within the underlying list of columns, that is shown as the first column within the window. | |
* | |
* @param callback | |
* a callback function that receives a single integer number parameter. The parameter reflects | |
* the scroll position, or `-1` in case the column has no content. | |
* @since API version 1 | |
*/ | |
addScrollPositionObserver(callback: IntegerValueChangedCallback): void; | |
/** | |
* Registers an observer that reports if the columns can be scrolled further up. | |
* | |
* @param callback | |
* a callback function that receives a single boolean parameter | |
* @since API version 1 | |
*/ | |
addCanScrollUpObserver(callback: BooleanValueChangedCallback): void; | |
/** | |
* Registers an observer that reports if the columns can be scrolled further down. | |
* | |
* @param callback | |
* a callback function that receives a single boolean parameter | |
* @since API version 1 | |
*/ | |
addCanScrollDownObserver(callback: BooleanValueChangedCallback): void; | |
/** | |
* Registers an observer that reports the underlying total count of columns (not the size of the window). | |
* | |
* @param callback | |
* a callback function that receives a single integer parameter | |
* @since API version 1 | |
*/ | |
addEntryCountObserver(callback: IntegerValueChangedCallback): void; | |
} | |
// source: com/bitwig/extension/controller/api/BrowserFilterItem.java | |
/** | |
* Instances of this interface represent entries in a browser filter column. | |
* | |
* @since API version 1 | |
*/ | |
interface BrowserFilterItem extends BrowserItem { | |
/** | |
* Value that reports the hit count of the filter item. | |
* | |
* @since API version 2 | |
*/ | |
hitCount(): IntegerValue; | |
/** | |
* Registers an observer that reports the hit count of the filter item. | |
* | |
* @param callback | |
* a callback function that receives a single integer parameter | |
* @since API version 1 | |
* @deprecated Use {@link #hitCount()} instead. | |
*/ | |
addHitCountObserver(callback: IntegerValueChangedCallback): void; | |
} | |
// source: com/bitwig/extension/controller/api/BrowserFilterItemBank.java | |
/** | |
* Instances of this interface are used to navigate a filter column in the Bitwig Studio browser. | |
* | |
* @since API version 1 | |
*/ | |
interface BrowserFilterItemBank extends BrowserItemBank<BrowserFilterItem> {} | |
// source: com/bitwig/extension/controller/api/BrowserItem.java | |
/** | |
* Instances of this interface represent entries in a browser filter column. | |
* | |
* @since API version 1 | |
*/ | |
interface BrowserItem extends ObjectProxy { | |
/** | |
* Registers an observer that reports if the item exists. | |
* | |
* @param callback | |
* a callback function that receives a single boolean parameter | |
* @since API version 1 | |
* @deprecated Use {@link #exists()} instead. | |
*/ | |
addExistsObserver(callback: BooleanValueChangedCallback): void; | |
/** | |
* Value that reports the name of the browser item. | |
* | |
* @since API version 2 | |
*/ | |
name(): StringValue; | |
/** | |
* Registers an observer that reports the string value of the browser item. | |
* | |
* @param maxCharacters | |
* @param textWhenUnassigned | |
* @param callback | |
* a callback function that receives a single string argument | |
* @since API version 1 | |
* @deprecated Use {@link #name()} instead. | |
*/ | |
addValueObserver( | |
maxCharacters: number, | |
textWhenUnassigned: string, | |
callback: StringValueChangedCallback | |
): void; | |
/** | |
* Returns an object that provides access to the selected state of the browser item. | |
* | |
* @return an boolean value object | |
* @since API version 1 | |
*/ | |
isSelected(): SettableBooleanValue; | |
} | |
// source: com/bitwig/extension/controller/api/BrowserItemBank.java | |
/** | |
* Instances of this interface are used to navigate a column in the Bitwig Studio browser. | |
* | |
* @since API version 1 | |
*/ | |
interface BrowserItemBank<ItemType extends BrowserItem = BrowserItem> | |
extends Bank<ItemType> { | |
/** | |
* Returns the window size that was used to configure the filter column during creation. | |
* | |
* @return the size of the filter column. | |
* @since API version 1 | |
* @deprecated Use {@link #getSizeOfBank()} instead. | |
*/ | |
getSize(): number; | |
/** | |
* Returns the item for the given index. | |
* | |
* @param index | |
* the item index, must be in the range `[0..getSize-1]` | |
* @return the requested item object | |
* @since API version 1 | |
* @deprecated Use {@link #getItemAt(int)} instead. | |
*/ | |
getItem(index: number): BrowserItem; | |
/** | |
* Scrolls the filter column entries one item up. | |
* | |
* @since API version 1 | |
* @deprecated Use {@link #scrollBackwards()} instead. | |
*/ | |
scrollUp(): void; | |
/** | |
* Scrolls the filter column entries one item down. | |
* | |
* @since API version 1 | |
* @deprecated Use {@link #scrollForwards()} instead. | |
*/ | |
scrollDown(): void; | |
/** | |
* Scrolls the filter column entries one page up. For example if the column is configured with a window | |
* size of 8 entries and is currently showing items [1..8], calling this method would scroll the column to | |
* show items [9..16]. | |
* | |
* @since API version 1 | |
* @deprecated Use {@link #scrollPageBackwards()} instead. | |
*/ | |
scrollPageUp(): void; | |
/** | |
* Scrolls the filter column entries one page up. For example if the column is configured with a window | |
* size of 8 entries and is currently showing items [9..16], calling this method would scroll the column to | |
* show items [1..8]. | |
* | |
* @since API version 1 | |
* @deprecated Use {@link #scrollPageForwards()} instead. | |
*/ | |
scrollPageDown(): void; | |
/** | |
* Registers an observer that reports the current scroll position, more specifically the position of the | |
* first item within the underlying list of entries, that is shown as the first entry within the window. | |
* | |
* @param callback | |
* a callback function that receives a single integer number parameter. The parameter reflects | |
* the scroll position, or `-1` in case the column has no content. | |
* @since API version 1 | |
* @deprecated Use {@link #scrollPosition()} instead. | |
*/ | |
addScrollPositionObserver(callback: IntegerValueChangedCallback): void; | |
/** | |
* Registers an observer that reports if the column entries can be scrolled further up. | |
* | |
* @param callback | |
* a callback function that receives a single boolean parameter | |
* @since API version 1 | |
* @deprecated Use {@link #canScrollBackwards()} instead. | |
*/ | |
addCanScrollUpObserver(callback: BooleanValueChangedCallback): void; | |
/** | |
* Registers an observer that reports if the column entries can be scrolled further down. | |
* | |
* @param callback | |
* a callback function that receives a single boolean parameter | |
* @since API version 1 | |
* @deprecated Use {@link #canScrollForwards()} instead. | |
*/ | |
addCanScrollDownObserver(callback: BooleanValueChangedCallback): void; | |
} | |
// source: com/bitwig/extension/controller/api/BrowserResultsColumn.java | |
/** | |
* Instances of this interface are used to navigate a results column in the Bitwig Studio browser. | |
* | |
* @since API version 1 | |
*/ | |
interface BrowserResultsColumn extends BrowserColumn { | |
/** | |
* Returns the cursor result item, which can be used to navigate over the list of entries. | |
* | |
* @return the requested filter item object | |
* @since API version 1 | |
*/ | |
createCursorItem(): BrowserResultsItem; | |
/** | |
* Returns an object that provides access to a bank of successive entries using a window configured with | |
* the given size, that can be scrolled over the list of entries. | |
* | |
* @param size | |
* the number of simultaneously accessible items | |
* @return the requested item bank object | |
*/ | |
createItemBank(size: number): BrowserResultsItemBank; | |
} | |
// source: com/bitwig/extension/controller/api/BrowserResultsItem.java | |
/** | |
* Instances of this interface represent entries in a browser results column. | |
* | |
* @since API version 1 | |
*/ | |
interface BrowserResultsItem extends BrowserItem {} | |
// source: com/bitwig/extension/controller/api/BrowserResultsItemBank.java | |
/** | |
* Instances of this interface are used to navigate the results column in the Bitwig Studio browser. | |
* | |
* @since API version 1 | |
*/ | |
interface BrowserResultsItemBank | |
extends BrowserItemBank<BrowserResultsItem> {} | |
// source: com/bitwig/extension/controller/api/BrowsingSession.java | |
/** | |
* Instances of this interface are used for browsing material according to a certain type. Possible material | |
* types are devices, presets, samples, multi-samples, clips, or files from your music collection. | |
* | |
* In Bitwig Studio's contextual browser window the search sessions for the various material kinds are shown | |
* in tabs. Just like the tabs in the browser window, instances of this interface provide access to multiple | |
* filter columns and one result column. The filter columns are used to control the content of the results | |
* column. | |
* | |
* @since API version 1 | |
* @deprecated Use {@link PopupBrowser} instead. | |
*/ | |
interface BrowsingSession extends ObjectProxy { | |
/** | |
* Registers an observer that reports if the browser session is available for the current context. | |
* | |
* @param callback | |
* a callback function that receives a single boolean argument. | |
* @since API version 1 | |
* @deprecated Use {@link #exists()} instead. | |
*/ | |
addIsAvailableObserver(callback: BooleanValueChangedCallback): void; | |
/** | |
* Registers an observer that reports if the browser session is currently active. | |
* | |
* @param callback | |
* a callback function that receives a single boolean argument. | |
* @since API version 1 | |
*/ | |
addIsActiveObserver(callback: BooleanValueChangedCallback): void; | |
/** | |
* Activates the given search session, same as calling {@link Browser#activateSession | |
* Browser#activateSession(this)}. Please note that only one search session can be active at a time. | |
* | |
* @since API version 1 | |
* @see Browser#activateSession | |
*/ | |
activate(): void; | |
/** | |
* Returns an object that represents the column which shows the results according to the current filter | |
* settings in Bitwig Studio's contextual browser. | |
* | |
* @return the requested results browser column. | |
* @since API version 1 | |
*/ | |
getResults(): BrowserResultsColumn; | |
/** | |
* Returns an object used for navigating the entries in the results column of Bitwig Studio's contextual | |
* browser. | |
* | |
* @return the requested cursor object. | |
* @since API version 1 | |
*/ | |
getCursorResult(): CursorBrowserResultItem; | |
/** | |
* Returns an object that represents the currently loaded material item. | |
* | |
* @return the requested settled result object | |
* @since API version 1 | |
*/ | |
getSettledResult(): BrowserResultsItem; | |
/** | |
* Returns an object that can be used to navigate over the various filter sections of the browsing session. | |
* | |
* @return the requested filter cursor object | |
*/ | |
getCursorFilter(): CursorBrowserFilterColumn; | |
/** | |
* Returns an object that provided bank-wise navigation of filter columns. | |
* | |
* @return the requested file column bank object | |
* @since API version 1 | |
* @param numColumns | |
* the number of columns that are simultaneously accessible. | |
*/ | |
createFilterBank(numColumns: number): BrowserFilterColumnBank; | |
/** | |
* Value that reports the number of results available for the current filter settings. | |
* | |
* @since API version 2 | |
*/ | |
hitCount(): IntegerValue; | |
/** | |
* Registers an observer that reports the number of results available for the current filter settings. | |
* | |
* @param callback | |
* a callback function that receives a single integer argument. | |
* @since API version 1 | |
* @deprecated Use {@link #hitCount()} instead. | |
*/ | |
addHitCountObserver(callback: IntegerValueChangedCallback): void; | |
} | |
// source: com/bitwig/extension/controller/api/BrowsingSessionBank.java | |
/** | |
* Instances of this interface are used to navigate the available sessions in Bitwig Studio's contextual | |
* browser. The sessions are shown as tabs in the graphical user interface of the browser. | |
* | |
* @since API version 1 | |
*/ | |
interface BrowsingSessionBank extends Bank<GenericBrowsingSession> { | |
/** | |
* Returns the window size that was used to configure the session bank during creation. | |
* | |
* @return the size of the session bank. | |
* @since API version 1 | |
*/ | |
getSize(): number; | |
/** | |
* Returns the browser session for the given index. | |
* | |
* @param index | |
* the session index, must be in the range `[0..getSize-1]` | |
* @return the requested browser session object | |
* @since API version 1 | |
*/ | |
getSession(index: number): GenericBrowsingSession; | |
/** | |
* Scrolls the browser sessions one item up. | |
* | |
* @since API version 1 | |
* @deprecated Use {@link #scrollBackwards()} instead. | |
*/ | |
scrollUp(): void; | |
/** | |
* Scrolls the browser sessions one item down. | |
* | |
* @since API version 1 | |
* @deprecated Use {@link #canScrollForwards()} instead. | |
*/ | |
scrollDown(): void; | |
/** | |
* Scrolls the browser sessions one page up. For example if the bank is configured with a window size of 8 | |
* entries and is currently showing items [1..8], calling this method would scroll the window to show items | |
* [9..16]. | |
* | |
* @since API version 1 | |
* @deprecated Use {@link #scrollPageBackwards()} instead. | |
*/ | |
scrollPageUp(): void; | |
/** | |
* Scrolls the filter columns one page up. For example if the bank is configured with a window size of 8 | |
* entries and is currently showing items [9..16], calling this method would scroll the window to show | |
* items [1..8]. | |
* | |
* @since API version 1 | |
* @deprecated Use {@link #scrollPageForwards()} instead. | |
*/ | |
scrollPageDown(): void; | |
/** | |
* Registers an observer that reports the current scroll position, more specifically the position of the | |
* first item within the underlying list of browser sessions, that is shown as the first session within the | |
* window. | |
* | |
* @param callback | |
* a callback function that receives a single integer number parameter. The parameter reflects | |
* the scroll position, or `-1` in case the column has no content. | |
* @since API version 1 | |
* @deprecated Use {@link #scrollPosition()} instead. | |
*/ | |
addScrollPositionObserver(callback: IntegerValueChangedCallback): void; | |
/** | |
* Registers an observer that reports if the browser sessions can be scrolled further up. | |
* | |
* @param callback | |
* a callback function that receives a single boolean parameter | |
* @since API version 1 | |
* @deprecated Use {@link #canScrollBackwards()} instead. | |
*/ | |
addCanScrollUpObserver(callback: BooleanValueChangedCallback): void; | |
/** | |
* Registers an observer that reports if the browser sessions can be scrolled further down. | |
* | |
* @param callback | |
* a callback function that receives a single boolean parameter | |
* @since API version 1 | |
* @deprecated Use {@link #canScrollForwards()} instead. | |
*/ | |
addCanScrollDownObserver(callback: BooleanValueChangedCallback): void; | |
/** | |
* Registers an observer that reports the underlying total count of browser sessions (not the size of the | |
* window). | |
* | |
* @param callback | |
* a callback function that receives a single integer parameter | |
* @since API version 1 | |
* @deprecated Use {@link #itemCount()} instead. | |
*/ | |
addEntryCountObserver(callback: IntegerValueChangedCallback): void; | |
} | |
// source: com/bitwig/extension/controller/api/ChainSelector.java | |
/** | |
* This interface represents a chain selector device which can be: | |
* - instrument selector | |
* - effect selector | |
* | |
* @since API version 6 | |
*/ | |
interface ChainSelector extends ObjectProxy, Cursor { | |
/** | |
* The index of the active chain in the chain selector. | |
* In case the chain selector has no chains or the value is not connected to the chain selector, | |
* then the value will be 0. | |
* | |
* @since API version 6 | |
*/ | |
activeChainIndex(): SettableIntegerValue; | |
/** | |
* The number of chains in the chain selector. | |
* | |
* @since API version 6 | |
*/ | |
chainCount(): IntegerValue; | |
/** | |
* The active device layer. | |
* | |
* @since API version 6 | |
*/ | |
activeChain(): DeviceLayer; | |
/** | |
* Cycle to the next chain. | |
* If the current active chain is the last one, then moves to the first one. | |
* | |
* @since API version 6 | |
*/ | |
cycleNext(): void; | |
/** | |
* Cycle to the previous chain. | |
* If the current active chain the first one, then moves to the last one. | |
* | |
* @since API version 6 | |
*/ | |
cyclePrevious(): void; | |
} | |
// source: com/bitwig/extension/controller/api/Channel.java | |
import ColorValueChangedCallback = com.bitwig.extension.callback.ColorValueChangedCallback; | |
import NotePlaybackCallback = com.bitwig.extension.callback.NotePlaybackCallback; | |
/** | |
* This interface defines access to the common attributes and operations of channels, such as tracks or nested | |
* device channels. | |
* | |
* @since API version 1 | |
*/ | |
interface Channel extends DeviceChain, DeleteableObject { | |
/** | |
* Returns an object that represents the activated state of the channel. | |
* | |
* @return an object that provides access to the channels activated state. | |
* @since API version 1 | |
*/ | |
isActivated(): SettableBooleanValue; | |
/** | |
* Gets a representation of the channels volume control. | |
* | |
* @return an object that provides access to the channels volume control. | |
* @since API version 1 | |
* @deprecated Use {@link #volume()} instead. | |
*/ | |
getVolume(): Parameter; | |
/** | |
* Gets a representation of the channels volume control. | |
* | |
* @return an object that provides access to the channels volume control. | |
* @since API version 5 | |
*/ | |
volume(): Parameter; | |
/** | |
* Gets a representation of the channels pan control. | |
* | |
* @return an object that provides access to the channels pan control. | |
* @since API version 1 | |
* @deprecated Use {@link #pan()} instead. | |
*/ | |
getPan(): Parameter; | |
/** | |
* Gets a representation of the channels pan control. | |
* | |
* @return an object that provides access to the channels pan control. | |
* @since API version 5 | |
*/ | |
pan(): Parameter; | |
/** | |
* Gets a representation of the channels mute control. | |
* | |
* @return an object that provides access to the channels mute control. | |
* @since API version 1 | |
* @deprecated Use {@link #mute()} instead. | |
*/ | |
getMute(): SettableBooleanValue; | |
/** | |
* Gets a representation of the channels mute control. | |
* | |
* @return an object that provides access to the channels mute control. | |
* @since API version 5 | |
*/ | |
mute(): SettableBooleanValue; | |
/** | |
* Gets a representation of the channels solo control. | |
* | |
* @return an object that provides access to the channels solo control. | |
* @since API version 1 | |
* @deprecated Use {@link #solo()} instead. | |
*/ | |
getSolo(): SoloValue; | |
/** | |
* Gets a representation of the channels solo control. | |
* | |
* @return an object that provides access to the channels solo control. | |
* @since API version 1 | |
*/ | |
solo(): SoloValue; | |
/** | |
* True if the current channel is being muted by an other channel with solo on. | |
* @since API version 10 | |
*/ | |
isMutedBySolo(): BooleanValue; | |
/** | |
* Registers an observer for the VU-meter of this track. | |
* | |
* @param range | |
* the number of steps to which the reported values should be scaled. For example a range of 128 | |
* would cause the callback to be called with values between 0 and 127. | |
* @param channel | |
* 0 for left channel, 1 for right channel, -1 for the sum of both | |
* @param peak | |
* when `true` the peak value is reported, otherwise the RMS value | |
* @param callback | |
* a callback function that takes a single numeric argument. The value is in the range | |
* [0..range-1]. | |
* @throws com.bitwig.base.control_surface.ControlSurfaceException | |
* @since API version 1 | |
*/ | |
addVuMeterObserver( | |
range: number, | |
channel: number, | |
peak: boolean, | |
callback: IntegerValueChangedCallback | |
): void; | |
/** | |
* Registers an observer that reports notes when they are played on the channel. | |
* | |
* @param callback | |
* a callback function that receives three parameters: 1. on/off state (boolean), 2. key (int), | |
* and 3. velocity (float). | |
* @since API version 1 | |
* | |
* @deprecated use {@link #playingNotes()} instead. | |
*/ | |
addNoteObserver(callback: NotePlaybackCallback): void; | |
/** | |
* Returns an array of the playing notes. | |
* | |
* @since API version 2 | |
*/ | |
playingNotes(): PlayingNoteArrayValue; | |
/** | |
* Registers an observer that receives notifications about the color of the channel. The callback gets | |
* called at least once immediately after this function call to report the current color. Additional calls | |
* are fired each time the color changes. | |
* | |
* @param callback | |
* a callback function that receives three float parameters in the range [0..1]: 1. red, 2. | |
* green, and 3. blue. | |
* @since API version 1 | |
* @deprecated use {@link #color()} instead. | |
*/ | |
addColorObserver(callback: ColorValueChangedCallback): void; | |
/** | |
* Get the color of the channel. | |
* | |
* @since API version 2 | |
*/ | |
color(): SettableColorValue; | |
/** | |
* Gets a {@link SendBank} that can be used to navigate the sends of this channel. | |
* | |
* @since API version 2 | |
*/ | |
sendBank(): SendBank; | |
/** | |
* Gets a representation of the channels send control at the given index. | |
* | |
* @param index | |
* the index of the send, must be valid | |
* @return an object that provides access to the requested send control. | |
* @since API version 1 | |
* @deprecated Use {@link #sendBank()} instead. | |
*/ | |
getSend(index: number): Send; | |
/** | |
* Duplicates the track. | |
* | |
* @since API version 1 | |
*/ | |
duplicate(): void; | |
/** | |
* Selects the device chain in the Bitwig Studio mixer, in case it is a selectable object. | |
* | |
* @since API version 1 | |
*/ | |
selectInMixer(): void; | |
/** | |
* Registers an observer that reports if the device chain is selected in Bitwig Studio mixer. | |
* | |
* @param callback | |
* a callback function that takes a single boolean parameter. | |
* @since API version 1 | |
*/ | |
addIsSelectedInMixerObserver(callback: BooleanValueChangedCallback): void; | |
/** | |
* Tries to scroll the contents of the arrangement editor so that the channel becomes visible. | |
* | |
* @since API version 1 | |
*/ | |
makeVisibleInArranger(): void; | |
/** | |
* Tries to scroll the contents of the mixer panel so that the channel becomes visible. | |
* | |
* @since API version 1 | |
*/ | |
makeVisibleInMixer(): void; | |
} | |
// source: com/bitwig/extension/controller/api/ChannelBank.java | |
/** | |
* A channel bank provides access to a range of channels in Bitwig Studio, such as tracks or device layers. | |
* Instances of channel bank are typically configured with support for a fixed number of channels and | |
* represent an excerpt of a larger list of channels. Various methods are provided for scrolling to different | |
* sections of the channel list. It basically acts like a window moving over the list of channels. | |
* | |
* @since API version 1 | |
*/ | |
interface ChannelBank<ChannelType extends Channel = Channel> | |
extends ObjectProxy, | |
Bank<ChannelType> { | |
/** | |
* Returns the channel for the given index. | |
* | |
* @param indexInBank | |
* the channel index within this bank, not the index within the list of all Bitwig Studio | |
* channels. Must be in the range [0..sizeOfBank-1]. | |
* @return the channel object | |
* @since API version 1 | |
* @deprecated Use {@link #getItemAt(int)} instead. | |
*/ | |
getChannel(indexInBank: number): Channel; | |
/** | |
* Sets the step size used for scrolling the channel bank. | |
* | |
* @param stepSize | |
* the step size used for scrolling. Default is `1`. | |
* @since API version 1 | |
*/ | |
setChannelScrollStepSize(stepSize: number): void; | |
/** | |
* Scrolls the channels one page up. For example if the channel bank is configured with a window size of 8 | |
* channels and is currently showing channel [1..8], calling this method would scroll the channel bank to | |
* show channel [9..16]. | |
* | |
* @since API version 1 | |
* @deprecated {@link #scrollPageBackwards()} | |
*/ | |
scrollChannelsPageUp(): void; | |
/** | |
* Scrolls the channels one page up. For example if the channel bank is configured with a window size of 8 | |
* channels and is currently showing channel [9..16], calling this method would scroll the channel bank to | |
* show channel [1..8]. | |
* | |
* @since API version 1 | |
* @deprecated {@link #scrollPageForwards()} | |
*/ | |
scrollChannelsPageDown(): void; | |
/** | |
* Scrolls the channel window up by the amount specified via {@link #setChannelScrollStepSize(int)} (by | |
* default one channel). | |
* | |
* @since API version 1 | |
* @deprecated {@link #scrollBackwards()} | |
*/ | |
scrollChannelsUp(): void; | |
/** | |
* Scrolls the channel window down by the amount specified via {@link #setChannelScrollStepSize(int)} (by | |
* default one channel). | |
* | |
* @since API version 1 | |
* @deprecated {@link #scrollForwards()} | |
*/ | |
scrollChannelsDown(): void; | |
/** | |
* Scrolls the channel bank window so that the channel at the given position becomes visible. | |
* | |
* @param position | |
* the index of the channel within the underlying full list of channels (not the index within the | |
* bank). The position is typically directly related to the layout of the channel list in Bitwig | |
* Studio, starting with zero in case of the first channel. | |
* @since API version 1 | |
* @deprecated {@link #scrollPosition()} | |
*/ | |
scrollToChannel(position: number): void; | |
/** | |
* Value that reports the current scroll position, more specifically the position of the | |
* first channel within the underlying list of channels, that is shown as channel zero within the bank. | |
* | |
* @since API version 2 | |
* @deprecated {@link #scrollPosition()} | |
*/ | |
channelScrollPosition(): IntegerValue; | |
/** | |
* Registers an observer that reports the current scroll position, more specifically the position of the | |
* first channel within the underlying list of channels, that is shown as channel zero within the bank. | |
* | |
* @param callback | |
* a callback function that receives a single integer number parameter | |
* @param valueWhenUnassigned | |
* a default value for the channel position that gets reported in case the channel bank is not | |
* connected to a list of channels in Bitwig Studio. | |
* @since API version 1 | |
* @deprecated Use {@link #channelScrollPosition()} instead | |
*/ | |
addChannelScrollPositionObserver( | |
callback: IntegerValueChangedCallback, | |
valueWhenUnassigned: number | |
): void; | |
/** | |
* Value that reports if the channel bank can be scrolled further down. | |
* | |
* @since API version 2 | |
*/ | |
canScrollChannelsUp(): BooleanValue; | |
/** | |
* Registers an observer that reports if the channel bank can be scrolled further up. | |
* | |
* @param callback | |
* a callback function that receives a single boolean parameter | |
* @since API version 1 | |
* @deprecated Use canScrollChannelsUp().addValueObserver(callback) | |
*/ | |
addCanScrollChannelsUpObserver(callback: BooleanValueChangedCallback): void; | |
/** | |
* Value that reports if the channel bank can be scrolled further down. | |
* | |
* @since API version 2 | |
*/ | |
canScrollChannelsDown(): BooleanValue; | |
/** | |
* Registers an observer that reports if the channel bank can be scrolled further down. | |
* | |
* @param callback | |
* a callback function that receives a single boolean parameter | |
* @since API version 1 | |
* @deprecated Use {@link #canScrollChannelsDown()}.addValueObserver(callback) | |
*/ | |
addCanScrollChannelsDownObserver( | |
callback: BooleanValueChangedCallback | |
): void; | |
/** | |
* Value that reports the underlying total channel count (not the number of channels available in the bank | |
* window). | |
* | |
* @since API version 2 | |
*/ | |
channelCount(): IntegerValue; | |
/** | |
* Registers an observer that reports the underlying total channel count (not the number of channels | |
* available in the bank window). | |
* | |
* @param callback | |
* a callback function that receives a single integer parameter | |
* @since API version 1 | |
* @deprecated Use {@link #channelCount()}.addValueObserver(callback) | |
*/ | |
addChannelCountObserver(callback: IntegerValueChangedCallback): void; | |
/** | |
* Scrolls the sends one page up. | |
* | |
* @since API version 1 | |
* @deprecated Does nothing. | |
*/ | |
scrollSendsPageUp(): void; | |
/** | |
* Scrolls the sends one page down. | |
* | |
* @since API version 1 | |
* @deprecated Does nothing. | |
*/ | |
scrollSendsPageDown(): void; | |
/** | |
* Scrolls the sends one step up. | |
* | |
* @since API version 1 | |
* @deprecated Does nothing. | |
*/ | |
scrollSendsUp(): void; | |
/** | |
* Scrolls the sends one step down. | |
* | |
* @since API version 1 | |
* @deprecated Does nothing. | |
*/ | |
scrollSendsDown(): void; | |
/** | |
* Scrolls to the send. | |
* | |
* @param position | |
* the index of the send. | |
* @since API version 1 | |
* @deprecated Does nothing. | |
*/ | |
scrollToSend(position: number): void; | |
/** | |
* Registers an observer that reports if the sends window can be scrolled further up. | |
* | |
* @param callback | |
* a callback function that takes a single boolean parameter | |
* @since API version 1 | |
* @deprecated Does nothing. | |
*/ | |
addCanScrollSendsUpObserver(callback: BooleanValueChangedCallback): void; | |
/** | |
* Registers an observer that reports if the sends window can be scrolled further down. | |
* | |
* @param callback | |
* a callback function that takes a single boolean parameter | |
* @since API version 1 | |
* @deprecated Does nothing. | |
*/ | |
addCanScrollSendsDownObserver(callback: BooleanValueChangedCallback): void; | |
/** | |
* Registers an observer that reports the underlying total send count (not the number of sends available in | |
* the bank window). | |
* | |
* @param callback | |
* a callback function that receives a single integer parameter | |
* @since API version 1 | |
* @deprecated Does nothing. | |
*/ | |
addSendCountObserver(callback: IntegerValueChangedCallback): void; | |
} | |
// source: com/bitwig/extension/controller/api/Clip.java | |
import NoteStepChangedCallback = com.bitwig.extension.callback.NoteStepChangedCallback; | |
import StepDataChangedCallback = com.bitwig.extension.callback.StepDataChangedCallback; | |
/** | |
* An interface that provides access to the contents of a clip in Bitwig Studio. | |
* | |
* The note content of the clip is exposed in terms of steps and keys, mainly targeted to x-y-grid | |
* applications such as step sequencers. | |
* | |
* @since API version 1 | |
*/ | |
interface Clip extends ObjectProxy { | |
/** | |
* Scroll the note grid so that the given key becomes the key with y position of 0. | |
* | |
* Note: This can cause some parts of the grid to represent invalid keys as there is no clipping | |
* | |
* @param key | |
* the key that should be the new key with a y position of 0. This must be a value in the range | |
* 0...127. | |
* @since API version 1 | |
*/ | |
scrollToKey(key: number): void; | |
/** | |
* Scrolls the note grid keys one page up. For example if the note grid is configured to show 12 keys and | |
* is currently showing keys [36..47], calling this method would scroll the note grid to key range | |
* [48..59]. | |
* | |
* @since API version 1 | |
*/ | |
scrollKeysPageUp(): void; | |
/** | |
* Scrolls the note grid keys one page down. For example if the note grid is configured to show 12 keys and | |
* is currently showing keys [36..47], calling this method would scroll the note grid to key range | |
* [48..59]. | |
* | |
* @since API version 1 | |
*/ | |
scrollKeysPageDown(): void; | |
/** | |
* Scrolls the note grid keys one key up. For example if the note grid is configured to show 12 keys and is | |
* currently showing keys [36..47], calling this method would scroll the note grid to key range [37..48]. | |
* | |
* @since API version 1 | |
*/ | |
scrollKeysStepUp(): void; | |
/** | |
* Scrolls the note grid keys one key down. For example if the note grid is configured to show 12 keys and | |
* is currently showing keys [36..47], calling this method would scroll the note grid to key range | |
* [35..46]. | |
* | |
* @since API version 1 | |
*/ | |
scrollKeysStepDown(): void; | |
/** | |
* Scroll the note grid so that the given step becomes visible. | |
* | |
* @param step | |
* the step that should become visible | |
* @since API version 1 | |
*/ | |
scrollToStep(step: number): void; | |
/** | |
* Scrolls the note grid steps one page forward. For example if the note grid is configured to show 16 | |
* steps and is currently showing keys [0..15], calling this method would scroll the note grid to key range | |
* [16..31]. | |
* | |
* @since API version 1 | |
*/ | |
scrollStepsPageForward(): void; | |
/** | |
* Scrolls the note grid steps one page backwards. For example if the note grid is configured to show 16 | |
* steps and is currently showing keys [16..31], calling this method would scroll the note grid to key | |
* range [0..16]. | |
* | |
* @since API version 1 | |
*/ | |
scrollStepsPageBackwards(): void; | |
/** | |
* Scrolls the note grid steps one step forward. For example if the note grid is configured to show 16 | |
* steps and is currently showing keys [0..15], calling this method would scroll the note grid to key range | |
* [1..16]. | |
* | |
* @since API version 1 | |
*/ | |
scrollStepsStepForward(): void; | |
/** | |
* Scrolls the note grid steps one step backwards. For example if the note grid is configured to show 16 | |
* steps and is currently showing keys [1..16], calling this method would scroll the note grid to key range | |
* [0..15]. | |
* | |
* @since API version 1 | |
*/ | |
scrollStepsStepBackwards(): void; | |
/** | |
* Value that reports if the note grid keys can be scrolled further up. | |
* | |
* @since API version 2 | |
*/ | |
canScrollKeysUp(): BooleanValue; | |
/** | |
* Registers an observer that reports if the note grid keys can be scrolled further up. | |
* | |
* @param callback | |
* a callback function that receives a single boolean parameter. | |
* @since API version 1 | |
* @deprecated Use {@link #canScrollKeysUp()} instead. | |
*/ | |
addCanScrollKeysUpObserver(callback: BooleanValueChangedCallback): void; | |
/** | |
* Value that reports if the note grid keys can be scrolled further down. | |
* | |
* @since API version 2 | |
*/ | |
canScrollKeysDown(): BooleanValue; | |
/** | |
* Registers an observer that reports if the note grid keys can be scrolled further down. | |
* | |
* @param callback | |
* a callback function that receives a single boolean parameter. | |
* @since API version 1 | |
* @deprecated Use {@link #canScrollKeysDown()} instead. | |
*/ | |
addCanScrollKeysDownObserver(callback: BooleanValueChangedCallback): void; | |
/** | |
* Value that reports if the note grid if the note grid steps can be scrolled backwards. | |
* | |
* @since API version 2 | |
*/ | |
canScrollStepsBackwards(): BooleanValue; | |
/** | |
* Registers an observer that reports if the note grid steps can be scrolled backwards. | |
* | |
* @param callback | |
* a callback function that receives a single boolean parameter. | |
* @since API version 1 | |
* @deprecated Use {@link #canScrollStepsBackwards()} instead. | |
*/ | |
addCanScrollStepsBackwardsObserver( | |
callback: BooleanValueChangedCallback | |
): void; | |
/** | |
* Value that reports if the note grid if the note grid steps can be scrolled forwards. | |
* | |
* @since API version 2 | |
*/ | |
canScrollStepsForwards(): BooleanValue; | |
/** | |
* Registers an observer that reports if the note grid keys can be scrolled forward. | |
* | |
* @param callback | |
* a callback function that receives a single boolean parameter. | |
* @since API version 1 | |
* @deprecated Use {@link #canScrollStepsForwards()} instead. | |
*/ | |
addCanScrollStepsForwardObserver( | |
callback: BooleanValueChangedCallback | |
): void; | |
/** | |
* @see #toggleStep(int, int, int, int) channel will be 0. | |
* @since API version 1 | |
*/ | |
toggleStep(x: number, y: number, insertVelocity: number): void; | |
/** | |
* Toggles the existence of a note in the note grid cell specified by the given x and y arguments. | |
* | |
* @param channel the MIDI channel, between 0 and 15. | |
* @param x | |
* the x position within the note grid, defining the step/time of the target note | |
* @param y | |
* the y position within the note grid, defining the key of the target note | |
* @param insertVelocity | |
* the velocity of the target note in case a new note gets inserted | |
* @since API version 10 | |
*/ | |
toggleStep( | |
channel: number, | |
x: number, | |
y: number, | |
insertVelocity: number | |
): void; | |
/** | |
* @see #setStep(int, int, int, int, double) channel will be 0. | |
* @since API version 1 | |
*/ | |
setStep( | |
x: number, | |
y: number, | |
insertVelocity: number, | |
insertDuration: number | |
): void; | |
/** | |
* Creates a note in the grid cell specified by the given x and y arguments. Existing notes are | |
* overwritten. | |
* | |
* @param x | |
* the x position within the note grid, defining the step/time of the new note | |
* @param y | |
* the y position within the note grid, defining the key of the new note | |
* @param insertVelocity | |
* the velocity of the new note | |
* @param insertDuration | |
* the duration of the new note | |
* @since API version 1 | |
*/ | |
setStep( | |
channel: number, | |
x: number, | |
y: number, | |
insertVelocity: number, | |
insertDuration: number | |
): void; | |
/** | |
* @see #clearStep(int, int, int) | |
* @since API version 1 | |
*/ | |
clearStep(x: number, y: number): void; | |
/** | |
* Removes the note in the grid cell specified by the given x and y arguments. Calling this method does | |
* nothing in case no note exists at the given x-y-coordinates. | |
* | |
* @param channel MIDI channel, from 0 to 15. | |
* @param x | |
* the x position within the note grid, defining the step/time of the target note | |
* @param y | |
* the y position within the note grid, defining the key of the target note | |
* @since API version 10 | |
*/ | |
clearStep(channel: number, x: number, y: number): void; | |
/** | |
* Removes all notes in the grid started on the step x. | |
* | |
* @since API version 10 | |
*/ | |
clearStepsAtX(channel: number, x: number): void; | |
/** | |
* @see #clearStepsAtY(int, int) channel will be 0. | |
* @since API version 1 | |
* @deprecated Use {@link #clearStepsAtY(int, int)} instead. | |
*/ | |
clearSteps(y: number): void; | |
/** | |
* Removes all notes in the grid row specified by the given y argument. | |
* | |
* @param channel MIDI channel, from 0 to 15. | |
* @param y the y position within the note grid, defining the key of the target note | |
* @since API version 10 | |
*/ | |
clearStepsAtY(channel: number, y: number): void; | |
/** | |
* Removes all notes in the grid. | |
* | |
* @since API version 1 | |
*/ | |
clearSteps(): void; | |
/** | |
* @see #selectStepContents(int, int, int, boolean) channel will be 0. | |
* @since API version 1 | |
*/ | |
selectStepContents( | |
x: number, | |
y: number, | |
clearCurrentSelection: boolean | |
): void; | |
/** | |
* Selects the note in the grid cell specified by the given x and y arguments, in case there actually is a | |
* note at the given x-y-coordinates. | |
* | |
* @param channel MIDI channel, from 0 to 15. | |
* @param x | |
* the x position within the note grid, defining the step/time of the target note | |
* @param y | |
* the y position within the note grid, defining the key of the target note | |
* @param clearCurrentSelection | |
* `true` if the existing selection should be cleared, {@false} if the note should be added to | |
* the current selection. | |
* @since API version 10 | |
*/ | |
selectStepContents( | |
channel: number, | |
x: number, | |
y: number, | |
clearCurrentSelection: boolean | |
): void; | |
/** | |
* Sets the beat time duration that is represented by one note grid step. | |
* | |
* @param lengthInBeatTime | |
* the length of one note grid step in beat time. | |
* @since API version 1 | |
*/ | |
setStepSize(lengthInBeatTime: number): void; | |
/** | |
* Registers an observer that reports which note grid steps/keys contain notes. | |
* | |
* @param callback | |
* A callback function that receives three parameters: 1. the x (step) coordinate within the note | |
* grid (integer), 2. the y (key) coordinate within the note grid (integer), and 3. an integer | |
* value that indicates if the step is empty (`0`) or if a note continues playing (`1`) or starts | |
* playing (`2`). | |
* @since API version 1 | |
* @see #addNoteStepObserver(NoteStepChangedCallback) which will provide more details. | |
*/ | |
addStepDataObserver(callback: StepDataChangedCallback): void; | |
/** | |
* Registers an observer that reports which note grid steps/keys contain notes. | |
* | |
* @param callback A callback function that receives the StepInfo. | |
* @since API version 10 | |
*/ | |
addNoteStepObserver(callback: NoteStepChangedCallback): void; | |
/** | |
* Value that reports note grid cells as they get played by the sequencer. | |
* | |
* @since API version 2 | |
*/ | |
playingStep(): IntegerValue; | |
/** | |
* Registers an observer that reports note grid cells as they get played by the sequencer. | |
* | |
* @param callback | |
* A callback function that receives a single integer parameter, which reflects the step | |
* coordinate that is played, or -1 if no step is associated with the current playback position. | |
* @since API version 1 | |
* @deprecated Use {@link #playingStep()} instead. | |
*/ | |
addPlayingStepObserver(callback: IntegerValueChangedCallback): void; | |
/** | |
* Updates the name of the clip. | |
* | |
* @param name | |
* the new clip name | |
* @since API version 1 | |
*/ | |
setName(name: string): void; | |
/** | |
* Returns shuffle settings of the clip. | |
* | |
* @return the value object that represents the clips shuffle setting. | |
* @since API version 1 | |
*/ | |
getShuffle(): SettableBooleanValue; | |
/** | |
* Returns accent setting of the clip. | |
* | |
* @return the ranged value object that represents the clips accent setting. | |
* @since API version 1 | |
*/ | |
getAccent(): SettableRangedValue; | |
/** | |
* Returns the start of the clip in beat time. | |
* | |
* @return the beat time object that represents the clips start time. | |
* @since API version 1 | |
*/ | |
getPlayStart(): SettableBeatTimeValue; | |
/** | |
* Returns the length of the clip in beat time. | |
* | |
* @return the beat time object that represents the duration of the clip. | |
* @since API version 1 | |
*/ | |
getPlayStop(): SettableBeatTimeValue; | |
/** | |
* Returns an object that provides access to the loop enabled state of the clip. | |
* | |
* @return a boolean value object. | |
* @since API version 1 | |
*/ | |
isLoopEnabled(): SettableBooleanValue; | |
/** | |
* Returns the loop start time of the clip in beat time. | |
* | |
* @return the beat time object that represents the clips loop start time. | |
* @since API version 1 | |
*/ | |
getLoopStart(): SettableBeatTimeValue; | |
/** | |
* Returns the loop length of the clip in beat time. | |
* | |
* @return the beat time object that represents the clips loop length. | |
* @since API version 1 | |
*/ | |
getLoopLength(): SettableBeatTimeValue; | |
/** | |
* Registers an observer that reports the clip color. | |
* | |
* @param callback | |
* a callback function that receives three parameters: 1. the red coordinate of the RBG color | |
* value, 2. the green coordinate of the RBG color value, and 3. the blue coordinate of the RBG | |
* color value | |
* @since API version 1 | |
* @deprecated use {@link #color()} instead. | |
*/ | |
addColorObserver(callback: ColorValueChangedCallback): void; | |
/** | |
* Get the color of the clip. | |
* | |
* @since API version 2 | |
*/ | |
color(): SettableColorValue; | |
/** | |
* Duplicates the clip. | |
* | |
* @since API version 1 | |
*/ | |
duplicate(): void; | |
/** | |
* Duplicates the content of the clip. | |
* | |
* @since API version 1 | |
*/ | |
duplicateContent(): void; | |
/** | |
* Transposes all notes in the clip by the given number of semitones. | |
* | |
* @param semitones | |
* the amount of semitones to transpose, can be a positive or negative integer value. | |
* @since API version 1 | |
*/ | |
transpose(semitones: number): void; | |
/** | |
* Quantize the start time of all notes in the clip according to the given amount. The note lengths remain | |
* the same as before. | |
* | |
* @param amount | |
* a factor between `0` and `1` that allows to morph between the original note start and the | |
* quantized note start. | |
* @since API version 1 | |
*/ | |
quantize(amount: number): void; | |
/** | |
* Gets the track that contains the clip. | |
* | |
* @return a track object that represents the track which contains the clip. | |
* @since API version 1 | |
*/ | |
getTrack(): Track; | |
/** | |
* Setting for the default launch quantization. | |
* | |
* Possible values are `"default"`, `"none"`, `"8"`, `"4"`, `"2"`, `"1"`, `"1/2"`, `"1/4"`, `"1/8"`, | |
* `"1/16"`. | |
* | |
* @since API version 8 | |
*/ | |
launchQuantization(): SettableEnumValue; | |
/** | |
* Setting "Q to loop" in the inspector. | |
* | |
* @since API version 8 | |
*/ | |
useLoopStartAsQuantizationReference(): SettableBooleanValue; | |
/** | |
* Setting "Legato" from the inspector. | |
* | |
* @since API version 8 | |
* @deprecated Use {@link #launchMode()} instead. | |
*/ | |
launchLegato(): SettableBooleanValue; | |
/** | |
* Setting "Launch Mode" from the inspector. | |
* Possible values are: | |
* - play_with_quantization | |
* - continue_immediately | |
* - continue_with_quantization | |
* | |
* @since API version 9 | |
*/ | |
launchMode(): SettableEnumValue; | |
/** | |
* Get step info | |
* | |
* @since API version 10 | |
*/ | |
getStep(channel: number, x: number, y: number): NoteStep; | |
/** | |
* Launches the clip. | |
* | |
* @since API version 10 | |
*/ | |
launch(): void; | |
/** | |
* Get the clip launcher slot containing the clip. | |
* | |
* @since API version 10 | |
*/ | |
clipLauncherSlot(): ClipLauncherSlot; | |
} | |
// source: com/bitwig/extension/controller/api/ClipBrowsingSession.java | |
/** | |
* Instances of this interface are used for browsing clips, including access to all filter columns and the | |
* result column as shown in the 'Clips' tab of Bitwig Studio's contextual browser window. | |
* | |
* @see BrowsingSession | |
* @since API version 1 | |
* @deprecated Use {@link PopupBrowser} instead. | |
*/ | |
interface ClipBrowsingSession extends BrowsingSession { | |
/** | |
* Returns the file type filter as shown in the category column of the browser. | |
* | |
* @return the requested file type filter object. | |
* @since API version 1 | |
*/ | |
getFileTypeFilter(): BrowserFilterColumn; | |
} | |
// source: com/bitwig/extension/controller/api/ClipLauncherSlot.java | |
interface ClipLauncherSlot extends ClipLauncherSlotOrScene { | |
/** | |
* Value that reports whether this slot is selected or not. | |
* | |
* @since API version 2 | |
*/ | |
isSelected(): BooleanValue; | |
/** | |
* Value that reports whether this slot has content or not. | |
* | |
* @since API version 2 | |
*/ | |
hasContent(): BooleanValue; | |
/** | |
* Value that reports whether this slot is playing or not. | |
* | |
* @since API version 2 | |
*/ | |
isPlaying(): BooleanValue; | |
/** | |
* Value that reports whether this slot is queued for playback or not. | |
* | |
* @since API version 2 | |
*/ | |
isPlaybackQueued(): BooleanValue; | |
/** | |
* Value that reports whether this slot is recording or not. | |
* | |
* @since API version 2 | |
*/ | |
isRecording(): BooleanValue; | |
/** | |
* Value that reports whether this slot is queued for recording or not. | |
* | |
* @since API version 2 | |
*/ | |
isRecordingQueued(): BooleanValue; | |
/** | |
* Value that reports whether this slot is queued for recording or not. | |
* | |
* @since API version 2 | |
*/ | |
isStopQueued(): BooleanValue; | |
/** | |
* Starts browsing for content that can be inserted in this slot in Bitwig Studio's popup browser. | |
* | |
* @since API version 2 | |
*/ | |
browseToInsertClip(): void; | |
/** | |
* Value that reports the color of this slot. | |
* | |
* @since API version 2 | |
*/ | |
color(): SettableColorValue; | |
/** | |
* Selects the slot. | |
* | |
* @since API version 10 | |
*/ | |
select(): void; | |
/** | |
* @since API version 10 | |
*/ | |
selectAction(): HardwareActionBindable; | |
/** | |
* Start recording a clip. | |
* | |
* @since API version 10 | |
*/ | |
record(): void; | |
/** | |
* @since API version 10 | |
*/ | |
recordAction(): HardwareActionBindable; | |
/** | |
* Makes the clip content of the slot visible in the note or audio editor. | |
* | |
* @since API version 10 | |
*/ | |
showInEditor(): void; | |
/** | |
* Creates an new clip. | |
* | |
* @since API version 10 | |
*/ | |
createEmptyClip(lengthInBeats: number): void; | |
/** | |
* Duplicates the clip. | |
* | |
* @since API version 10 | |
*/ | |
duplicateClip(): void; | |
} | |
// source: com/bitwig/extension/controller/api/ClipLauncherSlotBank.java | |
import ClipLauncherSlotBankPlaybackStateChangedCallback = com.bitwig.extension.callback.ClipLauncherSlotBankPlaybackStateChangedCallback; | |
import IndexedBooleanValueChangedCallback = com.bitwig.extension.callback.IndexedBooleanValueChangedCallback; | |
import IndexedColorValueChangedCallback = com.bitwig.extension.callback.IndexedColorValueChangedCallback; | |
/** | |
* Instances of this interface represent a scrollable fixed-size window that is connected to a section of the | |
* clip launcher slots for a specific track. | |
* | |
* @since API version 1 | |
*/ | |
interface ClipLauncherSlotBank | |
extends ClipLauncherSlotOrSceneBank<ClipLauncherSlot> { | |
/** | |
* Selects the slot with the given index. | |
* | |
* @param slot | |
* the index of the slot within the slot window. | |
* @since API version 1 | |
*/ | |
select(slot: number): void; | |
/** | |
* Starts recording into the slot with the given index. | |
* | |
* @param slot | |
* the index of the slot within the slot window. | |
* @since API version 1 | |
*/ | |
record(slot: number): void; | |
/** | |
* Makes the clip content of the slot with the given index visible in the note or audio editor. | |
* | |
* @param slot | |
* the index of the slot within the slot window. | |
* @since API version 1 | |
*/ | |
showInEditor(slot: number): void; | |
/** | |
* Creates an new clip in the slot with the given index. | |
* | |
* @param slot | |
* the index of the slot within the slot window. | |
* @since API version 1 | |
*/ | |
createEmptyClip(slot: number, lengthInBeats: number): void; | |
/** | |
* Deletes the clip in the slot with the given index. | |
* | |
* @param slot | |
* the index of the slot within the slot window. | |
* @since API version 1 | |
* @deprecated Use {@link #getItemAt(int).deleteObject()} instead. | |
*/ | |
deleteClip(slot: number): void; | |
/** | |
* Duplicates the clip in the slot with the given index. | |
* | |
* @param slot | |
* the index of the slot within the slot window. | |
* @since API version 1 | |
*/ | |
duplicateClip(slot: number): void; | |
/** | |
* Registers an observer that reports selection changes for the slots inside the window. | |
* | |
* @param callback | |
* a callback function that receives two parameters: 1. the slot index (integer), and 2. a | |
* boolean parameter indicating if the slot at that index is selected (`true`) or not (`false`) | |
* @since API version 1 | |
*/ | |
addIsSelectedObserver(callback: IndexedBooleanValueChangedCallback): void; | |
/** | |
* Registers an observer that reports which slots contain clips. | |
* | |
* @param callback | |
* a callback function that receives two parameters: 1. the slot index (integer), and 2. a | |
* boolean parameter indicating if the slot at that index contains a clip (`true`) or not | |
* (`false`) | |
* @since API version 1 | |
*/ | |
addHasContentObserver(callback: IndexedBooleanValueChangedCallback): void; | |
/** | |
* Registers an observer that reports the playback state of clips / slots. The reported states include | |
* `stopped`, `playing`, `recording`, but also `queued for stop`, `queued for playback`, `queued for | |
* recording`. | |
* | |
* @param callback | |
* a callback function that receives three parameters: 1. the slot index (integer), 2. the queued | |
* or playback state: `0` when stopped, `1` when playing, or `2` when recording, and 3. a boolean | |
* parameter indicating if the second argument is referring to the queued state (`true`) or the | |
* actual playback state (`false`) | |
* @since API version 1 | |
*/ | |
addPlaybackStateObserver( | |
callback: ClipLauncherSlotBankPlaybackStateChangedCallback | |
): void; | |
/** | |
* Registers an observer that reports which slots have clips that are currently playing. | |
* | |
* @param callback | |
* a callback function that receives two parameters: 1. the slot index (integer), and 2. a | |
* boolean parameter indicating if the slot at that index has a clip that is currently playing | |
* (`true`) or not (`false`) | |
* @since API version 1 | |
*/ | |
addIsPlayingObserver(callback: IndexedBooleanValueChangedCallback): void; | |
/** | |
* Registers an observer that reports which slots have clips that are currently recording. | |
* | |
* @param callback | |
* a callback function that receives two parameters: 1. the slot index (integer), and 2. a | |
* boolean parameter indicating if the slot at that index has a clip that is currently recording | |
* (`true`) or not (`false`) | |
* @since API version 1 | |
*/ | |
addIsRecordingObserver(callback: IndexedBooleanValueChangedCallback): void; | |
/** | |
* Add an observer if clip playback is queued on the slot. | |
* | |
* @param callback | |
* a callback function that receives two parameters: 1. the slot index (integer), and 2. a | |
* boolean parameter indicating if the slot at that index has a clip that is currently queued for | |
* playback (`true`) or not (`false`) | |
* @since API version 1 | |
*/ | |
addIsPlaybackQueuedObserver( | |
callback: IndexedBooleanValueChangedCallback | |
): void; | |
/** | |
* Add an observer if clip recording is queued on the slot. | |
* | |
* @param callback | |
* a callback function that receives two parameters: 1. the slot index (integer), and 2. a | |
* boolean parameter indicating if the slot at that index has a clip that is currently queued for | |
* recording (`true`) or not (`false`) | |
* @since API version 1 | |
*/ | |
addIsRecordingQueuedObserver( | |
callback: IndexedBooleanValueChangedCallback | |
): void; | |
/** | |
* Add an observer if clip playback is queued to stop on the slot. | |
* | |
* @param callback | |
* a callback function that receives two parameters: 1. the slot index (integer), and 2. a | |
* boolean parameter indicating if the slot at that index has a clip that is currently queued for | |
* stop (`true`) or not (`false`) | |
* @since API version 1 | |
*/ | |
addIsStopQueuedObserver(callback: IndexedBooleanValueChangedCallback): void; | |
/** | |
* @deprecated Use {@link #addIsPlaybackQueuedObserver} instead. | |
* @since API version 1 | |
*/ | |
addIsQueuedObserver(callback: IndexedBooleanValueChangedCallback): void; | |
/** | |
* Registers an observer that reports the colors of clip in the current slot window. | |
* | |
* @param callback | |
* a callback function that receives four parameters: 1. the slot index (integer), 2. the red | |
* coordinate of the RBG color value, 3. the green coordinate of the RBG color value, and 4. the | |
* blue coordinate of the RBG color value | |
* @since API version 1 | |
*/ | |
addColorObserver(callback: IndexedColorValueChangedCallback): void; | |
/** | |
* Specifies if the Bitwig Studio clip launcher should indicate which slots are part of the window. By | |
* default indications are disabled. | |
* | |
* @param shouldIndicate | |
* `true` if visual indications should be enabled, `false` otherwise | |
* @since API version 1 | |
*/ | |
setIndication(shouldIndicate: boolean): void; | |
/** | |
* Returns an object that can be used to observe and toggle if the slots on a connected track group show | |
* either scenes launch buttons (for launching the content of the track group) or the clips of the group | |
* master track. | |
* | |
* @return a boolean value object. | |
*/ | |
isMasterTrackContentShownOnTrackGroups(): SettableBooleanValue; | |
} | |
// source: com/bitwig/extension/controller/api/ClipLauncherSlotOrScene.java | |
interface ClipLauncherSlotOrScene extends ObjectProxy, DeleteableObject { | |
/** | |
* Returns an object that provides access to the name of the scene. | |
* | |
* @return a string value object that represents the scene name. | |
* @since API version 2 | |
*/ | |
name(): StringValue; | |
/** | |
* Launches the scene. | |
* | |
* @since API version 1 | |
*/ | |
launch(): void; | |
launchAction(): HardwareActionBindable; | |
/** | |
* Value that reports the position of the scene within the list of Bitwig Studio scenes. | |
* | |
* @since API version 2 | |
*/ | |
sceneIndex(): IntegerValue; | |
/** | |
* Copies the current slot or scene into the dest slot or scene. | |
* | |
* @since API version 4 | |
* @deprecated Use {@link #replaceInsertionPoint()} instead. | |
*/ | |
copyFrom(source: ClipLauncherSlotOrScene): void; | |
/** | |
* Moves the current slot or scene into the destination slot or scene. | |
* | |
* @since API version 4 | |
* @deprecated Use {@link #replaceInsertionPoint()} instead. | |
*/ | |
moveTo(dest: ClipLauncherSlotOrScene): void; | |
/** | |
* Value that reports the color of this slot. | |
* | |
* @since API version 7 | |
*/ | |
color(): SettableColorValue; | |
/** | |
* Specifies if the Bitwig Studio clip launcher should indicate which slots and scenes are part of the window. By | |
* default indications are disabled. | |
* | |
* @param shouldIndicate | |
* `true` if visual indications should be enabled, `false` otherwise | |
* @since API version 10 | |
*/ | |
setIndication(shouldIndicate: boolean): void; | |
/** | |
* An {@link InsertionPoint} that is used to replace the contents of this slot or scene. | |
* | |
* @since API version 7 | |
*/ | |
replaceInsertionPoint(): InsertionPoint; | |
/** | |
* An {@link InsertionPoint} that can be used to insert content in the next scene. | |
* | |
* @since API version 7 | |
*/ | |
nextSceneInsertionPoint(): InsertionPoint; | |
/** | |
* An {@link InsertionPoint} that can be used to insert content after this slot or scene. | |
* | |
* @since API version 7 | |
*/ | |
previousSceneInsertionPoint(): InsertionPoint; | |
} | |
// source: com/bitwig/extension/controller/api/ClipLauncherSlotOrSceneBank.java | |
import IndexedStringValueChangedCallback = com.bitwig.extension.callback.IndexedStringValueChangedCallback; | |
/** | |
* An abstract interface that represents the clip launcher scenes or slots of a single track. | |
* | |
* @since API version 1 | |
*/ | |
interface ClipLauncherSlotOrSceneBank< | |
ItemType extends ClipLauncherSlotOrScene = ClipLauncherSlotOrScene | |
> extends Bank<ItemType> { | |
/** | |
* Launches the scene/slot with the given index. | |
* | |
* @param slot | |
* the index of the slot that should be launched | |
* @since API version 1 | |
*/ | |
launch(slot: number): void; | |
/** | |
* Stops clip launcher playback for the associated track. | |
* | |
* @since API version 1 | |
*/ | |
stop(): void; | |
/** | |
* Action to call {@link #stop()}. | |
* @since API version 10 | |
*/ | |
stopAction(): HardwareActionBindable; | |
/** | |
* Performs a return-to-arrangement operation on the related track, which caused playback to be taken over | |
* by the arrangement sequencer. | |
* | |
* @since API version 1 | |
*/ | |
returnToArrangement(): void; | |
/** | |
* Registers an observer that reports the names of the scenes and slots. The slot names reflect the names | |
* of containing clips. | |
* | |
* @param callback | |
* a callback function receiving two parameters: 1. the slot index (integer) within the | |
* configured window, and 2. the name of the scene/slot (string) | |
* @since API version 1 | |
*/ | |
addNameObserver(callback: IndexedStringValueChangedCallback): void; | |
} | |
// source: com/bitwig/extension/controller/api/ColorHardwareProperty.java | |
import Supplier = java.util.funktion.Supplier; | |
import Color = com.bitwig.extension.api.Color; | |
/** | |
* Represents an output value shown on some hardware (for example, the color of a light). | |
* | |
* @since API version 10 | |
*/ | |
interface ColorHardwareProperty extends HardwareProperty { | |
/** Gets the current value. This is the value that should be sent to the hardware to be displayed. */ | |
currentValue(): Color; | |
/** The value that was last sent to the hardware. */ | |
lastSentValue(): Color; | |
/** | |
* Specifies a callback that should be called with the value that needs to be sent to the hardware. This | |
* callback is called as a result of calling the {@link HardwareSurface#updateHardware()} method (typically | |
* from the flush method). | |
*/ | |
onUpdateHardware(sendValueConsumer: Consumer<Color>): void; | |
/** Sets the current value. */ | |
setValue(value: Color): void; | |
/** Sets the current value from a {@link Supplier} that supplies the latest value. */ | |
setValueSupplier(supplier: Supplier<Color>): void; | |
} | |
// source: com/bitwig/extension/controller/api/ColorValue.java | |
interface ColorValue | |
extends Value<ColorValueChangedCallback>, | |
Supplier<Color> { | |
/** | |
* Gets the red component of the current value. | |
* | |
* @since API version 2 | |
*/ | |
red(): number; | |
/** | |
* Gets the green component of the current value. | |
* | |
* @since API version 2 | |
*/ | |
green(): number; | |
/** | |
* Gets the blue component of the current value. | |
* | |
* @since API version 2 | |
*/ | |
blue(): number; | |
/** | |
* Gets the alpha component of the current value. | |
* | |
* @since API version 5 | |
*/ | |
alpha(): number; | |
get(): Color; | |
} | |
// source: com/bitwig/extension/controller/api/ContinuousHardwareControl.java | |
/** | |
* Represents a hardware control that can input a relative or absolute value (for example, a slider, knob, | |
* relative encoder...). | |
* | |
* @since API version 10 | |
*/ | |
interface ContinuousHardwareControl< | |
HardwareBindingType extends HardwareBinding = HardwareBinding | |
> extends HardwareControl, | |
HardwareBindingSource<HardwareBindingType> { | |
/** | |
* An optional button that can be associated with this control when this control can also act as a button | |
* (e.g by pressing down on it). | |
*/ | |
hardwareButton(): HardwareButton; | |
/** | |
* Sets an optional button that can be associated with this control when this control can also act as a | |
* button (e.g by pressing down on it). | |
*/ | |
setHardwareButton(button: HardwareButton): void; | |
/** | |
* The name of the target that this hardware control has been bound to. | |
* | |
* @since API version 11 | |
*/ | |
targetName(): StringValue; | |
/** The value of the target that this hardware control has been bound to (0..1). */ | |
targetValue(): DoubleValue; | |
/** | |
* Value that represents a formatted text representation of the target value whenever the value changes. | |
* | |
* @since API version 11 | |
*/ | |
targetDisplayedValue(): StringValue; | |
/** | |
* The value of the target that this hardware control has been bound to (0..1). | |
* | |
* @since API version 11 | |
*/ | |
modulatedTargetValue(): DoubleValue; | |
/** | |
* Value that represents a formatted text representation of the target's modulated value whenever the value | |
* changes. | |
* | |
* @since API version 11 | |
*/ | |
modulatedTargetDisplayedValue(): StringValue; | |
/** | |
* Can be called from the {@link #targetValue()} changed callback to check if this control is responsible | |
* for changing the target value or not. | |
*/ | |
isUpdatingTargetValue(): BooleanValue; | |
/** Value that indicates if this hardware control has a target value that it changes or not. */ | |
hasTargetValue(): BooleanValue; | |
} | |
// source: com/bitwig/extension/controller/api/ContinuousHardwareValueMatcher.java | |
/** | |
* Defines a means of recognizing when a continuous value is input by the user (for example, when moving a | |
* slider or turning a knob based on some MIDI message). | |
* | |
* @see MidiIn#createAbsoluteValueMatcher(String, String, int) | |
* @see MidiIn#createAbsoluteCCValueMatcher(int, int) | |
* @see MidiIn#createAbsolutePitchBendValueMatcher(int) | |
* | |
* @since API version 10 | |
* | |
*/ | |
interface ContinuousHardwareValueMatcher extends HardwareInputMatcher {} | |
// source: com/bitwig/extension/controller/api/ControllerHost.java | |
import UUID = java.util.UUID; | |
import DoubleConsumer = java.util.funktion.DoubleConsumer; | |
import Host = com.bitwig.extension.api.Host; | |
import ConnectionEstablishedCallback = com.bitwig.extension.callback.ConnectionEstablishedCallback; | |
import DataReceivedCallback = com.bitwig.extension.callback.DataReceivedCallback; | |
import ControllerExtensionDefinition = com.bitwig.extension.controller.ControllerExtensionDefinition; | |
import HardwareDeviceMatcher = com.bitwig.extension.controller.HardwareDeviceMatcher; | |
/** | |
* @mainpage Introduction | |
* | |
* Welcome to the Bitwig Control Surface API.<br/> | |
* | |
* The pages shown here include the reference documentation for the various interfaces and functions provided | |
* by the API.<br/> | |
* | |
* The best starting point for becoming familiar with the API within these pages is the documentation of the | |
* {@link Host} interface. A singleton instance of that interface is available in the scope of each script. | |
* In addition it is highly recommended to also walk through the <b>Control Surface Scripting Guide</b> that is | |
* available from the @em Help menu in Bitwig Studio. | |
*/ | |
interface ControllerHost extends Host { | |
/** | |
* Restarts this controller. | |
* | |
* @since API version 7 | |
*/ | |
restart(): void; | |
/** | |
* Loads the supplied API version into the calling script. This is only intended to be called from a | |
* controller script. It cannot be called from a Java controller extension. | |
*/ | |
loadAPI(version: number): void; | |
/** | |
* Call this method to allow your script to use Beta APIs. | |
* | |
* Beta APIs are still on development and might not be available in a future version of Bitwig Studio. | |
* | |
* Turning this flag to true, will flag your extension as being a beta extension which might not work after | |
* updating Bitwig Studio. | |
* | |
* @since API version 7 | |
*/ | |
useBetaApi(): void; | |
/** | |
* Determines whether the calling script should fail if it calls a deprecated method based on the API | |
* version that it requested. | |
*/ | |
shouldFailOnDeprecatedUse(): boolean; | |
/** | |
* Sets whether the calling script should fail if it calls a deprecated method based on the API version | |
* that it requested. This is only intended to be called from a controller script. It cannot be called from | |
* a Java controller extension. | |
*/ | |
setShouldFailOnDeprecatedUse(value: boolean): void; | |
/** | |
* Loads the script defined by the supplied path. This is only intended to be called from a controller | |
* script. It cannot be called from a Java controller extension. | |
*/ | |
load(path: string): void; | |
/** | |
* Indicates if the host platform is Windows. | |
* | |
* @return `true` if the host platform is Windows, `false` otherwise. | |
* @since API version 1 | |
*/ | |
platformIsWindows(): boolean; | |
/** | |
* Indicates if the host platform is Apple Mac OS X. | |
* | |
* @return `true` if the host platform is Mac, `false` otherwise. | |
* @since API version 1 | |
*/ | |
platformIsMac(): boolean; | |
/** | |
* Indicates if the host platform is Linux. | |
* | |
* @return `true` if the host platform is Linux, `false` otherwise. | |
* @since API version 1 | |
*/ | |
platformIsLinux(): boolean; | |
/** | |
* Registers a controller script with the given parameters. This function must be called once at the global | |
* scope of the script. | |
* | |
* @param vendor | |
* the name of the hardware vendor. Must not be <code>null</code>. | |
* @param name | |
* the name of the controller script as listed in the user interface of Bitwig Studio. Must not | |
* be <code>null</code>. | |
* @param version | |
* the version of the controller script. Must not be <code>null</code>. | |
* @param uuid | |
* a universal unique identifier (UUID) string that is used to distinguish one script from | |
* another, for example `550e8400-e29b-11d4-a716-446655440000`. Must not be <code>null</code>. | |
* For generating random UUID strings several free web tools are available. | |
* @param author | |
* the name of the script author | |
* @since API version 1 | |
*/ | |
defineController( | |
vendor: string, | |
name: string, | |
version: string, | |
uuid: string, | |
author: string | |
): void; | |
/** | |
* Defines the number of MIDI ports for input and output that the device uses. This method should be called | |
* once in the global scope if the script is supposed to exchange MIDI messages with the device, or if the | |
* script adds entries to the MIDI input/output choosers in Bitwig Studio. After calling this method the | |
* individual port objects can be accessed using {@link #getMidiInPort(int index)} and | |
* {@link #getMidiInPort(int index)}. | |
* | |
* @param numInports | |
* the number of input ports | |
* @param numOutports | |
* the number of output ports | |
* @since API version 1 | |
*/ | |
defineMidiPorts(numInports: number, numOutports: number): void; | |
/** | |
* Returns the MIDI input port with the given index. | |
* | |
* @param index | |
* the index of the MIDI input port, must be valid. | |
* @return the requested MIDI input port | |
* @since API version 1 | |
*/ | |
getMidiInPort(index: number): MidiIn; | |
/** | |
* Returns the MIDI output port with the given index. | |
* | |
* @param index | |
* the index of the MIDI output port, must be valid. | |
* @return the requested MIDI output port | |
* @since API version 1 | |
*/ | |
getMidiOutPort(index: number): MidiOut; | |
/** | |
* Gets the {@link HardwareDevice} at the specified index. This index corresponds to the index of the | |
* {@link HardwareDeviceMatcher} specified in the | |
* {@link ControllerExtensionDefinition#listHardwareDevices(java.util.List)} | |
* | |
* @since API version 7 | |
*/ | |
hardwareDevice(index: number): HardwareDevice; | |
/** | |
* Registers patterns which are used to automatically detect hardware devices that can be used with the | |
* script.<br/> | |
* | |
* When the user clicks on the `detect` button in the Bitwig Studio controller preferences dialog, Bitwig | |
* Studio searches for connected controller hardware by comparing the parameters passed into this function | |
* are compared with the port names of the available MIDI drivers. Found controller scripts are | |
* automatically added with their input/output ports configured.<br/> | |
* | |
* Calling this function is optional, but can also be called multiple times in the global script scope in | |
* order to support alternative driver names. | |
* | |
* @param inputs | |
* the array of strings used to detect MIDI input ports, must not be `null`. | |
* @param outputs | |
* the array of strings used to detect MIDI output ports, must not be `null`. | |
* @since API version 1 | |
*/ | |
addDeviceNameBasedDiscoveryPair(inputs: string[], outputs: string[]): void; | |
/** | |
* Registers the `Identity Reply Universal SysEx` message (if any) that the MIDI device sends after | |
* receiving the `Identity Request Universal SysEx` message (`F0 7E 7F 06 01 F7`), as defined in the MIDI | |
* standard.<br/> | |
* | |
* This function may be called at the global scope of the script, but is optional. Please note that this | |
* function is only applicable to scripts with one MIDI input and one MIDI output. Also note that not all | |
* MIDI hardware supports SysEx identity messages. | |
* | |
* @param reply | |
* the `Identity Reply Universal SysEx` message. Must not be <code>null</code> | |
* @deprecated | |
* @since API version 1 | |
*/ | |
defineSysexIdentityReply(reply: string): void; | |
/** | |
* Creates a preferences object that can be used to insert settings into the Controller Preferences panel | |
* in Bitwig Studio. | |
* | |
* @return an object that provides access to custom controller preferences | |
* @since API version 1 | |
*/ | |
getPreferences(): Preferences; | |
/** | |
* Creates a document state object that can be used to insert settings into the Studio I/O Panel in Bitwig | |
* Studio. | |
* | |
* @return an object that provides access to custom document settings | |
* @since API version 1 | |
*/ | |
getDocumentState(): DocumentState; | |
/** | |
* Returns an object that is used to configure automatic notifications. Bitwig Studio supports automatic | |
* visual feedback from controllers that shows up as popup notifications. For example when the selected | |
* track or the current device preset was changed on the controller these notifications are shown, | |
* depending on your configuration. | |
* | |
* @return a configuration object used to enable/disable the various automatic notifications supported by | |
* Bitwig Studio | |
* @since API version 1 | |
*/ | |
getNotificationSettings(): NotificationSettings; | |
/** | |
* Returns an object for controlling various aspects of the currently selected project. | |
* | |
* @since API version 1 | |
*/ | |
getProject(): Project; | |
/** | |
* Returns an object for controlling and monitoring the elements of the `Transport` section in Bitwig | |
* Studio. This function should be called once during initialization of the script if transport access is | |
* desired. | |
* | |
* @return an object that represents the `Transport` section in Bitwig Studio. | |
* @since API version 1 | |
*/ | |
createTransport(): Transport; | |
/** | |
* Returns an object for controlling and monitoring the `Groove` section in Bitwig Studio. This function | |
* should be called once during initialization of the script if groove control is desired. | |
* | |
* @return an object that represents the `Groove` section in Bitwig Studio. | |
* @since API version 1 | |
*/ | |
createGroove(): Groove; | |
/** | |
* Returns an object that provides access to general application functionality, including global view | |
* settings, the list of open projects, and other global settings that are not related to a certain | |
* document. | |
* | |
* @return an application object. | |
* @since API version 1 | |
*/ | |
createApplication(): Application; | |
/** | |
* Returns an object which provides access to the `Arranger` panel of Bitwig Studio. Calling this function | |
* is equal to `createArranger(-1)`. | |
* | |
* @return an arranger object | |
* @see #createArranger(int) | |
* @since API version 1 | |
*/ | |
createArranger(): Arranger; | |
/** | |
* Returns an object which provides access to the `Arranger` panel inside the specified window. | |
* | |
* @param window | |
* the index of the window where the arranger panel is shown, or -1 in case the first arranger | |
* panel found on any window should be taken | |
* @return an arranger object | |
* @since API version 1 | |
*/ | |
createArranger(window: number): Arranger; | |
/** | |
* Returns an object which provides access to the `Mixer` panel of Bitwig Studio. Calling this function is | |
* equal to `createMixer(-1, null)`. | |
* | |
* @return a `Mixer` object | |
* @since API version 1 | |
*/ | |
createMixer(): Mixer; | |
/** | |
* Returns an object which provides access to the `Mixer` panel that belongs to the specified panel layout. | |
* Calling this function is equal to `createMixer(-1, panelLayout)`. | |
* | |
* @param panelLayout | |
* the name of the panel layout that contains the mixer panel, or `null` in case the selected | |
* panel layout in Bitwig Studio should be followed. Empty strings or invalid names are treated | |
* the same way as `null`. To receive the list of available panel layouts see | |
* {@link Application#addPanelLayoutObserver}. | |
* @return a `Mixer` object | |
* @since API version 1 | |
*/ | |
createMixer(panelLayout: string): Mixer; | |
/** | |
* Returns an object which provides access to the `Mixer` panel inside the specified window. Calling this | |
* function is equal to `createMixer(window, null)`. | |
* | |
* @param window | |
* the index of the window where the mixer panel is shown, or -1 in case the first mixer panel | |
* found on any window should be taken | |
* @return a `Mixer` object | |
* @since API version 1 | |
*/ | |
createMixer(window: number): Mixer; | |
/** | |
* Returns an object which provides access to the `Mixer` panel that matches the specified parameters. | |
* | |
* @param panelLayout | |
* the name of the panel layout that contains the mixer panel, or `null` in case the selected | |
* panel layout in Bitwig Studio should be followed. Empty strings or invalid names are treated | |
* the same way as `null`. To receive the list of available panel layouts see | |
* {@link Application#addPanelLayoutObserver}. | |
* @param window | |
* the index of the window where the mixer panel is shown, or -1 in case the first mixer panel | |
* found on any window should be taken | |
* @return a `Mixer` object | |
* @since API version 1 | |
*/ | |
createMixer(panelLayout: string, window: number): Mixer; | |
/** | |
* Returns a track bank with the given number of tracks, sends and scenes.<br/> | |
* | |
* A track bank can be seen as a fixed-size window onto the list of tracks in the current document | |
* 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.<br/> | |
* | |
* 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.<br/> | |
* | |
* Creating a track bank using this method will consider all tracks in the document, including effect | |
* tracks and the master track. Use {@link #createMainTrackBank} or {@link #createEffectTrackBank} in case | |
* you are only interested in tracks of a certain kind. | |
* | |
* @param numTracks | |
* the number of tracks spanned by the track bank | |
* @param numSends | |
* the number of sends spanned by the track bank | |
* @param numScenes | |
* the number of scenes spanned by the track bank | |
* @return an object for bank-wise navigation of tracks, sends and scenes | |
* @see Track#createTrackBank | |
* @see #createMainTrackBank | |
* @see #createEffectTrackBank | |
* @since API version 1 | |
*/ | |
createTrackBank( | |
numTracks: number, | |
numSends: number, | |
numScenes: number | |
): TrackBank; | |
/** | |
* Returns a track bank with the given number of child tracks, sends and scenes.<br/> | |
* | |
* 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.<br/> | |
* | |
* 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.<br/> | |
* | |
* Creating a track bank using this method will consider all tracks in the document, including effect | |
* tracks and the master track. Use {@link #createMainTrackBank} or {@link #createEffectTrackBank} in case | |
* you are only interested in tracks of a certain kind. | |
* | |
* @param numTracks | |
* the number of child tracks spanned by the track bank | |
* @param numSends | |
* the number of sends spanned by the track bank | |
* @param numScenes | |
* the number of scenes spanned by the track bank | |
* @param 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. | |
* @return an object for bank-wise navigation of tracks, sends and scenes | |
* @see #createMainTrackBank | |
* @see #createEffectTrackBank | |
* @since API version 1 | |
*/ | |
createTrackBank( | |
numTracks: number, | |
numSends: number, | |
numScenes: number, | |
hasFlatTrackList: boolean | |
): TrackBank; | |
/** | |
* Returns a track bank with the given number of tracks, sends and scenes. Only audio tracks, instrument | |
* tracks and hybrid tracks are considered. For more information about track banks and the `bank pattern` | |
* in general, see the documentation for {@link #createTrackBank}. | |
* | |
* @param numTracks | |
* the number of tracks spanned by the track bank | |
* @param numSends | |
* the number of sends spanned by the track bank | |
* @param numScenes | |
* the number of scenes spanned by the track bank | |
* @return an object for bank-wise navigation of tracks, sends and scenes | |
* @see Track#createMainTrackBank | |
* @see #createTrackBank | |
* @see #createEffectTrackBank | |
* @since API version 1 | |
*/ | |
createMainTrackBank( | |
numTracks: number, | |
numSends: number, | |
numScenes: number | |
): TrackBank; | |
/** | |
* Returns a track bank with the given number of effect tracks and scenes. Only effect tracks are | |
* considered. For more information about track banks and the `bank pattern` in general, see the | |
* documentation for {@link #createTrackBank}. | |
* | |
* @param numTracks | |
* the number of tracks spanned by the track bank | |
* @param numScenes | |
* the number of scenes spanned by the track bank | |
* @return an object for bank-wise navigation of tracks, sends and scenes | |
* @see Track#createEffectTrackBank | |
* @see #createTrackBank | |
* @see #createMainTrackBank | |
* @since API version 1 | |
*/ | |
createEffectTrackBank(numTracks: number, numScenes: number): TrackBank; | |
/** | |
* Returns an object that represents the master track of the document. | |
* | |
* @param numScenes | |
* the number of scenes for bank-wise navigation of the master tracks clip launcher slots. | |
* @return an object representing the master track. | |
* @see Track#createMasterTrack | |
* @since API version 1 | |
*/ | |
createMasterTrack(numScenes: number): MasterTrack; | |
/** | |
* Returns an object that represents the cursor item of the arranger track selection. | |
* | |
* @param numSends | |
* the number of sends for bank-wise navigation of the sends that are associated with the track | |
* selection | |
* @param numScenes | |
* the number of scenes for bank-wise navigation of the clip launcher slots that are associated | |
* with the track selection | |
* @return an object representing the currently selected arranger track (in the future also multiple | |
* tracks) | |
* @since API version 1 | |
* @deprecated Use {@link #createCursorTrack(int, int)} instead. | |
*/ | |
createArrangerCursorTrack(numSends: number, numScenes: number): CursorTrack; | |
/** | |
* Returns an object that represents a named cursor track, that is independent from the arranger or mixer | |
* track selection in the user interface of Bitwig Studio. | |
* | |
* @param name | |
* the name of the track cursor | |
* @param numSends | |
* the number of sends for bank-wise navigation of the sends that are associated with the track | |
* selection | |
* @param numScenes | |
* the number of scenes for bank-wise navigation of the clip launcher slots that are associated | |
* with the track selection | |
* @return an object representing the currently selected arranger track (in the future also multiple | |
* tracks). | |
* @since API version 1 | |
* @deprecated use {@link #createCursorTrack(String, String, int, int, boolean)} instead. | |
*/ | |
createCursorTrack( | |
name: string, | |
numSends: number, | |
numScenes: number | |
): CursorTrack; | |
/** | |
* Returns an object that represents a named cursor track, that is independent from the arranger or mixer | |
* track selection in the user interface of Bitwig Studio. | |
* | |
* @param name | |
* the name of the track cursor | |
* @param numSends | |
* the number of sends for bank-wise navigation of the sends that are associated with the track | |
* selection | |
* @param numScenes | |
* the number of scenes for bank-wise navigation of the clip launcher slots that are associated | |
* with the track selection | |
* @return an object representing the currently selected arranger track (in the future also multiple | |
* tracks). | |
* @since API version 1 | |
*/ | |
createCursorTrack( | |
id: string, | |
name: string, | |
numSends: number, | |
numScenes: number, | |
shouldFollowSelection: boolean | |
): CursorTrack; | |
/** | |
* Returns a scene bank with the given number of scenes.<br/> | |
* | |
* A scene bank can be seen as a fixed-size window onto the list of scenes in the current document, that | |
* can be scrolled in order to access different parts of the scene list. For example a scene bank | |
* configured for 8 scenes can show scene 1-8, 2-9, 3-10 and so on.<br/> | |
* | |
* 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 scenes, most likely more scenes than the hardware can control simultaneously. | |
* The scene bank returned by this function provides a convenient interface for controlling which scenes | |
* are currently shown on the hardware.<br/> | |
* | |
* @param numScenes | |
* the number of scenes spanned by the track bank | |
* @return an object for bank-wise navigation of scenes | |
* @since API version 1 | |
*/ | |
createSceneBank(numScenes: number): SceneBank; | |
/** | |
* Returns an object that represents the cursor device in devices selections made by the user in Bitwig | |
* Studio. Calling this method is equal to the following code: {@code | |
* var cursorTrack = createArrangerCursorTrack(numSends, numScenes); | |
* var cursorDevice = cursorTrack.createCursorDevice(); | |
* } To create a custom device selection that is not connected to the main device selection in the user | |
* interface, call {@link Track#createCursorDevice(String) cursorTrack.createCursorDevice(String name)}. | |
* | |
* @return an object representing the currently selected device. | |
* @see Track#createCursorDevice() | |
* @see Track#createCursorDevice(String) | |
* @see #createEditorCursorDevice(int numSends) | |
* @since API version 1 | |
* @deprecated | |
*/ | |
createEditorCursorDevice(): CursorDevice; | |
/** | |
* Returns an object that represents the cursor device in devices selections made by the user in Bitwig | |
* Studio. Calling this method is equal to the following code: {@code | |
* var cursorTrack = createArrangerCursorTrack(numSends, numScenes); | |
* var cursorDevice = cursorTrack.createCursorDevice(); | |
* } To create a custom device selection that is not connected to the main device selection in the user | |
* interface, call {@link Track#createCursorDevice(String) cursorTrack.createCursorDevice(String name)}. | |
* | |
* @param numSends | |
* the number of sends that are simultaneously accessible in nested channels. | |
* @return an object representing the currently selected device. | |
* @deprecated Use cursorTrack.createCursorDevice(). | |
* @see Track#createCursorDevice() | |
* @see Track#createCursorDevice(String) | |
* @since API version 1 | |
*/ | |
createEditorCursorDevice(numSends: number): CursorDevice; | |
/** | |
* @deprecated Use {@link #createLauncherCursorClip(int, int)} or | |
* {@link #createArrangerCursorClip(int, int)} instead. | |
* @since API version 1 | |
*/ | |
createCursorClip(gridWidth: number, gridHeight: number): Clip; | |
/** | |
* Returns a clip object that represents the cursor of the launcher clip selection. The gridWidth and | |
* gridHeight parameters specify the grid dimensions used to access the note content of the clip. | |
* | |
* @param gridWidth | |
* the number of steps spanned by one page of the note content grid. | |
* @param gridHeight | |
* the number of keys spanned by one page of the note content grid. | |
* @return an object representing the currently selected cursor clip | |
* @since API version 1 | |
*/ | |
createLauncherCursorClip(gridWidth: number, gridHeight: number): Clip; | |
/** | |
* Returns a clip object that represents the cursor of the arranger clip selection. The gridWidth and | |
* gridHeight parameters specify the grid dimensions used to access the note content of the clip. | |
* | |
* @param gridWidth | |
* the number of steps spanned by one page of the note content grid. | |
* @param gridHeight | |
* the number of keys spanned by one page of the note content grid. | |
* @return an object representing the currently selected cursor clip | |
* @since API version 1 | |
*/ | |
createArrangerCursorClip(gridWidth: number, gridHeight: number): Clip; | |
/** | |
* Returns an object that is used to define a bank of custom user controls. These controls are available to | |
* the user for free controller assignments and are typically used when bank-wise navigation is | |
* inconvenient. | |
* | |
* @param numControllers | |
* the number of controls that are available for free assignments | |
* @return An object that represents a set of custom user controls. | |
* @since API version 1 | |
*/ | |
createUserControls(numControllers: number): UserControlBank; | |
/** | |
* Schedules the given callback function for execution after the given delay. For timer applications call | |
* this method once initially and then from within the callback function. | |
* | |
* @param callback | |
* the callback function that will be called | |
* @param args | |
* that array of arguments that gets passed into the callback function, may be `null` | |
* @param delay | |
* the duration after which the callback function will be called in milliseconds | |
* @deprecated | |
* @since API version 1 | |
*/ | |
scheduleTask(callback: () => void, args: object[], delay: number): void; | |
/** | |
* Schedules the given callback function for execution after the given delay. For timer applications call | |
* this method once initially and then from within the callback function. | |
* | |
* @param callback | |
* the callback function that will be called | |
* @param delay | |
* the duration after which the callback function will be called in milliseconds | |
* @since API version 2 | |
*/ | |
scheduleTask(callback: () => void, delay: number): void; | |
/** | |
* Requests that the driver's flush method gets called. | |
* | |
* @since API version 2 | |
*/ | |
requestFlush(): void; | |
/** | |
* Prints the given string in the control surface console window. The console window can be opened in the | |
* view menu of Bitwig Studio. | |
* | |
* @param s | |
* the string to be printed | |
* @since API version 1 | |
*/ | |
println(s: string): void; | |
/** | |
* Prints the given string in the control surface console window using a text style that highlights the | |
* string as error. The console window can be opened in the view menu of Bitwig Studio. | |
* | |
* @param s | |
* the error string to be printed | |
* @since API version 1 | |
*/ | |
errorln(s: string): void; | |
/** | |
* Shows a temporary text overlay on top of the application GUI, that will fade-out after a short interval. | |
* If the overlay is already shown, it will get updated with the given text. | |
* | |
* @param text | |
* the text to be shown | |
* @since API version 1 | |
*/ | |
showPopupNotification(text: string): void; | |
/** | |
* Opens a TCP (Transmission Control Protocol) host socket for allowing network connections from other | |
* hardware and software. | |
* | |
* @param name | |
* a meaningful name that describes the purpose of this connection. | |
* @param defaultPort | |
* the port that should be used for the connection. If the port is already in use, then another | |
* port will be used. Check {@link RemoteSocket#getPort()} on the returned object to be sure. | |
* @return the object that represents the socket | |
* @since API version 1 | |
*/ | |
createRemoteConnection(name: string, defaultPort: number): RemoteSocket; | |
/** | |
* Connects to a remote TCP (Transmission Control Protocol) socket. | |
* | |
* @param host | |
* the host name or IP address to connect to. | |
* @param port | |
* the port to connect to | |
* @param callback | |
* the callback function that gets called when the connection gets established. A single | |
* {@link RemoteConnection} parameter is passed into the callback function. | |
* @since API version 1 | |
*/ | |
connectToRemoteHost( | |
host: string, | |
port: number, | |
callback: ConnectionEstablishedCallback | |
): void; | |
/** | |
* Sends a UDP (User Datagram Protocol) packet with the given data to the specified host. | |
* | |
* @param host | |
* the destination host name or IP address | |
* @param port | |
* the destination port | |
* @param data | |
* the data to be send. When creating a numeric byte array in JavaScript, the byte values must be | |
* signed (in the range -128..127). | |
* @since API version 1 | |
*/ | |
sendDatagramPacket(host: string, port: number, data: number): void; | |
/** | |
* Adds an observer for incoming UDP (User Datagram Protocol) packets on the selected port. | |
* | |
* @param name | |
* a meaningful name that describes the purpose of this observer. | |
* @param port | |
* the port that should be used | |
* @param callback | |
* the callback function that gets called when data arrives. The function receives a single | |
* parameter that contains the data byte array. | |
* | |
* @return {@true} if was possible to bind the port, false otherwise | |
* @since API version 1 | |
*/ | |
addDatagramPacketObserver( | |
name: string, | |
port: number, | |
callback: DataReceivedCallback | |
): boolean; | |
/** | |
* @deprecated Use {@link #defineController(String, String, String, String, String)} instead. | |
* @since API version 1 | |
*/ | |
defineController( | |
vendor: string, | |
name: string, | |
version: string, | |
uuid: string | |
): void; | |
/** | |
* @deprecated Use {@link #createTransport} instead. | |
* @since API version 1 | |
*/ | |
createTransportSection(): Transport; | |
/** | |
* @since API version 1 | |
*/ | |
createCursorTrack(numSends: number, numScenes: number): CursorTrack; | |
/** | |
* @deprecated Use {@link #createGroove()} instead. | |
* @since API version 1 | |
*/ | |
createGrooveSection(): Groove; | |
/** | |
* @deprecated Use {@link #createApplication()} instead. | |
* @since API version 1 | |
*/ | |
createApplicationSection(): Application; | |
/** | |
* @deprecated Use {@link #createArranger(int)} instead. | |
* @since API version 1 | |
*/ | |
createArrangerSection(screenIndex: number): Arranger; | |
/** | |
* @deprecated Use {@link #createMixer(String, int)} instead. | |
* @since API version 1 | |
*/ | |
createMixerSection(perspective: string, screenIndex: number): Mixer; | |
/** | |
* @deprecated Use {@link #createTrackBank(int, int, int)} instead. | |
* @since API version 1 | |
*/ | |
createTrackBankSection( | |
numTracks: number, | |
numSends: number, | |
numScenes: number | |
): TrackBank; | |
/** | |
* @deprecated Use {@link #createMainTrackBank(int, int, int)} instead. | |
* @since API version 1 | |
*/ | |
createMainTrackBankSection( | |
numTracks: number, | |
numSends: number, | |
numScenes: number | |
): TrackBank; | |
/** | |
* @deprecated Use {@link #createEffectTrackBank(int, int)} instead. | |
* @since API version 1 | |
*/ | |
createEffectTrackBankSection( | |
numTracks: number, | |
numScenes: number | |
): TrackBank; | |
/** | |
* @deprecated Use {@link #createArrangerCursorTrack} instead. | |
* @since API version 1 | |
*/ | |
createCursorTrackSection(numSends: number, numScenes: number): CursorTrack; | |
/** | |
* @deprecated Use {@link #createMasterTrack(int)} instead. | |
* @since API version 1 | |
*/ | |
createMasterTrackSection(numScenes: number): Track; | |
/** | |
* @deprecated Use {@link #createCursorClip(int, int)} instead. | |
* @since API version 1 | |
*/ | |
createCursorClipSection(gridWidth: number, gridHeight: number): Clip; | |
/** | |
* @deprecated Use {@link #createEditorCursorDevice createEditorCursorDevice()} instead. | |
* @since API version 1 | |
*/ | |
createCursorDeviceSection(numControllers: number): CursorDevice; | |
/** | |
* @deprecated Use {@link #createEditorCursorDevice createEditorCursorDevice()} instead. | |
* @since API version 1 | |
*/ | |
createCursorDevice(): CursorDevice; | |
/** | |
* @deprecated Use {@link #createUserControls(int)} instead. | |
* @since API version 1 | |
*/ | |
createUserControlsSection(numControllers: number): UserControlBank; | |
/** | |
* @deprecated Use {@link #defineSysexIdentityReply(String)} instead. | |
* @since API version 1 | |
*/ | |
defineSysexDiscovery(request: string, reply: string): void; | |
/** | |
* Creates a {@link PopupBrowser} that represents the pop-up browser in Bitwig Studio. | |
* | |
* @since API version 2 | |
*/ | |
createPopupBrowser(): PopupBrowser; | |
/** | |
* {@link BeatTimeFormatter} used to format beat times by default. This will be used to format beat times | |
* when asking for a beat time in string format without providing any formatting options. For example by | |
* calling {@link BeatTimeStringValue#get()}. | |
* | |
* @since API version 2 | |
*/ | |
defaultBeatTimeFormatter(): BeatTimeFormatter; | |
/** | |
* Sets the {@link BeatTimeFormatter} to use by default for formatting beat times. | |
* | |
* @see #defaultBeatTimeFormatter() | |
* @since API version 2 | |
*/ | |
setDefaultBeatTimeFormatter(formatter: BeatTimeFormatter): void; | |
/** | |
* Creates a {@link BeatTimeFormatter} that can be used to format beat times. | |
* | |
* @param separator | |
* the character used to separate the segments of the formatted beat time, typically ":", "." or | |
* "-" | |
* @param barsLen | |
* the number of digits reserved for bars | |
* @param beatsLen | |
* the number of digits reserved for beats | |
* @param subdivisionLen | |
* the number of digits reserved for beat subdivisions | |
* @param ticksLen | |
* the number of digits reserved for ticks | |
* | |
* @since API version 2 | |
*/ | |
createBeatTimeFormatter( | |
separator: string, | |
barsLen: number, | |
beatsLen: number, | |
subdivisionLen: number, | |
ticksLen: number | |
): BeatTimeFormatter; | |
/** | |
* Creates a {@link HardwareSurface} that can contain hardware controls. | |
* | |
* @since API version 10 | |
*/ | |
createHardwareSurface(): HardwareSurface; | |
/** | |
* Creates a {@link HardwareActionMatcher} that is matched by either of the 2 supplied action matchers. | |
* | |
* @since API version 10 | |
*/ | |
createOrHardwareActionMatcher( | |
matcher1: HardwareActionMatcher, | |
matcher2: HardwareActionMatcher | |
): HardwareActionMatcher; | |
/** | |
* Creates a {@link RelativeHardwareValueMatcher} that is matched by either of the 2 supplied action | |
* matchers. | |
* | |
* @since API version 10 | |
*/ | |
createOrRelativeHardwareValueMatcher( | |
matcher1: RelativeHardwareValueMatcher, | |
matcher2: RelativeHardwareValueMatcher | |
): RelativeHardwareValueMatcher; | |
/** | |
* Creates a {@link AbsoluteHardwareValueMatcher} that is matched by either of the 2 supplied action | |
* matchers. | |
* | |
* @since API version 10 | |
*/ | |
createOrAbsoluteHardwareValueMatcher( | |
matcher1: AbsoluteHardwareValueMatcher, | |
matcher2: AbsoluteHardwareValueMatcher | |
): AbsoluteHardwareValueMatcher; | |
/** | |
* An object that can be used to generate useful MIDI expression strings which can be used in | |
* {@link MidiIn#createActionMatcher(String)} and other related methods. | |
* | |
* @since API version 10 | |
*/ | |
midiExpressions(): MidiExpressions; | |
/** | |
* Creates a {@link HardwareActionBindable} that can be bound to some {@link HardwareAction} (such as a | |
* button press) and when that action occurs the supplied {@link Runnable} will be run | |
* | |
* @param runnable | |
* The runnable to be run | |
* @param descriptionProvider | |
* Provider that can provide a description of what the runnable does (used for showing onscreen | |
* feedback or help to the user). | |
* | |
* @since API version 10 | |
*/ | |
createAction( | |
runnable: () => void, | |
descriptionProvider: Supplier<string> | |
): HardwareActionBindable; | |
/** | |
* Creates a {@link HardwareActionBindable} that can be bound to some {@link HardwareAction} (such as a | |
* button press) and when that action occurs the supplied {@link Runnable} will be run | |
* | |
* @param actionPressureConsumer | |
* Consumer that will be notified of the pressure of the action | |
* @param descriptionProvider | |
* Provider that can provide a description of what the runnable does (used for showing onscreen | |
* feedback or help to the user). | |
* | |
* @since API version 10 | |
*/ | |
createAction( | |
actionPressureConsumer: DoubleConsumer, | |
descriptionProvider: Supplier<string> | |
): HardwareActionBindable; | |
/** | |
* Creates a {@link RelativeHardwarControlBindable} that can be used to step forwards or backwards when a | |
* {@link RelativeHardwareControl} is adjusted. A step is defined by the | |
* {@link RelativeHardwareControl#setStepSize(double)}. | |
* | |
* @param stepForwardsAction | |
* The action that should happen when stepping forwards | |
* @param stepBackwardsAction | |
* The action that should happen when stepping backwards | |
* | |
* @since API version 10 | |
*/ | |
createRelativeHardwareControlStepTarget( | |
stepForwardsAction: HardwareActionBindable, | |
stepBackwardsAction: HardwareActionBindable | |
): RelativeHardwarControlBindable; | |
/** | |
* Creates a {@link RelativeHardwarControlBindable} that can be used to adjust some value in an arbitrary | |
* way. | |
* | |
* @param adjustmentConsumer | |
* A consumer that will receive the relative adjustment amount when bound to a | |
* {@link RelativeHardwareControl}. | |
* | |
* @since API version 10 | |
*/ | |
createRelativeHardwareControlAdjustmentTarget( | |
adjustmentConsumer: DoubleConsumer | |
): RelativeHardwarControlBindable; | |
/** | |
* Creates a {@link AbsoluteHardwarControlBindable} that can be used to adjust some value in an arbitrary | |
* way. | |
* | |
* @param adjustmentConsumer | |
* A consumer that will receive the absolute adjustment amount when bound to an | |
* {@link AbsoluteHardwareControl}. | |
* | |
* @since API version 10 | |
*/ | |
createAbsoluteHardwareControlAdjustmentTarget( | |
adjustmentConsumer: DoubleConsumer | |
): AbsoluteHardwarControlBindable; | |
/** | |
* It will delete multiple object within one undo step. | |
* | |
* @newSince API version 10 | |
*/ | |
deleteObjects(undoName: string, ...objects: DeleteableObject[]): void; | |
/** | |
* It will delete multiple object within one undo step. | |
* | |
* @since API version 10 | |
*/ | |
deleteObjects(...objects: DeleteableObject[]): void; | |
/** | |
* Creates a {@link DeviceMatcher} that will match any instrument. | |
* | |
* @since API version 12 | |
*/ | |
createInstrumentMatcher(): DeviceMatcher; | |
/** | |
* Creates a {@link DeviceMatcher} that will match any audio effect. | |
* | |
* @since API version 12 | |
*/ | |
createAudioEffectMatcher(): DeviceMatcher; | |
/** | |
* Creates a {@link DeviceMatcher} that will match any note effect. | |
* | |
* @since API version 12 | |
*/ | |
createNoteEffectMatcher(): DeviceMatcher; | |
/** | |
* Creates a {@link DeviceMatcher} that will match any Bitwig native device with the supplied id. | |
* | |
* @since API version 12 | |
*/ | |
createBitwigDeviceMatcher(id: UUID): DeviceMatcher; | |
/** | |
* Creates a {@link DeviceMatcher} that will match any VST2 plug-in with the supplied id. | |
* | |
* @since API version 12 | |
*/ | |
createVST2DeviceMatcher(id: number): DeviceMatcher; | |
/** | |
* Creates a {@link DeviceMatcher} that will match any VST3 plug-in with the supplied id. | |
* | |
* @since API version 12 | |
*/ | |
createVST3DeviceMatcher(id: string): DeviceMatcher; | |
/** | |
* Creates a {@link DeviceMatcher} that will only match devices that are currently active. | |
* | |
* @since API version 12 | |
*/ | |
createActiveDeviceMatcher(): DeviceMatcher; | |
/** | |
* Creates a {@link DeviceMatcher} that will only match devices if it is the last device in the chain. | |
* | |
* @since API version 12 | |
*/ | |
createFirstDeviceInChainMatcher(): DeviceMatcher; | |
/** | |
* Creates a {@link DeviceMatcher} that will only match devices if it is the last device in the chain. | |
* | |
* @since API version 12 | |
*/ | |
createLastDeviceInChainMatcher(): DeviceMatcher; | |
/** | |
* Creates a {@link DeviceMatcher} that matches a device if any of the supplied matchers match the device. | |
* | |
* @since API version 12 | |
*/ | |
createOrDeviceMatcher(...deviceMatchers: DeviceMatcher[]): DeviceMatcher; | |
/** | |
* Creates a {@link DeviceMatcher} that matches a device if all of the supplied matchers match the device. | |
* | |
* @since API version 12 | |
*/ | |
createAndDeviceMatcher(...deviceMatchers: DeviceMatcher[]): DeviceMatcher; | |
/** | |
* Creates a {@link DeviceMatcher} that matches a device if the supplied matcher does not match the device. | |
* | |
* @since API version 12 | |
*/ | |
createNotDeviceMatcher(deviceMatcher: DeviceMatcher): DeviceMatcher; | |
} | |
// source: com/bitwig/extension/controller/api/CueMarker.java | |
/** | |
* This interface defines access to the common attributes and operations of cue markers. | |
* | |
* @since API version 2 | |
*/ | |
interface CueMarker extends ObjectProxy { | |
/** | |
* Launches playback at the marker position. | |
* | |
* @param quantized Specified if the cue marker should be launched quantized or immediately | |
* @since API version 2 | |
*/ | |
launch(quantized: boolean): void; | |
/** | |
* Gets a representation of the marker name. | |
* | |
* @since API version 2 | |
*/ | |
getName(): StringValue; | |
/** | |
* Gets a representation of the marker color. | |
* | |
* @since API version 2 | |
*/ | |
getColor(): ColorValue; | |
/** | |
* Gets a representation of the markers beat-time position in quarter-notes. | |
* | |
* @since API version 10 | |
*/ | |
position(): SettableBeatTimeValue; | |
} | |
// source: com/bitwig/extension/controller/api/CueMarkerBank.java | |
/** | |
* A cue marker bank provides access to a range of cue markers in Bitwig Studio. | |
* Instances are typically configured with a fixed number of markers and represent an excerpt | |
* of a larger list of markers. It basically acts like a window moving over the list of markers. | |
* | |
* @since API version 2 | |
*/ | |
interface CueMarkerBank extends Bank<CueMarker> { | |
/** | |
* Scrolls the cue marker bank window so that the marker at the given position becomes visible. | |
* | |
* @param position | |
* the index of the marker within the underlying full list of markers (not the index within the | |
* bank). The position is typically directly related to the layout of the marker list in Bitwig | |
* Studio, starting with zero in case of the first marker. | |
* @since API version 2 | |
*/ | |
scrollToMarker(position: number): void; | |
} | |
// source: com/bitwig/extension/controller/api/Cursor.java | |
/** | |
* A generic interface that provides the foundation for working with selections. | |
* | |
* Implementations of this interface can either represent custom selection cursors that are created by | |
* controller scripts, or represent the cursor of user selections as shown in Bitwig Studio editors, such as | |
* the Arranger track selection cursor, the note editor event selection cursor and so on. | |
* | |
* @since API version 1 | |
*/ | |
interface Cursor extends RelativeHardwarControlBindable { | |
/** | |
* Select the previous item. | |
* | |
* @since API version 1 | |
*/ | |
selectPrevious(): void; | |
selectPreviousAction(): HardwareActionBindable; | |
/** | |
* Select the next item. | |
* | |
* @since API version 1 | |
*/ | |
selectNext(): void; | |
selectNextAction(): HardwareActionBindable; | |
/** | |
* Select the first item. | |
* | |
* @since API version 1 | |
*/ | |
selectFirst(): void; | |
/** | |
* Select the last item. | |
* | |
* @since API version 1 | |
*/ | |
selectLast(): void; | |
/** | |
* Boolean value that reports whether there is an item after the current cursor position. | |
* | |
* @since API version 2 | |
*/ | |
hasNext(): BooleanValue; | |
/** | |
* Boolean value that reports whether there is an item before the current cursor position. | |
* | |
* @since API version 2 | |
*/ | |
hasPrevious(): BooleanValue; | |
/** | |
* Registers a function with bool argument that gets called when the previous item gains or remains | |
* selectable. | |
* | |
* @since API version 1 | |
* @deprecated Use {@link #hasPrevious()} instead. | |
*/ | |
addCanSelectPreviousObserver(callback: BooleanValueChangedCallback): void; | |
/** | |
* Registers a function with bool argument that gets called when the next item gains or remains | |
* selectable. | |
* | |
* @since API version 1 | |
* @deprecated Use {@link #hasNext()} instead. | |
*/ | |
addCanSelectNextObserver(callback: BooleanValueChangedCallback): void; | |
} | |
// source: com/bitwig/extension/controller/api/CursorBrowserFilterColumn.java | |
/** | |
* Instances of this interface are used to navigate the filter columns of a Bitwig Studio browsing session. | |
* | |
* @since API version 1 | |
*/ | |
interface CursorBrowserFilterColumn extends BrowserFilterColumn, Cursor {} | |
// source: com/bitwig/extension/controller/api/CursorBrowserFilterItem.java | |
/** | |
* Instances of this interface represent entries in a browser filter column. | |
* | |
* @since API version 1 | |
*/ | |
interface CursorBrowserFilterItem | |
extends BrowserFilterItem, | |
CursorBrowserItem { | |
/** | |
* Select the parent item. | |
* | |
* @since API version 1 | |
*/ | |
selectParent(): void; | |
/** | |
* Select the first child item. | |
* | |
* @since API version 1 | |
*/ | |
selectFirstChild(): void; | |
/** | |
* Select the last child item. | |
* | |
* @since API version 1 | |
*/ | |
selectLastChild(): void; | |
/** | |
* Select the previous item. | |
* | |
* @since API version 1 | |
*/ | |
moveToPrevious(): void; | |
/** | |
* Select the next item. | |
* | |
* @since API version 1 | |
*/ | |
moveToNext(): void; | |
/** | |
* Select the first item. | |
* | |
* @since API version 1 | |
*/ | |
moveToFirst(): void; | |
/** | |
* Select the last item. | |
* | |
* @since API version 1 | |
*/ | |
moveToLast(): void; | |
/** | |
* Select the parent item. | |
* | |
* @since API version 1 | |
*/ | |
moveToParent(): void; | |
/** | |
* Move the cursor to the first child item. | |
* | |
* @since API version 1 | |
*/ | |
moveToFirstChild(): void; | |
/** | |
* Move the cursor to the last child item. | |
* | |
* @since API version 1 | |
*/ | |
moveToLastChild(): void; | |
} | |
// source: com/bitwig/extension/controller/api/CursorBrowserItem.java | |
/** | |
* Instances of this interface represent entries in a browser filter column. | |
* | |
* @since API version 1 | |
*/ | |
interface CursorBrowserItem extends BrowserItem, Cursor { | |
/** | |
* Returns a bank object that provides access to the siblings of the cursor item. The bank will | |
* automatically scroll so that the cursor item is always visible. | |
* | |
* @param numSiblings | |
* the number of simultaneously accessible siblings | |
* @return the requested item bank object | |
*/ | |
createSiblingsBank(numSiblings: number): BrowserItemBank; | |
} | |
// source: com/bitwig/extension/controller/api/CursorBrowserResultItem.java | |
/** | |
* Instances of this interface represent entries in a browser column. | |
* | |
* @since API version 1 | |
*/ | |
interface CursorBrowserResultItem | |
extends BrowserResultsItem, | |
CursorBrowserItem {} | |
// source: com/bitwig/extension/controller/api/CursorBrowsingSession.java | |
/** | |
* Instances of this interface are used for navigating the various browsing sessions of Bitwig Studio's | |
* contextual browser. | |
* | |
* @since API version 1 | |
*/ | |
interface CursorBrowsingSession extends GenericBrowsingSession, Cursor {} | |
// source: com/bitwig/extension/controller/api/CursorChannel.java | |
/** | |
* A special kind of channel that follows a channel selection cursor in Bitwig Studio. The selection can | |
* either be a custom selection cursor that gets created by the controller script, or represent the user | |
* selection cursor as shown in the Bitwig Studio editors, such as the Arranger track selection cursor. | |
* | |
* @since API version 1 | |
*/ | |
interface CursorChannel extends Cursor, Channel { | |
/** | |
* Points the cursor to the given channel. | |
* | |
* @param channel | |
* the channel that this channel cursor should point to | |
* @since API version 1 | |
*/ | |
selectChannel(channel: Channel): void; | |
} | |
// source: com/bitwig/extension/controller/api/CursorClip.java | |
/** | |
* Represents a cursor clip. | |
* | |
* @since API version 10 | |
*/ | |
interface CursorClip extends Clip, Cursor { | |
/** | |
* Requests that the supplied clip be selected in this cursor. | |
* @since API version 10 | |
*/ | |
selectClip(clip: Clip): void; | |
} | |
// source: com/bitwig/extension/controller/api/CursorDevice.java | |
/** | |
* A special kind of selection cursor used for devices. | |
* | |
* @since API version 1 | |
*/ | |
interface CursorDevice extends Cursor, Device { | |
/** | |
* Returns the channel that this cursor device was created on. Currently this will always be a track or | |
* cursor track instance. | |
* | |
* @return the track or cursor track object that was used for creation of this cursor device. | |
* @since API version 1 | |
* @deprecated Use {@link #channel()} instead. | |
*/ | |
getChannel(): Channel; | |
/** | |
* Returns the channel that this cursor device was created on. Currently this will always be a track or | |
* cursor track instance. | |
* | |
* @return the track or cursor track object that was used for creation of this cursor device. | |
* @since API version 5 | |
*/ | |
channel(): Channel; | |
/** | |
* Selects the parent device if there is any. | |
* | |
* @since API version 1 | |
*/ | |
selectParent(): void; | |
/** | |
* Moves this cursor to the given device. | |
* | |
* @param device | |
* the device that this cursor should point to | |
* @since API version 1 | |
*/ | |
selectDevice(device: Device): void; | |
/** | |
* Selects the first device in the given channel. | |
* | |
* @param channel | |
* the channel in which the device should be selected | |
* @since API version 1 | |
*/ | |
selectFirstInChannel(channel: Channel): void; | |
/** | |
* Selects the last device in the given channel. | |
* | |
* @param channel | |
* the channel in which the device should be selected | |
* @since API version 1 | |
*/ | |
selectLastInChannel(channel: Channel): void; | |
/** | |
* Selects the first device in the nested FX slot with the given name. | |
* | |
* @param chain | |
* the name of the FX slot in which the device should be selected | |
* @since API version 1 | |
*/ | |
selectFirstInSlot(chain: string): void; | |
/** | |
* Selects the last device in the nested FX slot with the given name. | |
* | |
* @param chain | |
* the name of the FX slot in which the device should be selected | |
* @since API version 1 | |
*/ | |
selectLastInSlot(chain: string): void; | |
/** | |
* Selects the first device in the drum pad associated with the given key. | |
* | |
* @param key | |
* the key associated with the drum pad in which the device should be selected | |
* @since API version 1 | |
*/ | |
selectFirstInKeyPad(key: number): void; | |
/** | |
* Selects the last device in the drum pad associated with the given key. | |
* | |
* @param key | |
* the key associated with the drum pad in which the device should be selected | |
* @since API version 1 | |
*/ | |
selectLastInKeyPad(key: number): void; | |
/** | |
* Selects the first device in the nested layer with the given index. | |
* | |
* @param index | |
* the index of the nested layer in which the device should be selected | |
* @since API version 1 | |
*/ | |
selectFirstInLayer(index: number): void; | |
/** | |
* Selects the last device in the nested layer with the given index. | |
* | |
* @param index | |
* the index of the nested layer in which the device should be selected | |
* @since API version 1 | |
*/ | |
selectLastInLayer(index: number): void; | |
/** | |
* Selects the first device in the nested layer with the given name. | |
* | |
* @param name | |
* the name of the nested layer in which the device should be selected | |
* @since API version 1 | |
*/ | |
selectFirstInLayer(name: string): void; | |
/** | |
* Selects the last device in the nested layer with the given name. | |
* | |
* @param name | |
* the name of the nested layer in which the device should be selected | |
* @since API version 1 | |
*/ | |
selectLastInLayer(name: string): void; | |
} | |
// source: com/bitwig/extension/controller/api/CursorDeviceFollowMode.java | |
enum CursorDeviceFollowMode { | |
FOLLOW_SELECTION = 0, | |
FIRST_DEVICE = 1, | |
FIRST_INSTRUMENT = 2, | |
FIRST_AUDIO_EFFECT = 3, | |
FIRST_INSTRUMENT_OR_DEVICE = 4, | |
LAST_DEVICE = 5, | |
} | |
// source: com/bitwig/extension/controller/api/CursorDeviceLayer.java | |
/** | |
* Instances of this interface represent the cursor item in device layer selections. | |
* | |
* @since API version 1 | |
*/ | |
interface CursorDeviceLayer extends CursorChannel, DeviceLayer {} | |
// source: com/bitwig/extension/controller/api/CursorDeviceSlot.java | |
/** | |
* Instances of this interface represent the selected device slot as shown in the Bitwig Studio user | |
* interface. | |
* | |
* @since API version 1 | |
*/ | |
interface CursorDeviceSlot extends DeviceChain { | |
selectSlot(slot: string): void; | |
} | |
// source: com/bitwig/extension/controller/api/CursorNavigationMode.java | |
enum CursorNavigationMode { | |
NESTED = 0, | |
FLAT = 1, | |
GUI = 2, | |
} | |
// source: com/bitwig/extension/controller/api/CursorRemoteControlsPage.java | |
/** | |
* Represents a cursor that looks at a {@link RemoteControlsPage}. | |
* | |
* @since API version 2 | |
*/ | |
interface CursorRemoteControlsPage extends Cursor, RemoteControlsPage { | |
/** | |
* Value that reports the names of the devices parameter pages. | |
*/ | |
pageNames(): StringArrayValue; | |
/** | |
* Selects the next page. | |
* | |
* @param shouldCycle | |
* If true then when the end is reached and there is no next page it selects the first page | |
* | |
* @since API version 2 | |
*/ | |
selectNextPage(shouldCycle: boolean): void; | |
/** | |
* Selects the previous page. | |
* | |
* @param shouldCycle | |
* If true then when the end is reached and there is no next page it selects the first page | |
* | |
* @since API version 2 | |
*/ | |
selectPreviousPage(shouldCycle: boolean): void; | |
/** | |
* Selects the next page that matches the given expression. | |
* | |
* @param expression | |
* An expression that can match a page based on how it has been tagged. For now this can only be | |
* the name of a single tag that you would like to match. | |
* | |
* @param shouldCycle | |
* If true then when the end is reached and there is no next page it selects the first page | |
* | |
* @since API version 2 | |
*/ | |
selectNextPageMatching(expression: string, shouldCycle: boolean): void; | |
/** | |
* Selects the previous page that matches the given expression. | |
* | |
* @param expression | |
* An expression that can match a page based on how it has been tagged. For now this can only be | |
* the name of a single tag that you would like to match. | |
* | |
* @param shouldCycle | |
* If true then when the end is reached and there is no next page it selects the first page | |
* | |
* @since API version 2 | |
*/ | |
selectPreviousPageMatching(expression: string, shouldCycle: boolean): void; | |
/** | |
* Value that reports the currently selected parameter page index. | |
* | |
* @since API version 2 | |
*/ | |
selectedPageIndex(): SettableIntegerValue; | |
/** | |
* Value that represents the number of pages. | |
* | |
* @since API version 7 | |
*/ | |
pageCount(): IntegerValue; | |
} | |
// source: com/bitwig/extension/controller/api/CursorTrack.java | |
/** | |
* Instances of this interface represent the cursor item of track selections. | |
* | |
* @since API version 1 | |
*/ | |
interface CursorTrack extends CursorChannel, Track, PinnableCursor { | |
/** | |
* Makes the cursor track point to it's parent group track, in case it is not already pointing to the root | |
* group track. | |
* | |
* @since API version 1 | |
*/ | |
selectParent(): void; | |
/** | |
* Makes the cursor track point to the first child found with the track group that this cursor currently | |
* points to. If this cursor is not pointing to a track group or the track group is empty then this has no | |
* effect. | |
* | |
* @since API version 2 | |
*/ | |
selectFirstChild(): void; | |
/** | |
* Specifies the behaviour of the functions {@link #selectPrevious()}, {@link #selectNext()}, | |
* {@link #selectFirst()} and {@link #selectLast()}. Calling those functions can either navigate the cursor | |
* within the current nesting level, or over a flat list of either all tracks or only the expanded tracks. | |
* Default is CursorNavigationMode.FLAT. | |
* | |
* @since API version 1 | |
*/ | |
setCursorNavigationMode(mode: CursorNavigationMode): void; | |
createCursorDevice(): PinnableCursorDevice; | |
/** | |
* @param 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. | |
* @deprecated Use {{@link #createCursorDevice(String, String, int, CursorDeviceFollowMode)}} instead. | |
*/ | |
createCursorDevice(name: string): PinnableCursorDevice; | |
/** | |
* @param 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. | |
* @param numSends | |
* the number of sends that are simultaneously accessible in nested channels. | |
* @deprecated Use {{@link #createCursorDevice(String, String, int, CursorDeviceFollowMode)}} instead. | |
*/ | |
createCursorDevice(name: string, numSends: number): PinnableCursorDevice; | |
/** | |
* Creates a {@link CursorDevice} for this cursor track that by default follows a device based on the | |
* supplied follow mode. | |
* | |
* @param id | |
* An id that is used to identify this cursor. | |
* @param name | |
* A name that is displayed to the user for this cursor. | |
* @param numSends | |
* the number of sends that are simultaneously accessible in nested channels. | |
* @param followMode | |
* Mode that defines how this cursor should follow devices. | |
* | |
* @since API version 2 | |
*/ | |
createCursorDevice( | |
id: string, | |
name: string, | |
numSends: number, | |
followMode: CursorDeviceFollowMode | |
): PinnableCursorDevice; | |
/** | |
* Creates a {@link PinnableCursorClip} for this track that follows a clip within the track on the clip | |
* launcher. This clip typically gets updated when the user selects a new clip on the clip launcher. It can | |
* also act independently from the user's selection if the user so chooses in the settings for the | |
* controller. | |
* | |
* @since API version 10 | |
*/ | |
createLauncherCursorClip( | |
gridWidth: number, | |
gridHeight: number | |
): PinnableCursorClip; | |
/** | |
* Creates a {@link PinnableCursorClip} for this track that follows a clip within the track on the clip | |
* launcher. This clip typically gets updated when the user selects a new clip on the clip launcher. It can | |
* also act independently from the user's selection if the user so chooses in the settings for the | |
* controller. | |
* | |
* @since API version 10 | |
*/ | |
createLauncherCursorClip( | |
id: string, | |
name: string, | |
gridWidth: number, | |
gridHeight: number | |
): PinnableCursorClip; | |
} | |
// source: com/bitwig/extension/controller/api/DeleteableObject.java | |
/** | |
* Interface implemented by objects that can be deleted from the project. | |
* | |
* @since API version 10 | |
*/ | |
interface DeleteableObject { | |
/** | |
* Deletes this object from the document. | |
* | |
* If you want to delete multiple objects at once, see Host.deleteObjects(). | |
* | |
* @since API version 10 | |
*/ | |
deleteObject(): void; | |
} | |
// source: com/bitwig/extension/controller/api/Device.java | |
import DirectParameterDisplayedValueChangedCallback = com.bitwig.extension.callback.DirectParameterDisplayedValueChangedCallback; | |
import DirectParameterNameChangedCallback = com.bitwig.extension.callback.DirectParameterNameChangedCallback; | |
import DirectParameterNormalizedValueChangedCallback = com.bitwig.extension.callback.DirectParameterNormalizedValueChangedCallback; | |
import StringArrayValueChangedCallback = com.bitwig.extension.callback.StringArrayValueChangedCallback; | |
/** | |
* This interface represents a device in Bitwig Studio, both internal devices and plugins. | |
* | |
* @since API version 1 | |
*/ | |
interface Device extends ObjectProxy, DeleteableObject { | |
/** | |
* Returns a representation of the device chain that contains this device. Possible device chain instances | |
* are tracks, device layers, drums pads, or FX slots. | |
* | |
* @return the requested device chain object | |
* @since API version 1 | |
* @deprecated Use {@link #deviceChain()} instead. | |
*/ | |
getDeviceChain(): DeviceChain; | |
/** | |
* Returns a representation of the device chain that contains this device. Possible device chain instances | |
* are tracks, device layers, drums pads, or FX slots. | |
* | |
* @return the requested device chain object | |
* @since API version 5 | |
*/ | |
deviceChain(): DeviceChain; | |
/** | |
* Value that reports the position of the device within the parent device chain. | |
* | |
* @since API version 2 | |
*/ | |
position(): IntegerValue; | |
/** | |
* Registers an observer that reports the position of the device within the parent device chain. | |
* | |
* @param callback | |
* a callback function that receives a single integer parameter | |
* @since API version 1 | |
* @deprecated Use {@link #position()} instead. | |
*/ | |
addPositionObserver(callback: IntegerValueChangedCallback): void; | |
/** | |
* Returns an object that provides access to the open state of plugin windows. | |
* | |
* @return a boolean value object that represents the open state of the editor window, in case the device | |
* features a custom editor window (such as plugins). | |
* @since API version 1 | |
*/ | |
isWindowOpen(): SettableBooleanValue; | |
/** | |
* Returns an object that provides access to the expanded state of the device. | |
* | |
* @return a boolean value object that represents the expanded state of the device. | |
* @since API version 1 | |
*/ | |
isExpanded(): SettableBooleanValue; | |
/** | |
* Returns an object that provides access to the visibility of the device macros section. | |
* | |
* @return a boolean value object that represents the macro section visibility. | |
* | |
* @deprecated Use {@link #isRemoteControlsSectionVisible()} instead | |
* @since API version 1 | |
*/ | |
isMacroSectionVisible(): SettableBooleanValue; | |
/** | |
* Returns an object that provides access to the visibility of the device remote controls section. | |
* | |
* @return a boolean value object that represents the remote controls section visibility. | |
* | |
* @since API version 2 | |
*/ | |
isRemoteControlsSectionVisible(): SettableBooleanValue; | |
/** | |
* Returns an object that provides access to the visibility of the parameter page mapping editor. | |
* | |
* @return a boolean value object that represents visibility of the parameter page mapping editor. | |
* | |
* @deprecated Use {@link #isRemoteControlsSectionVisible()} instead | |
* @since API version 1 | |
*/ | |
isParameterPageSectionVisible(): SettableBooleanValue; | |
/** | |
* Returns the parameter with the given index in the current parameter page. | |
* | |
* @param indexInPage | |
* the index of the parameter within the current parameter page. | |
* @return an object that provides access to the requested parameter | |
* @ @deprecated Use getRemoteControls().getRemoteControlInSlot(indexInPage) | |
* @since API version 1 | |
*/ | |
getParameter(indexInPage: number): Parameter; | |
/** | |
* 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. | |
* | |
* @param parameterCount | |
* The number of parameters the remote controls should contain | |
* | |
* @since API version 2 | |
*/ | |
createCursorRemoteControlsPage( | |
parameterCount: number | |
): CursorRemoteControlsPage; | |
/** | |
* 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. | |
* | |
* @param name | |
* A name to associate with this section. This will be used to remember manual mappings made by | |
* the user within this section. | |
* | |
* | |
* @param parameterCount | |
* The number of parameters the remote controls should contain | |
* | |
* @param 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 2 | |
*/ | |
createCursorRemoteControlsPage( | |
name: string, | |
parameterCount: number, | |
filterExpression: string | |
): CursorRemoteControlsPage; | |
/** | |
* Returns the parameter with the given index in the envelope parameter page. | |
* | |
* @param index | |
* the index of the parameter within the envelope parameter page. | |
* @return an object that provides access to the requested parameter | |
* @ @since API version 1 | |
* @deprecated The remote controls deprecate this feature. Instead create remote controls with | |
* {@link #createIndependentRemoteControls(String, int, String)}. | |
*/ | |
getEnvelopeParameter(index: number): Parameter; | |
/** | |
* Returns the parameter with the given index in the common parameter page. | |
* | |
* @param index | |
* the index of the parameter within the common parameter page. | |
* @return an object that provides access to the requested parameter | |
* @ @since API version 1 | |
* @deprecated The remote controls deprecate this feature. Instead create remote controls with | |
* {@link #createIndependentRemoteControls(String, int, String)}. | |
*/ | |
getCommonParameter(index: number): Parameter; | |
/** | |
* Returns the modulation source at the given index. | |
* | |
* @param index | |
* the index of the modulation source | |
* @return An object that represents the requested modulation source | |
* @ @since API version 1 | |
* @deprecated The remote controls deprecate this feature. Instead create remote controls with | |
* {@link #createIndependentRemoteControls(String, int, String)}. | |
*/ | |
getModulationSource(index: number): ModulationSource; | |
/** | |
* Returns the macro control at the given index. | |
* | |
* @param index | |
* the index of the macro control, must be in the range [0..7] | |
* @return An object that represents the requested macro control | |
* @ @since API version 1 | |
* @deprecated Devices no longer have a built in fixed macro section. Instead the user can define pages of | |
* mappings and these should be used instead. | |
*/ | |
getMacro(index: number): Macro; | |
/** | |
* Registers an observer that reports if the device is selected. | |
* | |
* @param callback | |
* a callback function that receives a single boolean parameter. | |
* @since API version 1 | |
* @deprecated Use {@link #exists()} instead. | |
*/ | |
addHasSelectedDeviceObserver(callback: BooleanValueChangedCallback): void; | |
/** | |
* Selects the device in Bitwig Studio. | |
* | |
* @since API version 1 | |
*/ | |
selectInEditor(): void; | |
/** | |
* Value that reports if the device is a plugin. | |
* | |
* @since API version 2 | |
*/ | |
isPlugin(): BooleanValue; | |
/** | |
* Registers an observer that reports if the device is a plugin. | |
* | |
* @param callback | |
* a callback function that receives a single boolean parameter. | |
* @since API version 1 | |
* @deprecated Use {@link #isPlugin()} instead | |
*/ | |
addIsPluginObserver(callback: BooleanValueChangedCallback): void; | |
/** | |
* Switches to the previous parameter page. | |
* | |
* @since API version 1 | |
*/ | |
previousParameterPage(): void; | |
/** | |
* Switches to the next parameter page. | |
* | |
* @since API version 1 | |
*/ | |
nextParameterPage(): void; | |
/** | |
* Registers an observer that reports if there is a previous parameter page. | |
* | |
* @param callback | |
* a callback function that receives a single boolean parameter | |
* @since API version 1 | |
*/ | |
addPreviousParameterPageEnabledObserver( | |
callback: BooleanValueChangedCallback | |
): void; | |
/** | |
* Registers an observer that reports if there is a next parameter page. | |
* | |
* @param callback | |
* a callback function that receives a single boolean parameter | |
* @since API version 1 | |
*/ | |
addNextParameterPageEnabledObserver( | |
callback: BooleanValueChangedCallback | |
): void; | |
/** | |
* Switches to the parameter page at the given page index. | |
* | |
* @param page | |
* the index of the desired parameter page | |
* @since API version 1 | |
*/ | |
setParameterPage(page: number): void; | |
/** | |
* Loads the previous preset. | |
* | |
* @since API version 1 | |
* @deprecated Use new browser API provided via {@link #createDeviceBrowser(int, int)} instead. | |
*/ | |
switchToPreviousPreset(): void; | |
/** | |
* Loads the next preset. | |
* | |
* @since API version 1 | |
* @deprecated Use new browser API provided via {@link #createDeviceBrowser(int, int)} instead. | |
*/ | |
switchToNextPreset(): void; | |
/** | |
* Switches to the previous preset category. | |
* | |
* @since API version 1 | |
* @deprecated Use new browser API provided via {@link #createDeviceBrowser(int, int)} instead. | |
*/ | |
switchToPreviousPresetCategory(): void; | |
/** | |
* Switches to the next preset category. | |
* | |
* @since API version 1 | |
* @deprecated Use new browser API provided via {@link #createDeviceBrowser(int, int)} instead. | |
*/ | |
switchToNextPresetCategory(): void; | |
/** | |
* Switches to the previous preset creator. | |
* | |
* @since API version 1 | |
* @deprecated Use new browser API provided via {@link #createDeviceBrowser(int, int)} instead. | |
*/ | |
switchToPreviousPresetCreator(): void; | |
/** | |
* Switches to the next preset creator. | |
* | |
* @since API version 1 | |
* @deprecated Use new browser API provided via {@link #createDeviceBrowser(int, int)} instead. | |
*/ | |
switchToNextPresetCreator(): void; | |
/** | |
* Returns an object used for browsing devices, presets and other content. Committing the browsing session | |
* will load or create a device from the selected resource and replace the current device. | |
* | |
* @param numFilterColumnEntries | |
* the size of the window used to navigate the filter column entries. | |
* @param numResultsColumnEntries | |
* the size of the window used to navigate the results column entries. | |
* @return the requested device browser object. | |
* @since API version 1 | |
*/ | |
createDeviceBrowser( | |
numFilterColumnEntries: number, | |
numResultsColumnEntries: number | |
): Browser; | |
/** | |
* Value that reports the name of the device. | |
* | |
* @since API version 2 | |
*/ | |
name(): StringValue; | |
/** | |
* Registers an observer that reports the name of the device. | |
* | |
* @param len | |
* the maximum length of the name. Longer names will get truncated. | |
* @param textWhenUnassigned | |
* the default name that gets reported when the device is not associated with a Bitwig Studio | |
* device yet. | |
* @param callback | |
* a callback function that receives a single name (string) parameter | |
* @since API version 1 | |
* @deprecated Use {@link #name()} instead | |
*/ | |
addNameObserver( | |
len: number, | |
textWhenUnassigned: string, | |
callback: StringValueChangedCallback | |
): void; | |
/** | |
* Value that reports the last loaded preset name. | |
* | |
* @since API version 2 | |
*/ | |
presetName(): StringValue; | |
/** | |
* Registers an observer that reports the last loaded preset name. | |
* | |
* @param len | |
* the maximum length of the name. Longer names will get truncated. | |
* @param textWhenUnassigned | |
* the default name that gets reported when the device is not associated with a Bitwig Studio | |
* device yet. | |
* @param callback | |
* a callback function that receives a single name (string) parameter | |
* @since API version 1 | |
* @deprecated Use {@link #presetName()}.addValueObserver(callback) instead. | |
*/ | |
addPresetNameObserver( | |
len: number, | |
textWhenUnassigned: string, | |
callback: StringValueChangedCallback | |
): void; | |
/** | |
* Value that reports the current preset category name. | |
* | |
* @since API version 2 | |
*/ | |
presetCategory(): StringValue; | |
/** | |
* Registers an observer that reports the current preset category name. | |
* | |
* @param len | |
* the maximum length of the name. Longer names will get truncated. | |
* @param textWhenUnassigned | |
* the default name that gets reported when the device is not associated with a Bitwig Studio | |
* device yet. | |
* @param callback | |
* a callback function that receives a single name (string) parameter | |
* @since API version 1 | |
* @deprecated use {@link #presetCategory()} instead. | |
*/ | |
addPresetCategoryObserver( | |
len: number, | |
textWhenUnassigned: string, | |
callback: StringValueChangedCallback | |
): void; | |
/** | |
* Value that reports the current preset creator name. | |
* | |
* @since API version 2 | |
*/ | |
presetCreator(): StringValue; | |
/** | |
* Registers an observer that reports the current preset creator name. | |
* | |
* @param len | |
* the maximum length of the name. Longer names will get truncated. | |
* @param textWhenUnassigned | |
* the default name that gets reported when the device is not associated with a Bitwig Studio | |
* device yet. | |
* @param callback | |
* a callback function that receives a single name (string) parameter | |
* @since API version 1 | |
* @deprecated Use {@link #presetCreator()} instead. | |
*/ | |
addPresetCreatorObserver( | |
len: number, | |
textWhenUnassigned: string, | |
callback: StringValueChangedCallback | |
): void; | |
/** | |
* Registers an observer that reports the currently selected parameter page. | |
* | |
* @param valueWhenUnassigned | |
* the default page index that gets reported when the device is not associated with a device | |
* instance in Bitwig Studio yet. | |
* @param callback | |
* a callback function that receives a single page index parameter (integer) | |
* @since API version 1 | |
* @deprecated Use {@link #createCursorRemoteControlsPage(int)} instead. | |
*/ | |
addSelectedPageObserver( | |
valueWhenUnassigned: number, | |
callback: IntegerValueChangedCallback | |
): void; | |
/** | |
* Registers an observer that reports the name of the active modulation source. | |
* | |
* @param len | |
* the maximum length of the name. Longer names will get truncated. | |
* @param textWhenUnassigned | |
* the default name that gets reported when the device is not associated with a Bitwig Studio | |
* device yet. | |
* @param callback | |
* a callback function that receives a single name parameter (string) | |
* @since API version 1 | |
* @deprecated Use {@link #createCursorRemoteControlsPage(int)} instead. | |
*/ | |
addActiveModulationSourceObserver( | |
len: number, | |
textWhenUnassigned: string, | |
callback: StringValueChangedCallback | |
): void; | |
/** | |
* Registers an observer that reports the names of the devices parameter pages. | |
* | |
* @param callback | |
* a callback function that receives a single string array parameter containing the names of the | |
* parameter pages | |
* @since API version 1 | |
* @deprecated Use {@link #createCursorRemoteControlsPage(int)} instead. | |
*/ | |
addPageNamesObserver(callback: StringArrayValueChangedCallback): void; | |
/** | |
* Registers an observer that reports the names of the available presets for the device according to the | |
* current configuration of preset category and creator filtering. | |
* | |
* @param callback | |
* a callback function that receives a single string array parameter containing the names of the | |
* presets for the current category and creator filter. | |
* @see #addPresetCategoryObserver | |
* @see #addPresetCreatorObserver | |
* @see #setPresetCategory | |
* @see #setPresetCreator | |
* @since API version 1 | |
* @deprecated Use the new browser API instead. | |
*/ | |
addPresetNamesObserver(callback: StringArrayValueChangedCallback): void; | |
/** | |
* Loads the preset with the index from the list provided by {@link #addPresetNamesObserver}. | |
* | |
* @since API version 1 | |
* @deprecated Use the new browser API instead. | |
*/ | |
loadPreset(index: number): void; | |
/** | |
* Registers an observer that reports the names of the available preset categories for the device. | |
* | |
* @param callback | |
* a callback function that receives a single string array parameter containing the names of the | |
* preset categories | |
* @since API version 1 | |
* @deprecated Use the new browser API instead. | |
*/ | |
addPresetCategoriesObserver( | |
callback: StringArrayValueChangedCallback | |
): void; | |
/** | |
* Sets the preset category filter with the index from the array provided by | |
* {@link #addPresetCategoriesObserver}. | |
* | |
* @since API version 1 | |
* @deprecated Use the new browser API instead. | |
*/ | |
setPresetCategory(index: number): void; | |
/** | |
* Registers an observer that reports the names of the available preset creators for the device. | |
* | |
* @param callback | |
* a callback function that receives a single string array parameter containing the names of the | |
* preset creators | |
* @since API version 1 | |
* @deprecated Use the new browser API instead. | |
*/ | |
addPresetCreatorsObserver(callback: StringArrayValueChangedCallback): void; | |
/** | |
* Sets the preset creator filter with the index from the list provided by | |
* {@link #addPresetCreatorsObserver}. | |
* | |
* @since API version 1 | |
* @deprecated Use the new browser API instead. | |
*/ | |
setPresetCreator(index: number): void; | |
/** | |
* Toggles the enabled state of the device. | |
* | |
* @since API version 1 | |
* @deprecated Use isEnabled().toggle() instead. | |
*/ | |
toggleEnabledState(): void; | |
/** | |
* Value that reports if the device is enabled. | |
* | |
* @since API version 2 | |
*/ | |
isEnabled(): SettableBooleanValue; | |
/** | |
* Registers an observer that reports if the device is enabled. | |
* | |
* @param callback | |
* a callback function that receives a single boolean parameter | |
* @since API version 1 | |
* @deprecated Use {@link #isEnabled()} instead. | |
*/ | |
addIsEnabledObserver(callback: BooleanValueChangedCallback): void; | |
/** | |
* Indicates if the device has nested device chain slots. Use {@link #slotNames()} to get a list of | |
* available slot names, and navigate to devices in those slots using the {@link CursorDevice} interface. | |
* | |
* @return a value object that indicates if the device has nested device chains in FX slots. | |
* @since API version 1 | |
*/ | |
hasSlots(): BooleanValue; | |
/** | |
* Value of the list of available FX slots in this device. | |
* | |
* @since API version 2 | |
*/ | |
slotNames(): StringArrayValue; | |
/** | |
* Registers an observer that gets notified when the list of available FX slots changes. | |
* | |
* @param callback | |
* a callback function which takes a single string array argument that contains the names of the | |
* slots. | |
* @since API version 1 | |
* @deprecated Use {@link #slotNames()} instead. | |
*/ | |
addSlotsObserver(callback: StringArrayValueChangedCallback): void; | |
/** | |
* Returns an object that represents the selected device slot as shown in the user interface, and that | |
* provides access to the contents of slot's device chain. | |
* | |
* @return the requested slot cursor object | |
* @since API version 1 | |
*/ | |
getCursorSlot(): DeviceSlot; | |
/** | |
* Indicates if the device is contained by another device. | |
* | |
* @return a value object that indicates if the device is nested | |
* @since API version 1 | |
*/ | |
isNested(): BooleanValue; | |
/** | |
* Indicates if the device supports nested layers. | |
* | |
* @return a value object that indicates if the device supports nested layers. | |
* @since API version 1 | |
*/ | |
hasLayers(): BooleanValue; | |
/** | |
* Indicates if the device has individual device chains for each note value. | |
* | |
* @return a value object that indicates if the device has individual device chains for each note value. | |
* @since API version 1 | |
*/ | |
hasDrumPads(): BooleanValue; | |
/** | |
* Create a bank for navigating the nested layers of the device using a fixed-size window. | |
* | |
* This bank will work over the following devices: | |
* - Instrument Layer | |
* - Effect Layer | |
* - Instrument Selector | |
* - Effect Selector | |
* | |
* @param numChannels | |
* the number of channels that the device layer bank should be configured with | |
* @return a device layer bank object configured with the desired number of channels | |
* @since API version 1 | |
*/ | |
createLayerBank(numChannels: number): DeviceLayerBank; | |
/** | |
* Create a bank for navigating the nested layers of the device using a fixed-size window. | |
* | |
* @param numPads | |
* the number of channels that the drum pad bank should be configured with | |
* @return a drum pad bank object configured with the desired number of pads | |
* @since API version 1 | |
*/ | |
createDrumPadBank(numPads: number): DrumPadBank; | |
/** | |
* Returns a device layer instance that can be used to navigate the layers or drum pads of the device, in | |
* case it has any | |
* | |
* This is the selected layer from the user interface. | |
* | |
* @return a cursor device layer instance | |
* @since API version 1 | |
*/ | |
createCursorLayer(): CursorDeviceLayer; | |
/** | |
* Creates a ChainSelector object which will give you control over the current device if it is an | |
* Instrument Selector or an Effect Selector. | |
* | |
* To check if the device is currently a ChainSelector, use {@link ChainSelector.exists()}. | |
* | |
* If you want to have access to all the chains, use {@link #createLayerBank(int)}. | |
* | |
* @return a chain selector instance | |
* @since API version 6 | |
*/ | |
createChainSelector(): ChainSelector; | |
/** | |
* Creates an interface for accessing the features of a specific Bitwig device. | |
* | |
* @since API version 12 | |
* */ | |
createSpecificBitwigDevice(deviceId: UUID): SpecificBitwigDevice; | |
/** | |
* Creates an interface for accessing the features of a specific VST2 device. | |
* | |
* @since API version 12 | |
* */ | |
createSpecificVst2Device(deviceId: number): SpecificPluginDevice; | |
/** | |
* Creates an interface for accessing the features of a specific VST2 device. | |
* | |
* @since API version 12 | |
* */ | |
createSpecificVst2Device(...deviceIds: number[]): SpecificPluginDevice; | |
/** | |
* Creates an interface for accessing the features of a specific VST2 device. | |
* | |
* @since API version 12 | |
* */ | |
createSpecificVst3Device(deviceId: string): SpecificPluginDevice; | |
/** | |
* Creates an interface for accessing the features of a specific VST2 device. | |
* | |
* @since API version 12 | |
* */ | |
createSpecificVst3Device(...deviceIds: string[]): SpecificPluginDevice; | |
/** | |
* Adds an observer on a list of all parameters for the device. | |
* | |
* The callback always updates with an array containing all the IDs for the device. | |
* | |
* @param callback | |
* function with the signature (String[]) | |
* @since API version 1 | |
*/ | |
addDirectParameterIdObserver( | |
callback: StringArrayValueChangedCallback | |
): void; | |
/** | |
* Adds an observer for the parameter names (initial and changes) of all parameters for the device. | |
* | |
* @param maxChars | |
* maximum length of the string sent to the observer. | |
* @param callback | |
* function with the signature (String ID, String name) | |
* @since API version 1 | |
*/ | |
addDirectParameterNameObserver( | |
maxChars: number, | |
callback: DirectParameterNameChangedCallback | |
): void; | |
/** | |
* Returns an observer that reports changes of parameter display values, i.e. parameter values formatted as | |
* a string to be read by the user, for example "-6.02 dB". The returned observer object can be used to | |
* configure which parameters should be observed. By default no parameters are observed. It should be | |
* avoided to observe all parameters at the same time for performance reasons. | |
* | |
* @return an observer object that can be used to enable or disable actual observing for certain | |
* parameters. | |
* @param maxChars | |
* maximum length of the string sent to the observer. | |
* @param callback | |
* function with the signature (String ID, String valueDisplay) | |
* @since API version 1 | |
*/ | |
addDirectParameterValueDisplayObserver( | |
maxChars: number, | |
callback: DirectParameterDisplayedValueChangedCallback | |
): DirectParameterValueDisplayObserver; | |
/** | |
* Adds an observer for the parameter display value (initial and changes) of all parameters for the device. | |
* | |
* @param callback | |
* a callback function with the signature (String ID, float normalizedValue). If the value is not | |
* accessible 'Number.NaN' (not-a-number) is reported, can be checked with 'isNaN(value)'. | |
* @since API version 1 | |
*/ | |
addDirectParameterNormalizedValueObserver( | |
callback: DirectParameterNormalizedValueChangedCallback | |
): void; | |
/** | |
* Sets the parameter with the specified `id` to the given `value` according to the given `resolution`. | |
* | |
* @param id | |
* the parameter identifier string | |
* @param value | |
* the new value normalized to the range [0..resolution-1] | |
* @param resolution | |
* the resolution of the new value | |
* @since API version 1 | |
*/ | |
setDirectParameterValueNormalized( | |
id: string, | |
value: number, | |
resolution: number | |
): void; | |
/** | |
* Increases the parameter with the specified `id` by the given `increment` according to the given | |
* `resolution`. To decrease the parameter value pass in a negative increment. | |
* | |
* @param id | |
* the parameter identifier string | |
* @param increment | |
* the amount that the parameter value should be increased by, normalized to the range | |
* [0..resolution-1] | |
* @param resolution | |
* the resolution of the new value | |
* @since API version 1 | |
*/ | |
incDirectParameterValueNormalized( | |
id: string, | |
increment: number, | |
resolution: number | |
): void; | |
/** | |
* Value that reports the file name of the currently loaded sample, in case the device is a sample | |
* container device. | |
* | |
* @since API version 2 | |
*/ | |
sampleName(): StringValue; | |
/** | |
* Registers an observer that reports the file name of the currently loaded sample, in case the device is a | |
* sample container device. | |
* | |
* @param maxChars | |
* maximum length of the string sent to the observer. | |
* @param textWhenUnassigned | |
* the default name that gets reported when the device is not associated with a Bitwig Studio | |
* device yet. | |
* @param callback | |
* a callback function that receives a single string parameter. | |
* @deprecated Use {@link #sampleName()} instead. | |
*/ | |
addSampleNameObserver( | |
maxChars: number, | |
textWhenUnassigned: string, | |
callback: StringValueChangedCallback | |
): void; | |
/** | |
* Returns an object that provides bank-wise navigation of sibling devices of the same device chain | |
* (including the device instance used to create the siblings bank). | |
* | |
* @param numDevices | |
* the number of devices that are simultaneously accessible | |
* @return the requested device bank object | |
* @ @since API version 1 | |
*/ | |
createSiblingsDeviceBank(numDevices: number): DeviceBank; | |
/** | |
* Starts browsing for content that can be inserted before this device in Bitwig Studio's popup browser. | |
* | |
* @since API version 2 | |
* @deprecated Use {@link #beforeDeviceInsertionPoint()} instead. | |
*/ | |
browseToInsertBeforeDevice(): void; | |
/** | |
* Starts browsing for content that can be inserted before this device in Bitwig Studio's popup browser. | |
* | |
* @since API version 2 | |
* @deprecated Use {@link #afterDeviceInsertionPoint()} instead. | |
*/ | |
browseToInsertAfterDevice(): void; | |
/** | |
* Starts browsing for content that can replace this device in Bitwig Studio's popup browser. | |
* | |
* @since API version 2 | |
* @deprecated Use {@link #replaceDeviceInsertionPoint()} instead. | |
*/ | |
browseToReplaceDevice(): void; | |
/** | |
* {@link InsertionPoint} that can be used for inserting after this device. | |
* | |
* @since API version 7 | |
*/ | |
afterDeviceInsertionPoint(): InsertionPoint; | |
/** | |
* {@link InsertionPoint} that can be used for inserting before this device. | |
* | |
* @since API version 7 | |
*/ | |
beforeDeviceInsertionPoint(): InsertionPoint; | |
/** | |
* {@link InsertionPoint} that can be used for replacing this device. | |
* | |
* @since API version 7 | |
*/ | |
replaceDeviceInsertionPoint(): InsertionPoint; | |
/** | |
* The type of this device. | |
* | |
* @since API version 12 | |
*/ | |
deviceType(): EnumValue; | |
} | |
// source: com/bitwig/extension/controller/api/DeviceBank.java | |
/** | |
* This interface is used for navigation of device chains in Bitwig Studio. Instances are configured with a | |
* fixed number of devices and provide access to a excerpt of the devices inside a device chain. Various | |
* methods are provided for scrolling to different sections of the device chain. It basically acts like a | |
* window moving over the devices. | |
* | |
* To receive an instance of DeviceBank call {@link Track#createDeviceBank}. | |
* | |
* @see {@link Track#createDeviceBank} | |
* @since API version 1 | |
*/ | |
interface DeviceBank extends Bank<Device> { | |
/** | |
* Returns the object that was used to instantiate this device bank. Possible device chain instances are | |
* tracks, device layers, drums pads, or FX slots. | |
* | |
* @return the requested device chain object | |
* @since API version 1 | |
*/ | |
getDeviceChain(): DeviceChain; | |
/** | |
* Returns the device at the given index within the bank. | |
* | |
* @param indexInBank | |
* the device index within this bank, not the position within the device chain. Must be in the | |
* range [0..sizeOfBank-1]. | |
* @return the requested device object | |
* @since API version 1 | |
*/ | |
getDevice(indexInBank: number): Device; | |
/** | |
* Scrolls the device window one page up. | |
* | |
* @since API version 1 | |
*/ | |
scrollPageUp(): void; | |
/** | |
* Scrolls the device window one page down. | |
* | |
* @since API version 1 | |
*/ | |
scrollPageDown(): void; | |
/** | |
* Scrolls the device window one device up. | |
* | |
* @since API version 1 | |
*/ | |
scrollUp(): void; | |
/** | |
* Scrolls the device window one device down. | |
* | |
* @since API version 1 | |
*/ | |
scrollDown(): void; | |
/** | |
* Makes the device with the given position visible in the track bank. | |
* | |
* @param position | |
* the position of the device within the device chain | |
* @since API version 1 | |
* @deprecated Use {@link #scrollIntoView(int)} instead | |
*/ | |
scrollTo(position: number): void; | |
/** | |
* Registers an observer that reports the current device scroll position. | |
* | |
* @param callback | |
* a callback function that takes a single integer parameter | |
* @param valueWhenUnassigned | |
* the default value that gets reports when the device chain is not yet connected to a Bitwig | |
* Studio document | |
* @since API version 1 | |
* @deprecated Use {@link #scrollPosition()} instead. | |
*/ | |
addScrollPositionObserver( | |
callback: IntegerValueChangedCallback, | |
valueWhenUnassigned: number | |
): void; | |
/** | |
* Registers an observer that reports if the device window can be scrolled further up. | |
* | |
* @param callback | |
* a callback function that takes a single boolean parameter | |
* @since API version 1 | |
* @deprecated Use {@link #canScrollBackwards()} instead. | |
*/ | |
addCanScrollUpObserver(callback: BooleanValueChangedCallback): void; | |
/** | |
* Registers an observer that reports if the device window can be scrolled further down. | |
* | |
* @param callback | |
* a callback function that takes a single boolean parameter | |
* @since API version 1 | |
* @deprecated Use {@link #canScrollForwards()} instead. | |
*/ | |
addCanScrollDownObserver(callback: BooleanValueChangedCallback): void; | |
/** | |
* Registers an observer that reports the total device count of the device chain (not the number of devices | |
* accessible through the bank window). | |
* | |
* @param callback | |
* a callback function that receives a single integer parameter | |
* @since API version 1 | |
* @deprecated Use {@link #deviceCount()}.addValueObserver(callback) | |
*/ | |
addDeviceCountObserver(callback: IntegerValueChangedCallback): void; | |
/** | |
* Browses for content to insert a device at the given index inside this bank. | |
* | |
* @param index | |
* the index to insert the device at. Must be >= 0 and <= {@link #getSizeOfBank()}. | |
* | |
* @since API version 2 | |
*/ | |
browseToInsertDevice(index: number): void; | |
/** | |
* Sets a {@link DeviceMatcher} that can be used to filter devices in this bank to show only those | |
* matching the supplied matcher. | |
* | |
* @param matcher The matcher that should filter the devices or null if all devices should be matched | |
* | |
* @since API version 12 | |
*/ | |
setDeviceMatcher(matcher: DeviceMatcher): void; | |
} | |
// source: com/bitwig/extension/controller/api/DeviceBrowsingSession.java | |
/** | |
* Instances of this interface are used for browsing devices, including access to all filter columns and the | |
* result column as shown in the 'Devices' tab of Bitwig Studio's contextual browser window. | |
* | |
* @see BrowsingSession | |
* @since API version 1 | |
* @deprecated Use {@link PopupBrowser} instead. | |
*/ | |
interface DeviceBrowsingSession extends BrowsingSession { | |
/** | |
* Returns the category filter as shown in the category column of the browser. | |
* | |
* @return the requested category filter object. | |
* @since API version 1 | |
*/ | |
getCategoryFilter(): BrowserFilterColumn; | |
/** | |
* Returns the device type filter as shown in the category column of the browser. | |
* | |
* @return the requested device type filter object. | |
* @since API version 1 | |
*/ | |
getDeviceTypeFilter(): BrowserFilterColumn; | |
/** | |
* Returns the file type filter as shown in the category column of the browser. | |
* | |
* @return the requested file type filter object. | |
* @since API version 1 | |
*/ | |
getFileTypeFilter(): BrowserFilterColumn; | |
} | |
// source: com/bitwig/extension/controller/api/DeviceChain.java | |
/** | |
* The foundation of all interfaces that contain devices, such as tracks, device layers, drum pads or FX | |
* slots. | |
* | |
* @since API version 1 | |
*/ | |
interface DeviceChain extends ObjectProxy { | |
/** | |
* Selects the device chain in Bitwig Studio, in case it is a selectable object. | |
* | |
* @since API version 1 | |
*/ | |
selectInEditor(): void; | |
/** | |
* Value that reports the name of the device chain, such as the track name or the drum pad | |
* name. | |
* | |
* @since API version 2 | |
*/ | |
name(): SettableStringValue; | |
/** | |
* Registers an observer that reports the name of the device chain, such as the track name or the drum pad | |
* name. | |
* | |
* @param numChars | |
* the maximum number of characters used for the reported name | |
* @param textWhenUnassigned | |
* the default text that gets reported when the device chain is not associated with an object in | |
* Bitwig Studio yet. | |
* @param callback | |
* a callback function that receives a single name parameter (string). | |
* @since API version 1 | |
* @deprecated Use {@link #name()} instead. | |
*/ | |
addNameObserver( | |
numChars: number, | |
textWhenUnassigned: string, | |
callback: StringValueChangedCallback | |
): void; | |
/** | |
* Registers an observer that reports if the device chain is selected in Bitwig Studio editors. | |
* | |
* @param callback | |
* a callback function that takes a single boolean parameter. | |
* @since API version 1 | |
*/ | |
addIsSelectedInEditorObserver(callback: BooleanValueChangedCallback): void; | |
/** | |
* @deprecated Use {@link #addIsSelectedInEditorObserver} instead. | |
* @since API version 1 | |
*/ | |
addIsSelectedObserver(callback: BooleanValueChangedCallback): void; | |
/** | |
* Returns an object that provides bank-wise navigation of devices. | |
* | |
* @param numDevices | |
* the number of devices should be accessible simultaneously | |
* @return the requested device bank object | |
* @ @since API version 1 | |
*/ | |
createDeviceBank(numDevices: number): DeviceBank; | |
/** | |
* Returns an object used for browsing devices, presets and other content. Committing the browsing session | |
* will load or create a device from the selected resource and insert it into the device chain. | |
* | |
* @param numFilterColumnEntries | |
* the size of the window used to navigate the filter column entries. | |
* @param numResultsColumnEntries | |
* the size of the window used to navigate the results column entries. | |
* @return the requested device browser object. | |
* @since API version 1 | |
*/ | |
createDeviceBrowser( | |
numFilterColumnEntries: number, | |
numResultsColumnEntries: number | |
): Browser; | |
/** | |
* @deprecated Use {@link #selectInEditor()} or {@link Channel#selectInMixer()} instead. | |
* @since API version 1 | |
*/ | |
select(): void; | |
/** | |
* Starts browsing for content that can be inserted at the start of this device chain. | |
* | |
* @since API version 2 | |
* @deprecated Use {@link #startOfDeviceChainInsertionPoint()} instead. | |
*/ | |
browseToInsertAtStartOfChain(): void; | |
/** | |
* Starts browsing for content that can be inserted at the end of this device chain. | |
* | |
* @since API version 2 | |
* @deprecated Use {@link #endOfDeviceChainInsertionPoint()} instead. | |
*/ | |
browseToInsertAtEndOfChain(): void; | |
/** | |
* {@link InsertionPoint} that can be used to insert at the start of the device chain. | |
* | |
* @since API version 7 | |
*/ | |
startOfDeviceChainInsertionPoint(): InsertionPoint; | |
/** | |
* {@link InsertionPoint} that can be used to insert at the end of the device chain. | |
* | |
* @since API version 7 | |
*/ | |
endOfDeviceChainInsertionPoint(): InsertionPoint; | |
} | |
// source: com/bitwig/extension/controller/api/DeviceLayer.java | |
/** | |
* Instances of this interface represent device layers in Bitwig Studio. | |
* | |
* @since API version 1 | |
*/ | |
interface DeviceLayer extends Channel {} | |
// source: com/bitwig/extension/controller/api/DeviceLayerBank.java | |
/** | |
* Devices layers are features of special Bitwig Studio devices, more specifically the Layer Instrument and | |
* Layer FX devices, and are also shown as sub-channels in the mixer panel. | |
* | |
* Instances of device layer bank are configured with a fixed number of channels and represent an excerpt of | |
* underlying complete list of channels. Various methods are provided for scrolling to different sections of | |
* the underlying list. It basically acts like a one-dimensional window moving over the device layers. | |
* | |
* To receive an instance of device layer bank call {@link Device#createLayerBank(int numChannels)}. | |
* | |
* @see {@link Device#createLayerBank} | |
* @since API version 1 | |
*/ | |
interface DeviceLayerBank extends ChannelBank<DeviceLayer> { | |
/** | |
* Returns the device layer at the given index. | |
* | |
* @param indexInBank | |
* the device layer index within this bank, not the index within the list of all device layers as | |
* shown in Bitwig Studio layer devices. Must be in the range [0..sizeOfBank-1]. | |
* @return the device layer object | |
* @since API version 1 | |
* @deprecated Use {@link #getItemAt(int)} instead. | |
*/ | |
getChannel(indexInBank: number): DeviceLayer; | |
} | |
// source: com/bitwig/extension/controller/api/DeviceMatcher.java | |
/** | |
* Something that can be used to match a certain device. The matcher can be used to filter devices in a | |
* {@link DeviceBank}, for example. | |
* | |
* {@link DeviceMatcher}s can be created by calling methods in | |
* {@link ControllerHost} such as {@link ControllerHost#createInstrumentMatcher()}. | |
* | |
* @since API version 12 | |
*/ | |
interface DeviceMatcher {} | |
// source: com/bitwig/extension/controller/api/DeviceSlot.java | |
/** | |
* Instances of this interface represent nested FX slots in devices. | |
* | |
* @since API version 1 | |
*/ | |
interface DeviceSlot extends DeviceChain {} | |
// source: com/bitwig/extension/controller/api/DirectParameterValueDisplayObserver.java | |
/** | |
* This interface is used to configure observation of pretty-printed device parameter values. | |
* | |
* @since API version 1 | |
*/ | |
interface DirectParameterValueDisplayObserver { | |
/** | |
* Starts observing the parameters according to the given parameter ID array, or stops observing in case | |
* `null` is passed in for the parameter ID array. | |
* | |
* @param parameterIds | |
* the array of parameter IDs or `null` to stop observing parameter display values. | |
* @since API version 1 | |
*/ | |
setObservedParameterIds(parameterIds: string[]): void; | |
} | |
// source: com/bitwig/extension/controller/api/DocumentState.java | |
/** | |
* This interface is used to save custom script settings inside Bitwig Studio documents. The settings are | |
* shown to the user in the `Studio IO` panel of Bitwig Studio. | |
* | |
* @since API version 1 | |
*/ | |
interface DocumentState extends Settings {} | |
// source: com/bitwig/extension/controller/api/DoubleValue.java | |
import DoubleSupplier = java.util.funktion.DoubleSupplier; | |
/** | |
* Instances of this interface represent double values. | |
* @since API version 2 | |
*/ | |
interface DoubleValue | |
extends Value<DoubleValueChangedCallback>, | |
DoubleSupplier { | |
/** | |
* Gets the current value. | |
* | |
* @since API version 2 | |
*/ | |
get(): number; | |
getAsDouble(): number; | |
} | |
// source: com/bitwig/extension/controller/api/DrumPad.java | |
/** | |
* Instances of this interface are special kind of channel objects that represent the pads of a drum machine | |
* instrument. Drum pads are typically associated to channel objects via note keys. | |
* | |
* @since API version 1 | |
*/ | |
interface DrumPad extends Channel { | |
/** | |
* {@link InsertionPoint} that can be used to insert content in this drum pad. | |
* | |
* @since API version 7 | |
* */ | |
insertionPoint(): InsertionPoint; | |
} | |
// source: com/bitwig/extension/controller/api/DrumPadBank.java | |
/** | |
* Drum pads are features of special Bitwig Studio devices (currently only the Bitwig Drum Machine | |
* instrument), and are also shown as sub-channels in the mixer panel. | |
* | |
* Instances of drum pad bank are configured with a fixed number of pads/channels and represent an excerpt of | |
* underlying complete list of channels. Various methods are provided for scrolling to different sections of | |
* the underlying list. It basically acts like a one-dimensional window moving over the drum pad channels. | |
* | |
* To receive an instance of drum pad bank call {@link Device#createDrumPadBank(int numChannels)}. | |
* | |
* @see {@link Device#createDrumPadBank} | |
* @since API version 1 | |
*/ | |
interface DrumPadBank extends ChannelBank<DrumPad> { | |
/** | |
* Specifies if the Drum Machine should visualize which pads are part of the window. By default indications | |
* are enabled. | |
* | |
* @param shouldIndicate | |
* `true` if visual indications should be enabled, `false` otherwise | |
* @since API version 1 | |
*/ | |
setIndication(shouldIndicate: boolean): void; | |
/** | |
* Clears mute on all drum pads. | |
* | |
* @since API version 10 | |
*/ | |
clearMutedPads(): void; | |
/** | |
* Clears solo on all drum pads. | |
* | |
* @since API version 10 | |
*/ | |
clearSoloedPads(): void; | |
/** | |
* True if there is one or many muted pads. | |
* @since API version 10 | |
*/ | |
hasMutedPads(): BooleanValue; | |
/** | |
* True if there is one or many soloed pads. | |
* @since API version 10 | |
*/ | |
hasSoloedPads(): BooleanValue; | |
} | |
// source: com/bitwig/extension/controller/api/EnumDefinition.java | |
/** | |
* Defines an enumeration. | |
* | |
* @since API version 11 | |
*/ | |
interface EnumDefinition { | |
/** | |
* Gets the number of entries in the enum, must be greater than 0. | |
* @since API version 11 | |
*/ | |
getValueCount(): number; | |
/** | |
* Gets the {@Link EnumValueDefinition} for the given index. | |
* @param valueIndex must be in the range 0 .. {@link #getValueCount()} - 1. | |
* @return null if not found | |
* @since API version 11 | |
*/ | |
valueDefinitionAt(valueIndex: number): EnumValueDefinition; | |
/** | |
* Gets the {@Link EnumValueDefinition} for the given enum id. | |
* @return null if not found | |
* @since API version 11 | |
*/ | |
valueDefinitionFor(id: string): EnumValueDefinition; | |
} | |
// source: com/bitwig/extension/controller/api/EnumValue.java | |
import EnumValueChangedCallback = com.bitwig.extension.callback.EnumValueChangedCallback; | |
interface EnumValue | |
extends Value<EnumValueChangedCallback>, | |
Supplier<string> { | |
/** | |
* Gets the current value. | |
* | |
* @since API version 2 | |
*/ | |
get(): string; | |
/** | |
* Gets the enum definition. | |
* | |
* @since API version 11 | |
*/ | |
enumDefinition(): EnumDefinition; | |
} | |
// source: com/bitwig/extension/controller/api/EnumValueDefinition.java | |
/** | |
* Defines a single value from an enum. | |
* @since API version 11 | |
*/ | |
interface EnumValueDefinition { | |
/** | |
* Gets the enum definition to which belongs this value. | |
* @since API version 11 | |
*/ | |
enumDefinition(): EnumDefinition; | |
/** | |
* Index of this value in the enum definition. | |
* @since API version 11 | |
*/ | |
getValueIndex(): number; | |
/** | |
* Identifier for this enum value. It will never change. | |
* This is the value to pass to {@link SettableEnumValue#set(String)}. | |
* @since API version 11 | |
*/ | |
getId(): string; | |
/** | |
* This is a string that is suitable for display. | |
* @since API version 11 | |
*/ | |
getDisplayName(): string; | |
/** | |
* This is a shorter version of {@link #getDisplayName()}. | |
* @param maxLength Maximum number of characters | |
* @since API version 11 | |
*/ | |
getLimitedDisplayName(maxLength: number): string; | |
} | |
// source: com/bitwig/extension/controller/api/GenericBrowsingSession.java | |
/** | |
* Instances of this interface are used for browsing material with bank-wise access to the filter columns. | |
* | |
* @see com.bitwig.extension.controller.api.BrowsingSession | |
* @since API version 1 | |
* @deprecated Use {@link PopupBrowser} instead. | |
*/ | |
interface GenericBrowsingSession extends BrowsingSession { | |
/** | |
* Value that reports the name of the browsing session. | |
* | |
* @since API version 2 | |
*/ | |
name(): StringValue; | |
/** | |
* Registers an observer that reports the name of the browsing session. | |
* | |
* @param callback | |
* a callback function that receives a single string argument. | |
* @since API version 1 | |
* @deprecated Use | |
*/ | |
addNameObserver( | |
maxCharacters: number, | |
textWhenUnassigned: string, | |
callback: StringValueChangedCallback | |
): void; | |
} | |
// source: com/bitwig/extension/controller/api/Groove.java | |
/** | |
* An interface representing the global groove settings of the project. | |
* | |
* @since API version 1 | |
*/ | |
interface Groove { | |
/** | |
* Returns the enabled state of the groove. | |
* | |
* @return an object that provides access to the groove on/off setting | |
* @since API version 1 | |
*/ | |
getEnabled(): Parameter; | |
/** | |
* Returns the object that represents the shuffle amount in Bitwig Studio. | |
* | |
* @return an ranged value object that provides access to the shuffle amount | |
* @since API version 1 | |
*/ | |
getShuffleAmount(): Parameter; | |
/** | |
* Returns the object that represents the shuffle rate in Bitwig Studio. | |
* | |
* @return an ranged value object that provides access to the shuffle rate | |
* @since API version 1 | |
*/ | |
getShuffleRate(): Parameter; | |
/** | |
* Returns the object that represents the accent amount in Bitwig Studio. | |
* | |
* @return an ranged value object that provides access to the accent amount | |
* @since API version 1 | |
*/ | |
getAccentAmount(): Parameter; | |
/** | |
* Returns the object that represents the accent rate in Bitwig Studio. | |
* | |
* @return an ranged value object that provides access to the accent rate | |
* @since API version 1 | |
*/ | |
getAccentRate(): Parameter; | |
/** | |
* Returns the object that represents the accent phase in Bitwig Studio. | |
* | |
* @return an ranged value object that provides access to the accent phase | |
* @since API version 1 | |
*/ | |
getAccentPhase(): Parameter; | |
} | |
// source: com/bitwig/extension/controller/api/HardwareAction.java | |
/** | |
* An action that can happen on a hardware control. For example, the user touching it, pressing it, releasing | |
* it etc. | |
* | |
* @since API version 10 | |
*/ | |
interface HardwareAction | |
extends HardwareBindingSource<HardwareActionBinding> { | |
/** Sets the {@link HardwareActionMatcher} that is used to recognize when this action happens. */ | |
setActionMatcher(actionMatcher: HardwareActionMatcher): void; | |
/** | |
* Sets the {@link AbsoluteHardwareValueMatcher} that is used to recognize when this action happens and | |
* with what pressure. | |
* | |
* This is useful for a button press that is pressure sensitive. The pressure can be obtained by creating a | |
* custom action with | |
* {@link ControllerHost#createAction(java.util.function.DoubleConsumer, java.util.function.Supplier)} and | |
* then binding the created action to this {@link HardwareAction}. | |
*/ | |
setPressureActionMatcher(actionMatcher: AbsoluteHardwareValueMatcher): void; | |
/** | |
* Checks if this action is supported (that is, it has a {@link HardwareActionMatcher} that can detect it). | |
*/ | |
isSupported(): boolean; | |
/** | |
* Decides if this action should fire even if the hardware input that matched it was also used as note | |
* input. Note input is defined as input that matches a {@link NoteInput} mask and its event translations. | |
* Usually events should only be note input or actions but not both at the same time (this is the default | |
* state). However, occasionally it is useful for a note event to be played as both note input and also | |
* trigger some action. For example, a drum pad may play a note but in a special mode on the controller it | |
* should also select the pad somehow. In this case it would be both note input and the action that fires | |
* to select the pad. | |
* | |
* @since API version 11 | |
*/ | |
setShouldFireEvenWhenUsedAsNoteInput(value: boolean): void; | |
} | |
// source: com/bitwig/extension/controller/api/HardwareActionBindable.java | |
/** | |
* Something that can be bound to a hardware action (such as user pressing a button). | |
* | |
* @since API version 10 | |
*/ | |
interface HardwareActionBindable extends HardwareBindable { | |
/** | |
* Binds this target to the supplied {@link HardwareAction} so that when the hardware action occurs this | |
* target is invoked. | |
* | |
* When the binding is no longer needed the {@link HardwareBinding#removeBinding()} method can be called on | |
* it. | |
*/ | |
addBinding(action: HardwareAction): HardwareActionBinding; | |
/** | |
* Invokes the action. | |
* | |
* @since API version 1 | |
*/ | |
invoke(): void; | |
} | |
// source: com/bitwig/extension/controller/api/HardwareActionBinding.java | |
/** | |
* Represents a binding from a hardware action (such as user pressing a button) to some target action. | |
* | |
* @since API version 10 | |
* */ | |
interface HardwareActionBinding extends HardwareBinding {} | |
// source: com/bitwig/extension/controller/api/HardwareActionMatcher.java | |
/** | |
* Defines a means of recognizing when a {@link HardwareAction} happens based on some hardware input. | |
* | |
* For example, when a certain MIDI CC message happens. | |
* | |
* @see MidiIn#createActionMatcher(String) | |
* | |
* @since API version 10 | |
* | |
*/ | |
interface HardwareActionMatcher extends HardwareInputMatcher {} | |
// source: com/bitwig/extension/controller/api/HardwareBindable.java | |
/** | |
* An object that can be a target in a {@link HardwareBinding}. | |
* | |
* @since API version 10 | |
*/ | |
interface HardwareBindable {} | |
// source: com/bitwig/extension/controller/api/HardwareBinding.java | |
/** | |
* Represents a binding from some hardware input to a target. | |
* | |
* When the binding is no longer needed the {@link #removeBinding()} method can be called to remove it. | |
* | |
* @since API version 10 | |
*/ | |
interface HardwareBinding { | |
/** Removes this binding between its source and target so it is no longer in effect. */ | |
removeBinding(): void; | |
} | |
// source: com/bitwig/extension/controller/api/HardwareBindingSource.java | |
/** | |
* Represents the source of a {@link HardwareBinding}. | |
* | |
* @since API version 10 | |
*/ | |
interface HardwareBindingSource< | |
HardwareBindingType extends HardwareBinding = HardwareBinding | |
> { | |
/** Checks if it is possible to make a binding from this source to the supplied target object. */ | |
canBindTo(target: object): boolean; | |
/** | |
* Binds this source to the supplied target and returns the created binding. This can only be called if the | |
* {@link #canBindTo(Object)} returns true. | |
*/ | |
addBinding(target: HardwareBindable): HardwareBindingType; | |
/** Clears all bindings from this source to its targets. */ | |
clearBindings(): void; | |
/** | |
* Ensures there is a single binding to the supplied target. | |
* | |
* This is a convenience method that is equivalent to calling {@link #clearBindings()} and the | |
* {@link #addBinding(HardwareBindable)} | |
*/ | |
setBinding(target: HardwareBindable): HardwareBindingType; | |
} | |
// source: com/bitwig/extension/controller/api/HardwareBindingWithRange.java | |
/** | |
* Represents a binding from some hardware input to a ranged value. | |
* | |
* @since API version 10 | |
*/ | |
interface HardwareBindingWithRange extends HardwareBinding { | |
/** Sets the minimum normalized value (0...1) that should be used for this binding. */ | |
setMinNormalizedValue(min: number): void; | |
/** Sets the maximum normalized value (0...1) that should be used for this binding. */ | |
setMaxNormalizedValue(max: number): void; | |
/** Sets the normalized range (0...1) that should be used for this binding. */ | |
setNormalizedRange(min: number, max: number): void; | |
} | |
// source: com/bitwig/extension/controller/api/HardwareBindingWithSensitivity.java | |
/** | |
* A {@link HardwareBinding} that has some sensitivity setting. | |
* | |
* @since API version 10 | |
*/ | |
interface HardwareBindingWithSensitivity extends HardwareBinding { | |
/** Sets the sensitivity of this binding. */ | |
setSensitivity(sensitivity: number): void; | |
} | |
// source: com/bitwig/extension/controller/api/HardwareButton.java | |
/** | |
* Represents a physical hardware button on a controller | |
* | |
* @since API version 10 | |
*/ | |
interface HardwareButton extends HardwareControl { | |
/** Action that happens when the user presses the button. */ | |
pressedAction(): HardwareAction; | |
/** Action that happens when the user releases the button. */ | |
releasedAction(): HardwareAction; | |
/** Button state */ | |
isPressed(): BooleanValue; | |
/** Sets the optional control that represents the aftertouch value for this button. */ | |
setAftertouchControl(control: AbsoluteHardwareControl): void; | |
/** An indication of how rounded the corners of this button should be. */ | |
setRoundedCornerRadius(radiusInMM: number): void; | |
} | |
// source: com/bitwig/extension/controller/api/HardwareControl.java | |
/** | |
* Some kind of physical control on a piece of hardware (such as a knob, button, slider etc). | |
* | |
* @since API version 10 | |
*/ | |
interface HardwareControl extends HardwareElement { | |
/** | |
* The name of this hardware control. This will be shown in the mapping browser, for example. It should | |
* provide enough information for the user to understand which control is being referred to. If the name is | |
* not provided then the label will be used, and if that is not provided then the id will be used. | |
* | |
* @since API version 11 | |
*/ | |
getName(): string; | |
/** | |
* The name of this hardware control. This will be shown in the mapping browser, for example. It should | |
* provide enough information for the user to understand which control is being referred to. If the name is | |
* not provided then the label will be used, and if that is not provided then the id will be used. | |
* | |
* @since API version 11 | |
*/ | |
setName(name: string): void; | |
/** | |
* If this control is part of group of related controls then this specifies the index in that group. | |
* This index is used to automatically indicate a mapping color on a parameter that this hardware | |
* control gets bound to. | |
* | |
* @since API version 11 | |
*/ | |
setIndexInGroup(index: number): void; | |
/** Action that happens when the user touches this control. */ | |
beginTouchAction(): HardwareAction; | |
/** Action that happens when the user stops touching this control. */ | |
endTouchAction(): HardwareAction; | |
/** Value that indicates if this control is being touched or not. */ | |
isBeingTouched(): BooleanValue; | |
/** Optional light that is in the background of this control. */ | |
backgroundLight(): HardwareLight; | |
/** Sets the optional light that is in the background of this control. */ | |
setBackgroundLight(light: HardwareLight): void; | |
} | |
// source: com/bitwig/extension/controller/api/HardwareControlType.java | |
enum HardwareControlType { | |
KNOB = 0, | |
SLIDER = 1, | |
ENCODER = 2, | |
} | |
// source: com/bitwig/extension/controller/api/HardwareDevice.java | |
/** | |
* Represents a hardware device that the user has chosen to communicate with. The hardware devices that the | |
* user needs to choose are defined by the | |
* {@link ControllerExtensionDefinition#listHardwareDevices(java.util.List)} method. | |
* | |
* @since API version 7 | |
*/ | |
interface HardwareDevice { | |
/** | |
* The {@link HardwareDeviceMatcher} that was provided by the controller for identifying this hardware | |
* device in {@link ControllerExtensionDefinition#listHardwareDevices(java.util.List)}. | |
* | |
*/ | |
deviceMatcher(): HardwareDeviceMatcher; | |
} | |
// source: com/bitwig/extension/controller/api/HardwareElement.java | |
/** | |
* Represents some physical hardware element. Hardware elements can be {@link HardwareControl}s (e.g. buttons, | |
* sliders etc) or {@link HardwareOutputElement}s (e.g lights, text displays etc). | |
* | |
* @since API version 10 | |
*/ | |
interface HardwareElement { | |
/** The unique id associated with this element. */ | |
getId(): string; | |
/** An optional label associated with this element. */ | |
getLabel(): string; | |
/** Sets the label for this hardware control as written on the hardware. */ | |
setLabel(label: string): void; | |
/** The color of the label. */ | |
getLabelColor(): Color; | |
/** Sets the color of the label. */ | |
setLabelColor(color: Color): void; | |
/** {@link RelativePosition} that defines where the label is. */ | |
getLabelPosition(): RelativePosition; | |
setLabelPosition(position: RelativePosition): void; | |
/** The physical bounds of this hardware element on the controller. */ | |
setBounds( | |
xInMM: number, | |
yInMM: number, | |
widthInMM: number, | |
heightInMM: number | |
): void; | |
getX(): number; | |
getY(): number; | |
getWidth(): number; | |
getHeight(): number; | |
} | |
// source: com/bitwig/extension/controller/api/HardwareInputMatcher.java | |
/** | |
* Defines a means of recognizing when some kind of hardware input happens. | |
* | |
* For example, when a certain MIDI CC message happens. | |
* | |
* @see MidiIn#createActionMatcher(String) | |
* | |
* @since API version 10 | |
* | |
*/ | |
interface HardwareInputMatcher {} | |
// source: com/bitwig/extension/controller/api/HardwareLight.java | |
/** | |
* Defines a hardware light. There are 2 kinds of lights: {@link OnOffHardwareLight} and | |
* {@link MultiStateHardwareLight}. | |
* | |
* @since API version 10 | |
*/ | |
interface HardwareLight extends HardwareOutputElement {} | |
// source: com/bitwig/extension/controller/api/HardwareLightVisualState.java | |
/** | |
* Defines the visual state of a hardware light so that it can be visualized in Bitwig Studio's user | |
* interface. | |
* | |
* This is currently only used when simulating hardware when it is not present for debugging but it may be | |
* used for other purposes in the future. | |
* | |
* @since API version 10 | |
*/ | |
class HardwareLightVisualState { | |
static defaultLabelColorForLightColor(lightColor: Color): Color; | |
static createForColor(color: Color): HardwareLightVisualState; | |
static createForColor( | |
color: Color, | |
labelColor: Color | |
): HardwareLightVisualState; | |
static createBlinking( | |
onColor: Color, | |
offColor: Color, | |
onBlinkTimeInSec: number, | |
offBlinkTimeInSec: number | |
): HardwareLightVisualState; | |
static createBlinking( | |
onColor: Color, | |
offColor: Color, | |
labelOnColor: Color, | |
labelOffColor: Color, | |
onBlinkTimeInSec: number, | |
offBlinkTimeInSec: number | |
): HardwareLightVisualState; | |
constructor( | |
color: Color, | |
offColor: Color, | |
labelColor: Color, | |
labelBlinkOffColor: Color, | |
onBlinkTime: number, | |
offBlinkTime: number | |
); | |
isBlinking(): boolean; | |
getColor(): Color; | |
getBlinkOffColor(): Color; | |
getOffBlinkTime(): number; | |
getOnBlinkTime(): number; | |
getLabelColor(): Color; | |
getLabelBlinkOffColor(): Color; | |
mColor: Color; | |
mOnBlinkTime: number; | |
} | |
// source: com/bitwig/extension/controller/api/HardwareOutputElement.java | |
/** | |
* Represents a physical hardware element that displays some output to the user. | |
* | |
* For example, a light, some text etc | |
* | |
* @since API version 10 | |
*/ | |
interface HardwareOutputElement extends HardwareElement { | |
/** | |
* Sets an optional callback for this element whenever it's state needs to be sent to the hardware. This | |
* will be called when calling {@link HardwareSurface#updateHardware()} if the state needs to be sent. | |
*/ | |
onUpdateHardware(sendStateRunnable: () => void): void; | |
} | |
// source: com/bitwig/extension/controller/api/HardwarePixelDisplay.java | |
import Bitmap = com.bitwig.extension.api.graphics.Bitmap; | |
/** | |
* Defines a physical pixel display on the controller. | |
* | |
* @since API version 10 | |
*/ | |
interface HardwarePixelDisplay extends HardwareOutputElement { | |
/** The {@link Bitmap} that contains the contents of this display. */ | |
bitmap(): Bitmap; | |
} | |
// source: com/bitwig/extension/controller/api/HardwareProperty.java | |
/** | |
* Represents a value that needs to be displayed somehow on the hardware. | |
* | |
* A {@link HardwareProperty} is part of a {@link HardwareOutputElement}. | |
* | |
* @since API version 10 | |
* */ | |
interface HardwareProperty {} | |
// source: com/bitwig/extension/controller/api/HardwareSlider.java | |
/** | |
* Represents a physical hardware button on a controller | |
* | |
* @since API version 10 | |
*/ | |
interface HardwareSlider extends AbsoluteHardwareControl { | |
/** Indicates if this slider is horizontal rather than vertical. */ | |
setIsHorizontal(isHorizontal: boolean): void; | |
} | |
// source: com/bitwig/extension/controller/api/HardwareSurface.java | |
import List = java.util.List; | |
/** | |
* Represents a surface that can contain {@link HardwareElement}s such as {@link HardwareButton}s, | |
* {@link HardwareSlider}s, {@link MultiStateHardwareLight}s etc | |
* | |
* <p> | |
* This information allows Bitwig Studio to construct a reliable physical model of the hardware. This | |
* information can be used to simulate hardware being present even when physical hardware is not available | |
* (and may also be used for other purposes in the future). | |
* | |
* <p> | |
* To be able to simulate hardware being connected so that you can debug controllers without the real hardware | |
* you need to do the following: | |
* | |
* <p> | |
* Create a file with the name "config.json" in your user settings directory. The location of this directory | |
* is platform dependent: | |
* | |
* <ul> | |
* <li>On Windows: %LOCALAPPDATA%\Bitwig Studio | |
* <li>On macOS: Library/Application Support/Bitwig/Bitwig Studio | |
* <li>On Linux: $HOME/.BitwigStudio | |
* </ul> | |
* | |
* <p> | |
* Then add the following line to the config.json file: | |
* | |
* <pre> | |
* extension-dev : true | |
* </pre> | |
* | |
* <p> | |
* You will then need to restart Bitwig Studio. To simulate the controller being connected you can right click | |
* on the controller in the preferences and select "Simulate device connected". | |
* | |
* <p> | |
* If you have also provided physical positions for various {@link HardwareElement}s using | |
* {@link HardwareElement#setBounds(double, double, double, double)} then you can also see a GUI simulator for | |
* your controller by selecting "Show simulated hardware GUI". | |
* | |
* @since API version 10 | |
*/ | |
interface HardwareSurface { | |
/** | |
* Creates a {@link HardwareSlider} that represents a physical slider on a controller. | |
* | |
* @param id | |
* A unique string that identifies this control. | |
* | |
* @since API version 10 | |
*/ | |
createHardwareSlider(id: string): HardwareSlider; | |
/** | |
* Creates an {@link AbsoluteHardwareKnob} that represents a physical knob on a controller that can be used | |
* to input an absolute value. | |
* | |
* @param id | |
* A unique string that identifies this control. | |
* | |
* @since API version 10 | |
*/ | |
createAbsoluteHardwareKnob(id: string): AbsoluteHardwareKnob; | |
/** | |
* Creates an {@link RelativeHardwareKnob} that represents a physical knob on a controller that can be used | |
* to input a relative value change. | |
* | |
* @param id | |
* A unique string that identifies this control. | |
* | |
* @since API version 10 | |
*/ | |
createRelativeHardwareKnob(id: string): RelativeHardwareKnob; | |
createPianoKeyboard( | |
id: string, | |
numKeys: number, | |
octave: number, | |
startKeyInOctave: number | |
): PianoKeyboard; | |
/** | |
* Creates a {@link HardwareButton} that represents a physical button on a controller | |
* | |
* @param id | |
* A unique string that identifies this control. | |
* | |
* @since API version 10 | |
*/ | |
createHardwareButton(id: string): HardwareButton; | |
/** | |
* Creates a {@link OnOffHardwareLight} that represents a physical light on a controller | |
* | |
* @since API version 10 | |
*/ | |
createOnOffHardwareLight(id: string): OnOffHardwareLight; | |
/** | |
* Creates a {@link MultiStateHardwareLight} that represents a physical light on a controller | |
* | |
* @param id | |
* A unique string that identifies this parameter. | |
* @param internalStateToLightVisualStateFunction | |
* A function that can be used to determine the visual state of the light on the hardware so it | |
* can be visualized in Bitwig Studio's user interface when needed. | |
* | |
* @since API version 10 | |
*/ | |
createMultiStateHardwareLight(id: string): MultiStateHardwareLight; | |
/** | |
* Creates a {@link HardwareTextDisplay} that represents a physical text display on a controller | |
* | |
* @param id | |
* A unique string that identifies this control. | |
* | |
* @since API version 10 | |
*/ | |
createHardwareTextDisplay( | |
id: string, | |
numLines: number | |
): HardwareTextDisplay; | |
/** | |
* Creates a {@link HardwarePixelDisplay} that displays the provided {@link Bitmap} that is rendered by the | |
* controller. | |
* | |
* @since API version 10 | |
*/ | |
createHardwarePixelDisplay( | |
id: string, | |
bitmap: Bitmap | |
): HardwarePixelDisplay; | |
/** | |
* Sets the physical size of this controller in mm. | |
* | |
* @since API version 10 | |
*/ | |
setPhysicalSize(widthInMM: number, heightInMM: number): void; | |
/** | |
* Updates the state of all {@link HardwareOutputElement}s that have changed since the last time this | |
* method was called. | |
* | |
* Any onUpdateHardware callbacks that have been registered on {@link HardwareOutputElement}s or | |
* {@link HardwareProperty}s will be invoked if their state/value has changed since the last time it was | |
* called. | |
* | |
* This is typically called by the control script from its flush method. | |
* | |
* @since API version 10 | |
*/ | |
updateHardware(): void; | |
/** | |
* Mark all {@link HardwareOutputElement}s as needing to resend their output state, regardless of it has | |
* changed or not. | |
*/ | |
invalidateHardwareOutputState(): void; | |
/** | |
* A list of all the {@link HardwareControl}s that have been created on this {@link HardwareSurface}. | |
*/ | |
hardwareControls(): List<HardwareControl>; | |
/** Finds the {@link HardwareElement} that has the supplied id or null if not found. */ | |
hardwareElementWithId(id: string): HardwareElement; | |
/** List of all {@link HardwareElement}s on this {@link HardwareSurface}. */ | |
hardwareOutputElements(): List<HardwareOutputElement>; | |
} | |
// source: com/bitwig/extension/controller/api/HardwareTextDisplay.java | |
/** | |
* Represents a display on some hardware that shows one or more lines of text. | |
* | |
* @since API version 10 | |
*/ | |
interface HardwareTextDisplay extends HardwareOutputElement { | |
/** The line at the supplied line index. */ | |
line(line: number): HardwareTextDisplayLine; | |
} | |
// source: com/bitwig/extension/controller/api/HardwareTextDisplayLine.java | |
/** | |
* Represents a line of text on a {@link HardwareTextDisplay}. | |
* | |
* @since API version 10 | |
*/ | |
interface HardwareTextDisplayLine { | |
/** Property that defines the current text shown. */ | |
text(): StringHardwareProperty; | |
/** Property that defines the background color of this line. */ | |
backgroundColor(): ColorHardwareProperty; | |
/** Property that defines the text color of this line. */ | |
textColor(): ColorHardwareProperty; | |
} | |
// source: com/bitwig/extension/controller/api/InputPipe.java | |
import MemoryBlock = com.bitwig.extension.api.MemoryBlock; | |
/** | |
* A pipe that can be used to read data. | |
* | |
* @since API version 7 | |
*/ | |
interface InputPipe extends Pipe { | |
/** | |
* Requests to read some data from this pipe in an asynchronous way (the caller is not blocked). Once some | |
* data has been read the callback will be notified on the controller's thread. | |
* | |
* @param data | |
* A {@link MemoryBlock} that can receive the data that is read. | |
* @param callback | |
* A callback that is notified on the controller's thread when the read has completed. | |
* @param timeoutInMs | |
* A timeout in milliseconds that will result in an error and termination of the controller if | |
* the read does not happen in this time. For inifnite timeout use 0. | |
*/ | |
readAsync( | |
data: MemoryBlock, | |
callback: AsyncTransferCompledCallback, | |
timeoutInMs: number | |
): void; | |
/** | |
* Requests to read some data from this pipe in a synchronous way (the caller is blocked until the transfer | |
* completes). | |
* | |
* @return The number of bytes that was read. | |
* @param timeoutInMs | |
* A timeout in milliseconds that will result in an error and termination of the controller if | |
* the read does not happen in this time. For inifinite timeout use 0. | |
*/ | |
read(data: MemoryBlock, timeoutInMs: number): number; | |
} | |
// source: com/bitwig/extension/controller/api/InsertionPoint.java | |
/** | |
* Defines an insertion point where various objects can be inserted as if the user had dragged and dropped | |
* them to this insertion point (e.g with the mouse). Some things may not make sense to insert in which case | |
* nothing happens. | |
* | |
* @since API version 7 | |
*/ | |
interface InsertionPoint { | |
/** | |
* Copies the supplied tracks to this insertion point. If it's not possible to do so then this does | |
* nothing. | |
*/ | |
copyTracks(...tracks: Track[]): void; | |
/** | |
* Moves the supplied tracks to this insertion point. If it's not possible to do so then this does nothing. | |
*/ | |
moveTracks(...tracks: Track[]): void; | |
/** | |
* Copies the supplied devices to this insertion point. If it's not possible to do so then this does | |
* nothing. | |
*/ | |
copyDevices(...devices: Device[]): void; | |
/** | |
* Moves the supplied devices to this insertion point. If it's not possible to do so then this does | |
* nothing. | |
*/ | |
moveDevices(...devices: Device[]): void; | |
/** | |
* Copies the supplied slots or scenes to this insertion point. If it's not possible to do so then this | |
* does nothing. | |
*/ | |
copySlotsOrScenes( | |
...clipLauncherSlotOrScenes: ClipLauncherSlotOrScene[] | |
): void; | |
/** | |
* Moves the supplied slots or scenes to this insertion point. If it's not possible to do so then this does | |
* nothing. | |
*/ | |
moveSlotsOrScenes( | |
...clipLauncherSlotOrScenes: ClipLauncherSlotOrScene[] | |
): void; | |
/** | |
* Inserts the supplied file at this insertion point. If it's not possible to do so then this does nothing. | |
*/ | |
insertFile(path: string): void; | |
/** | |
* Inserts a Bitwig device with the supplied id at this insertion point. If the device is unknown or it's | |
* not possible to insert a device here then his does nothing. | |
* | |
* @param id | |
* The Bitwig device id to insert | |
*/ | |
insertBitwigDevice(id: UUID): void; | |
/** | |
* Inserts a VST2 plugin device with the supplied id at this insertion point. If the plug-in is unknown or | |
* it's not possible to insert a plug-in here then his does nothing. | |
* | |
* @param id | |
* The VST2 plugin id to insert | |
*/ | |
insertVST2Device(id: number): void; | |
/** | |
* Inserts a VST3 plugin device with the supplied id at this insertion point. If the plug-in is unknown or | |
* it's not possible to insert a plug-in here then his does nothing. | |
* | |
* @param id | |
* The VST2 plugin id to insert | |
*/ | |
insertVST3Device(id: string): void; | |
/** Pastes the contents of the clipboard at this insertion point. */ | |
paste(): void; | |
/** Starts browsing using the popup browser for something to insert at this insertion point. */ | |
browse(): void; | |
} | |
// source: com/bitwig/extension/controller/api/IntegerHardwareProperty.java | |
import IntConsumer = java.util.funktion.IntConsumer; | |
import IntSupplier = java.util.funktion.IntSupplier; | |
/** | |
* Represents an output value shown on some hardware. | |
* | |
* @since API version 10 | |
* */ | |
interface IntegerHardwareProperty extends HardwareProperty { | |
/** Gets the current value. This is the value that should be sent to the hardware to be displayed. */ | |
currentValue(): number; | |
/** The value that was last sent to the hardware. */ | |
lastSentValue(): number; | |
/** | |
* Specifies a callback that should be called with the value that needs to be sent to the hardware. This | |
* callback is called as a result of calling the {@link HardwareSurface#updateHardware()} method (typically | |
* from the flush method). | |
*/ | |
onUpdateHardware(sendValueConsumer: IntConsumer): void; | |
/** Sets the current value. */ | |
setValue(value: number): void; | |
/** Sets the current value from a {@link BooleanSupplier} that supplies the latest value. */ | |
setValueSupplier(supplier: IntSupplier): void; | |
} | |
// source: com/bitwig/extension/controller/api/IntegerValue.java | |
// @ts-ignore | |
interface IntegerValue | |
extends Value<IntegerValueChangedCallback>, | |
IntSupplier { | |
/** | |
* Gets the current value. | |
* | |
* @since API version 2 | |
*/ | |
get(): number; | |
getAsInt(): number; | |
/** | |
* Adds an observer that is notified when this value changes. This is intended to aid in backwards | |
* compatibility for drivers written to the version 1 API. | |
* | |
* @param callback | |
* The callback to notify with the new value | |
* @param valueWhenUnassigned | |
* The value that the callback will be notified with if this value is not currently assigned to | |
* anything. | |
*/ | |
addValueObserver( | |
callback: IntegerValueChangedCallback, | |
valueWhenUnassigned: number | |
): void; | |
} | |
// source: com/bitwig/extension/controller/api/InternalHardwareLightState.java | |
/** | |
* Defines the current state of a {@link MultiStateHardwareLight}. What this state means is entirely up to the | |
* controller implementation. | |
* | |
* @apiNote The {@link Object#equals(Object)} method <b>MUST</b> be overridden to compare light states | |
* correctly. | |
* | |
* @since API version 10 | |
*/ | |
class InternalHardwareLightState { | |
/** The visual state of this light (used by Bitwig Studio to visualize the light when needed). */ | |
getVisualState(): HardwareLightVisualState; | |
equals(obj: object): boolean; | |
} | |
// source: com/bitwig/extension/controller/api/Macro.java | |
/** | |
* Instances of this interface are used to represent macro controls in Bitwig Studio to controllers. | |
* | |
* @deprecated Macros no longer exist as built in features of all devices. Instead the user can customize | |
* pages of controls. | |
* @since API version 1 | |
*/ | |
interface Macro { | |
/** | |
* Returns an object that provides access to the control value of the macro. | |
* | |
* @return a ranged value object. | |
* @since API version 1 | |
*/ | |
getAmount(): Parameter; | |
/** | |
* Returns an object that provides access to the modulation source of the macro. | |
* | |
* @return a modulation source object. | |
* @since API version 1 | |
*/ | |
getModulationSource(): ModulationSource; | |
/** | |
* Registers an observer that reports the label of the macro control. | |
* | |
* @param numChars | |
* the maximum number of characters of the reported label | |
* @param textWhenUnassigned | |
* the default text that is reported when the macro is not connected to a Bitwig Studio macro | |
* control. | |
* @param callback | |
* a callback function that receives a single string parameter. | |
*/ | |
addLabelObserver( | |
numChars: number, | |
textWhenUnassigned: string, | |
callback: StringValueChangedCallback | |
): void; | |
} | |
// source: com/bitwig/extension/controller/api/MasterTrack.java | |
/** | |
* A special kind of track that represents the master track in Bitwig Studio. | |
* | |
* @since API version 1 | |
*/ | |
interface MasterTrack extends Track {} | |
// source: com/bitwig/extension/controller/api/MidiExpressions.java | |
/** | |
* Creates useful MIDI expressions that can be used to match MIDI events. | |
* | |
* @since API version 10 | |
*/ | |
interface MidiExpressions { | |
/** Creates an expression that recognizes a MIDI CC event regardless of its channel. | |
* @since API version 11 */ | |
createIsCCExpression(controlNumber: number): string; | |
/** Creates an expression that recognizes a MIDI CC event. */ | |
createIsCCExpression(channel: number, controlNumber: number): string; | |
/** | |
* Creates an expression that recognizes a MIDI CC event with a specific value. This expression can be used | |
* in {@link #createActionMatcher(String)} or {@link #createAbsoluteValueMatcher(String, String, int)}, for | |
* example. | |
* | |
* @since API version 10 | |
*/ | |
createIsCCValueExpression( | |
channel: number, | |
control: number, | |
value: number | |
): string; | |
/** | |
* Creates an expression that recognizes a pitch bend event. This expression can be used in | |
* {@link #createActionMatcher(String)} or {@link #createAbsoluteValueMatcher(String, String, int)}, for | |
* example. | |
* | |
* @since API version 10 | |
*/ | |
createIsPitchBendExpression(channel: number): string; | |
/** | |
* Creates an expression that recognizes a note on event. This expression can be used in | |
* {@link #createActionMatcher(String)} or {@link #createAbsoluteValueMatcher(String, String, int)}, for | |
* example. | |
* | |
* @since API version 10 | |
*/ | |
createIsNoteOnExpression(channel: number, note: number): string; | |
/** | |
* Creates an expression that recognizes a note off event. This expression can be used in | |
* {@link #createActionMatcher(String)} or {@link #createAbsoluteValueMatcher(String, String, int)}, for | |
* example. | |
* | |
* @since API version 10 | |
*/ | |
createIsNoteOffExpression(channel: number, note: number): string; | |
/** | |
* Creates an expression that recognizes a polyphonic aftertouch event. This expression can be used in | |
* {@link #createActionMatcher(String)} or {@link #createAbsoluteValueMatcher(String, String, int)}, for | |
* example. | |
* | |
* @since API version 10 | |
*/ | |
createIsPolyAftertouch(channel: number, note: number): string; | |
} | |
// source: com/bitwig/extension/controller/api/MidiIn.java | |
import ShortMidiDataReceivedCallback = com.bitwig.extension.callback.ShortMidiDataReceivedCallback; | |
import SysexMidiDataReceivedCallback = com.bitwig.extension.callback.SysexMidiDataReceivedCallback; | |
/** | |
* Instances of this interface are used to setup handler functions for incoming MIDI messages from a specific | |
* MIDI hardware. | |
* | |
* <p> | |
* Expressions can be used to generate matchers for various MIDI events that can then be used to update | |
* hardware control states (see {@link MidiIn#createActionMatcher(String)} and {@link HardwareControl}). | |
* | |
* <p> | |
* The expression language supports these operators in the same way that C, Java, C++ do: +, -, *, /, %, | |
* <<, >>, &&, ||, &, |, ^, <, <=, >, >=, ==, != | |
* | |
* <p> | |
* The following variables are also defined for matching parts of the event: | |
* <ul> | |
* <li>status - Value of the status byte | |
* <li>data1 - Value of the first data byte | |
* <li>data2 - Value of the second data byte | |
* <li>event - Integer value of the whole MIDI event with data2 byte in the least significant bits | |
* </ul> | |
* | |
* <p> | |
* Integers can be represented in hex using same syntax as C. 'true' and 'false' keywords are also defined. | |
* | |
* @since API version 1 | |
*/ | |
interface MidiIn { | |
/** | |
* Registers a callback for receiving short (normal) MIDI messages on this MIDI input port. | |
* | |
* @param callback | |
* a callback function that receives three integer parameters: 1. the status byte 2. the data1 | |
* value 2. the data2 value | |
* @ @since API version 1 | |
*/ | |
setMidiCallback(callback: ShortMidiDataReceivedCallback): void; | |
/** | |
* Registers a callback for receiving sysex MIDI messages on this MIDI input port. | |
* | |
* @param callback | |
* a callback function that takes a single string argument | |
* @ @since API version 1 | |
*/ | |
setSysexCallback(callback: SysexMidiDataReceivedCallback): void; | |
/** | |
* Creates a note input that appears in the track input choosers in Bitwig Studio. This method must be | |
* called within the `init()` function of the script. The messages matching the given mask parameter will | |
* be fed directly to the application, and are not processed by the script. | |
* | |
* @param name | |
* the name of the note input as it appears in the track input choosers in Bitwig Studio | |
* @param masks | |
* a filter string formatted as hexadecimal value with `?` as wildcard. For example `80????` | |
* would match note-off on channel 1 (0). When this parameter is {@null}, a standard filter will | |
* be used to forward note-related messages on channel 1 (0). | |
* | |
* If multiple note input match the same MIDI event then they'll all receive the MIDI event, and | |
* if one of them does not consume events then the events wont' be consumed. | |
* @return the object representing the requested note input | |
* @since API version 1 | |
*/ | |
createNoteInput(name: string, ...masks: string[]): NoteInput; | |
/** | |
* Creates a matcher that matches the absolute value of a MIDI CC message. | |
* | |
* @since API version 10 | |
*/ | |
createAbsoluteCCValueMatcher( | |
channel: number, | |
controlNumber: number | |
): AbsoluteHardwareValueMatcher; | |
/** | |
* Creates a matcher that matches the absolute value of a MIDI CC message regardless of its channel. | |
* | |
* @since API version 11 | |
*/ | |
createAbsoluteCCValueMatcher( | |
controlNumber: number | |
): AbsoluteHardwareValueMatcher; | |
/** | |
* Creates a matcher that matches the absolute value of a Poly AT message. | |
* | |
* @since API version 10 | |
*/ | |
createPolyAftertouchValueMatcher( | |
channel: number, | |
note: number | |
): AbsoluteHardwareValueMatcher; | |
/** | |
* Creates a matcher that matches the relative value of a MIDI CC message encoded using signed bit. | |
* | |
* @param valueAmountForOneFullRotation | |
* The value that would represent one full rotation to the right (should be very similar to the | |
* amount of rotation needed to take an absolute knob from 0 to 1). For example, if a value of | |
* 127 meant it had been rotated to the right by a full rotation then you would pass 127 here. | |
* This ensures that {@link RelativeHardwareControl}s have similar sensitivity to each other and | |
* can be mapped and behave in a very similar way to {@link AbsoluteHardwareControl}s. | |
* | |
* @since API version 10 | |
*/ | |
createRelativeSignedBitCCValueMatcher( | |
channel: number, | |
controlNumber: number, | |
valueAmountForOneFullRotation: number | |
): RelativeHardwareValueMatcher; | |
/** | |
* Creates a matcher that matches the relative value of a MIDI CC message encoded using signed bit 2. | |
* | |
* @param valueAmountForOneFullRotation | |
* The value that would represent one full rotation to the right (should be very similar to the | |
* amount of rotation needed to take an absolute knob from 0 to 1). For example, if a value of | |
* 127 meant it had been rotated to the right by a full rotation then you would pass 127 here. | |
* This ensures that {@link RelativeHardwareControl}s have similar sensitivity to each other and | |
* can be mapped and behave in a very similar way to {@link AbsoluteHardwareControl}s. | |
* | |
* @since API version 10 | |
*/ | |
createRelativeSignedBit2CCValueMatcher( | |
channel: number, | |
controlNumber: number, | |
valueAmountForOneFullRotation: number | |
): RelativeHardwareValueMatcher; | |
/** | |
* Creates a matcher that matches the relative value of a MIDI CC message encoded using bin offset. | |
* | |
* @param valueAmountForOneFullRotation | |
* The value that would represent one full rotation to the right (should be very similar to the | |
* amount of rotation needed to take an absolute knob from 0 to 1). For example, if a value of | |
* 127 meant it had been rotated to the right by a full rotation then you would pass 127 here. | |
* This ensures that {@link RelativeHardwareControl}s have similar sensitivity to each other and | |
* can be mapped and behave in a very similar way to {@link AbsoluteHardwareControl}s. | |
* | |
* @since API version 10 | |
*/ | |
createRelativeBinOffsetCCValueMatcher( | |
channel: number, | |
controlNumber: number, | |
valueAmountForOneFullRotation: number | |
): RelativeHardwareValueMatcher; | |
/** | |
* Creates a matcher that matches the relative value of a MIDI CC message encoded using 2s complement. | |
* | |
* @param valueAmountForOneFullRotation | |
* The value that would represent one full rotation to the right (should be very similar to the | |
* amount of rotation needed to take an absolute knob from 0 to 1). For example, if a value of | |
* 127 meant it had been rotated to the right by a full rotation then you would pass 127 here. | |
* This ensures that {@link RelativeHardwareControl}s have similar sensitivity to each other and | |
* can be mapped and behave in a very similar way to {@link AbsoluteHardwareControl}s. | |
* | |
* @since API version 10 | |
*/ | |
createRelative2sComplementCCValueMatcher( | |
channel: number, | |
controlNumber: number, | |
valueAmountForOneFullRotation: number | |
): RelativeHardwareValueMatcher; | |
/** | |
* Create a matcher that matches the absolute value of a MIDI pitch bend message. | |
* | |
* @since API version 10 | |
*/ | |
createAbsolutePitchBendValueMatcher( | |
channel: number | |
): AbsoluteHardwareValueMatcher; | |
/** | |
* Creates an absolute value matcher that is defined by 2 separate MIDI events that have to occur in | |
* sequence. | |
* | |
* This can be used to get a much higher precision value that a single MIDI event would allow. Some | |
* controllers for example will send 2 CC events for a single value. | |
* | |
* @since API version 10 | |
*/ | |
createSequencedValueMatcher( | |
firstValueMatcher: AbsoluteHardwareValueMatcher, | |
secondValueMatcher: AbsoluteHardwareValueMatcher, | |
areMostSignificantBitsInSecondEvent: boolean | |
): AbsoluteHardwareValueMatcher; | |
/** | |
* Creates a matcher that matches the absolute value of a MIDI CC message by using expressions to filter | |
* and extract a value out of the MIDI event. | |
* | |
* @param eventExpression | |
* Expression that must be true in order to extract the value. | |
* @param valueExpression | |
* Expression that determines the value once an event has been matched. | |
* @param valueBitCount | |
* The number of bits that are relevant from the value extracted by the valueExpression. | |
* | |
* @since API version 10 | |
*/ | |
createAbsoluteValueMatcher( | |
eventExpression: string, | |
valueExpression: string, | |
valueBitCount: number | |
): AbsoluteHardwareValueMatcher; | |
/** | |
* Creates a matcher that applies a relative adjustment when a MIDI event occurs matching an expression. | |
* | |
* @param eventExpression | |
* Expression that must be true in order to extract the value. | |
* @param relativeAdjustment | |
* The amount of relative adjustment that should be applied | |
* | |
* @since API version 10 | |
*/ | |
createRelativeValueMatcher( | |
eventExpression: string, | |
relativeAdjustment: number | |
): RelativeHardwareValueMatcher; | |
/** | |
* Creates a matcher that matches the relative value (encoded as signed bit) of a MIDI CC message by using | |
* expressions to filter and extract a value out of the MIDI event. | |
* | |
* @param eventExpression | |
* Expression that must be true in order to extract the value. | |
* @param valueExpression | |
* Expression that determines the value once an event has been matched. | |
* @param valueBitCount | |
* The number of bits that are relevant from the value extracted by the valueExpression. | |
* @param valueAmountForOneFullRotation | |
* The value that would represent one full rotation to the right (should be very similar to the | |
* amount of rotation needed to take an absolute knob from 0 to 1). For example, if a value of | |
* 127 meant it had been rotated to the right by a full rotation then you would pass 127 here. | |
* This ensures that {@link RelativeHardwareControl}s have similar sensitivity to each other and | |
* can be mapped and behave in a very similar way to {@link AbsoluteHardwareControl}s. | |
* | |
* @since API version 10 | |
*/ | |
createRelativeSignedBitValueMatcher( | |
eventExpression: string, | |
valueExpression: string, | |
valueBitCount: number, | |
valueAmountForOneFullRotation: number | |
): RelativeHardwareValueMatcher; | |
/** | |
* Creates a matcher that converts a value matched by an {@link AbsoluteHardwareValueMatcher} to a relative | |
* value using signed bit. | |
* | |
* @param valueMatcher | |
* Value matcher that matches the value that needs to be converted to a relative value | |
* @param valueAmountForOneFullRotation | |
* The value that would represent one full rotation to the right (should be very similar to the | |
* amount of rotation needed to take an absolute knob from 0 to 1). For example, if a value of | |
* 127 meant it had been rotated to the right by a full rotation then you would pass 127 here. | |
* This ensures that {@link RelativeHardwareControl}s have similar sensitivity to each other and | |
* can be mapped and behave in a very similar way to {@link AbsoluteHardwareControl}s. | |
* | |
* @since API version 10 | |
*/ | |
createRelativeSignedBitValueMatcher( | |
valueMatcher: AbsoluteHardwareValueMatcher, | |
valueAmountForOneFullRotation: number | |
): RelativeHardwareValueMatcher; | |
/** | |
* Creates a matcher that matches the relative value (encoded as signed bit 2) of a MIDI CC message by | |
* using expressions to filter and extract a value out of the MIDI event. | |
* | |
* @param eventExpression | |
* Expression that must be true in order to extract the value. | |
* @param valueExpression | |
* Expression that determines the value once an event has been matched. | |
* @param valueBitCount | |
* The number of bits that are relevant from the value extracted by the valueExpression. | |
* @param valueAmountForOneFullRotation | |
* The value that would represent one full rotation to the right (should be very similar to the | |
* amount of rotation needed to take an absolute knob from 0 to 1). For example, if a value of | |
* 127 meant it had been rotated to the right by a full rotation then you would pass 127 here. | |
* This ensures that {@link RelativeHardwareControl}s have similar sensitivity to each other and | |
* can be mapped and behave in a very similar way to {@link AbsoluteHardwareControl}s. | |
* | |
* @since API version 10 | |
*/ | |
createRelativeSignedBit2ValueMatcher( | |
eventExpression: string, | |
valueExpression: string, | |
valueBitCount: number, | |
valueAmountForOneFullRotation: number | |
): RelativeHardwareValueMatcher; | |
/** | |
* Creates a matcher that converts a value matched by an {@link AbsoluteHardwareValueMatcher} to a relative | |
* value using signed bit 2. | |
* | |
* @param valueAmountForOneFullRotation | |
* The value that would represent one full rotation to the right (should be very similar to the | |
* amount of rotation needed to take an absolute knob from 0 to 1). For example, if a value of | |
* 127 meant it had been rotated to the right by a full rotation then you would pass 127 here. | |
* This ensures that {@link RelativeHardwareControl}s have similar sensitivity to each other and | |
* can be mapped and behave in a very similar way to {@link AbsoluteHardwareControl}s. | |
* | |
* @since API version 10 | |
*/ | |
createRelativeSignedBit2ValueMatcher( | |
valueMatcher: AbsoluteHardwareValueMatcher, | |
valueAmountForOneFullRotation: number | |
): RelativeHardwareValueMatcher; | |
/** | |
* Creates a matcher that matches the relative value (encoded as bin offset) of a MIDI CC message by using | |
* expressions to filter and extract a value out of the MIDI event. | |
* | |
* @param eventExpression | |
* Expression that must be true in order to extract the value. | |
* @param valueExpression | |
* Expression that determines the value once an event has been matched. | |
* @param valueBitCount | |
* The number of bits that are relevant from the value extracted by the valueExpression. | |
* @param valueAmountForOneFullRotation | |
* The value that would represent one full rotation to the right (should be very similar to the | |
* amount of rotation needed to take an absolute knob from 0 to 1). For example, if a value of | |
* 127 meant it had been rotated to the right by a full rotation then you would pass 127 here. | |
* This ensures that {@link RelativeHardwareControl}s have similar sensitivity to each other and | |
* can be mapped and behave in a very similar way to {@link AbsoluteHardwareControl}s. | |
* | |
* @since API version 10 | |
*/ | |
createRelativeBinOffsetValueMatcher( | |
eventExpression: string, | |
valueExpression: string, | |
valueBitCount: number, | |
valueAmountForOneFullRotation: number | |
): RelativeHardwareValueMatcher; | |
/** | |
* Creates a matcher that converts a value matched by an {@link AbsoluteHardwareValueMatcher} to a relative | |
* value using bin offset. | |
* | |
* @param valueAmountForOneFullRotation | |
* The value that would represent one full rotation to the right (should be very similar to the | |
* amount of rotation needed to take an absolute knob from 0 to 1). For example, if a value of | |
* 127 meant it had been rotated to the right by a full rotation then you would pass 127 here. | |
* This ensures that {@link RelativeHardwareControl}s have similar sensitivity to each other and | |
* can be mapped and behave in a very similar way to {@link AbsoluteHardwareControl}s. | |
* | |
* @since API version 10 | |
*/ | |
createRelativeBinOffsetValueMatcher( | |
valueMatcher: AbsoluteHardwareValueMatcher, | |
valueAmountForOneFullRotation: number | |
): RelativeHardwareValueMatcher; | |
/** | |
* Creates a matcher that matches the relative value (encoded as 2s complement) of a MIDI CC message by | |
* using expressions to filter and extract a value out of the MIDI event. | |
* | |
* @param eventExpression | |
* Expression that must be true in order to extract the value. | |
* @param valueExpression | |
* Expression that determines the value once an event has been matched. | |
* @param valueBitCount | |
* The number of bits that are relevant from the value extracted by the valueExpression. | |
* @param valueAmountForOneFullRotation | |
* The value that would represent one full rotation to the right (should be very similar to the | |
* amount of rotation needed to take an absolute knob from 0 to 1). For example, if a value of | |
* 127 meant it had been rotated to the right by a full rotation then you would pass 127 here. | |
* This ensures that {@link RelativeHardwareControl}s have similar sensitivity to each other and | |
* can be mapped and behave in a very similar way to {@link AbsoluteHardwareControl}s. | |
* | |
* @since API version 10 | |
*/ | |
createRelative2sComplementValueMatcher( | |
eventExpression: string, | |
valueExpression: string, | |
valueBitCount: number, | |
valueAmountForOneFullRotation: number | |
): RelativeHardwareValueMatcher; | |
/** | |
* Creates a matcher that converts a value matched by an {@link AbsoluteHardwareValueMatcher} to a relative | |
* value using 2s complement. | |
* | |
* @param valueAmountForOneFullRotation | |
* The value that would represent one full rotation to the right (should be very similar to the | |
* amount of rotation needed to take an absolute knob from 0 to 1). For example, if a value of | |
* 127 meant it had been rotated to the right by a full rotation then you would pass 127 here. | |
* This ensures that {@link RelativeHardwareControl}s have similar sensitivity to each other and | |
* can be mapped and behave in a very similar way to {@link AbsoluteHardwareControl}s. | |
* | |
* @since API version 10 | |
*/ | |
createRelative2sComplementValueMatcher( | |
valueMatcher: AbsoluteHardwareValueMatcher, | |
valueAmountForOneFullRotation: number | |
): RelativeHardwareValueMatcher; | |
/** | |
* Creates a matcher that recognizes an action when getting a MIDI CC event with a specific value. | |
* | |
* @since API version 10 | |
*/ | |
createCCActionMatcher( | |
channel: number, | |
controlNumber: number, | |
value: number | |
): HardwareActionMatcher; | |
/** | |
* Creates a matcher that recognizes an action when getting a MIDI CC event regardless of the value. | |
* | |
* @since API version 10 | |
*/ | |
createCCActionMatcher( | |
channel: number, | |
controlNumber: number | |
): HardwareActionMatcher; | |
/** | |
* Creates a matcher that recognizes an action when a MIDI note on event occurs. | |
* | |
* @since API version 10 | |
*/ | |
createNoteOnActionMatcher( | |
channel: number, | |
note: number | |
): HardwareActionMatcher; | |
/** | |
* Creates a matcher that recognizes a note's on velocity when a MIDI note on event occurs. | |
* | |
* @since API version 10 | |
*/ | |
createNoteOnVelocityValueMatcher( | |
channel: number, | |
note: number | |
): AbsoluteHardwareValueMatcher; | |
/** | |
* Creates a matcher that recognizes a note's off velocity when a MIDI note off event occurs. | |
* | |
* @since API version 10 | |
*/ | |
createNoteOffVelocityValueMatcher( | |
channel: number, | |
note: number | |
): AbsoluteHardwareValueMatcher; | |
/** | |
* Creates a matcher that recognizes an action when a MIDI note off event occurs. | |
* | |
* @since API version 10 | |
*/ | |
createNoteOffActionMatcher( | |
channel: number, | |
note: number | |
): HardwareActionMatcher; | |
/** | |
* Creates a matcher that can match an action from a MIDI event. For example, pressing a button based on | |
* input of a MIDI CC event. | |
* | |
* @param expression | |
* Expression returns true if the event matches | |
*/ | |
createActionMatcher(expression: string): HardwareActionMatcher; | |
} | |
// source: com/bitwig/extension/controller/api/MidiOut.java | |
/** | |
* Instances of this interface are used to send MIDI messages to a specific MIDI hardware. | |
* | |
* @since API version 1 | |
*/ | |
interface MidiOut { | |
/** | |
* Sends a MIDI message to the hardware device. | |
* | |
* @param status | |
* the status byte of the MIDI message, system messages are not permitted. | |
* @param data1 | |
* the data1 part of the MIDI message | |
* @param data2 | |
* the data2 part of the MIDI message | |
* @ @since API version 1 | |
*/ | |
sendMidi(status: number, data1: number, data2: number): void; | |
/** | |
* Sends a MIDI SysEx message to the hardware device. | |
* | |
* @param hexString | |
* the sysex message formatted as hexadecimal value string | |
* @ @since API version 1 | |
*/ | |
sendSysex(hexString: string): void; | |
/** | |
* Sends a MIDI SysEx message to the hardware device. | |
* | |
* @param hexString | |
* the sysex message formatted as hexadecimal value string | |
* @ @since API version 1 | |
*/ | |
sendSysex(data: number): void; | |
/** | |
* Enables or disables sending MIDI beat clock messages to the hardware depending on the given parameter. | |
* Typically MIDI devices that run an internal sequencer such as hardware step sequencers would be | |
* interested in MIDI clock messages. | |
* | |
* @param shouldSendClock | |
* `true` in case the hardware should receive MIDI clock messages, `false` otherwise | |
* @ @deprecated Users should enable the clock from the settings. | |
* @since API version 1 | |
*/ | |
setShouldSendMidiBeatClock(shouldSendClock: boolean): void; | |
} | |
// source: com/bitwig/extension/controller/api/Mixer.java | |
/** | |
* An interface used to access various commands that can be performed on the Bitwig Studio mixer panel.<br/> | |
* | |
* To get an instance of the mixer interface call {@link ControllerHost#createMixer}. | |
* | |
* @since API version 1 | |
*/ | |
interface Mixer { | |
/** | |
* Gets an object that allows to show/hide the meter section of the mixer panel. Observers can be | |
* registered on the returned object for receiving notifications when the meter section switches between | |
* shown and hidden state. | |
* | |
* @return a boolean value object that represents the meter section visibility | |
* @since API version 1 | |
*/ | |
isMeterSectionVisible(): SettableBooleanValue; | |
/** | |
* Gets an object that allows to show/hide the io section of the mixer panel. Observers can be registered | |
* on the returned object for receiving notifications when the io section switches between shown and hidden | |
* state. | |
* | |
* @return a boolean value object that represents the io section visibility | |
* @since API version 1 | |
*/ | |
isIoSectionVisible(): SettableBooleanValue; | |
/** | |
* Gets an object that allows to show/hide the sends section of the mixer panel. Observers can be | |
* registered on the returned object for receiving notifications when the sends section switches between | |
* shown and hidden state. | |
* | |
* @return a boolean value object that represents the sends section visibility | |
* @since API version 1 | |
*/ | |
isSendSectionVisible(): SettableBooleanValue; | |
/** | |
* Gets an object that allows to show/hide the clip launcher section of the mixer panel. Observers can be | |
* registered on the returned object for receiving notifications when the clip launcher section switches | |
* between shown and hidden state. | |
* | |
* @return a boolean value object that represents the clip launcher section visibility | |
* @since API version 1 | |
*/ | |
isClipLauncherSectionVisible(): SettableBooleanValue; | |
/** | |
* Gets an object that allows to show/hide the devices section of the mixer panel. Observers can be | |
* registered on the returned object for receiving notifications when the devices section switches between | |
* shown and hidden state. | |
* | |
* @return a boolean value object that represents the devices section visibility | |
* @since API version 1 | |
*/ | |
isDeviceSectionVisible(): SettableBooleanValue; | |
/** | |
* Gets an object that allows to show/hide the cross-fade section of the mixer panel. Observers can be | |
* registered on the returned object for receiving notifications when the cross-fade section switches | |
* between shown and hidden state. | |
* | |
* @return a boolean value object that represents the cross-fade section visibility | |
* @since API version 1 | |
*/ | |
isCrossFadeSectionVisible(): SettableBooleanValue; | |
/** | |
* Registers an observer that reports if the meter section is visible (callback argument is `true`) in the | |
* mixer panel or not (callback argument is `false`). | |
* | |
* @param callback | |
* a callback function that receives a single boolean parameter. | |
* @see #isMeterSectionVisible() | |
* @deprecated call `isMeterSectionVisible().addValueObserver` instead | |
* @since API version 1 | |
*/ | |
addMeterSectionVisibilityObserver( | |
callback: BooleanValueChangedCallback | |
): void; | |
/** | |
* Registers an observer that reports if the IO section is visible (callback argument is `true`) in the | |
* mixer panel or not (callback argument is `false`). | |
* | |
* @param callback | |
* a callback function that receives a single boolean parameter. | |
* @see #isIoSectionVisible() | |
* @deprecated call `isIoSectionVisible().addValueObserver` instead | |
* @since API version 1 | |
*/ | |
addIoSectionVisibilityObserver(callback: BooleanValueChangedCallback): void; | |
/** | |
* Registers an observer that reports if the send control section is visible (callback argument is `true`) | |
* in the mixer panel or not (callback argument is `false`). | |
* | |
* @param callback | |
* a callback function that receives a single boolean parameter. | |
* @see #isSendSectionVisible() | |
* @deprecated call `isSendSectionVisible().addValueObserver` instead | |
* @since API version 1 | |
*/ | |
addSendsSectionVisibilityObserver( | |
callback: BooleanValueChangedCallback | |
): void; | |
/** | |
* Registers an observer that reports if the clip launcher section is visible (callback argument is `true`) | |
* in the mixer panel or not (callback argument is `false`). | |
* | |
* @param callback | |
* a callback function that receives a single boolean parameter. | |
* @see #isClipLauncherSectionVisible() | |
* @deprecated call `isClipLauncherSectionVisible().addValueObserver` instead | |
* @since API version 1 | |
*/ | |
addClipLauncherSectionVisibilityObserver( | |
callback: BooleanValueChangedCallback | |
): void; | |
/** | |
* Registers an observer that reports if the device section is visible (callback argument is `true`) in the | |
* mixer panel or not (callback argument is `false`). | |
* | |
* @param callback | |
* a callback function that receives a single boolean parameter. | |
* @see #isDeviceSectionVisible() | |
* @deprecated call `isDeviceSectionVisible().addValueObserver` instead | |
* @since API version 1 | |
*/ | |
addDeviceSectionVisibilityObserver( | |
callback: BooleanValueChangedCallback | |
): void; | |
/** | |
* Registers an observer that reports if the cross-fade section is visible (callback argument is `true`) in | |
* the mixer panel or not (callback argument is `false`). | |
* | |
* @param callback | |
* a callback function that receives a single boolean parameter. | |
* @see #isCrossFadeSectionVisible() | |
* @deprecated call `isCrossFadeSectionVisible().addValueObserver` instead | |
* @since API version 1 | |
*/ | |
addCrossFadeSectionVisibilityObserver( | |
callback: BooleanValueChangedCallback | |
): void; | |
/** | |
* Toggles the visibility of the meter section in the mixer panel. | |
* | |
* @see #isMeterSectionVisible() | |
* @deprecated call `isMeterSectionVisible().toggle()` instead | |
* @since API version 1 | |
*/ | |
toggleMeterSectionVisibility(): void; | |
/** | |
* Toggles the visibility of the IO section in the mixer panel. | |
* | |
* @see #isIoSectionVisible() | |
* @deprecated call `isIoSectionVisible().toggle()` instead | |
* @since API version 1 | |
*/ | |
toggleIoSectionVisibility(): void; | |
/** | |
* Toggles the visibility of the send control section in the mixer panel. | |
* | |
* @see #isSendSectionVisible() | |
* @deprecated call `isSendSectionVisible().toggle()` instead | |
* @since API version 1 | |
*/ | |
toggleSendsSectionVisibility(): void; | |
/** | |
* Toggles the visibility of the clip launcher section in the mixer panel. | |
* | |
* @see #isClipLauncherSectionVisible() | |
* @deprecated call `isClipLauncherSectionVisible().toggle()` instead | |
* @since API version 1 | |
*/ | |
toggleClipLauncherSectionVisibility(): void; | |
/** | |
* Toggles the visibility of the device section in the mixer panel. | |
* | |
* @see #isDeviceSectionVisible() | |
* @deprecated call `isDeviceSectionVisible().toggle()` instead | |
* @since API version 1 | |
*/ | |
toggleDeviceSectionVisibility(): void; | |
/** | |
* Toggles the visibility of the cross-fade section in the mixer panel. | |
* | |
* @see #isCrossFadeSectionVisible() | |
* @deprecated call `isCrossFadeSectionVisible().toggle()` instead | |
* @since API version 1 | |
*/ | |
toggleCrossFadeSectionVisibility(): void; | |
} | |
// source: com/bitwig/extension/controller/api/ModulationSource.java | |
/** | |
* This interface represents a modulation source in Bitwig Studio. | |
* | |
* @since API version 1 | |
*/ | |
interface ModulationSource { | |
/** | |
* Value which reports when the modulation source is in mapping mode. | |
* | |
* @since API version 2 | |
*/ | |
isMapping(): BooleanValue; | |
/** | |
* Registers an observer which reports when the modulation source is in mapping mode. | |
* | |
* @param callback | |
* a callback function that receives a single boolean parameter | |
* @since API version 1 | |
* @deprecated Use {@link #isMapping()} instead. | |
*/ | |
addIsMappingObserver(callback: BooleanValueChangedCallback): void; | |
/** | |
* Toggles the modulation source between mapping mode and normal control functionality. | |
* | |
* @since API version 1 | |
*/ | |
toggleIsMapping(): void; | |
/** | |
* Value the reports the name of the modulation source. | |
* | |
* @since API version 2 | |
*/ | |
name(): StringValue; | |
/** | |
* Registers an observer the reports the name of the modulation source. | |
* | |
* @param numChars | |
* the maximum number of character the reported name should be long | |
* @param textWhenUnassigned | |
* the default text that gets reported if the modulation source is not connected to to a | |
* modulation source in Bitwig Studio yet | |
* @param callback | |
* a callback function that receives a single string parameter | |
* @since API version 1 | |
* @deprecated Use {@link #name()} instead. | |
*/ | |
addNameObserver( | |
numChars: number, | |
textWhenUnassigned: string, | |
callback: StringValueChangedCallback | |
): void; | |
/** | |
* Value which reports if the modulation source is mapped to any destination(s). | |
* | |
* @since API version 2 | |
*/ | |
isMapped(): BooleanValue; | |
/** | |
* Registers an observer which reports if the modulation source is mapped to any destination(s). | |
* | |
* @param callback | |
* a callback function that receives a single boolean parameter | |
* @since API version 1 | |
* @deprecated Use {@link #isMapped()} instead. | |
*/ | |
addIsMappedObserver(callback: BooleanValueChangedCallback): void; | |
} | |
// source: com/bitwig/extension/controller/api/MultiSampleBrowsingSession.java | |
/** | |
* Instances of this interface are used for browsing multi-samples, including access to all filter columns and | |
* the result column as shown in the 'Multi-Samples' tab of Bitwig Studio's contextual browser window. | |
* | |
* @see BrowsingSession | |
* @since API version 1 | |
* @deprecated Use {@link PopupBrowser} instead. | |
*/ | |
interface MultiSampleBrowsingSession extends BrowsingSession { | |
/** | |
* Returns the file type filter as shown in the category column of the browser. | |
* | |
* @return the requested file type filter object. | |
* @since API version 1 | |
*/ | |
getFileTypeFilter(): BrowserFilterColumn; | |
} | |
// source: com/bitwig/extension/controller/api/MultiStateHardwareLight.java | |
import Function = java.util.funktion.Function; | |
import IntFunction = java.util.funktion.IntFunction; | |
/** | |
* Represents a physical hardware light on a controller. The light has an on/off state and may also be | |
* optionally colored. | |
* | |
* @since API version 10 | |
*/ | |
interface MultiStateHardwareLight extends HardwareLight { | |
/** | |
* Value that represents the current state of this light as an integer. The interpretation of this value is | |
* entirely up to the implementation. | |
*/ | |
state(): ObjectHardwareProperty<InternalHardwareLightState>; | |
/** | |
* Sets a function that can be used to convert a color to the closest possible state representing that | |
* color. Once this function has been provided it is possible to then use the convenient | |
* {@link #setColor(Color)} and {@link #setColorSupplier(Supplier)} methods. | |
*/ | |
setColorToStateFunction( | |
func: Function<Color, InternalHardwareLightState> | |
): void; | |
/** | |
* Tries to set this light's state to be the best state to represent the supplied {@link Color}. For this | |
* to be used you must first call {@link #setColorToStateFunction(IntFunction)}. | |
*/ | |
setColor(color: Color): void; | |
/** | |
* Tries to set this light's state to be the best state to represent the value supplied by the | |
* {@link Supplier}. For this to be used you must first call {@link #setColorToStateFunction(IntFunction)}. | |
*/ | |
setColorSupplier(colorSupplier: Supplier<Color>): void; | |
getBestLightStateForColor(color: Color): InternalHardwareLightState; | |
} | |
// source: com/bitwig/extension/controller/api/MusicBrowsingSession.java | |
/** | |
* Instances of this interface are used for browsing music files, including access to all filter columns and | |
* the result column as shown in the 'Music' tab of Bitwig Studio's contextual browser window. | |
* | |
* @see BrowsingSession | |
* @since API version 1 | |
* @deprecated Use {@link PopupBrowser} instead. | |
*/ | |
interface MusicBrowsingSession extends BrowsingSession { | |
/** | |
* Returns the file type filter as shown in the category column of the browser. | |
* | |
* @return the requested file type filter object. | |
* @since API version 1 | |
*/ | |
getFileTypeFilter(): BrowserFilterColumn; | |
} | |
// source: com/bitwig/extension/controller/api/NoteInput.java | |
enum NoteExpression { | |
NONE = 0, | |
PITCH_DOWN = 1, | |
PITCH_UP = 2, | |
GAIN_DOWN = 3, | |
GAIN_UP = 4, | |
PAN_LEFT = 5, | |
PAN_RIGHT = 6, | |
TIMBRE_DOWN = 7, | |
TIMBRE_UP = 8, | |
} | |
/** | |
* Instances of this interface implement note input functionality used for recording notes in Bitwig Studio | |
* and for playing the instruments in tracks on hardware keyboards. In Bitwig Studio the note inputs are shown | |
* in the input choosers of Bitwig Studio tracks. | |
* | |
* @since API version 1 | |
*/ | |
interface NoteInput { | |
/** | |
* Specifies if the note input should consume MIDI notes, or in other words if it should prevent forwarding | |
* incoming notes to the MIDI callback registered in {@link MidiIn#setMidiCallback}. This setting is `true` | |
* by default. | |
* | |
* @param shouldConsumeEvents | |
* `true` if note events should be consumed, `false` of the events should be additionally sent to | |
* the callback registered via {@link MidiIn#setMidiCallback} | |
* @since API version 1 | |
*/ | |
setShouldConsumeEvents(shouldConsumeEvents: boolean): void; | |
/** | |
* Specifies a translation table which defines the actual key value (0-127) of notes arriving in Bitwig | |
* Studio for each note key potentially received from the hardware. This is used for note-on/off and | |
* polyphonic aftertouch events. Specifying a value of `-1` for a key means that notes with the key value | |
* will be filtered out. | |
* | |
* Typically this method is used to implement transposition or scale features in controller scripts. By | |
* default an identity transform table is configured, which means that all incoming MIDI notes keep their | |
* original key value when being sent into Bitwig Studio. | |
* | |
* @param table | |
* an array which should contain 128 entries. Each entry should be a note value in the range | |
* [0..127] or -1 in case of filtering. | |
* @since API version 1 | |
*/ | |
setKeyTranslationTable(table: number[]): void; | |
/** | |
* Specifies a translation table which defines the actual velocity value (0-127) of notes arriving in | |
* Bitwig Studio for each note velocity potentially received from the hardware. This is used for note-on | |
* events only. | |
* | |
* Typically this method is used to implement velocity curves or fixed velocity mappings in controller | |
* scripts. By default an identity transform table is configured, which means that all incoming MIDI notes | |
* keep their original velocity when being sent into Bitwig Studio. | |
* | |
* @param table | |
* an array which should contain 128 entries. Each entry should be a note value in the range | |
* [0..127] or -1 in case of filtering. | |
* @since API version 1 | |
*/ | |
setVelocityTranslationTable(table: number[]): void; | |
/** | |
* Assigns polyphonic aftertouch MIDI messages to the specified note expression. Multi-dimensional control | |
* is possible by calling this method several times with different MIDI channel parameters. If a key | |
* translation table is configured by calling {@link #setKeyTranslationTable}, that table is used for | |
* polyphonic aftertouch as well. | |
* | |
* @param channel | |
* the MIDI channel to map, range [0..15] | |
* @param expression | |
* the note-expression to map for the given MIDI channel | |
* @param pitchRange | |
* the pitch mapping range in semitones, values must be in the range [1..24]. This parameter is | |
* ignored for non-pitch expressions. | |
* @ @since API version 1 | |
*/ | |
assignPolyphonicAftertouchToExpression( | |
channel: number, | |
expression: NoteExpression, | |
pitchRange: number | |
): void; | |
/** | |
* Enables use of Expressive MIDI mode. (note-per-channel) | |
* | |
* @param useExpressiveMidi | |
* enabled/disable the MPE mode for this note-input | |
* @param baseChannel | |
* which channel (must be either 0 or 15) which is used as the base for this note-input | |
* @param pitchBendRange | |
* initial pitch bend range used | |
*/ | |
setUseExpressiveMidi( | |
useExpressiveMidi: boolean, | |
baseChannel: number, | |
pitchBendRange: number | |
): void; | |
/** | |
* Enables use of Multidimensional Polyphonic Expression mode. (note-per-channel) | |
* | |
* @param useMPE | |
* enabled/disable the MPE mode for this note-input | |
* @param baseChannel | |
* which channel (must be either 0 or 15) which is used as the base for this note-input | |
*/ | |
setUseMultidimensionalPolyphonicExpression( | |
useMPE: boolean, | |
baseChannel: number | |
): void; | |
/** | |
* Sends MIDI data directly to the note input. This will bypass both the event filter and translation | |
* tables. The MIDI channel of the message will be ignored. | |
* | |
* @param status | |
* the status byte of the MIDI message | |
* @param data0 | |
* the data0 part of the MIDI message | |
* @param data1 | |
* the data1 part of the MIDI message | |
* @since API version 1 | |
*/ | |
sendRawMidiEvent(status: number, data0: number, data1: number): void; | |
/** | |
* Creates a proxy object to the NoteInput's NoteLatch component. | |
* | |
* @since API version 10 | |
*/ | |
noteLatch(): NoteLatch; | |
/** | |
* Creates a proxy object to the NoteInput's Arpeggiator component. | |
* | |
* @since API version 10 | |
*/ | |
arpeggiator(): Arpeggiator; | |
/** | |
* Should this note input be included in the "All Inputs" note source? | |
* | |
* @since API version 10 | |
*/ | |
includeInAllInputs(): SettableBooleanValue; | |
} | |
// source: com/bitwig/extension/controller/api/NoteLane.java | |
/** | |
* Instances of this interface are used to access the notes for a specific note key. | |
* | |
* @since API version 1 | |
*/ | |
interface NoteLane { | |
/** | |
* Value which represents the id of this lane. is either the note pitch represented by this lane, or in | |
* case of audio a lane index (currently always 0 in that case). | |
* | |
* @since API version 2 | |
*/ | |
noteLaneId(): IntegerValue; | |
/** | |
* Registers an observer for the note value, which is either the note pitch represented by this lane, or in | |
* case of audio a lane index (currently always 0 in that case). | |
* | |
* @since API version 1 | |
* @deprecated Use {@link #noteLaneId()} instead. | |
*/ | |
addNoteValueObserver(callback: IntegerValueChangedCallback): void; | |
/** | |
* Value that reports the name of the note lane. Typically the name of a note lane is | |
* either equal to the title of an associated drum pad, or reflects the pitch of the note, e.g. "C#3". | |
*/ | |
name(): StringValue; | |
/** | |
* Registers an observer that reports the name of the note lane. Typically the name of a note lane is | |
* either equal to the title of an associated drum pad, or reflects the pitch of the note, e.g. "C#3". | |
* | |
* @param numChars | |
* the maximum number of characters used for the reported name | |
* @param textWhenUnassigned | |
* the default name that gets reported when the lane is not yet associated with a note lane in | |
* Bitwig Studio | |
* @param callback | |
* a callback function that receives a single string argument | |
* @since API version 1 | |
* @deprecated Use {@link #name()} instead. | |
*/ | |
addNameObserver( | |
numChars: number, | |
textWhenUnassigned: string, | |
callback: StringValueChangedCallback | |
): void; | |
/** | |
* Value the color of the note lane. By default the reported color will be the | |
* track color, or in case an associated drum pad has a custom color it will be the color of that pad | |
*/ | |
color(): SettableColorValue; | |
/** | |
* Registers an observer that reports the color of the note lane. By default the reported color will be the | |
* track color, or in case an associated drum pad has a custom color it will be the color of that pad. | |
* | |
* @param callback | |
* a callback function that receives three arguments which from an RGB color: 1. the red | |
* dimension of the color value, 2. the green dimension of the color value, and 3. the blue | |
* dimension of the color value | |
* @since API version 1 | |
* @deprecated Use {@link #color()} instead. | |
*/ | |
addColorObserver(callback: ColorValueChangedCallback): void; | |
/** | |
* Plays a note with the key of the note lane and the provided velocity parameter. | |
* | |
* @param velocity | |
* the velocity the note should be played with | |
* @since API version 1 | |
*/ | |
play(velocity: number): void; | |
} | |
// source: com/bitwig/extension/controller/api/NoteLatch.java | |
/** | |
* Creates a proxy object to the NoteInput's NoteLatch component. | |
* | |
* @since API version 10 | |
*/ | |
interface NoteLatch extends ObjectProxy { | |
/** | |
* Returns an object to enable or disable the note latch component. | |
* | |
* @since API version 10 | |
*/ | |
isEnabled(): SettableBooleanValue; | |
/** | |
* Returns an object to configure the note latch mode. | |
* Possible values: | |
* - chord | |
* - toggle | |
* - velocity | |
* | |
* @since API version 10 | |
*/ | |
mode(): SettableEnumValue; | |
/** | |
* Only one note at a time. | |
* @since API version 10 | |
*/ | |
mono(): SettableBooleanValue; | |
/** | |
* The velocity threshold used by the velocity latch mode. | |
* @since API version 10 | |
*/ | |
velocityThreshold(): SettableIntegerValue; | |
/** | |
* How many notes are being latched. | |
* @since API version 10 | |
*/ | |
activeNotes(): IntegerValue; | |
/** | |
* Release all notes being latched. | |
* @since API version 10 | |
*/ | |
releaseNotes(): void; | |
} | |
// source: com/bitwig/extension/controller/api/NoteStep.java | |
enum State { | |
Empty = 0, | |
NoteOn = 1, | |
NoteSustain = 2, | |
} | |
/** | |
* Object that describes the content of a step at a given position: x for the time, and y for the key. | |
* | |
* @since API version 10 | |
*/ | |
interface NoteStep { | |
/** | |
* @return the position of the step (time) | |
* @since API version 10 | |
*/ | |
x(): number; | |
/** | |
* @return the position of the step (key) | |
* @since API version 10 | |
*/ | |
y(): number; | |
/** | |
* @return the note's channel, in the range 0..15. | |
* @since API version 10 | |
*/ | |
channel(): number; | |
/** | |
* @return the state of the step, it lets you know if a note starts. | |
* @since API version 10 | |
*/ | |
state(): State; | |
/** | |
* @return the velocity of the step, in the range 0..1 | |
* @since API version 10 | |
*/ | |
velocity(): number; | |
/** | |
* If there is a note started at this position, it will update the velocity of the note. | |
* @param velocity between 0 and 1 | |
* @newSince API version 10 | |
*/ | |
setVelocity(velocity: number): void; | |
/** | |
* @return the release velocity of the step, in the range 0..1 | |
* @since API version 10 | |
*/ | |
releaseVelocity(): number; | |
/** | |
* If there is a note started at this position, it will update the release velocity of the note. | |
* @param velocity between 0 and 1 | |
* @since API version 10 | |
*/ | |
setReleaseVelocity(velocity: number): void; | |
/** | |
* @return the duration of the step in beats | |
* @since API version 10 | |
*/ | |
duration(): number; | |
/** | |
* If there is a note started at this position, it will update the duration of the note. | |
* @param duration in beats | |
* @since API version 10 | |
*/ | |
setDuration(duration: number): void; | |
/** | |
* @return the pan of the step in the range -1..1 | |
* @since API version 10 | |
*/ | |
pan(): number; | |
/** | |
* If there is a note started at this position, it will update the panning of the note. | |
* @param pan -1 for left, +1 for right | |
* @since API version 10 | |
*/ | |
setPan(pan: number): void; | |
/** | |
* @return the timbre of the step, in the range -1..1 | |
* @since API version 10 | |
*/ | |
timbre(): number; | |
/** | |
* If there is a note started at this position, it will update the timbre of the note. | |
* @param timbre from -1 to +1 | |
* @since API version 10 | |
*/ | |
setTimbre(timbre: number): void; | |
/** | |
* @return the pressure of the step, in the range 0..1 | |
* @since API version 10 | |
*/ | |
pressure(): number; | |
/** | |
* If there is a note started at this position, it will update the pressure of the note. | |
* @param pressure from 0 to +1 | |
* @since API version 10 | |
*/ | |
setPressure(pressure: number): void; | |
/** | |
* @return the gain of the step, in the range 0..1 | |
* @since API version 10 | |
*/ | |
gain(): number; | |
/** | |
* If there is a note started at this position, it will update the gain of the note. | |
* @param gain in the range 0..1, a value of 0.5 results in a gain of 0dB. | |
* @since API version 10 | |
*/ | |
setGain(gain: number): void; | |
/** | |
* @return the transpose of the step, in semitones | |
* @since API version 10 | |
*/ | |
transpose(): number; | |
/** | |
* If there is a note started at this position, it will update the pitch offset of the note. | |
* @param transpose in semitones, from -24 to +24 | |
* @since API version 10 | |
*/ | |
setTranspose(transpose: number): void; | |
/** | |
* @return true if a note exists and is selected | |
* @since API version 10 | |
*/ | |
isIsSelected(): boolean; | |
} | |
// source: com/bitwig/extension/controller/api/NotificationSettings.java | |
/** | |
* Bitwig Studio supports automatic visual feedback from controllers that shows up as popup notifications. For | |
* example when the selected track or the current device preset was changed on the controller, these | |
* notifications are shown, depending on the configuration. | |
* | |
* It depends both on the users preference and the capabilities of the controller hardware if a certain | |
* notification should be shown. This interface provides functions for enabling/disabling the various kinds of | |
* automatic notifications from the hardware point of view. Typically, controllers that include an advanced | |
* display don't need to show many notifications additionally on screen. For other controllers that do not | |
* include a display it might be useful to show all notifications. By default all notifications are disabled. | |
* | |
* In addition, the user can enable or disable all notifications the have been enabled using this interface in | |
* the preferences dialog of Bitwig Studio. | |
* | |
* @since API version 1 | |
*/ | |
interface NotificationSettings { | |
/** | |
* Returns an object that reports if user notifications are enabled and that allows to enable/disable user | |
* notifications from the control surface. If user notifications are disabled, no automatic notifications | |
* will be shown in the Bitwig Studio user interface. If user notifications are enabled, all automatic | |
* notifications will be shown that are enabled using the methods of this interface. | |
* | |
* @return a boolean value object | |
* @since API version 1 | |
*/ | |
getUserNotificationsEnabled(): SettableBooleanValue; | |
/** | |
* Specifies if user notification related to selection changes should be shown. Please note that this | |
* setting only applies when user notifications are enabled in general, otherwise no notification are | |
* shown. By default this setting is `false`. | |
* | |
* @param shouldShowNotifications | |
* `true` in case selection notifications should be shown, `false` otherwise. | |
* @see #getUserNotificationsEnabled() | |
* @since API version 1 | |
*/ | |
setShouldShowSelectionNotifications(shouldShowNotifications: boolean): void; | |
/** | |
* Specifies if user notification related to selection changes should be shown. Please note that this | |
* setting only applies when user notifications are enabled in general, otherwise no notification are | |
* shown. By default this setting is `false`. | |
* | |
* @param shouldShowNotifications | |
* `true` in case selection notifications should be shown, `false` otherwise. | |
* @see #getUserNotificationsEnabled() | |
* @since API version 1 | |
*/ | |
setShouldShowChannelSelectionNotifications( | |
shouldShowNotifications: boolean | |
): void; | |
/** | |
* Specifies if user notification related to selection changes should be shown. Please note that this | |
* setting only applies when user notifications are enabled in general, otherwise no notification are | |
* shown. By default this setting is `false`. | |
* | |
* @param shouldShowNotifications | |
* `true` in case selection notifications should be shown, `false` otherwise. | |
* @see #getUserNotificationsEnabled() | |
* @since API version 1 | |
*/ | |
setShouldShowTrackSelectionNotifications( | |
shouldShowNotifications: boolean | |
): void; | |
/** | |
* Specifies if user notification related to selection changes should be shown. Please note that this | |
* setting only applies when user notifications are enabled in general, otherwise no notification are | |
* shown. By default this setting is `false`. | |
* | |
* @param shouldShowNotifications | |
* `true` in case selection notifications should be shown, `false` otherwise. | |
* @see #getUserNotificationsEnabled() | |
* @since API version 1 | |
*/ | |
setShouldShowDeviceSelectionNotifications( | |
shouldShowNotifications: boolean | |
): void; | |
/** | |
* Specifies if user notification related to selection changes should be shown. Please note that this | |
* setting only applies when user notifications are enabled in general, otherwise no notification are | |
* shown. By default this setting is `false`. | |
* | |
* @param shouldShowNotifications | |
* `true` in case selection notifications should be shown, `false` otherwise. | |
* @see #getUserNotificationsEnabled() | |
* @since API version 1 | |
*/ | |
setShouldShowDeviceLayerSelectionNotifications( | |
shouldShowNotifications: boolean | |
): void; | |
/** | |
* Specifies if user notification related to selection changes should be shown. Please note that this | |
* setting only applies when user notifications are enabled in general, otherwise no notification are | |
* shown. | |
* | |
* @param shouldShowNotifications | |
* `true` in case selection notifications should be shown, `false` otherwise. | |
* @see #getUserNotificationsEnabled() | |
* @since API version 1 | |
*/ | |
setShouldShowPresetNotifications(shouldShowNotifications: boolean): void; | |
/** | |
* Specifies if user notification related to selection changes should be shown. Please note that this | |
* setting only applies when user notifications are enabled in general, otherwise no notification are | |
* shown. By default this setting is `false`. | |
* | |
* @param shouldShowNotifications | |
* `true` in case selection notifications should be shown, `false` otherwise. | |
* @see #getUserNotificationsEnabled() | |
* @since API version 1 | |
*/ | |
setShouldShowMappingNotifications(shouldShowNotifications: boolean): void; | |
/** | |
* Specifies if user notification related to selection changes should be shown. Please note that this | |
* setting only applies when user notifications are enabled in general, otherwise no notification are | |
* shown. By default this setting is `false`. | |
* | |
* @param shouldShowNotifications | |
* `true` in case selection notifications should be shown, `false` otherwise. | |
* @see #getUserNotificationsEnabled() | |
* @since API version 1 | |
*/ | |
setShouldShowValueNotifications(shouldShowNotifications: boolean): void; | |
} | |
// source: com/bitwig/extension/controller/api/ObjectArrayValue.java | |
import ObjectValueChangedCallback = com.bitwig.extension.callback.ObjectValueChangedCallback; | |
/** | |
* @since API version 2 | |
*/ | |
interface ObjectArrayValue<ObjectType> | |
extends Value<ObjectValueChangedCallback<ObjectType[]>>, | |
Supplier<ObjectType[]> { | |
/** | |
* @since API version 2 | |
*/ | |
get(): ObjectType[]; | |
/** | |
* @since API version 2 | |
*/ | |
get(index: number): ObjectType; | |
/** | |
* @since API version 7 | |
*/ | |
isEmpty(): boolean; | |
} | |
// source: com/bitwig/extension/controller/api/ObjectHardwareProperty.java | |
/** | |
* Represents an output value shown on some hardware. | |
* | |
* @since API version 10 | |
*/ | |
interface ObjectHardwareProperty<T> extends HardwareProperty { | |
/** Gets the current value. This is the value that should be sent to the hardware to be displayed. */ | |
currentValue(): T; | |
/** The value that was last sent to the hardware. */ | |
lastSentValue(): T; | |
/** | |
* Specifies a callback that should be called with the value that needs to be sent to the hardware. This | |
* callback is called as a result of calling the {@link HardwareSurface#updateHardware()} method (typically | |
* from the flush method). | |
*/ | |
onUpdateHardware(sendValueConsumer: Consumer<T>): void; | |
/** Sets the current value. */ | |
setValue(value: T): void; | |
/** Sets the current value from a {@link BooleanSupplier} that supplies the latest value. */ | |
setValueSupplier(supplier: Supplier<T>): void; | |
} | |
// source: com/bitwig/extension/controller/api/ObjectProxy.java | |
/** | |
* Interface for an object that acts as a proxy for the actual object in Bitwig Studio (for example a track, a | |
* device etc). | |
* | |
* @since API version 2 | |
*/ | |
interface ObjectProxy extends Subscribable { | |
/** | |
* Returns a value object that indicates if the object being proxied exists, or if it has content. | |
*/ | |
exists(): BooleanValue; | |
/** | |
* Creates a {@link BooleanValue} that determines this proxy is considered equal to another proxy. For this | |
* to be the case both proxies need to be proxying the same target object. | |
* | |
* @since API version 3 | |
*/ | |
createEqualsValue(other: ObjectProxy): BooleanValue; | |
} | |
// source: com/bitwig/extension/controller/api/OnOffHardwareLight.java | |
/** | |
* Defines a simple hardware light that only has an on and off state. | |
* | |
* @since API version 10 | |
*/ | |
interface OnOffHardwareLight extends HardwareLight { | |
/** Property that determines if this light is on or not. */ | |
isOn(): BooleanHardwareProperty; | |
setOnColor(color: Color): void; | |
setOffColor(color: Color): void; | |
setOnVisualState(state: HardwareLightVisualState): void; | |
setOffVisualState(state: HardwareLightVisualState): void; | |
/** | |
* | |
* @deprecated Typo in method name use {@link #setStateToVisualStateFunction(Function)} instead | |
*/ | |
setStateToVisualStateFuncation( | |
func: Function<boolean, HardwareLightVisualState> | |
): void; | |
setStateToVisualStateFunction( | |
func: Function<boolean, HardwareLightVisualState> | |
): void; | |
} | |
// source: com/bitwig/extension/controller/api/OutputPipe.java | |
/** | |
* A pipe that can be used to write data. | |
* | |
* @since API version 7 | |
* */ | |
interface OutputPipe extends Pipe { | |
/** | |
* Requests to write some data to this pipe in an asynchronous way (the caller is not blocked). Once some | |
* data has been written the callback will be notified on the controller's thread. | |
* | |
* @param data | |
* A {@link MemoryBlock} containing the data to be written. | |
* @param callback | |
* A callback that is notified on the controller's thread when the write has completed. | |
* @param timeoutInMs | |
* A timeout in milliseconds that will result in an error and termination of the controller if | |
* the write does not happen in this time. For infinite timeout use 0. | |
*/ | |
writeAsync( | |
data: MemoryBlock, | |
callback: AsyncTransferCompledCallback, | |
timeoutInMs: number | |
): void; | |
write(data: MemoryBlock, timeoutInMs: number): number; | |
} | |
// source: com/bitwig/extension/controller/api/Parameter.java | |
/** | |
* Instances of this interface represent ranged parameters that can be controlled with automation in Bitwig | |
* Studio. | |
* | |
* @since API version 1 | |
*/ | |
interface Parameter extends SettableRangedValue, ObjectProxy { | |
/** | |
* Gets the current value of this parameter. | |
* | |
* @since API version 2 | |
*/ | |
value(): SettableRangedValue; | |
/** | |
* Gets the modulated value of this parameter. | |
* | |
* @since API version 2 | |
*/ | |
modulatedValue(): RangedValue; | |
/** | |
* The name of the parameter. | |
* | |
* @since API version 2 | |
*/ | |
name(): StringValue; | |
/** | |
* Adds an observer which reports changes to the name of the automated parameter. The callback will get | |
* called at least once immediately after calling this method for reporting the current name. | |
* | |
* @param maxChars | |
* maximum length of the string sent to the observer | |
* @param textWhenUnassigned | |
* the default text to use | |
* @param callback | |
* a callback function that receives a single string parameter | |
* @since API version 1 | |
* @deprecated | |
*/ | |
addNameObserver( | |
maxChars: number, | |
textWhenUnassigned: string, | |
callback: StringValueChangedCallback | |
): void; | |
/** | |
* Adds an observer which sends a formatted text representation of the value whenever the value changes. | |
* The callback will get called at least once immediately after calling this method for reporting the | |
* current state. | |
* | |
* @param maxChars | |
* maximum length of the string sent to the observer | |
* @param textWhenUnassigned | |
* the default text to use | |
* @param callback | |
* a callback function that receives a single string parameter | |
* @since API version 1 | |
* @deprecated Use {@link #value()#displayedValue()} instead | |
*/ | |
addValueDisplayObserver( | |
maxChars: number, | |
textWhenUnassigned: string, | |
callback: StringValueChangedCallback | |
): void; | |
/** | |
* Resets the value to its default. | |
* | |
* @since API version 1 | |
*/ | |
reset(): void; | |
/** | |
* Touch (or un-touch) the value for automation recording. | |
* | |
* @param isBeingTouched | |
* `true` for touching, `false` for un-touching | |
* @since API version 1 | |
*/ | |
touch(isBeingTouched: boolean): void; | |
/** | |
* Specifies if this value should be indicated as mapped in Bitwig Studio, which is visually shown as | |
* colored dots or tinting on the parameter controls. | |
* | |
* @param shouldIndicate | |
* `true` in case visual indications should be shown in Bitwig Studio, `false` otherwise | |
* @since API version 1 | |
*/ | |
setIndication(shouldIndicate: boolean): void; | |
/** | |
* Specifies a label for the mapped hardware parameter as shown in Bitwig Studio, for example in menu items | |
* for learning controls. | |
* | |
* @param label | |
* the label to be shown in Bitwig Studio | |
* @since API version 1 | |
*/ | |
setLabel(label: string): void; | |
/** | |
* Restores control of this parameter to automation playback. | |
* | |
* @since API version 1 | |
*/ | |
restoreAutomationControl(): void; | |
} | |
// source: com/bitwig/extension/controller/api/ParameterBank.java | |
/** | |
* Defines a bank of parameters. | |
* | |
* @since API version 2 | |
*/ | |
interface ParameterBank { | |
/** | |
* Gets the number of slots that these remote controls have. | |
* | |
* @since API version 2 | |
*/ | |
getParameterCount(): number; | |
/** | |
* Returns the parameter at the given index within the bank. | |
* | |
* @param indexInBank | |
* the parameter index within this bank. Must be in the range [0..getParameterCount()-1]. | |
* @return the requested parameter | |
* @since API version 2 | |
*/ | |
getParameter(indexInBank: number): Parameter; | |
/** | |
* Informs the application how to display the controls during the on screen notification. | |
* | |
* @param type which kind of hardware control is used for this bank (knobs/encoders/sliders) | |
* @param columns How wide this section is in terms of layout (4/8/9) | |
* | |
* @since API version 7 | |
*/ | |
setHardwareLayout(type: HardwareControlType, columns: number): void; | |
} | |
// source: com/bitwig/extension/controller/api/PianoKeyboard.java | |
/** | |
* Represents a physical piano keyboard on a {@link HardwareSurface}. | |
*/ | |
interface PianoKeyboard extends HardwareElement { | |
/** | |
* The {@link MidiIn} where this piano keyboard would send key presses. If set this allows the simulator | |
* for the hardware to simulate the note input. | |
*/ | |
setMidiIn(midiIn: MidiIn): void; | |
setChannel(channel: number): void; | |
setIsVelocitySensitive(value: boolean): void; | |
setSupportsPolyAftertouch(value: boolean): void; | |
} | |
// source: com/bitwig/extension/controller/api/PinnableCursor.java | |
/** | |
* Interface that defines a cursor that can be "pinned". | |
* | |
* @since API version 2 | |
*/ | |
interface PinnableCursor extends Cursor { | |
/** | |
* Determines if this cursor is currently pinned or not. If the cursor is pinned then it won't follow the | |
* selection the user makes in the application. | |
* | |
* @since API version 2 | |
*/ | |
isPinned(): SettableBooleanValue; | |
} | |
// source: com/bitwig/extension/controller/api/PinnableCursorClip.java | |
/** | |
* Cursor clip that can act independently from the user's clip selection if desired by being pinned in the | |
* controller settings panel. | |
* | |
* @since API version 10 | |
*/ | |
interface PinnableCursorClip extends CursorClip, PinnableCursor {} | |
// source: com/bitwig/extension/controller/api/PinnableCursorDevice.java | |
/** | |
* Cursor that can be pinned to the current device or follow the selection. | |
* | |
* @since API version 2 | |
*/ | |
interface PinnableCursorDevice extends CursorDevice, PinnableCursor {} | |
// source: com/bitwig/extension/controller/api/Pipe.java | |
/** | |
* A pipe represents a communication channel with some other hardware device or network service. Pipes are | |
* opened and closed by Bitwig Studio automatically and exist for the entire lifetime of a controller. If | |
* communication is lost on a specific pipe (for example the user unplugs a USB device) then the controller | |
* will exit and the user will be notified. | |
* | |
* A controller defines which pipes it wants to establish for communication using a | |
* {@link HardwareDeviceMatcher}. | |
* | |
* @see ControllerExtensionDefinition#listHardwareDevices(com.bitwig.extension.controller.HardwareDeviceMatcherList) | |
* | |
* @since API version 7 | |
*/ | |
interface Pipe {} | |
// source: com/bitwig/extension/controller/api/PlayingNote.java | |
/** | |
* @since API version 2 | |
*/ | |
interface PlayingNote { | |
/** | |
* @since API version 2 | |
*/ | |
pitch(): number; | |
/** | |
* @since API version 2 | |
*/ | |
velocity(): number; | |
} | |
// source: com/bitwig/extension/controller/api/PlayingNoteArrayValue.java | |
/** | |
* @since API version 2 | |
*/ | |
interface PlayingNoteArrayValue extends ObjectArrayValue<PlayingNote> { | |
isNotePlaying(note: number): boolean; | |
} | |
// source: com/bitwig/extension/controller/api/PopupBrowser.java | |
/** | |
* Object that represents the popup browser in Bitwig Studio. | |
* | |
* @since API version 2 | |
*/ | |
interface PopupBrowser extends ObjectProxy, RelativeHardwarControlBindable { | |
/** | |
* The title of the popup browser. | |
* | |
* @since API version 2 | |
*/ | |
title(): StringValue; | |
/** | |
* Value that reports the possible content types that can be inserted by the popup browser. These are | |
* represented by the tabs in Bitwig Studio's popup browser. | |
* | |
* (e.g "Device", "Preset", "Sample" etc.) | |
* | |
* @since API version 2 | |
*/ | |
contentTypeNames(): StringArrayValue; | |
/** | |
* Value that represents the selected content type. | |
* | |
* @since API version 2 | |
*/ | |
selectedContentTypeName(): StringValue; | |
/** | |
* Value that represents the index of the selected content type within the content types supported. | |
* | |
* @since API version 2 | |
*/ | |
selectedContentTypeIndex(): SettableIntegerValue; | |
/** | |
* The smart collections column of the browser. | |
* | |
* @since API version 2 | |
*/ | |
smartCollectionColumn(): BrowserFilterColumn; | |
/** | |
* The location column of the browser. | |
* | |
* @since API version 2 | |
*/ | |
locationColumn(): BrowserFilterColumn; | |
/** | |
* The device column of the browser. | |
* | |
* @since API version 2 | |
*/ | |
deviceColumn(): BrowserFilterColumn; | |
/** | |
* The category column of the browser. | |
* | |
* @since API version 2 | |
*/ | |
categoryColumn(): BrowserFilterColumn; | |
/** | |
* The tag column of the browser. | |
* | |
* @since API version 2 | |
*/ | |
tagColumn(): BrowserFilterColumn; | |
/** | |
* The device type column of the browser. | |
* | |
* @since API version 2 | |
*/ | |
deviceTypeColumn(): BrowserFilterColumn; | |
/** | |
* The file type column of the browser. | |
* | |
* @since API version 2 | |
*/ | |
fileTypeColumn(): BrowserFilterColumn; | |
/** | |
* The creator column of the browser. | |
* | |
* @since API version 2 | |
*/ | |
creatorColumn(): BrowserFilterColumn; | |
/** | |
* Column that represents the results of the search. | |
* | |
* @since API version 2 | |
*/ | |
resultsColumn(): BrowserResultsColumn; | |
/** | |
* Value that indicates if the browser is able to audition material in place while browsing. | |
* | |
* @since API version 2 | |
*/ | |
canAudition(): BooleanValue; | |
/** | |
* Value that decides if the browser is currently auditioning material in place while browsing or not. | |
* | |
* @since API version 2 | |
*/ | |
shouldAudition(): SettableBooleanValue; | |
/** | |
* Selects the next file. | |
* | |
* @since API version 2 | |
*/ | |
selectNextFile(): void; | |
/** | |
* Selects the previous file. | |
* | |
* @since API version 2 | |
*/ | |
selectPreviousFile(): void; | |
/** | |
* Selects the first file. | |
* | |
* @since API version 2 | |
*/ | |
selectFirstFile(): void; | |
/** | |
* Selects the last file. | |
* | |
* @since API version 2 | |
*/ | |
selectLastFile(): void; | |
/** | |
* Cancels the popup browser. | |
* | |
* @since API version 2 | |
*/ | |
cancel(): void; | |
cancelAction(): HardwareActionBindable; | |
/** | |
* Commits the selected item in the popup browser. | |
* | |
* @since API version 2 | |
*/ | |
commit(): void; | |
commitAction(): HardwareActionBindable; | |
} | |
// source: com/bitwig/extension/controller/api/Preferences.java | |
/** | |
* This interface is used to store custom controller settings into the Bitwig Studio preferences. The settings | |
* are shown to the user in the controller preferences dialog of Bitwig Studio. | |
* | |
* @since API version 1 | |
*/ | |
interface Preferences extends Settings {} | |
// source: com/bitwig/extension/controller/api/PresetBrowsingSession.java | |
/** | |
* Instances of this interface are used for browsing presets, including access to all filter columns and the | |
* result column as shown in the 'Presets' tab of Bitwig Studio's contextual browser window. | |
* | |
* @see BrowsingSession | |
* @since API version 1 | |
* @deprecated Use {@link PopupBrowser} instead. | |
*/ | |
interface PresetBrowsingSession extends BitwigBrowsingSession { | |
/** | |
* Returns the category filter as shown in the category column of the browser. | |
* | |
* @return the requested category filter object. | |
* @since API version 1 | |
*/ | |
getCategoryFilter(): BrowserFilterColumn; | |
/** | |
* Returns the preset type filter as shown in the category column of the browser. | |
* | |
* @return the requested preset type filter object. | |
* @since API version 1 | |
*/ | |
getPresetTypeFilter(): BrowserFilterColumn; | |
/** | |
* Returns the file type filter as shown in the category column of the browser. | |
* | |
* @return the requested file type filter object. | |
* @since API version 1 | |
*/ | |
getFileTypeFilter(): BrowserFilterColumn; | |
} | |
// source: com/bitwig/extension/controller/api/PrimaryDevice.java | |
enum ChainLocation { | |
FIRST = 0, | |
NEXT = 1, | |
PREVIOUS = 2, | |
LAST = 3, | |
} | |
enum DeviceType { | |
ANY = 0, | |
} | |
/** | |
* A special kind of device that represents the primary device of a track. | |
* | |
* @since API version 1 | |
* @deprecated This is now replaced by creating a named {@link CursorDevice}. | |
* @see Track#createCursorDevice(String) | |
*/ | |
interface PrimaryDevice extends Device { | |
/** | |
* Makes the device with the given type and location the new primary device. | |
* | |
* @param deviceType | |
* the requested device type of the new primary device | |
* @param chainLocation | |
* the requested chain location of the new primary device | |
* @since API version 1 | |
*/ | |
switchToDevice(deviceType: DeviceType, chainLocation: ChainLocation): void; | |
/** | |
* Registers an observer that reports if navigation to another device with the provided characteristics is | |
* possible. | |
* | |
* @param deviceType | |
* the requested device type of the new primary device | |
* @param chainLocation | |
* the requested chain location of the new primary device | |
* @param callback | |
* a callback function the receives a single boolean parameter | |
* @since API version 1 | |
* @deprecated This method never did anything. Please do not use. | |
*/ | |
addCanSwitchToDeviceObserver( | |
deviceType: DeviceType, | |
chainLocation: ChainLocation, | |
callback: BooleanValueChangedCallback | |
): void; | |
} | |
// source: com/bitwig/extension/controller/api/Project.java | |
/** | |
* An interface for representing the current project. | |
* | |
* @since API version 1 | |
*/ | |
interface Project extends ObjectProxy { | |
/** | |
* Returns an object that represents the root track group of the active Bitwig Studio project. | |
* | |
* @return the root track group of the currently active project | |
* @since API version 1 | |
*/ | |
getRootTrackGroup(): Track; | |
/** | |
* Returns an object that represents the top level track group as shown in the arranger/mixer of the active | |
* Bitwig Studio project. | |
* | |
* @return the shown top level track group of the currently active project | |
* @since API version 1 | |
*/ | |
getShownTopLevelTrackGroup(): Track; | |
/** | |
* Creates a new scene (using an existing empty scene if possible) from the clips that are currently | |
* playing in the clip launcher. | |
* | |
* @since API version 1 | |
*/ | |
createSceneFromPlayingLauncherClips(): void; | |
/** | |
* The volume used for cue output. | |
* | |
* @since API version 10 | |
*/ | |
cueVolume(): Parameter; | |
/** | |
* Mix between cue bus and the studio bus (master). | |
* | |
* @since API version 10 | |
*/ | |
cueMix(): Parameter; | |
/** | |
* Sets the solo state of all tracks to off. | |
* | |
* @since API version 10 | |
*/ | |
unsoloAll(): void; | |
hasSoloedTracks(): BooleanValue; | |
/** | |
* Sets the mute state of all tracks to off. | |
* | |
* @since API version 10 | |
*/ | |
unmuteAll(): void; | |
/** | |
* Value that indicates if the project has muted tracks or not. | |
* | |
* @since API version 10 | |
*/ | |
hasMutedTracks(): BooleanValue; | |
/** | |
* Sets the arm state of all tracks to off. | |
* | |
* @since API version 10 | |
*/ | |
unarmAll(): void; | |
/** | |
* Value that indicates if the project has armed tracks or not. | |
* | |
* @since API version 10 | |
*/ | |
hasArmedTracks(): BooleanValue; | |
} | |
// source: com/bitwig/extension/controller/api/RangedValue.java | |
/** Instances of this interface represent numeric values that have an upper and lower limit. | |
* | |
* @since API version 1 | |
* */ | |
// @ts-ignore | |
interface RangedValue | |
extends Value<DoubleValueChangedCallback>, | |
DoubleSupplier { | |
/** | |
* The current value normalized between 0..1 where 0 represents the minimum value and 1 the maximum. | |
* | |
* @since API version 2 | |
*/ | |
get(): number; | |
/** | |
* Gets the current value. | |
* | |
* @since API version 2 | |
*/ | |
getRaw(): number; | |
getAsDouble(): number; | |
/** | |
* Value that represents a formatted text representation of the value whenever the value changes. | |
* | |
* @since API version 2 | |
*/ | |
displayedValue(): StringValue; | |
/** | |
* Adds an observer which receives the normalized value of the parameter as an integer number within the | |
* range [0..range-1]. | |
* | |
* @param range | |
* the range used to scale the value when reported to the callback | |
* @param callback | |
* a callback function that receives a single double parameter | |
* @since API version 1 | |
*/ | |
addValueObserver( | |
range: number, | |
callback: IntegerValueChangedCallback | |
): void; | |
/** | |
* Add an observer which receives the internal raw of the parameter as floating point. | |
* | |
* @param callback | |
* a callback function that receives a single numeric parameter with double precision. | |
* @since API version 1 | |
*/ | |
addRawValueObserver(callback: DoubleValueChangedCallback): void; | |
} | |
// source: com/bitwig/extension/controller/api/RelativeHardwarControlBindable.java | |
/** | |
* Something that can be bound to an {@link RelativeHardwareControl} and can respond to the user input (such | |
* as user turning an encoder left or right) in a meaningful way. | |
* | |
* @since API version 10 | |
*/ | |
interface RelativeHardwarControlBindable extends HardwareBindable { | |
/** | |
* Binds this target to the supplied hardware control so that when the user moves the hardware control this | |
* target will respond in a meaningful way. | |
* | |
* When the binding is no longer needed the {@link HardwareBinding#removeBinding()} method can be called on | |
* it. | |
*/ | |
addBinding( | |
hardwareControl: RelativeHardwareControl | |
): RelativeHardwareControlBinding; | |
/** | |
* Binds this target to the supplied hardware control so that when the user moves the hardware control this | |
* target will respond in a meaningful way. | |
* | |
* When the binding is no longer needed the {@link HardwareBinding#removeBinding()} method can be called on | |
* it. | |
*/ | |
addBindingWithSensitivity( | |
hardwareControl: RelativeHardwareControl, | |
sensitivity: number | |
): RelativeHardwareControlBinding; | |
} | |
// source: com/bitwig/extension/controller/api/RelativeHardwareControl.java | |
/** | |
* Represents a hardware control that can input a relative value (for example, a relative encoder knob). | |
* | |
* A relative adjustment is positive value when being increased and a negative when being decreased. The | |
* relative amount represents the amount of adjustment made. In order to have relative hardware controls work | |
* with the same level of sensitivity the relative amount should be +1.0 if the user were to rotate a knob one | |
* full rotation (defined as roughly the same amount of rotation as that of an absolute knob to go from 0 to | |
* 1) to the right. | |
* | |
* <p> | |
* {@link RelativeHardwareControl}s can also be used to step through items (e.g in a list, or an enum | |
* parameter). In this case the {@link #getStepSize()} is used to determine how far the knob has to be rotated | |
* in order to increment by one step. For example, if a full rotation of a knob should step through 10 items | |
* you would set the step size to 1.0 / 10 (i.e 0.1). | |
* | |
* @since API version 10 | |
*/ | |
interface RelativeHardwareControl | |
extends ContinuousHardwareControl<RelativeHardwareControlBinding> { | |
/** | |
* Sets the sensitivity of this hardware control. The default sensitivity is 1. This value is a multiplied | |
* with the adjustment coming from the {@link RelativeHardwareValueMatcher} to determine the final | |
* adjustment amount. | |
*/ | |
setSensitivity(sensitivity: number): void; | |
/** | |
* Sets the {@link RelativeHardwareValueMatcher} that can be used to detect when the user adjusts the | |
* hardware control's value. | |
* | |
* @see MidiIn#createRelative2sComplementCCValueMatcher(int, int) | |
* @see MidiIn#createRelativeSignedBitValueMatcher(AbsoluteHardwareValueMatcher) | |
*/ | |
setAdjustValueMatcher(matcher: RelativeHardwareValueMatcher): void; | |
/** Adds a binding to the supplied target with the supplied sensitivity. */ | |
addBindingWithSensitivity( | |
target: RelativeHardwarControlBindable, | |
sensitivity: number | |
): RelativeHardwareControlBinding; | |
/** Makes sure there is a single binding to the supplied target with the supplied sensitivity. */ | |
setBindingWithSensitivity( | |
target: RelativeHardwarControlBindable, | |
sensitivity: number | |
): RelativeHardwareControlBinding; | |
/** | |
* Adds a binding to the supplied target that does not adjust the target outside of the supplied min and | |
* max normalized range. | |
*/ | |
addBindingWithRange( | |
target: SettableRangedValue, | |
minNormalizedValue: number, | |
maxNormalizedValue: number | |
): RelativeHardwareControlBinding; | |
/** | |
* Makes sure there is single binding to the supplied target that does not adjust the target outside of the | |
* supplied min and max normalized range. | |
*/ | |
setBindingWithRange( | |
target: SettableRangedValue, | |
minNormalizedValue: number, | |
maxNormalizedValue: number | |
): RelativeHardwareControlBinding; | |
/** | |
* Adds a binding to the supplied target that does not adjust the target outside of the supplied min and | |
* max normalized range and is adjusted with the supplied sensitivity. | |
*/ | |
addBindingWithRangeAndSensitivity( | |
target: SettableRangedValue, | |
minNormalizedValue: number, | |
maxNormalizedValue: number, | |
sensitivity: number | |
): RelativeHardwareControlBinding; | |
/** | |
* Makes sure there is a single binding to the supplied target that does not adjust the target outside of | |
* the supplied min and max normalized range and is adjusted with the supplied sensitivity. | |
*/ | |
setBindingWithRangeAndSensitivity( | |
target: SettableRangedValue, | |
minNormalizedValue: number, | |
maxNormalizedValue: number, | |
sensitivity: number | |
): RelativeHardwareControlBinding; | |
/** The current steps size (amount of relative rotation) necessary to step through an item in a list. */ | |
getStepSize(): number; | |
/** | |
* Sets the step size of this relative hardware control. The step size is used when using this control to | |
* step through items in a list, or values in an enum parameter, for example. For each step forwards a | |
* certain action can be invoked and for each step backwards a different action. | |
*/ | |
setStepSize(stepSize: number): void; | |
} | |
// source: com/bitwig/extension/controller/api/RelativeHardwareControlBinding.java | |
/** | |
* Represents a binding from a {@link RelativeHardwareControl} to some target. | |
* | |
* @since API version 10 | |
*/ | |
interface RelativeHardwareControlBinding | |
extends HardwareBindingWithSensitivity {} | |
// source: com/bitwig/extension/controller/api/RelativeHardwareControlToRangedValueBinding.java | |
/** | |
* Represents a binding from an {@link RelativeHardwareControl} to a {@link SettableRangedValue} | |
* | |
* @since API version 10 | |
*/ | |
interface RelativeHardwareControlToRangedValueBinding | |
extends RelativeHardwareControlBinding, | |
HardwareBindingWithRange {} | |
// source: com/bitwig/extension/controller/api/RelativeHardwareKnob.java | |
/** | |
* Represents a physical hardware knob that inputs a relative value. | |
* | |
* @see ControllerHost#createRelativeHardwareKnob() | |
* | |
* @since API version 10 | |
*/ | |
interface RelativeHardwareKnob extends RelativeHardwareControl {} | |
// source: com/bitwig/extension/controller/api/RelativeHardwareValueMatcher.java | |
/** | |
* Defines a means of recognizing when a relative value is input by the user (for example, when moving a | |
* slider or turning a knob). | |
* | |
* For example, when a certain MIDI CC message happens. | |
* | |
* @see MidiIn#createRelative2sComplementCCValueMatcher(int, int) | |
* @see MidiIn#createRelativeBinOffsetCCValueMatcher(int, int) | |
* @see MidiIn#createRelativeSignedBit2CCValueMatcher(int, int) | |
* | |
* @since API version 10 | |
* | |
*/ | |
interface RelativeHardwareValueMatcher | |
extends ContinuousHardwareValueMatcher {} | |
// source: com/bitwig/extension/controller/api/RelativePosition.java | |
enum RelativePosition { | |
ABOVE = 0, | |
BELOW = 1, | |
LEFT = 2, | |
RIGHT = 3, | |
INSIDE = 4, | |
} | |
// source: com/bitwig/extension/controller/api/RemoteConnection.java | |
import NoArgsCallback = com.bitwig.extension.callback.NoArgsCallback; | |
/** | |
* Instances of this interface are reported to the supplied script callback when connecting to a remote TCP | |
* socket via {@link ControllerHost#connectToRemoteHost}. | |
* | |
* @see {@link ControllerHost#connectToRemoteHost} | |
* @since API version 1 | |
*/ | |
interface RemoteConnection { | |
/** | |
* Disconnects from the remote host. | |
* | |
* @since API version 1 | |
*/ | |
disconnect(): void; | |
/** | |
* Registers a callback function that gets called when the connection gets lost or disconnected. | |
* | |
* @param callback | |
* a callback function that doesn't receive any parameters | |
* @since API version 1 | |
*/ | |
setDisconnectCallback(callback: NoArgsCallback): void; | |
/** | |
* Sets the callback used for receiving data. | |
* | |
* The remote connection needs a header for each message sent to it containing a 32-bit big-endian integer | |
* saying how big the rest of the message is. The data delivered to the script will not include this | |
* header. | |
* | |
* @param callback | |
* a callback function with the signature `(byte[] data)` | |
* @since API version 1 | |
*/ | |
setReceiveCallback(callback: DataReceivedCallback): void; | |
/** | |
* Sends data to the remote host. | |
* | |
* @param data | |
* the byte array containing the data to be sent. When creating a numeric byte array in | |
* JavaScript, the byte values must be signed (in the range -128..127). | |
* @throws IOException | |
* @since API version 1 | |
*/ | |
send(data: number): void; | |
} | |
// source: com/bitwig/extension/controller/api/RemoteControl.java | |
/** | |
* Represents a remote control in Bitwig Studio. | |
* | |
* @sice API version 2 | |
*/ | |
interface RemoteControl extends Parameter { | |
name(): SettableStringValue; | |
} | |
// source: com/bitwig/extension/controller/api/RemoteControlsPage.java | |
/** | |
* Represents a page of remote controls in a device. | |
* | |
* @since API version 2 | |
*/ | |
interface RemoteControlsPage extends ParameterBank { | |
getParameter(indexInBank: number): RemoteControl; | |
/* | |
@since API version 4 | |
*/ | |
getName(): StringValue; | |
} | |
// source: com/bitwig/extension/controller/api/RemoteSocket.java | |
/** | |
* Instances of this interface represent a TCP socket that other network clients can connect to, typically | |
* created by calling {@link ControllerHost#createRemoteConnection}. | |
* | |
* @see {@link ControllerHost#createRemoteConnection} | |
* @since API version 1 | |
*/ | |
interface RemoteSocket { | |
/** | |
* Sets a callback which receives a remote connection object for each incoming connection. | |
* | |
* @param callback | |
* a callback function which receives a single {@link RemoteConnection} argument | |
* @since API version 1 | |
*/ | |
setClientConnectCallback(callback: ConnectionEstablishedCallback): void; | |
/** | |
* Gets the actual port used for the remote socket, which might differ from the originally requested port | |
* when calling {@link ControllerHost#createRemoteConnection(String name, int port)} in case the requested port was | |
* already used. | |
* | |
* @return the actual port used for the remote socket | |
* @since API version 1 | |
*/ | |
getPort(): number; | |
} | |
// source: com/bitwig/extension/controller/api/SampleBrowsingSession.java | |
/** | |
* Instances of this interface are used for browsing samples, including access to all filter columns and the | |
* result column as shown in the 'Samples' tab of Bitwig Studio's contextual browser window. | |
* | |
* @see BrowsingSession | |
* @since API version 1 | |
* @deprecated Use {@link PopupBrowser} instead. | |
*/ | |
interface SampleBrowsingSession extends BrowsingSession { | |
/** | |
* Returns the file type filter as shown in the category column of the browser. | |
* | |
* @return the requested file type filter object. | |
* @since API version 1 | |
*/ | |
getFileTypeFilter(): BrowserFilterColumn; | |
} | |
// source: com/bitwig/extension/controller/api/Scene.java | |
/** | |
* Instances of this interface represent scenes in Bitwig Studio. | |
* | |
* @since API version 1 | |
*/ | |
interface Scene extends ClipLauncherSlotOrScene { | |
/** | |
* Returns an object that provides access to the name of the scene. | |
* | |
* @return a string value object that represents the scene name. | |
* @since API version 1 | |
* @deprecated Use {@link #name()} instead. | |
*/ | |
getName(): SettableStringValue; | |
/** | |
* Returns an object that provides access to the name of the scene. | |
* | |
* @return a string value object that represents the scene name. | |
* @since API version 2 | |
*/ | |
name(): SettableStringValue; | |
/** | |
* Value that reports the number of clips in the scene. | |
* | |
* @since API version 2 | |
*/ | |
clipCount(): IntegerValue; | |
/** | |
* Registers an observer that reports the number of clips in the scene. | |
* | |
* @param callback | |
* a callback function that receives a single integer parameter | |
* @since API version 1 | |
* @deprecated Use {@link #clipCount()}.addValueObserver(callback). | |
*/ | |
addClipCountObserver(callback: IntegerValueChangedCallback): void; | |
/** | |
* Registers an observer that reports the position of the scene within the list of Bitwig Studio scenes. | |
* | |
* @param callback | |
* a callback function that receives a single integer parameter | |
* @since API version 1 | |
* @deprecated Use {@link #sceneIndex()} instead. | |
*/ | |
addPositionObserver(callback: IntegerValueChangedCallback): void; | |
/** | |
* Registers an observer that reports if the scene is selected in Bitwig Studio. | |
* | |
* @param callback | |
* a callback function that takes a single boolean parameter. | |
* @since API version 1 | |
*/ | |
addIsSelectedInEditorObserver(callback: BooleanValueChangedCallback): void; | |
/** | |
* Selects the scene in Bitwig Studio. | |
* | |
* @since API version 1 | |
*/ | |
selectInEditor(): void; | |
/** | |
* Makes the scene visible in the Bitwig Studio user interface. | |
* | |
* @since API version 1 | |
*/ | |
showInEditor(): void; | |
} | |
// source: com/bitwig/extension/controller/api/SceneBank.java | |
/** | |
* A scene bank provides access to a range of scenes in Bitwig Studio. Instances of scene bank are configured | |
* with a fixed number of scenes and represent an excerpt of a larger list of scenes. Various methods are | |
* provided for scrolling to different sections of the scene list. It basically acts like a window moving over | |
* the list of underlying scenes. | |
* | |
* To receive an instance of scene bank call | |
* {@link com.bitwig.extension.controller.api.ControllerHost#createSceneBank}. | |
* | |
* @see {@link com.bitwig.extension.controller.api.ControllerHost#createSceneBank} | |
* @since API version 1 | |
*/ | |
interface SceneBank extends ClipLauncherSlotOrSceneBank<Scene> { | |
/** | |
* Returns the scene at the given index within the bank. | |
* | |
* @param indexInBank | |
* the scene index within this bank, not the index within the list of all Bitwig Studio scenes. | |
* Must be in the range [0..sizeOfBank-1]. | |
* @return the requested scene object | |
* @since API version 1 | |
*/ | |
getScene(indexInBank: number): Scene; | |
/** | |
* Scrolls the scenes one page up. | |
* | |
* @since API version 1 | |
* @deprecated Use {@link #scrollPageBackwards()} instead. | |
*/ | |
scrollPageUp(): void; | |
/** | |
* Scrolls the scenes one page down. | |
* | |
* @since API version 1 | |
* @deprecated Use {@link #scrollPageForwards()} instead. | |
*/ | |
scrollPageDown(): void; | |
/** | |
* Scrolls the scenes one scene up. | |
* | |
* @since API version 1 | |
* @deprecated Use {@link #scrollBackwards()} instead. | |
*/ | |
scrollUp(): void; | |
/** | |
* Scrolls the scenes one scene down. | |
* | |
* @since API version 1 | |
* @deprecated Use {@link #scrollForwards()} instead. | |
*/ | |
scrollDown(): void; | |
/** | |
* Makes the scene with the given position visible in the track bank. | |
* | |
* @param position | |
* the position of the scene within the underlying full list of scenes | |
* @since API version 1 | |
* @deprecated Use {@link #scrollIntoView(int)} instead. | |
*/ | |
scrollTo(position: number): void; | |
/** | |
* Registers an observer that reports the current scene scroll position. | |
* | |
* @param callback | |
* a callback function that takes a single integer parameter | |
* @param valueWhenUnassigned | |
* the default value that gets reports when the track bank is not yet connected to a Bitwig | |
* Studio document | |
* @since API version 1 | |
* @deprecated Use {@link #scrollPosition()} instead | |
*/ | |
addScrollPositionObserver( | |
callback: IntegerValueChangedCallback, | |
valueWhenUnassigned: number | |
): void; | |
/** | |
* Registers an observer that reports if the scene window can be scrolled further up. | |
* | |
* @param callback | |
* a callback function that takes a single boolean parameter | |
* @since API version 1 | |
* @deprecated Use {@link #canScrollBackwards()} instead. | |
*/ | |
addCanScrollUpObserver(callback: BooleanValueChangedCallback): void; | |
/** | |
* Registers an observer that reports if the scene window can be scrolled further down. | |
* | |
* @param callback | |
* a callback function that takes a single boolean parameter | |
* @since API version 1 | |
* @deprecated Use {@link #canScrollForwards()} instead. | |
*/ | |
addCanScrollDownObserver(callback: BooleanValueChangedCallback): void; | |
/** | |
* Registers an observer that reports the underlying total scene count (not the number of scenes available | |
* in the bank window). | |
* | |
* @param callback | |
* a callback function that receives a single integer parameter | |
* @since API version 1 | |
* @deprecated Use {@link #itemCount()} instead. | |
*/ | |
addSceneCountObserver(callback: IntegerValueChangedCallback): void; | |
/** | |
* Launches the scene with the given bank index. | |
* | |
* @param indexInWindow | |
* the scene index within the bank, not the position of the scene withing the underlying full | |
* list of scenes. | |
* @since API version 1 | |
*/ | |
launchScene(indexInWindow: number): void; | |
/** | |
* Specifies if the Bitwig Studio clip launcher should indicate which scenes are part of the window. By | |
* default indications are disabled. | |
* | |
* @param shouldIndicate | |
* `true` if visual indications should be enabled, `false` otherwise | |
* @since API version 10 | |
*/ | |
setIndication(shouldIndicate: boolean): void; | |
} | |
// source: com/bitwig/extension/controller/api/Scrollable.java | |
/** | |
* Interface for something that can be scrolled. | |
* | |
* @since API version 2 | |
*/ | |
interface Scrollable extends RelativeHardwarControlBindable { | |
/** | |
* Value that reports the current scroll position. | |
* | |
* @since API version 2 | |
*/ | |
scrollPosition(): SettableIntegerValue; | |
/** | |
* Scrolls the supplied position into view if it isn't already. | |
* | |
* @since API version 7 | |
*/ | |
scrollIntoView(position: number): void; | |
/** | |
* Scrolls by a number of steps. | |
* | |
* @param amount | |
* The number of steps to scroll by (positive is forwards and negative is backwards). | |
*/ | |
scrollBy(amount: number): void; | |
/** | |
* Scrolls forwards by one step. This is the same as calling {@link #scrollBy(int)} with 1 | |
* | |
* @since API version 2 | |
*/ | |
scrollForwards(): void; | |
scrollForwardsAction(): HardwareActionBindable; | |
/** | |
* Scrolls forwards by one step. This is the same as calling {@link #scrollBy(int)} with -1 | |
* | |
* @since API version 2 | |
*/ | |
scrollBackwards(): void; | |
scrollBackwardsAction(): HardwareActionBindable; | |
/** | |
* Scrolls by a number of pages. | |
* | |
* @param amount | |
* The number of pages to scroll by (positive is forwards and negative is backwards). | |
*/ | |
scrollByPages(amount: number): void; | |
/** | |
* Scrolls forwards by one page. | |
* | |
* @since API version 2 | |
*/ | |
scrollPageForwards(): void; | |
scrollPageForwardsAction(): HardwareActionBindable; | |
/** | |
* Scrolls backwards by one page. | |
* | |
* @since API version 2 | |
*/ | |
scrollPageBackwards(): void; | |
scrollPageBackwardsAction(): HardwareActionBindable; | |
/** | |
* Value that reports if it is possible to scroll the bank backwards or not. | |
* | |
* @since API version 2 | |
*/ | |
canScrollBackwards(): BooleanValue; | |
/** | |
* Value that reports if it is possible to scroll the bank forwards or not. | |
* | |
* @since API version 2 | |
*/ | |
canScrollForwards(): BooleanValue; | |
} | |
// source: com/bitwig/extension/controller/api/Send.java | |
interface Send extends Parameter { | |
/** | |
* Value that reports the color of the channel that this send sends to. | |
* | |
* @since API version 2 | |
*/ | |
sendChannelColor(): SettableColorValue; | |
/** | |
* Value that reports if the send happens before or after the fader. | |
* | |
* @since API version 10 | |
*/ | |
isPreFader(): BooleanValue; | |
/** | |
* Define how the send will happen. | |
* Possible values: AUTO, PRE, POST. | |
* | |
* @since API version 10 | |
*/ | |
sendMode(): SettableEnumValue; | |
} | |
// source: com/bitwig/extension/controller/api/SendBank.java | |
interface SendBank extends Bank<Send> {} | |
// source: com/bitwig/extension/controller/api/SettableBeatTimeValue.java | |
interface SettableBeatTimeValue | |
extends BeatTimeValue, | |
SettableDoubleValue, | |
RelativeHardwarControlBindable { | |
/** | |
* The same as the set method. | |
* | |
* @deprecated This is included only for backwards compatibility with API version 1 where this inherited | |
* from {@link RangedValue} instead of {@link DoubleValue}. | |
*/ | |
setRaw(value: number): void; | |
/** | |
* The same as the inc method. | |
* | |
* @deprecated This is included only for backwards compatibility with API version 1 where this inherited | |
* from {@link RangedValue} instead of {@link DoubleValue}. | |
*/ | |
incRaw(amount: number): void; | |
/** | |
* Stepper that steps through beat values. This can be used as a target for a | |
* {@link RelativeHardwareControl}. | |
* | |
* @since API version 10 | |
*/ | |
beatStepper(): RelativeHardwarControlBindable; | |
} | |
// source: com/bitwig/extension/controller/api/SettableBooleanValue.java | |
/** | |
* Instances of this interface represent boolean values. | |
* | |
* @since API version 1 | |
*/ | |
interface SettableBooleanValue extends BooleanValue, HardwareActionBindable { | |
/** | |
* Sets the internal value. | |
* | |
* @param value | |
* the new boolean value. | |
* @since API version 1 | |
*/ | |
set(value: boolean): void; | |
/** | |
* Toggles the current state. In case the current value is `false`, the new value will be `true` and the | |
* other way round. | |
* | |
* @since API version 1 | |
*/ | |
toggle(): void; | |
toggleAction(): HardwareActionBindable; | |
setToTrueAction(): HardwareActionBindable; | |
setToFalseAction(): HardwareActionBindable; | |
} | |
// source: com/bitwig/extension/controller/api/SettableColorValue.java | |
interface SettableColorValue extends ColorValue { | |
/** | |
* Sets the internal value. | |
* | |
* @since API version 2 | |
*/ | |
set(red: number, green: number, blue: number): void; | |
/** | |
* Sets the internal value. | |
* | |
* @since API version 5 | |
*/ | |
set(red: number, green: number, blue: number, alpha: number): void; | |
/** | |
* Sets the color. | |
* | |
* @since API version 11 | |
*/ | |
set(color: Color): void; | |
} | |
// source: com/bitwig/extension/controller/api/SettableDoubleValue.java | |
interface SettableDoubleValue extends DoubleValue { | |
/** | |
* Sets the internal value. | |
* | |
* @param value | |
* the new integer value. | |
* @since API version 1 | |
*/ | |
set(value: number): void; | |
/** | |
* Increases/decrease the internal value by the given amount. | |
* | |
* @param amount | |
* the integer amount to increase | |
* @since API version 1 | |
*/ | |
inc(amount: number): void; | |
} | |
// source: com/bitwig/extension/controller/api/SettableEnumValue.java | |
/** | |
* Instances of this interface represent enumeration values. Enum values work similar to string values, but | |
* are limited to a fixed set of value options. | |
* | |
* @since API version 1 | |
*/ | |
interface SettableEnumValue extends EnumValue { | |
/** | |
* Sets the value to the enumeration item with the given name. | |
* | |
* @param name | |
* the name of the new enum item | |
* @since API version 1 | |
*/ | |
set(value: string): void; | |
} | |
// source: com/bitwig/extension/controller/api/SettableIntegerValue.java | |
/** | |
* Instances of this interface represent integer values. | |
* | |
* @since API version 1 | |
*/ | |
interface SettableIntegerValue | |
extends IntegerValue, | |
RelativeHardwarControlBindable { | |
/** | |
* Sets the internal value. | |
* | |
* @param value | |
* the new integer value. | |
* @since API version 1 | |
*/ | |
set(value: number): void; | |
/** | |
* Increases/decrease the internal value by the given amount. | |
* | |
* @param amount | |
* the integer amount to increase | |
* @since API version 1 | |
*/ | |
inc(amount: number): void; | |
} | |
// source: com/bitwig/extension/controller/api/SettableRangedValue.java | |
/** | |
* Instances of this interface represent numeric values that have an upper and lower limit. | |
* | |
* @since API version 1 | |
*/ | |
interface SettableRangedValue | |
extends RangedValue, | |
AbsoluteHardwarControlBindable, | |
RelativeHardwarControlBindable { | |
/** | |
* Sets the value in an absolute fashion as a value between 0 .. 1 where 0 represents the minimum value and | |
* 1 the maximum. The value may not be set immediately if the user has configured a take over strategy for | |
* the controller. | |
* | |
* @param value | |
* absolute value [0 .. 1] | |
* @since API version 2 | |
*/ | |
set(value: number): void; | |
/** | |
* Sets the value in an absolute fashion as a value between 0 .. 1 where 0 represents the minimum value and | |
* 1 the maximum. The value change is applied immediately and does not care about what take over mode the | |
* user has selected. This is useful if the value does not need take over (e.g. a motorized slider). | |
* | |
* @param value | |
* absolute value [0 .. 1] | |
* | |
* @since API version 4 | |
*/ | |
setImmediately(value: number): void; | |
/** | |
* Sets the value in an absolute fashion. The value will be scaled according to the given resolution. | |
* | |
* Typically the resolution would be specified as the amount of steps the hardware control provides (for | |
* example 128) and just pass the integer value as it comes from the MIDI device. The host application will | |
* take care of scaling it. | |
* | |
* @param value | |
* integer number in the range [0 .. resolution-1] | |
* @param resolution | |
* the resolution used for scaling @ if passed-in parameters are null | |
* @since API version 1 | |
*/ | |
set(value: number, resolution: number): void; | |
/** | |
* Increments or decrements the value by a normalized amount assuming the whole range of the value is 0 .. | |
* 1. For example to increment by 10% you would use 0.1 as the increment. | |
* | |
* @since API version 2 | |
*/ | |
inc(increment: number): void; | |
/** | |
* Increments or decrements the value according to the given increment and resolution parameters. | |
* | |
* Typically the resolution would be specified as the amount of steps the hardware control provides (for | |
* example 128) and just pass the integer value as it comes from the MIDI device. The host application will | |
* take care of scaling it. | |
* | |
* @param increment | |
* the amount that the current value is increased by | |
* @param resolution | |
* the resolution used for scaling | |
* @since API version 1 | |
*/ | |
inc(increment: number, resolution: number): void; | |
/** | |
* Set the internal (raw) value. | |
* | |
* @param value | |
* the new value with double precision. Range is undefined. | |
* @since API version 1 | |
*/ | |
setRaw(value: number): void; | |
/** | |
* Increments / decrements the internal (raw) value. | |
* | |
* @param delta | |
* the amount that the current internal value get increased by. | |
* @since API version 1 | |
*/ | |
incRaw(delta: number): void; | |
addBinding( | |
hardwareControl: AbsoluteHardwareControl | |
): AbsoluteHardwareControlBinding; | |
addBindingWithRange( | |
hardwareControl: AbsoluteHardwareControl, | |
minNormalizedValue: number, | |
maxNormalizedValue: number | |
): AbsoluteHardwareControlBinding; | |
addBinding( | |
hardwareControl: RelativeHardwareControl | |
): RelativeHardwareControlToRangedValueBinding; | |
addBindingWithRange( | |
hardwareControl: RelativeHardwareControl, | |
minNormalizedValue: number, | |
maxNormalizedValue: number | |
): RelativeHardwareControlBinding; | |
addBindingWithRangeAndSensitivity( | |
hardwareControl: RelativeHardwareControl, | |
minNormalizedValue: number, | |
maxNormalizedValue: number, | |
sensitivity: number | |
): RelativeHardwareControlToRangedValueBinding; | |
addBindingWithSensitivity( | |
hardwareControl: RelativeHardwareControl, | |
sensitivity: number | |
): RelativeHardwareControlToRangedValueBinding; | |
} | |
// source: com/bitwig/extension/controller/api/SettableStringArrayValue.java | |
/** | |
* @since API version 2 | |
*/ | |
interface SettableStringArrayValue extends StringArrayValue { | |
/** | |
* Sets the internal value. | |
* | |
* @param value | |
* the new value. | |
* @since API version 2 | |
*/ | |
set(value: string[]): void; | |
} | |
// source: com/bitwig/extension/controller/api/SettableStringValue.java | |
/** | |
* Instances of this interface implement the {@link Value} interface for string values. | |
* | |
* @since API version 1 | |
*/ | |
interface SettableStringValue extends StringValue { | |
/** | |
* Sets the value object to the given string. | |
* | |
* @param value | |
* the new value string | |
* @since API version 1 | |
*/ | |
set(value: string): void; | |
} | |
// source: com/bitwig/extension/controller/api/Setting.java | |
/** | |
* A common base interface for labeled and categorized settings. | |
* | |
* @since API version 1 | |
*/ | |
interface Setting { | |
/** | |
* Returns the category name of the setting. | |
* | |
* @return a string value containing the category name | |
* @since API version 1 | |
*/ | |
getCategory(): string; | |
/** | |
* Returns the label text of the setting. | |
* | |
* @return a string value containing the label text | |
* @since API version 1 | |
*/ | |
getLabel(): string; | |
/** | |
* Marks the settings as enabled in Bitwig Studio. By default the setting is enabled. | |
* | |
* @since API version 1 | |
*/ | |
enable(): void; | |
/** | |
* Marks the settings as disabled in Bitwig Studio. By default the setting is enabled. | |
* | |
* @since API version 1 | |
*/ | |
disable(): void; | |
/** | |
* Shows the setting in Bitwig Studio. By default the setting is shown. | |
* | |
* @since API version 1 | |
*/ | |
show(): void; | |
/** | |
* Hides the setting in Bitwig Studio. By default the setting is shown. | |
* | |
* @since API version 1 | |
*/ | |
hide(): void; | |
} | |
// source: com/bitwig/extension/controller/api/Settings.java | |
/** | |
* This interface builds the foundation for storing custom settings in Bitwig Studio documents or in the | |
* Bitwig Studio preferences. | |
* | |
* @since API version 1 | |
*/ | |
interface Settings { | |
/** | |
* Returns a signal setting object, which is shown a push button with the given label in Bitwig Studio. | |
* | |
* @param label | |
* the name of the setting, must not be `null` | |
* @param category | |
* the name of the category, may not be `null` | |
* @param action | |
* the action string as displayed on the related Bitwig Studio button, must not be `null` | |
* @return the object that encapsulates the requested signal | |
* @since API version 1 | |
*/ | |
getSignalSetting(label: string, category: string, action: string): Signal; | |
/** | |
* Returns a numeric setting that is shown a number field in Bitwig Studio. | |
* | |
* @param label | |
* the name of the setting, must not be `null` | |
* @param category | |
* the name of the category, may not be `null` | |
* @param minValue | |
* the minimum value that the user is allowed to enter | |
* @param maxValue | |
* the minimum value that the user is allowed to enter | |
* @param stepResolution | |
* the step resolution used for the number field | |
* @param unit | |
* the string that should be used to display the unit of the number | |
* @param initialValue | |
* the initial numeric value of the setting | |
* @return the object that encapsulates the requested numeric setting | |
* @since API version 1 | |
*/ | |
getNumberSetting( | |
label: string, | |
category: string, | |
minValue: number, | |
maxValue: number, | |
stepResolution: number, | |
unit: string, | |
initialValue: number | |
): SettableRangedValue; | |
/** | |
* Returns an enumeration setting that is shown either as a chooser or as a button group in Bitwig Studio, | |
* depending on the number of provided options. | |
* | |
* @param label | |
* the name of the setting, must not be `null` | |
* @param category | |
* the name of the category, may not be `null` | |
* @param options | |
* the string array that defines the allowed options for the button group or chooser | |
* @param initialValue | |
* the initial string value, must be one of the items specified with the option argument | |
* @return the object that encapsulates the requested enum setting | |
* @since API version 1 | |
*/ | |
getEnumSetting( | |
label: string, | |
category: string, | |
options: string[], | |
initialValue: string | |
): SettableEnumValue; | |
/** | |
* Returns an enumeration setting that is shown either as a chooser or as a button group in Bitwig Studio, | |
* depending on the number of provided options. | |
* | |
* @param label | |
* the name of the setting, must not be `null` | |
* @param category | |
* the name of the category, may not be `null` | |
* @param initialValue | |
* the initial string value, must be one of the items specified with the option argument | |
* @return the object that encapsulates the requested enum setting | |
* @since API version 11 | |
*/ | |
getEnumSetting( | |
label: string, | |
category: string, | |
initialValue: EnumValueDefinition | |
): SettableEnumValue; | |
/** | |
* Returns an enumeration setting that is shown either as a chooser or as a button group in Bitwig Studio, | |
* depending on the number of provided options. | |
* | |
* @param label | |
* the name of the setting, must not be `null` | |
* @param category | |
* the name of the category, may not be `null` | |
* @param value | |
* the settable enum value that the setting will be connected to | |
* @return the object that encapsulates the requested enum setting | |
* @since API version 11 | |
*/ | |
getEnumSettingForValue( | |
label: string, | |
category: string, | |
value: SettableEnumValue | |
): SettableEnumValue; | |
/** | |
* Returns a textual setting that is shown as a text field in the Bitwig Studio user interface. | |
* | |
* @param label | |
* the name of the setting, must not be `null` | |
* @param category | |
* the name of the category, may not be `null` | |
* @param numChars | |
* the maximum number of character used for the text value | |
* @param initialText | |
* the initial text value of the setting | |
* @return the object that encapsulates the requested string setting | |
* @since API version 1 | |
*/ | |
getStringSetting( | |
label: string, | |
category: string, | |
numChars: number, | |
initialText: string | |
): SettableStringValue; | |
/** | |
* Returns a color setting that is shown in the Bitwig Studio user interface. | |
* | |
* @param label | |
* the name of the setting, must not be `null` | |
* @param category | |
* the name of the category, may not be `null` | |
* @param initialColor | |
* the initial color value of the setting | |
* @return the object that encapsulates the requested string setting | |
* @since API version 5 | |
*/ | |
getColorSetting( | |
label: string, | |
category: string, | |
initialColor: Color | |
): SettableColorValue; | |
/** | |
* Returns a color setting that is shown in the Bitwig Studio user interface. | |
* | |
* @param label | |
* the name of the setting, must not be `null` | |
* @param category | |
* the name of the category, may not be `null` | |
* @param value | |
* the color value to which the setting will be connected to | |
* @return the object that encapsulates the requested string setting | |
* @since API version 5 | |
*/ | |
getColorSettingForValue( | |
label: string, | |
category: string, | |
value: SettableColorValue | |
): SettableColorValue; | |
/** | |
* Returns a boolean setting. | |
* | |
* @param label | |
* the name of the setting, must not be `null` | |
* @param category | |
* the name of the category, may not be `null` | |
* @param initialValue | |
* the initial color value of the setting | |
* @return the object that encapsulates the requested string setting | |
* @since API version 7 | |
*/ | |
getBooleanSetting( | |
label: string, | |
category: string, | |
initialValue: boolean | |
): SettableBooleanValue; | |
/** | |
* Returns an boolean setting. | |
* | |
* @param label | |
* the name of the setting, must not be `null` | |
* @param category | |
* the name of the category, may not be `null` | |
* @param value | |
* the settable enum value that the setting will be connected to | |
* @return the object that encapsulates the requested boolean setting | |
* @since API version 11 | |
*/ | |
getBooleanSettingForValue( | |
label: string, | |
category: string, | |
value: SettableBooleanValue | |
): SettableBooleanValue; | |
} | |
// source: com/bitwig/extension/controller/api/Signal.java | |
/** | |
* A generic interface used to implement actions or events that are not associated with a value. | |
* | |
* @since API version 1 | |
*/ | |
interface Signal { | |
/** | |
* Registers an observer that gets notified when the signal gets fired. | |
* | |
* @param callback | |
* a callback function that does not receive any argument. | |
* @since API version 1 | |
*/ | |
addSignalObserver(callback: NoArgsCallback): void; | |
/** | |
* Fires the action or event represented by the signal object. | |
* | |
* @since API version 1 | |
*/ | |
fire(): void; | |
} | |
// source: com/bitwig/extension/controller/api/SoloValue.java | |
/** | |
* Instances of this interface represent the state of a solo button. | |
* | |
* @since API version 1 | |
*/ | |
// @ts-ignore | |
interface SoloValue extends SettableBooleanValue { | |
/** | |
* Toggles the current solo state. | |
* | |
* @param exclusive | |
* specifies if solo on other channels should be disabled automatically ('true') or not | |
* ('false'). | |
* @since API version 1 | |
*/ | |
toggle(exclusive: boolean): void; | |
} | |
// source: com/bitwig/extension/controller/api/SourceSelector.java | |
/** | |
* Instance of this class represent sources selectors in Bitwig Studio, which are shown as choosers in the | |
* user interface and contain entries for either note inputs or audio inputs or both. | |
* | |
* The most prominent source selector in Bitwig Studio is the one shown in the track IO section, which can be | |
* accessed via the API by calling {@link Track#getSourceSelector()}. | |
* | |
* @since API version 1 | |
*/ | |
interface SourceSelector extends ObjectProxy { | |
/** | |
* Returns an object that indicates if the source selector has note inputs enabled. | |
* | |
* @return a boolean value object | |
* @since API version 1 | |
* @deprecated Use {@link #hasNoteInputSelected()} instead. | |
*/ | |
getHasNoteInputSelected(): BooleanValue; | |
/** | |
* Returns an object that indicates if the source selector has note inputs enabled. | |
* | |
* @return a boolean value object | |
* @since API version 5 | |
*/ | |
hasNoteInputSelected(): BooleanValue; | |
/** | |
* Returns an object that indicates if the source selector has audio inputs enabled. | |
* | |
* @return a boolean value object | |
* @since API version 1 | |
* @deprecated Use {@link #hasAudioInputSelected()} instead. | |
*/ | |
getHasAudioInputSelected(): BooleanValue; | |
/** | |
* Returns an object that indicates if the source selector has audio inputs enabled. | |
* | |
* @return a boolean value object | |
* @since API version 5 | |
*/ | |
hasAudioInputSelected(): BooleanValue; | |
} | |
// source: com/bitwig/extension/controller/api/SpecificBitwigDevice.java | |
/** | |
* Interface that can be used to access the parameter and output value of a specific Bitwig native device. | |
* | |
* Specific interfaces can be created by calling {@link Device#createSpecificBitwigDevice(java.util.UUID)}. | |
* | |
* @since API version 12 | |
*/ | |
interface SpecificBitwigDevice { | |
/** | |
* Creates a {@link Parameter} that will refer to the parameter of the device with the specified parameter | |
* id. | |
*/ | |
createParameter(id: string): Parameter; | |
/** | |
* Creates an {@link IntegerValue} that can be used to read a certain output value of the device. | |
*/ | |
createIntegerOutputValue(id: string): IntegerValue; | |
} | |
// source: com/bitwig/extension/controller/api/SpecificDevice.java | |
/** | |
* Interface that can be used to directly access a specific device (Bitwig native device or plug-in). | |
* | |
* @since API version 12 | |
* */ | |
interface SpecificDevice extends ObjectProxy {} | |
// source: com/bitwig/extension/controller/api/SpecificPluginDevice.java | |
/** | |
* Interface that can be used to access the parameters of a specific plug-in device. | |
* | |
* Specific interfaces can be created by calling {@link Device#createSpecificVst2Device(int)} or | |
* {@link Device#createSpecificVst3Device(String)}. | |
* | |
* @since API version 12 | |
*/ | |
interface SpecificPluginDevice { | |
/** | |
* Creates a {@link Parameter} that will refer to the parameter of the plug-in with the specified parameter | |
* id. | |
*/ | |
createParameter(parameterId: number): Parameter; | |
} | |
// source: com/bitwig/extension/controller/api/StringArrayValue.java | |
/** | |
* @since API version 2 | |
*/ | |
// @ts-ignore | |
interface StringArrayValue extends ObjectArrayValue<string> { | |
/** | |
* Gets the current value. | |
* | |
* @since API version 2 | |
*/ | |
get(): string[]; | |
} | |
// source: com/bitwig/extension/controller/api/StringHardwareProperty.java | |
/** | |
* Represents an output value shown on some hardware (for example, the title of a track). | |
* | |
* @since API version 10 | |
*/ | |
interface StringHardwareProperty extends HardwareProperty { | |
/** Gets the current value. This is the value that should be sent to the hardware to be displayed. */ | |
currentValue(): string; | |
/** The value that was last sent to the hardware. */ | |
lastSentValue(): string; | |
/** | |
* Specifies a callback that should be called with the value that needs to be sent to the hardware. This | |
* callback is called as a result of calling the {@link HardwareSurface#updateHardware()} method (typically | |
* from the flush method). | |
*/ | |
onUpdateHardware(sendValueConsumer: Consumer<string>): void; | |
/** Sets the current value. */ | |
setValue(value: string): void; | |
/** Sets the current value from a {@link Supplier} that supplies the latest value. */ | |
setValueSupplier(supplier: Supplier<string>): void; | |
/** The maximum number of characters that can be output or -1 if not specified and there is no limit. */ | |
getMaxChars(): number; | |
setMaxChars(maxChars: number): void; | |
} | |
// source: com/bitwig/extension/controller/api/StringValue.java | |
interface StringValue | |
extends Value<StringValueChangedCallback>, | |
Supplier<string> { | |
/** | |
* Gets the current value. | |
* | |
* @since API version 2 | |
*/ | |
get(): string; | |
/** | |
* Gets the current value and tries to intelligently limit it to the supplied length in the best way | |
* possible. | |
* | |
* @since API version 2 | |
*/ | |
getLimited(maxLength: number): string; | |
} | |
// source: com/bitwig/extension/controller/api/Subscribable.java | |
/** | |
* Interface for an object that can be 'subscribed' or not. A subscribed object will notify any observers when | |
* changes occur to it. When it is unsubscribed the observers will no longer be notified. A driver can use | |
* this to say which objects it is interested in and which ones it is not (for example in one mode the driver | |
* may not be interested in track meters) at runtime. This allows the driver to improve efficiency by only | |
* getting notified about changes that are really relevant to it. By default a driver is subscribed to | |
* everything. | |
* | |
* Subscription is counter based. | |
* | |
* @since API version 2 | |
*/ | |
interface Subscribable { | |
/** | |
* Determines if this object is currently 'subscribed'. In the subscribed state it will notify any | |
* observers registered on it. | |
*/ | |
isSubscribed(): boolean; | |
/** | |
* Sets whether the driver currently considers this object 'active' or not. | |
* @deprecated subscribe/unsubscribe is now counter based. | |
*/ | |
setIsSubscribed(value: boolean): void; | |
/** | |
* Subscribes the driver to this object. | |
*/ | |
subscribe(): void; | |
/** | |
* Unsubscribes the driver from this object. | |
*/ | |
unsubscribe(): void; | |
} | |
// source: com/bitwig/extension/controller/api/TimeSignatureValue.java | |
/** | |
* Instances of this interface represent time signature values. | |
* | |
* @since API version 1 | |
*/ | |
interface TimeSignatureValue | |
extends Value<StringValueChangedCallback>, | |
Supplier<string> { | |
/** | |
* Gets the current value. | |
* | |
* @since API version 2 | |
*/ | |
get(): string; | |
/** | |
* Updates the time signature according to the given string. | |
* | |
* @param name | |
* a textual representation of the new time signature value, formatted as | |
* `numerator/denominator[, ticks]` | |
* @since API version 1 | |
*/ | |
set(name: string): void; | |
/** | |
* Returns an object that provides access to the time signature numerator. | |
* | |
* @return an integer value object that represents the time signature numerator. | |
* @since API version 1 | |
* @deprecated Use {@link #numerator()} instead. | |
*/ | |
getNumerator(): SettableIntegerValue; | |
/** | |
* Returns an object that provides access to the time signature numerator. | |
* | |
* @return an integer value object that represents the time signature numerator. | |
* @since API version 5 | |
*/ | |
numerator(): SettableIntegerValue; | |
/** | |
* Returns an object that provides access to the time signature denominator. | |
* | |
* @return an integer value object that represents the time signature denominator. | |
* @since API version 1 | |
* @deprecated Use {@link #denominator()} instead. | |
*/ | |
getDenominator(): SettableIntegerValue; | |
/** | |
* Returns an object that provides access to the time signature denominator. | |
* | |
* @return an integer value object that represents the time signature denominator. | |
* @since API version 5 | |
*/ | |
denominator(): SettableIntegerValue; | |
/** | |
* Returns an object that provides access to the time signature tick subdivisions. | |
* | |
* @return an integer value object that represents the time signature ticks. | |
* @since API version 1 | |
* @deprecated Use {@link #ticks()} instead. | |
*/ | |
getTicks(): SettableIntegerValue; | |
/** | |
* Returns an object that provides access to the time signature tick subdivisions. | |
* | |
* @return an integer value object that represents the time signature ticks. | |
* @since API version 5 | |
*/ | |
ticks(): SettableIntegerValue; | |
} | |
// source: com/bitwig/extension/controller/api/Track.java | |
/** | |
* Instances of this interface represent tracks in Bitwig Studio. | |
* | |
* @since API version 1 | |
*/ | |
interface Track extends Channel { | |
/** | |
* Value that reports the position of the track within the list of Bitwig Studio tracks. | |
* | |
* @since API version 2 | |
*/ | |
position(): IntegerValue; | |
/** | |
* Registers an observer that reports the position of the track within the list of Bitwig Studio tracks. | |
* | |
* @param callback | |
* a callback function that receives a single integer parameter | |
* @since API version 1 | |
* @deprecated Use {@link #position()} instead. | |
*/ | |
addPositionObserver(callback: IntegerValueChangedCallback): void; | |
/** | |
* Returns an object that can be used to access the clip launcher slots of the track. | |
* | |
* @return an object that represents the clip launcher slots of the track | |
* @since API version 1 | |
* @deprecated Use {@link #clipLauncherSlotBank()} instead. | |
*/ | |
getClipLauncherSlots(): ClipLauncherSlotBank; | |
/** | |
* Returns an object that can be used to access the clip launcher slots of the track. | |
* | |
* @return an object that represents the clip launcher slots of the track | |
* @since API version 2 | |
*/ | |
clipLauncherSlotBank(): ClipLauncherSlotBank; | |
/** | |
* @deprecated Use {@link #getClipLauncherSlots()} instead. | |
* @since API version 1 | |
*/ | |
getClipLauncher(): ClipLauncherSlotBank; | |
/** | |
* Registers an observer that reports if the clip launcher slots are queued for stop. | |
* | |
* @param callback | |
* a callback function that receives a single boolean argument. | |
* @since API version 1 | |
* @deprecated Use {@link #isQueuedForStop()} instead. | |
*/ | |
addIsQueuedForStopObserver(callback: BooleanValueChangedCallback): void; | |
/** | |
* Returns an object that provides access to the arm state of the track. | |
* | |
* @return a boolean value object | |
* @since API version 1 | |
* @deprecated Use {@link #arm()} instead. | |
*/ | |
getArm(): SettableBooleanValue; | |
/** | |
* Returns an object that provides access to the arm state of the track. | |
* | |
* @return a boolean value object | |
* @since API version 5 | |
*/ | |
arm(): SettableBooleanValue; | |
/** | |
* Returns an object that provides access to the monitoring state of the track. | |
* | |
* @return a boolean value object | |
* @since API version 1 | |
* @deprecated Use {@link #monitor()} instead. | |
*/ | |
getMonitor(): SettableBooleanValue; | |
/** | |
* Returns an object that provides access to the monitoring state of the track. | |
* | |
* @return a boolean value object | |
* @since API version 5 | |
*/ | |
monitor(): SettableBooleanValue; | |
/** | |
* Returns an object that provides access to the auto-monitoring state of the track. | |
* | |
* @return a boolean value object | |
* @since API version 1 | |
* @deprecated Use {@link #autoMonitor()} instead. | |
*/ | |
getAutoMonitor(): SettableBooleanValue; | |
/** | |
* Returns an object that provides access to the auto-monitoring state of the track. | |
* | |
* @return a boolean value object | |
* @since API version 5 | |
*/ | |
autoMonitor(): SettableBooleanValue; | |
/** | |
* Returns an object that provides access to the cross-fade mode of the track. | |
* | |
* @return an enum value object that has three possible states: "A", "B", or "AB" | |
* @since API version 1 | |
* @deprecated Use {@link #crossFadeMode()} instead. | |
*/ | |
getCrossFadeMode(): SettableEnumValue; | |
/** | |
* Returns an object that provides access to the cross-fade mode of the track. | |
* | |
* @return an enum value object that has three possible states: "A", "B", or "AB" | |
* @since API version 5 | |
*/ | |
crossFadeMode(): SettableEnumValue; | |
/** | |
* 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 | |
*/ | |
isStopped(): BooleanValue; | |
/** | |
* Returns a value object that provides access to the clip launcher playback state of the track. | |
* | |
* @return a boolean value object that indicates if the clip launcher is stopped for this track | |
* @see #getIsMatrixQueuedForStop() | |
* @since API version 1 | |
* @deprecated Use {@link #isStopped()} instead. | |
*/ | |
getIsMatrixStopped(): BooleanValue; | |
/** | |
* 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. | |
* | |
* @return a boolean value object that indicates if the clip launcher slots have been queued for stop | |
* @see #getIsMatrixStopped() | |
* @since API version 1 | |
* @deprecated Use {@link #isQueuedForStop()} instead. | |
*/ | |
getIsMatrixQueuedForStop(): BooleanValue; | |
/** | |
* Value that reports if the clip launcher slots are queued for stop. | |
* | |
* @since API version 2 | |
*/ | |
isQueuedForStop(): BooleanValue; | |
/** | |
* 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. | |
* | |
* @return a source selector object | |
* @since API version 1 | |
* @deprecated Use {@link #sourceSelector()} instead. | |
*/ | |
getSourceSelector(): 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. | |
* | |
* @return a source selector object | |
* @since API version 5 | |
*/ | |
sourceSelector(): SourceSelector; | |
/** | |
* Stops playback of the track. | |
* | |
* @since API version 1 | |
*/ | |
stop(): void; | |
/** | |
* Action to call {@link #stop()}. | |
* @since API version 10 | |
*/ | |
stopAction(): HardwareActionBindable; | |
/** | |
* Calling this method causes the arrangement sequencer to take over playback. | |
* | |
* @since API version 1 | |
*/ | |
returnToArrangement(): void; | |
/** | |
* Updates the name of the track. | |
* | |
* @param name | |
* the new track name | |
* @since API version 1 | |
*/ | |
setName(name: string): void; | |
/** | |
* 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. | |
* | |
* @param 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 | |
*/ | |
addPitchNamesObserver(callback: IndexedStringValueChangedCallback): void; | |
/** | |
* Plays a note on the track with a default duration and the given key and velocity. | |
* | |
* @param key | |
* the key value of the played note | |
* @param velocity | |
* the velocity of the played note | |
* @since API version 1 | |
*/ | |
playNote(key: number, velocity: number): void; | |
/** | |
* Starts playing a note on the track with the given key and velocity. | |
* | |
* @param key | |
* the key value of the played note | |
* @param velocity | |
* the velocity of the played note | |
* @since API version 1 | |
*/ | |
startNote(key: number, velocity: number): void; | |
/** | |
* Stops playing a currently played note. | |
* | |
* @param key | |
* the key value of the playing note | |
* @param velocity | |
* the note-off velocity | |
* @since API version 1 | |
*/ | |
stopNote(key: number, velocity: number): void; | |
/** | |
* Sends a MIDI message to the hardware device. | |
* | |
* @param status | |
* the status byte of the MIDI message | |
* @param data1 | |
* the data1 part of the MIDI message | |
* @param data2 | |
* the data2 part of the MIDI message | |
* @ @since API version 2 | |
*/ | |
sendMidi(status: number, data1: number, data2: number): void; | |
/** | |
* Value that reports the track type. Possible reported track types are `Group`, `Instrument`, `Audio`, | |
* `Hybrid`, `Effect` or `Master`. | |
* | |
* @since API version 2 | |
*/ | |
trackType(): StringValue; | |
/** | |
* Registers an observer that reports the track type. Possible reported track types are `Group`, | |
* `Instrument`, `Audio`, `Hybrid`, `Effect` or `Master`. | |
* | |
* @param numChars | |
* the maximum number of characters used for the reported track type | |
* @param textWhenUnassigned | |
* the default text that gets reported when the track is not yet associated with a Bitwig Studio | |
* track. | |
* @param callback | |
* a callback function that receives a single track type parameter (string). | |
* @since API version 1 | |
* @deprecated Use {@link #trackType()} instead. | |
*/ | |
addTrackTypeObserver( | |
numChars: number, | |
textWhenUnassigned: string, | |
callback: StringValueChangedCallback | |
): void; | |
/** | |
* Value that reports if the track may contain child tracks, which is the case for group tracks. | |
* | |
* @since API version 2 | |
*/ | |
isGroup(): BooleanValue; | |
/** | |
* 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 | |
*/ | |
getIsPreFader(): SettableBooleanValue; | |
/** | |
* Registers an observer that reports if the track may contain child tracks, which is the case for group | |
* tracks. | |
* | |
* @param callback | |
* a callback function that receives a single boolean parameter. | |
* @since API version 1 | |
* @deprecated Use {@link #isGroup()} instead. | |
*/ | |
addIsGroupObserver(callback: BooleanValueChangedCallback): void; | |
/** | |
* Returns an object that indicates if the track may contain notes. | |
* | |
* @return a boolean value object | |
* @since API version 1 | |
* @deprecated Use {@link #canHoldNoteData()} instead. | |
*/ | |
getCanHoldNoteData(): SettableBooleanValue; | |
/** | |
* Returns an object that indicates if the track may contain notes. | |
* | |
* @return a boolean value object | |
* @since API version 5 | |
*/ | |
canHoldNoteData(): SettableBooleanValue; | |
/** | |
* Returns an object that indicates if the track may contain audio events. | |
* | |
* @return a boolean value object | |
* @since API version 1 | |
* @deprecated Use {@link #canHoldAudioData()} instead. | |
*/ | |
getCanHoldAudioData(): SettableBooleanValue; | |
/** | |
* Returns an object that indicates if the track may contain audio events. | |
* | |
* @return a boolean value object | |
* @since API version 5 | |
*/ | |
canHoldAudioData(): SettableBooleanValue; | |
/** | |
* Returns an object that provides access to the cursor item of the track's device selection as shown in | |
* the Bitwig Studio user interface. | |
* | |
* @return the requested device selection cursor object | |
* @ @since API version 1 | |
*/ | |
createCursorDevice(): CursorDevice; | |
/** | |
* 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 {@link Track#createCursorDevice}. | |
* | |
* @param 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. | |
* @return the requested device selection cursor object | |
* @ @see Track#createCursorDevice | |
* @see #createCursorDevice(String name, int numSends) | |
* @since API version 1 | |
*/ | |
createCursorDevice(name: string): CursorDevice; | |
/** | |
* 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 {@link Track#createCursorDevice}. | |
* | |
* @param 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. | |
* @param numSends | |
* the number of sends that are simultaneously accessible in nested channels. | |
* @return the requested device selection cursor object | |
* @ @see Track#createCursorDevice | |
* @since API version 1 | |
*/ | |
createCursorDevice(name: string, numSends: number): CursorDevice; | |
/** | |
* Gets the channels primary device. | |
* | |
* @return an object that provides access to the channels primary device. | |
* @deprecated Use {@link #createCursorDevice(String) createCursorDevice("Primary")} instead. | |
* @since API version 1 | |
*/ | |
getPrimaryDevice(): Device; | |
/** | |
* @deprecated Use {@link #createCursorDevice(String) createCursorDevice("Primary")} instead. | |
* @since API version 1 | |
*/ | |
getPrimaryInstrument(): Device; | |
/** | |
* 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.<br/> | |
* | |
* 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.<br/> | |
* | |
* 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.<br/> | |
* | |
* Creating a track bank using this method will consider all tracks in the document, including effect | |
* tracks and the master track. Use {@link #createMainTrackBank} or {@link #createEffectTrackBank} in case | |
* you are only interested in tracks of a certain kind. | |
* | |
* @param numTracks | |
* the number of child tracks spanned by the track bank | |
* @param numSends | |
* the number of sends spanned by the track bank | |
* @param numScenes | |
* the number of scenes spanned by the track bank | |
* @param 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. | |
* @return an object for bank-wise navigation of tracks, sends and scenes | |
* @see #createMainTrackBank | |
* @see #createEffectTrackBank | |
* @since API version 1 | |
*/ | |
createTrackBank( | |
numTracks: number, | |
numSends: number, | |
numScenes: number, | |
hasFlatTrackList: boolean | |
): TrackBank; | |
/** | |
* 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 {@link #createTrackBank}. | |
* | |
* @param numTracks | |
* the number of child tracks spanned by the track bank | |
* @param numSends | |
* the number of sends spanned by the track bank | |
* @param numScenes | |
* the number of scenes spanned by the track bank | |
* @param 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. | |
* @return an object for bank-wise navigation of tracks, sends and scenes | |
* @see #createTrackBank | |
* @see #createEffectTrackBank | |
* @since API version 1 | |
*/ | |
createMainTrackBank( | |
numTracks: number, | |
numSends: number, | |
numScenes: number, | |
hasFlatTrackList: boolean | |
): TrackBank; | |
/** | |
* 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 | |
* {@link #createTrackBank}. | |
* | |
* @param numTracks | |
* the number of child tracks spanned by the track bank | |
* @param numScenes | |
* the number of scenes spanned by the track bank | |
* @param 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. | |
* @return an object for bank-wise navigation of tracks, sends and scenes | |
* @see #createTrackBank | |
* @see #createMainTrackBank | |
* @since API version 1 | |
*/ | |
createEffectTrackBank( | |
numTracks: number, | |
numScenes: number, | |
hasFlatTrackList: boolean | |
): TrackBank; | |
/** | |
* 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. | |
* | |
* @param numScenes | |
* the number of scenes for bank-wise navigation of the master tracks clip launcher slots. | |
* @return an object representing the master track of the connected track group. | |
* @since API version 1 | |
*/ | |
createMasterTrack(numScenes: number): MasterTrack; | |
/** | |
* 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 {@link #createTrackBank}. | |
* | |
* @param numTracks | |
* the number of child tracks spanned by the track bank | |
* @param numSends | |
* the number of sends spanned by the track bank | |
* @param numScenes | |
* the number of scenes spanned by the track bank | |
* @param shouldIncludeEffectTracks | |
* specifies whether effect tracks should be included | |
* @param shouldIncludeMasterTrack | |
* specifies whether the master should be included | |
* @return an object for bank-wise navigation of sibling tracks | |
* @see #createTrackBank | |
* @since API version 1 | |
*/ | |
createSiblingsTrackBank( | |
numTracks: number, | |
numSends: number, | |
numScenes: number, | |
shouldIncludeEffectTracks: boolean, | |
shouldIncludeMasterTrack: boolean | |
): TrackBank; | |
/** | |
* {@link InsertionPoint} that can be used to insert after this track. | |
* | |
* @since API version 7 | |
*/ | |
afterTrackInsertionPoint(): InsertionPoint; | |
/** | |
* {@link InsertionPoint} that can be used to insert after this track. | |
* | |
* @since API version 7 | |
*/ | |
beforeTrackInsertionPoint(): InsertionPoint; | |
/** | |
* Creates an object that represent the parent track. | |
* | |
* @since API version 10 | |
*/ | |
createParentTrack(numSends: number, numScenes: number): Track; | |
/** | |
* Routes the given noteInput directly to the track regardless of monitoring. | |
* @newSince API version 10 | |
*/ | |
addNoteSource(noteInput: NoteInput): void; | |
/** | |
* Removes a routing operated by {@link #addNoteSource(NoteInput)} | |
* @newSince API version 10 | |
*/ | |
removeNoteSource(noteInput: NoteInput): void; | |
/** | |
* 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. | |
* @since API version 10 | |
*/ | |
createNewLauncherClip(slotIndex: number, lengthInBeats: number): void; | |
/** | |
* 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. | |
* @since API version 10 | |
*/ | |
createNewLauncherClip(slotIndex: number): void; | |
/** | |
* 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. | |
* @since API version 10 | |
*/ | |
recordNewLauncherClip(slotIndex: number): void; | |
/** | |
* Selects the slot at the given index. | |
* | |
* @since API version 10 | |
*/ | |
selectSlot(slotIndex: number): void; | |
} | |
// source: com/bitwig/extension/controller/api/TrackBank.java | |
/** | |
* A track bank provides access to a range of tracks and their scenes (clip launcher slots) in Bitwig Studio. | |
* Instances of track bank are configured with a fixed number of tracks and scenes and represent an excerpt of | |
* a larger list of tracks and scenes. Various methods are provided for scrolling to different sections of the | |
* track/scene list. It basically acts like a 2-dimensional window moving over the grid of tracks and scenes. | |
* | |
* To receive an instance of track bank that supports all kinds of tracks call {@link ControllerHost#createTrackBank}. | |
* Additional methods are provided in the {@link ControllerHost} interface to create track banks that include only main | |
* tracks ({@link ControllerHost#createMainTrackBank}) or only effect tracks ({@link ControllerHost#createEffectTrackBank}). | |
* | |
* @see {@link ControllerHost#createTrackBank} | |
* @see {@link ControllerHost#createMainTrackBank} | |
* @see {@link ControllerHost#createEffectTrackBank} | |
* @since API version 1 | |
*/ | |
interface TrackBank extends ChannelBank<Track> { | |
/** | |
* @deprecated use {@link #getChannel(int)} instead. | |
* @since API version 1 | |
*/ | |
getTrack(indexInBank: number): Track; | |
/** | |
* Returns the track at the given index within the bank. | |
* | |
* @param indexInBank | |
* the track index within this bank, not the index within the list of all Bitwig Studio tracks. | |
* Must be in the range [0..sizeOfBank-1]. | |
* @return the requested track object | |
* @since API version 1 | |
* @deprecated Use {@link #getItemAt(int)} instead. | |
*/ | |
getChannel(indexInBank: number): Track; | |
/** | |
* @deprecated use {@link #setChannelScrollStepSize(int)} instead. | |
*/ | |
setTrackScrollStepSize(stepSize: number): void; | |
/** | |
* @deprecated use {@link #scrollChannelsPageUp()} instead. | |
*/ | |
scrollTracksPageUp(): void; | |
/** | |
* @deprecated use {@link #scrollChannelsPageDown()} instead. | |
*/ | |
scrollTracksPageDown(): void; | |
/** | |
* @deprecated use {@link #scrollChannelsUp()} instead. | |
*/ | |
scrollTracksUp(): void; | |
/** | |
* @deprecated use {@link #scrollChannelsDown()} instead. | |
*/ | |
scrollTracksDown(): void; | |
/** | |
* @deprecated use {@link #scrollToChannel(int)} instead. | |
*/ | |
scrollToTrack(position: number): void; | |
/** | |
* @deprecated use {@link #addChannelScrollPositionObserver(Callable, int)} instead. | |
*/ | |
addTrackScrollPositionObserver( | |
callback: IntegerValueChangedCallback, | |
valueWhenUnassigned: number | |
): void; | |
/** | |
* {@link SceneBank} that represents a view on the scenes in this {@link TrackBank}. | |
* | |
* @since API version 2 | |
*/ | |
sceneBank(): SceneBank; | |
/** | |
* Scrolls the scenes one page up. | |
* | |
* @since API version 1 | |
* @deprecated Use {@link #sceneBank()} instead. | |
*/ | |
scrollScenesPageUp(): void; | |
/** | |
* Scrolls the scenes one page down. | |
* | |
* @since API version 1 | |
* @deprecated Use {@link #sceneBank()} instead. | |
*/ | |
scrollScenesPageDown(): void; | |
/** | |
* Scrolls the scenes one step up. | |
* | |
* @since API version 1 | |
* @deprecated Use {@link #sceneBank()} instead. | |
*/ | |
scrollScenesUp(): void; | |
/** | |
* Scrolls the scenes one step down. | |
* | |
* @since API version 1 | |
* @deprecated Use {@link #sceneBank()} instead. | |
*/ | |
scrollScenesDown(): void; | |
/** | |
* Makes the scene with the given position visible in the track bank. | |
* | |
* @param position | |
* the position of the scene within the underlying full list of scenes | |
* @since API version 1 | |
* @deprecated Use {@link #sceneBank()} instead. | |
*/ | |
scrollToScene(position: number): void; | |
/** | |
* Registers an observer that reports the current scene scroll position. | |
* | |
* @param callback | |
* a callback function that takes a single integer parameter | |
* @param valueWhenUnassigned | |
* the default value that gets reports when the track bank is not yet connected to a Bitwig | |
* Studio document | |
* @since API version 1 | |
* @deprecated Use {@link #sceneBank()} instead. | |
*/ | |
addSceneScrollPositionObserver( | |
callback: IntegerValueChangedCallback, | |
valueWhenUnassigned: number | |
): void; | |
/** | |
* @deprecated use {@link #canScrollChannelsUp()} instead. | |
*/ | |
addCanScrollTracksUpObserver(callback: BooleanValueChangedCallback): void; | |
/** | |
* @deprecated use {@link #canScrollChannelsDown()} instead. | |
*/ | |
addCanScrollTracksDownObserver(callback: BooleanValueChangedCallback): void; | |
/** | |
* Registers an observer that reports if the scene window can be scrolled further up. | |
* | |
* @param callback | |
* a callback function that takes a single boolean parameter | |
* @since API version 1 | |
* | |
* @deprecated use {@link #canScrollScenesUp()} instead. | |
*/ | |
addCanScrollScenesUpObserver(callback: BooleanValueChangedCallback): void; | |
/** | |
* Registers an observer that reports if the scene window can be scrolled further down. | |
* | |
* @param callback | |
* a callback function that takes a single boolean parameter | |
* @since API version 1 | |
* | |
* @deprecated use {@link #canScrollScenesDown()} instead. | |
*/ | |
addCanScrollScenesDownObserver(callback: BooleanValueChangedCallback): void; | |
/** | |
* Registers an observer that reports the underlying total scene count (not the number of scenes available | |
* in the bank window). | |
* | |
* @param callback | |
* a callback function that receives a single integer parameter | |
* @since API version 1 | |
* @deprecated Use {@link #sceneBank().itemCount().addValueObserver()} | |
*/ | |
addSceneCountObserver(callback: IntegerValueChangedCallback): void; | |
/** | |
* Returns an object that provides access to the clip launcher scenes of the track bank. | |
* | |
* @return an object that provides access to the clip launcher scenes of the track bank. | |
* @since API version 1 | |
* @deprecated Use {@link #sceneBank()} instead. | |
*/ | |
getClipLauncherScenes(): ClipLauncherSlotOrSceneBank; | |
/** | |
* Launches the scene with the given bank index. | |
* | |
* @param indexInWindow | |
* the scene index within the bank, not the position of the scene withing the underlying full | |
* list of scenes. | |
* @since API version 1 | |
* @deprecated Use {@link #sceneBank()} instead. | |
*/ | |
launchScene(indexInWindow: number): void; | |
/** | |
* Causes this bank to follow the supplied cursor. When the cursor moves to a new item the bank will be | |
* scrolled so that the cursor is within the bank, if possible. | |
* | |
* @param cursorTrack | |
* The {@link CursorTrack} that this bank should follow. | |
* | |
* @since API version 2 | |
*/ | |
followCursorTrack(cursorTrack: CursorTrack): void; | |
} | |
// source: com/bitwig/extension/controller/api/Transport.java | |
/** | |
* An interface representing the transport section in Bitwig Studio. | |
* | |
* @since API version 1 | |
*/ | |
interface Transport extends ObjectProxy { | |
/** | |
* Starts playback in the Bitwig Studio transport. | |
* | |
* @since API version 1 | |
*/ | |
play(): void; | |
/** | |
* Continues the playback in the Bitwig Studio transport. | |
* | |
* @since API version 10 | |
*/ | |
continuePlayback(): void; | |
/** | |
* Action that can be used to play the transport. | |
* | |
* @see #play() | |
* | |
* @since API version 10 | |
* */ | |
playAction(): HardwareActionBindable; | |
/** | |
* Action that can be used to continue the transport. | |
* | |
* @see #continuePlayback() | |
* | |
* @since API version 10 | |
* */ | |
continuePlaybackAction(): HardwareActionBindable; | |
/** | |
* Stops playback in the Bitwig Studio transport. | |
* | |
* @since API version 1 | |
*/ | |
stop(): void; | |
/** | |
* Action that can be used to stop the transport. | |
* | |
* @see #stop() | |
* | |
* @since API version 10 | |
* */ | |
stopAction(): HardwareActionBindable; | |
/** | |
* Toggles the transport playback state between playing and stopped. | |
* | |
* @since API version 1 | |
*/ | |
togglePlay(): void; | |
/** | |
* When the transport is stopped, calling this function starts transport playback, otherwise the transport | |
* is first stopped and the playback is restarted from the last play-start position. | |
* | |
* @since API version 1 | |
*/ | |
restart(): void; | |
/** | |
* Action that can be used to restart the transport. | |
* | |
* @see #restart() | |
* | |
* @since API version 10 | |
* */ | |
restartAction(): HardwareActionBindable; | |
/** | |
* Starts recording in the Bitwig Studio transport. | |
* | |
* @since API version 1 | |
*/ | |
record(): void; | |
/** | |
* Action that can be used to start recording | |
* | |
* @see #record() | |
* | |
* @since API version 10 | |
* */ | |
recordAction(): HardwareActionBindable; | |
/** | |
* Rewinds the Bitwig Studio transport to the beginning of the arrangement. | |
* | |
* @since API version 1 | |
*/ | |
rewind(): void; | |
/** | |
* Action that can be used to rewind the transport. | |
* | |
* @see #rewind() | |
* | |
* @since API version 10 | |
* */ | |
rewindAction(): HardwareActionBindable; | |
/** | |
* Calling this function is equivalent to pressing the fast forward button in the Bitwig Studio transport. | |
* | |
* @since API version 1 | |
*/ | |
fastForward(): void; | |
/** | |
* Action that can be used to fast forward the transport. | |
* | |
* @see #fastForward() | |
* | |
* @since API version 10 | |
* */ | |
fastForwardAction(): HardwareActionBindable; | |
/** | |
* When calling this function multiple times, the timing of those calls gets evaluated and causes | |
* adjustments to the project tempo. | |
* | |
* @since API version 1 | |
*/ | |
tapTempo(): void; | |
/** | |
* Action that can be used to tap the tempo. | |
* | |
* @see #tapTempo() | |
* | |
* @since API version 10 | |
* */ | |
tapTempoAction(): HardwareActionBindable; | |
/** | |
* Value that reports if the Bitwig Studio transport is playing. | |
* | |
* @since API version 2 | |
*/ | |
isPlaying(): SettableBooleanValue; | |
/** | |
* Registers an observer that reports if the Bitwig Studio transport is playing. | |
* | |
* @param callback | |
* a callback function that receives a single boolean argument (`true` if playing, `false` | |
* otherwise). | |
* @since API version 1 | |
* @deprecated Use {@link #isPlaying()} instead. | |
*/ | |
addIsPlayingObserver(callback: BooleanValueChangedCallback): void; | |
/** | |
* Value that reports if the Bitwig Studio transport is recording. | |
* | |
* @since API version 2 | |
*/ | |
isArrangerRecordEnabled(): SettableBooleanValue; | |
/** | |
* Registers an observer that reports if the Bitwig Studio transport is recording. | |
* | |
* @param callback | |
* a callback function that receives a single boolean argument (`true` if recording, `false` | |
* otherwise). | |
* @since API version 1 | |
* @deprecated Use {@link #isArrangerRecordEnabled()} instead. | |
*/ | |
addIsRecordingObserver(callback: BooleanValueChangedCallback): void; | |
/** | |
* Value that reports if overdubbing is enabled in Bitwig Studio. | |
* | |
* @since API version 2 | |
*/ | |
isArrangerOverdubEnabled(): SettableBooleanValue; | |
/** | |
* Registers an observer that reports if over-dubbing is enabled in Bitwig Studio. | |
* | |
* @param callback | |
* a callback function that receives a single boolean argument (`true` if over-dubbing is | |
* enabled, `false` otherwise). | |
* @since API version 1 | |
* @deprecated Use {@link #isArrangerOverdubEnabled()} instead. | |
*/ | |
addOverdubObserver(callback: BooleanValueChangedCallback): void; | |
/** | |
* Value reports if clip launcher overdubbing is enabled in Bitwig Studio. | |
* | |
* @since API version 2 | |
*/ | |
isClipLauncherOverdubEnabled(): SettableBooleanValue; | |
/** | |
* Registers an observer that reports if clip launcher over-dubbing is enabled in Bitwig Studio. | |
* | |
* @param callback | |
* a callback function that receives a single boolean argument (`true` if clip launcher | |
* over-dubbing is enabled, `false` otherwise). | |
* @since API version 1 | |
* @deprecated Use {@link #isClipLauncherOverdubEnabled()} instead. | |
*/ | |
addLauncherOverdubObserver(callback: BooleanValueChangedCallback): void; | |
/** | |
* Value that reports the current automation write mode. Possible values are `"latch"`, `"touch"` or | |
* `"write"`. | |
* | |
* @since API version 2 | |
*/ | |
automationWriteMode(): SettableEnumValue; | |
/** | |
* Registers an observer that reports the current automation write mode. | |
* | |
* @param callback | |
* a callback function that receives a single string argument. Possible values are `"latch"`, | |
* `"touch"` or `"write"`. | |
* @since API version 1 | |
* @deprecated Use {@link #automationWriteMode()} instead. | |
*/ | |
addAutomationWriteModeObserver(callback: EnumValueChangedCallback): void; | |
/** | |
* Value that reports if automation write is currently enabled for the arranger. | |
* | |
* @since API version 2 | |
*/ | |
isArrangerAutomationWriteEnabled(): SettableBooleanValue; | |
/** | |
* Registers an observer that reports if Bitwig Studio is currently writing arranger automation. | |
* | |
* @param callback | |
* a callback function that receives a single boolean argument (`true` when arranger automation | |
* write is enabled, `false` otherwise). | |
* @since API version 1 | |
* @deprecated Use {@link #isArrangerAutomationWriteEnabled()} instead. | |
*/ | |
addIsWritingArrangerAutomationObserver( | |
callback: BooleanValueChangedCallback | |
): void; | |
/** | |
* Value that reports if automation write is currently enabled on the clip launcher. | |
* | |
* @since API version 2 | |
*/ | |
isClipLauncherAutomationWriteEnabled(): SettableBooleanValue; | |
/** | |
* Registers an observer that reports if Bitwig Studio is currently writing clip launcher automation. | |
* | |
* @param callback | |
* a callback function that receives a single boolean argument (`true` when clip launcher | |
* automation write is enabled, `false` otherwise). | |
* @since API version 1 | |
* @deprecated Use {@link #isClipLauncherAutomationWriteEnabled()} instead. | |
*/ | |
addIsWritingClipLauncherAutomationObserver( | |
callback: BooleanValueChangedCallback | |
): void; | |
/** | |
* Value that indicates if automation override is currently on. | |
* | |
* @since API version 2 | |
*/ | |
isAutomationOverrideActive(): BooleanValue; | |
/** | |
* Registers an observer that reports if automation is overridden in Bitwig Studio. | |
* | |
* @param callback | |
* a callback function that receives a single boolean argument (`true` if overridden, `false` | |
* otherwise). | |
* @since API version 1 | |
* @deprecated Use {@link #isAutomationOverrideActive()}.addValueObserver(callback) | |
*/ | |
addAutomationOverrideObserver(callback: BooleanValueChangedCallback): void; | |
/** | |
* Value that indicates if the loop is currently active or not. | |
* | |
* @since API version 2 | |
*/ | |
isArrangerLoopEnabled(): SettableBooleanValue; | |
/** | |
* Registers an observer that reports if arranger looping is enabled in Bitwig Studio. | |
* | |
* @param callback | |
* a callback function that receives a single boolean argument (`true` when enabled, `false` | |
* otherwise). | |
* @since API version 1 | |
* @deprecated Use {@link #isArrangerLoopEnabled()}.addValueObserver(callback) | |
*/ | |
addIsLoopActiveObserver(callback: BooleanValueChangedCallback): void; | |
/** | |
* Value that reports if punch-in is enabled in the Bitwig Studio transport. | |
* | |
* @since API version 2 | |
*/ | |
isPunchInEnabled(): SettableBooleanValue; | |
/** | |
* Registers an observer that reports if punch-in is enabled in the Bitwig Studio transport. | |
* | |
* @param callback | |
* a callback function that receives a single boolean argument (`true` when punch-in is enabled, | |
* `false` otherwise). | |
* @since API version 1 | |
* @deprecated Use {@link #isPunchInEnabled()} instead. | |
*/ | |
addPunchInObserver(callback: BooleanValueChangedCallback): void; | |
/** | |
* Value that reports if punch-in is enabled in the Bitwig Studio transport. | |
* | |
* @since API version 2 | |
*/ | |
isPunchOutEnabled(): SettableBooleanValue; | |
/** | |
* Registers an observer that reports if punch-out is enabled in the Bitwig Studio transport. | |
* | |
* @param callback | |
* a callback function that receives a single boolean argument (`true` when punch-out is enabled, | |
* `false` otherwise). | |
* @since API version 1 | |
* @deprecated Use {@link #isPunchOutEnabled()} instead. | |
*/ | |
addPunchOutObserver(callback: BooleanValueChangedCallback): void; | |
/** | |
* Value that reports if the metronome is enabled in Bitwig Studio. | |
* | |
* @since API version 2 | |
*/ | |
isMetronomeEnabled(): SettableBooleanValue; | |
/** | |
* Registers an observer that reports if the metronome is enabled in Bitwig Studio. | |
* | |
* @param callback | |
* a callback function that receives a single boolean argument (`true` when the metronome is | |
* enabled, `false` otherwise). | |
* @since API version 1 | |
* @deprecated Use {@link #isMetronomeEnabled()} instead. | |
*/ | |
addClickObserver(callback: BooleanValueChangedCallback): void; | |
/** | |
* Value that reports if the metronome has tick playback enabled. | |
* | |
* @since API version 2 | |
*/ | |
isMetronomeTickPlaybackEnabled(): SettableBooleanValue; | |
/** | |
* Registers an observer that reports if the metronome has tick playback enabled. | |
* | |
* @param callback | |
* a callback function that receives a single boolean argument (`true` if metronome ticks, are | |
* enabled, `false` otherwise). | |
* @since API version 1 | |
* @deprecated Use {@link #isMetronomeTickPlaybackEnabled()} instead. | |
*/ | |
addMetronomeTicksObserver(callback: BooleanValueChangedCallback): void; | |
/** | |
* Value that reports the metronome volume. | |
* | |
* @since API version 2 | |
*/ | |
metronomeVolume(): SettableRangedValue; | |
/** | |
* Registers an observer that reports the metronome volume. | |
* | |
* @param callback | |
* a callback function that receives a single numeric argument. | |
* @since API version 1 | |
* @deprecated Use {@link #metronomeVolume()} instead. | |
*/ | |
addMetronomeVolumeObserver(callback: DoubleValueChangedCallback): void; | |
/** | |
* Value that reports if the metronome is audible during pre-roll. | |
* | |
* @since API version 2 | |
*/ | |
isMetronomeAudibleDuringPreRoll(): SettableBooleanValue; | |
/** | |
* Registers an observer that reports if the metronome is audible during pre-roll. | |
* | |
* @param callback | |
* a callback function that receives a single boolean argument. | |
* @since API version 1 | |
* @deprecated Use {@link #isMetronomeAudibleDuringPreRoll()} instead. | |
*/ | |
addPreRollClickObserver(callback: BooleanValueChangedCallback): void; | |
/** | |
* Value that reports the current pre-roll setting. Possible values are `"none"`, `"one_bar"`, | |
* `"two_bars"`, or `"four_bars"`. | |
* | |
* @since API version 2 | |
*/ | |
preRoll(): SettableEnumValue; | |
/** | |
* Registers an observer that reports the current pre-roll setting. | |
* | |
* @param callback | |
* a callback function that receives a single string argument. Possible values are `"none"`, | |
* `"one_bar"`, `"two_bars"`, or `"four_bars"`. | |
* @since API version 1 | |
* @deprecated Use {@link #preRoll()} instead. | |
*/ | |
addPreRollObserver(callback: EnumValueChangedCallback): void; | |
/** | |
* Toggles the enabled state of the arranger loop in Bitwig Studio. | |
* | |
* @since API version 1 | |
* @deprecated Use {@link #isArrangerLoopEnabled()} instead. | |
*/ | |
toggleLoop(): void; | |
/** | |
* Enables of disables the arranger loop according to the given parameter. | |
* | |
* @param isEnabled | |
* `true` to enable the arranger loop, `false` otherwise | |
* @since API version 1 | |
* @deprecated Use {@link #isArrangerLoopEnabled()} instead. | |
*/ | |
setLoop(isEnabled: boolean): void; | |
/** | |
* Toggles the punch-in enabled state of the Bitwig Studio transport. | |
* | |
* @since API version 1 | |
* @deprecated Use {@link #isPunchInEnabled()} instead. | |
*/ | |
togglePunchIn(): void; | |
/** | |
* Toggles the punch-out enabled state of the Bitwig Studio transport. | |
* | |
* @since API version 1 | |
* @deprecated Use {@link #isPunchOutEnabled()} instead. | |
*/ | |
togglePunchOut(): void; | |
/** | |
* Toggles the metronome enabled state of the Bitwig Studio transport. | |
* | |
* @since API version 1 | |
* @deprecated Use {@link #isMetronomeEnabled()} instead. | |
*/ | |
toggleClick(): void; | |
/** | |
* Enables of disables the metronome according to the given parameter. | |
* | |
* @param isEnabled | |
* `true` to enable the metronome, `false` otherwise | |
* @since API version 1 | |
* @deprecated Use {@link #isMetronomeEnabled()} instead. | |
*/ | |
setClick(isEnabled: boolean): void; | |
/** | |
* Toggles the enabled state of the metronome ticks. | |
* | |
* @since API version 1 | |
* @deprecated Use {@link #isMetronomeTickPlaybackEnabled()} instead. | |
*/ | |
toggleMetronomeTicks(): void; | |
/** | |
* Toggles the enabled state of the metronome during pre-roll. | |
* | |
* @since API version 1 | |
* @deprecated Use {@link #isMetronomeAudibleDuringPreRoll()} instead. | |
*/ | |
toggleMetronomeDuringPreRoll(): void; | |
/** | |
* Updates the transport pre-roll setting according to the given parameter. | |
* | |
* @param value | |
* the new pre-roll setting, either `"none"`, `"one_bar"`, `"two_bars"`, or `"four_bars"`. | |
* @since API version 1 | |
* @deprecated Use {@link #preRoll()} instead. | |
*/ | |
setPreRoll(value: string): void; | |
/** | |
* Sets the metronome volume. | |
* | |
* @param amount | |
* the new metronome volume relative to the specified range. Values should be in the range | |
* [0..range-1]. | |
* @param range | |
* the range of the provided amount value | |
* @since API version 1 | |
* @deprecated Use {@link #metronomeVolume()} instead. | |
*/ | |
setMetronomeValue(amount: number, range: number): void; | |
/** | |
* Toggles the over-dubbing enabled state of the Bitwig Studio transport. | |
* | |
* @since API version 1 | |
* @deprecated Use {@link #isArrangerOverdubEnabled()} instead. | |
*/ | |
toggleOverdub(): void; | |
/** | |
* Enables of disables arranger over-dubbing according to the given parameter. | |
* | |
* @param isEnabled | |
* `true` to enable over-dubbing, `false` otherwise | |
* @since API version 1 | |
* @deprecated Use {@link #isArrangerOverdubEnabled()} instead. | |
*/ | |
setOverdub(isEnabled: boolean): void; | |
/** | |
* Toggles clip launcher overdubbing in Bitwig Studio. | |
* | |
* @since API version 1 | |
* @deprecated Use {@link #isClipLauncherOverdubEnabled()} instead. | |
*/ | |
toggleLauncherOverdub(): void; | |
/** | |
* Enables of disables clip launcher over-dubbing according to the given parameter. | |
* | |
* @param isEnabled | |
* `true` to enable the over-dubbing, `false` otherwise | |
* @since API version 1 | |
* @deprecated Use {@link #isClipLauncherOverdubEnabled()} instead. | |
*/ | |
setLauncherOverdub(isEnabled: boolean): void; | |
/** | |
* Sets the automation write mode. | |
* | |
* @param mode | |
* the string that identifies the new automation write mode. Possible values are `"latch"`, | |
* `"touch"` or `"write"`. | |
* @since API version 1 | |
* @deprecated Use {@link #automationWriteMode()} instead. | |
*/ | |
setAutomationWriteMode(mode: string): void; | |
/** | |
* Toggles the latch automation write mode in the Bitwig Studio transport. | |
* | |
* @since API version 1 | |
*/ | |
toggleLatchAutomationWriteMode(): void; | |
/** | |
* Toggles the arranger automation write enabled state of the Bitwig Studio transport. | |
* | |
* @since API version 1 | |
*/ | |
toggleWriteArrangerAutomation(): void; | |
/** | |
* Toggles the clip launcher automation write enabled state of the Bitwig Studio transport. | |
* | |
* @since API version 1 | |
*/ | |
toggleWriteClipLauncherAutomation(): void; | |
/** | |
* Resets any automation overrides in Bitwig Studio. | |
* | |
* @since API version 1 | |
*/ | |
resetAutomationOverrides(): void; | |
/** | |
* Switches playback to the arrangement sequencer on all tracks. | |
* | |
* @since API version 1 | |
*/ | |
returnToArrangement(): void; | |
/** | |
* Returns an object that provides access to the project tempo. | |
* | |
* @return the requested tempo value object | |
* @since API version 1 | |
* @deprecated Use {@link #tempo()} instead. | |
*/ | |
getTempo(): Parameter; | |
/** | |
* Returns an object that provides access to the project tempo. | |
* | |
* @return the requested tempo value object | |
* @since API version 1 | |
*/ | |
tempo(): Parameter; | |
/** | |
* Increases the project tempo value by the given amount, which is specified relative to the given range. | |
* | |
* @param amount | |
* the new tempo value relative to the specified range. Values should be in the range | |
* [0..range-1]. | |
* @param range | |
* the range of the provided amount value | |
* @since API version 1 | |
*/ | |
increaseTempo(amount: number, range: number): void; | |
/** | |
* Returns an object that provides access to the transport position in Bitwig Studio. | |
* | |
* @return a beat time object that represents the transport position | |
* @since API version 1 | |
*/ | |
getPosition(): SettableBeatTimeValue; | |
/** | |
* Returns an object that provides access to the current transport position. | |
* | |
* @return beat-time value | |
* @since API version 10 | |
*/ | |
playPosition(): BeatTimeValue; | |
/** | |
* Returns an object that provides access to the current transport position in seconds. | |
* | |
* @return value (seconds) | |
* @since API version 10 | |
*/ | |
playPositionInSeconds(): DoubleValue; | |
/** | |
* Returns an object that provides access to the transport's play-start position. (blue triangle) | |
* | |
* @return beat-time value | |
* @since API version 10 | |
*/ | |
playStartPosition(): SettableBeatTimeValue; | |
/** | |
* Returns an object that provides access to the transport's play-start position in seconds. (blue triangle) | |
* | |
* @return value (seconds) | |
* @since API version 10 | |
*/ | |
playStartPositionInSeconds(): SettableDoubleValue; | |
/** | |
* Make the transport jump to the play-start position. | |
* | |
* @since API version 10 | |
*/ | |
launchFromPlayStartPosition(): void; | |
launchFromPlayStartPositionAction(): HardwareActionBindable; | |
/** | |
* Make the transport jump to the play-start position. | |
* | |
* @since API version 10 | |
*/ | |
jumpToPlayStartPosition(): void; | |
jumpToPlayStartPositionAction(): HardwareActionBindable; | |
/** | |
* Make the transport jump to the previous cue marker. | |
* | |
* @since API version 10 | |
*/ | |
jumpToPreviousCueMarker(): void; | |
jumpToPreviousCueMarkerAction(): HardwareActionBindable; | |
/** | |
* Make the transport jump to the previous cue marker. | |
* | |
* @since API version 10 | |
*/ | |
jumpToNextCueMarker(): void; | |
jumpToNextCueMarkerAction(): HardwareActionBindable; | |
/** | |
* Sets the transport playback position to the given beat time value. | |
* | |
* @param beats | |
* the new playback position in beats | |
* @since API version 1 | |
*/ | |
setPosition(beats: number): void; | |
/** | |
* Increases the transport position value by the given number of beats, which is specified relative to the | |
* given range. | |
* | |
* @param beats | |
* the beat time value that gets added to the current transport position. Values have double | |
* precision and can be positive or negative. | |
* @param snap | |
* when `true` the actual new transport position will be quantized to the beat grid, when `false` | |
* the position will be increased exactly by the specified beat time | |
* @since API version 1 | |
*/ | |
incPosition(beats: number, snap: boolean): void; | |
/** | |
* Returns an object that provides access to the punch-in position in the Bitwig Studio transport. | |
* | |
* @return a beat time object that represents the punch-in position | |
* @since API version 1 | |
*/ | |
getInPosition(): SettableBeatTimeValue; | |
/** | |
* Returns an object that provides access to the punch-out position in the Bitwig Studio transport. | |
* | |
* @return a beat time object that represents the punch-out position | |
* @since API version 1 | |
*/ | |
getOutPosition(): SettableBeatTimeValue; | |
/** | |
* Returns an object that provides access to the cross-fader, used for mixing between A/B-channels as | |
* specified on the Bitwig Studio tracks. | |
* | |
* @see Track#getCrossFadeMode() | |
* @since API version 1 | |
* @deprecated Use {@link #crossfade()} instead. | |
*/ | |
getCrossfade(): Parameter; | |
/** | |
* Returns an object that provides access to the cross-fader, used for mixing between A/B-channels as | |
* specified on the Bitwig Studio tracks. | |
* | |
* @see Track#getCrossFadeMode() | |
* @since API version 5 | |
*/ | |
crossfade(): Parameter; | |
/** | |
* Returns an object that provides access to the transport time signature. | |
* | |
* @return the time signature value object that represents the transport time signature. | |
* @since API version 1 | |
* @deprecated Use {@link #timeSignature()} instead. | |
*/ | |
getTimeSignature(): TimeSignatureValue; | |
/** | |
* Returns an object that provides access to the transport time signature. | |
* | |
* @return the time signature value object that represents the transport time signature. | |
* @since API version 5 | |
*/ | |
timeSignature(): TimeSignatureValue; | |
/** | |
* Value that reports the current clip launcher post recording action. Possible values are `"off"`, | |
* `"play_recorded"`, `"record_next_free_slot"`, `"stop"`, `"return_to_arrangement"`, | |
* `"return_to_previous_clip"` or `"play_random"`. | |
* | |
* @since API version 2 | |
*/ | |
clipLauncherPostRecordingAction(): SettableEnumValue; | |
/** | |
* Registers an observer that reports the current clip launcher post recording action. | |
* | |
* @param callback | |
* a callback function that receives a single string argument. Possible values are `"off"`, | |
* `"play_recorded"`, `"record_next_free_slot"`, `"stop"`, `"return_to_arrangement"`, | |
* `"return_to_previous_clip"` or `"play_random"`. | |
* @since API version 1 | |
* @deprecated Use {@link #clipLauncherPostRecordingAction()} instead. | |
*/ | |
addClipLauncherPostRecordingActionObserver( | |
callback: EnumValueChangedCallback | |
): void; | |
/** | |
* Sets the automation write mode. | |
* | |
* @param action | |
* the string that identifies the new automation write mode. Possible values are `"off"`, | |
* `"play_recorded"`, `"record_next_free_slot"`, `"stop"`, `"return_to_arrangement"`, | |
* `"return_to_previous_clip"` or `"play_random"`. | |
* @since API version 1 | |
* @deprecated Use {@link #clipLauncherPostRecordingAction()} instead. | |
*/ | |
setClipLauncherPostRecordingAction(action: string): void; | |
/** | |
* Returns an object that provides access to the clip launcher post recording time offset. | |
* | |
* @return a beat time object that represents the post recording time offset | |
* @since API version 1 | |
*/ | |
getClipLauncherPostRecordingTimeOffset(): SettableBeatTimeValue; | |
/** | |
* Setting for the default launch quantization. | |
* | |
* Possible values are `"none"`, `"8"`, `"4"`, `"2"`, `"1"`, `"1/2"`, `"1/4"`, `"1/8"`, `"1/16"`. | |
* | |
* @since API version 8 | |
*/ | |
defaultLaunchQuantization(): SettableEnumValue; | |
} | |
// source: com/bitwig/extension/controller/api/UsbDevice.java | |
import UsbDeviceMatcher = com.bitwig.extension.controller.UsbDeviceMatcher; | |
import UsbInterfaceMatcher = com.bitwig.extension.controller.UsbInterfaceMatcher; | |
/** | |
* Defines a USB device that is available for communication. | |
* | |
* @since API version 7 | |
*/ | |
interface UsbDevice extends HardwareDevice { | |
/** | |
* The {@link UsbDeviceMatcher} that was provided by the controller for identifying this device. | |
* | |
*/ | |
deviceMatcher(): UsbDeviceMatcher; | |
/** The list of {@link UsbInterface}s that have been opened for this device. */ | |
ifaces(): List<UsbInterface>; | |
/** | |
* The {@link UsbInterface} that was claimed using the {@link UsbInterfaceMatcher} defined at the | |
* corresponding index in the {@link UsbDeviceMatcher}. | |
*/ | |
iface(index: number): UsbInterface; | |
} | |
// source: com/bitwig/extension/controller/api/UsbInputPipe.java | |
interface UsbInputPipe extends UsbPipe, InputPipe {} | |
// source: com/bitwig/extension/controller/api/UsbInterface.java | |
interface UsbInterface { | |
/** | |
* The {@link UsbInterfaceMatcher} that was provided by the controller for identifying this device. | |
* | |
* */ | |
interfaceMatcher(): UsbInterfaceMatcher; | |
/** The list of pipes that have been opened for this interface. */ | |
pipes(): List<UsbPipe>; | |
pipe(index: number): UsbPipe; | |
pipeCount(): number; | |
} | |
// source: com/bitwig/extension/controller/api/UsbOutputPipe.java | |
interface UsbOutputPipe extends UsbPipe, OutputPipe {} | |
// source: com/bitwig/extension/controller/api/UsbPipe.java | |
import UsbEndpointMatcher = com.bitwig.extension.controller.UsbEndpointMatcher; | |
/** | |
* Defines a pipe for talking to an endpoint on a USB device. | |
* | |
* @since API version 7 | |
*/ | |
interface UsbPipe extends Pipe { | |
/** | |
* The device this endpoint is on. | |
* | |
* @since API version 7 | |
*/ | |
device(): UsbDevice; | |
/** | |
* The {@link UsbEndpointMatcher} that was provided by the controller for identifying the endpoint to use | |
* for communication. | |
*/ | |
endpointMatcher(): UsbEndpointMatcher; | |
/** | |
* The endpoint address on the device that this endpoint is for. | |
* | |
* @since API version 7 | |
*/ | |
endpointAddress(): number; | |
/** {@link UsbTransferDirection} for this pipe. */ | |
direction(): UsbTransferDirection; | |
/** The {@link UsbTransferType} type that this pipe uses for communicating with the USB device. */ | |
transferType(): UsbTransferType; | |
} | |
// source: com/bitwig/extension/controller/api/UsbTransferDirection.java | |
enum UsbTransferDirection { | |
IN = 0, | |
OUT = 1, | |
} | |
// source: com/bitwig/extension/controller/api/UsbTransferStatus.java | |
enum UsbTransferStatus { | |
Completed = 0, | |
Error = 1, | |
TimedOut = 2, | |
Cancelled = 3, | |
Stall = 4, | |
NoDevice = 5, | |
Overflow = 6, | |
} | |
// source: com/bitwig/extension/controller/api/UsbTransferType.java | |
enum UsbTransferType { | |
BULK = 0, | |
INTERRUPT = 1, | |
} | |
// source: com/bitwig/extension/controller/api/UserControlBank.java | |
/** | |
* Instances of this interface represent a bank of custom controls that can be manually learned to device | |
* parameters by the user. | |
* | |
* @since API version 1 | |
*/ | |
interface UserControlBank { | |
/** | |
* Gets the user control at the given bank index. | |
* | |
* @param index | |
* the index of the control within the bank | |
* @return the requested user control object | |
* @since API version 1 | |
*/ | |
getControl(index: number): Parameter; | |
} | |
// source: com/bitwig/extension/controller/api/Value.java | |
import ValueChangedCallback = com.bitwig.extension.callback.ValueChangedCallback; | |
/** | |
* The common interface that is shared by all value objects in the controller API. | |
* | |
* @since API version 1 | |
*/ | |
interface Value< | |
ObserverType extends ValueChangedCallback = ValueChangedCallback | |
> extends Subscribable { | |
/** | |
* Marks this value as being of interest to the driver. This can only be called once during the driver's | |
* init method. A value that is of interest to the driver can be obtained using the value's get method. If | |
* a value has not been marked as interested then an error will be reported if the driver attempts to get | |
* the current value. Adding an observer to a value will automatically mark this value as interested. | |
* | |
* @since API version 2 | |
*/ | |
markInterested(): void; | |
/** | |
* Registers an observer that reports the current value. | |
* | |
* @param callback | |
* a callback function that receives a single parameter | |
* @since API version 1 | |
*/ | |
addValueObserver(callback: ObserverType): void; | |
} | |
} | |
declare namespace java { | |
namespace nio { | |
type ByteBuffer = any; | |
} | |
namespace util { | |
type List<T> = Array<T>; | |
type UUID = string; | |
namespace funktion { | |
type BooleanSupplier = { | |
getAsBoolean(): boolean; | |
}; | |
type Consumer<T = any> = { | |
accept(t: T): void; | |
andThen(after: Consumer<T>): Consumer<T>; | |
}; | |
type Supplier<T = any> = { | |
get(): T; | |
}; | |
type DoubleConsumer = { | |
accept(double: number): void; | |
andThen(after: DoubleConsumer): DoubleConsumer; | |
}; | |
type DoubleSupplier = { | |
getAsDouble(): number; | |
}; | |
type IntConsumer = { | |
accept(int: number): void; | |
andThen(after: IntConsumer): IntConsumer; | |
}; | |
type IntSupplier = { | |
getAsInt(): number; | |
}; | |
interface Function<T = any, R = any> { | |
andThen(after: Function): Function<T>; | |
apply(t: T): R; | |
compose(before: Function): Function<any, R>; | |
} | |
type IntFunction<R = any> = { | |
apply(value: number): R; | |
}; | |
} | |
} | |
} | |
import API = com.bitwig.extension.controller.api; | |
declare const host: API.ControllerHost; | |
declare const loadAPI: typeof host.loadAPI; | |
declare const load: typeof host.load; | |
declare const println: typeof host.println; | |
declare const errorln: typeof host.errorln; | |
declare function dump(obj: any): void; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment