Options
All
  • Public
  • Public/Protected
  • All
Menu

prolink-connect

Index

Type aliases

Album: { id: number; name: string }

Type declaration

  • id: number
  • name: string
Artist: { id: number; name: string }

Type declaration

  • id: number
  • name: string
Artwork: { id: number; path?: string }

Type declaration

  • id: number
  • Optional path?: string
BeatGrid: { bpm: number; count: 1 | 2 | 3 | 4; offset: number }[]

A beat grid is a series of offsets from the start of the track. Each offset indicates what count within the measure it is along with the BPM.

Color: { id: number; name: string }

Type declaration

  • id: number
  • name: string
ConnectedProlinkNetwork: ProlinkNetwork & { [ P in ConnectedServices]: NonNullable<ProlinkNetwork[P]> } & { isConfigured: true; state: Connected }
CueAndLoop: CuePoint | Loop | Hotcue | Hotloop
CuePoint: { color?: CueColor; label?: string; offset: number; type: "cue_point" }

Represents a single cue point. On older exports the label and color may be undefined.

Type declaration

  • Optional color?: CueColor

    RGB values of the hotcue color

  • Optional label?: string

    The comment associated to the cue point

  • offset: number

    Number of milliseconds from the start of the track.

  • type: "cue_point"
Device: { id: DeviceID; ip: Address4; lastActive?: Date; macAddr: Uint8Array; name: string; type: DeviceType }

Represents a device on the prolink network.

Type declaration

  • id: DeviceID
  • ip: Address4
  • Optional lastActive?: Date
  • macAddr: Uint8Array
  • name: string
  • type: DeviceType
DeviceID: number

The 8-bit identifier of the device on the network

FetchProgress: { read: number; total: number }

Type declaration

  • read: number
  • total: number
Genre: { id: number; name: string }

Type declaration

  • id: number
  • name: string
Hotcue: BareCuePoint & { button: HotcueButton; type: "hot_cue" }

A hotcue is like a cue point, but also includes the button it is assigned to.

Hotloop: { type: "hot_loop" } & (Omit<Hotcue, "type"> & Omit<Loop, "type">)

A hot loop, this is the union of a hotcue and a loop.

HydrationProgress: { complete: number; table: string; total: number }

Details about the current state of the hydtration task

Type declaration

  • complete: number

    The completed number of progress steps

  • table: string

    The specific table that progress is being reported for

  • total: number

    The total progress steps for this table

Key: { id: number; name: string }

Type declaration

  • id: number
  • name: string
Label: { id: number; name: string }

Type declaration

  • id: number
  • name: string
Loop: BareCuePoint & { length: number; type: "loop" }

A loop, similar to a cue point, but includes a length.

MediaSlotInfo: { color: MediaColor; createdDate: Date; deviceId: DeviceID; freeBytes: BigInt; hasSettings: boolean; name: string; playlistCount: number; slot: MediaSlot; totalBytes: BigInt; trackCount: number; tracksType: TrackType }

Details of a particular media slot on the CDJ

Type declaration

  • color: MediaColor

    The rekordbox configured color of the media connected

  • createdDate: Date

    Creation date

  • deviceId: DeviceID

    The device the slot physically exists on

  • freeBytes: BigInt

    Number of free bytes available on the media

  • hasSettings: boolean

    True when a rekordbox 'my settings' file has been exported to the media

  • name: string

    The name of the media connected

  • playlistCount: number

    Same as track count, except for playlists

  • slot: MediaSlot

    The slot type

  • totalBytes: BigInt

    Number of bytes used on the media

  • trackCount: number

    Total number of rekordbox tracks on the media. Will be zero if there is no rekordbox database on the media

  • tracksType: TrackType

    Specifies the available tracks type on the media

MixstatusConfig: { allowedInterruptBeats: number; beatsUntilReported: number; mode: MixstatusMode; timeBetweenSets: number; useOnAirStatus: boolean }

Type declaration

  • allowedInterruptBeats: number

    Configures how many beats a track may not be live or playing for it to still be considered active.

    default

    8 (two bars)

  • beatsUntilReported: number

    Configures how many beats the track must consecutively be playing for (since the beat it was cued at) until the track is considered to be active.

    Used for MixstatusMode.SmartTiming

    default

    128 (2 phrases)

  • mode: MixstatusMode

    Selects the mixstatus reporting mode

  • timeBetweenSets: number

    Specifies the duration in seconds that no tracks must be on air. This can be thought of as how long 'air silence' is reasonable in a set before a separate one is considered have begun.

    default

    30 (half a minute)

  • useOnAirStatus: boolean

    Indicates if the status objects reported should have their on-air flag read. Setting this to false will degrade the functionality of the processor such that it will not consider the value of isOnAir and always assume CDJs are live.

    default

    true

NetworkConfig: { iface: NetworkInterfaceInfoIPv4; vcdjId: number }

Type declaration

  • iface: NetworkInterfaceInfoIPv4

    The network interface to listen for devices on the network over

  • vcdjId: number

    The ID of the virtual CDJ to pose as.

    IMPORTANT:

    You will likely want to configure this to be > 6, however it is important to note, if you choose an ID within the 1-6 range, no other CDJ may exist on the network using that ID. you CAN NOT have 6 CDJs if you're using one of their slots.

    However, should you want to make metadata queries to a unanalized media device connected to the CDJ, or metadata queries for CD disc data, you MUST use a ID within the 1-6 range, as the CDJs will not respond to metadata requests outside of the range of 1-6

    Note that rekordbox analized media connected to the CDJ is accessed out of band of the networks remote database protocl, and is not limited by this restriction.

Playlist: { id: number; isFolder: boolean; name: string; parentId: number | null }

Type declaration

  • id: number
  • isFolder: boolean
  • name: string
  • parentId: number | null
PlaylistContents: { folders: Playlist[]; playlists: Playlist[]; totalTracks: number; tracks: AsyncIterable<Track> }

Represents the contents of a playlist

Type declaration

  • folders: Playlist[]

    The folders in this playlist.

  • playlists: Playlist[]

    The playlists in this playlist.

  • totalTracks: number

    The total number of tracks in this playlist.

  • tracks: AsyncIterable<Track>

    The tracks in this playlist. This is an AsyncIterator as looking up track metadata may be slow when connected to the remote database.

PlaylistEntry<withFKs>: { id: number; sortIndex: number } & (withFKs extends WithFKs ? PlaylistEntryFks : PlaylistEntryRelations)

Type parameters

Track<withFKs>: { analyzeDate?: Date; analyzePath?: string; autoloadHotcues?: boolean; beatGrid: BeatGrid | null; bitrate?: number; comment: string; cueAndLoops: CueAndLoop[] | null; dateAdded?: Date; discNumber?: number; duration: number; fileName: string; filePath: string; fileSize?: number; id: number; kuvoPublic?: boolean; mixName?: string; playCount?: number; rating: number; releaseDate?: string; sampleDepth?: number; sampleRate?: number; tempo: number; title: string; trackNumber?: number; waveformHd: WaveformHD | null; year?: number } & (withFKs extends WithFKs ? TrackFks : TrackRelations)

Represents a track.

Note, fields that are not optional will be set for all database request methods.

Type parameters

WaveformDetailed: WaveformSegment[]

Detailed waveforms have 150 segments per second of audio (150 'half frames' per second of audio).

WaveformHD: WaveformHDSegment[]

HD waveforms have 150 segments per second of audio (150 'half frames' per second of audio).

WaveformPreview: WaveformSegment[]

The waveform preview will be 400 segments of data.

Waveforms: { waveformHd: WaveformHD }

The result of looking up track waveforms

Type declaration

  • waveformHd: WaveformHD

    The full-size and full-color waveform

Functions

  • Brings the Prolink network online.

    This is the primary entrypoint for connecting to the prolink network.

    Parameters

    Returns Promise<ProlinkNetwork>

Generated using TypeDoc