All notable changes to prolink-connect will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Bumped many pacakges
- Require Node 20 minimum version
- Fixed a typo in
ItemType.OriginalArtist
(was mispelled asOrigianlArtist
) - Small comment correction for vCDJ ID on
autoconfigFromPeers
v0.11.0 - 2022-10-24
- Package updates. No changes
v0.10.0 - 2021-05-23
- Switch to using Player ID 7 for the virtual CDJ. Freeing up slot 5 for CDJ-3000s.
v0.9.0 - 2021-05-18
- You can now call
network.db.getPlaylist
to receive the listing for a playlist. Without specifying the playlist to lookup the root playlist will be queried.
- Remote database calls could fail for requests that result in a large number of rows. Unless you were using the remotedb query interface directly, it is unlikely you would have ran into this problem. The two implemented queries do not return enough rows to result in the error.
v0.8.1 - 2021-04-23
- Bumped to latest js-xdr to remove node Buffer warnings.
v0.8.0 - 2021-04-12
-
You can now call
network.db.getWaveforms
to load waveforms for a track. -
The
isEmergencyMode
flag has been added to the CDJStatus type. This reports if the CDJ is in an emergency loop (or just emergency mode in newer players)
v0.7.2 - 2021-02-15
- Do not import the mixstatus module in the types export, as this exports more things that we really don't want.
v0.7.1 - 2021-02-15
- Actually export
MixstatusMode
, not just the type.
v0.7.0 - 2021-02-14
ReportingMode
has been renamed toMixstatusMode
and is now exported inprolink-connect/lib/types
.
v0.6.0 - 2021-02-14
-
A new
triggerNextTrack
method has been introduced to the Mixstatus service. Calling this will immediately report the player which has been playing for the longest as now playing. -
the Mixstatus service has learned to follow master. See the changes to Mixstatus below.
-
The Mixstatus service's configuration has been restructured and has learned how to follow master.
-
reportRequiresSilence
has been removed -
A new
mode
option has been introduced that configures how the mixstatus processor will generally determine when a track change has happened. TheReportingMode
defines:SmartTiming
(the default),WaitsForSilence
(the replacement forreportRequiresSilence
), and a newFollowsMaster
mode, which simply causes tracks to be reported when the player becomes master (assuming it is on air and playing).
v0.5.0 - 2021-02-01
- Binding to the detected interface to broadcast the announcement packets is not the best approach, since we then can no longer receive broadcast packets. Instead, we can just announce to all connected devices on each announcement tick.
- Upgraded to latest Kaitai struct definitions for rekordbox database decoding. Thank you @brunchboy.
v0.4.0 - 2021-02-01
-
Bind announcement to the configured interface. This corrects an issue where prolink connect could fail to correctly connect to the CDJs when the OS's routing table did not correctly route the announce broadcast packets.
-
Disconnect all sockets when calling
disconnect
on the network.
v0.3.0 - 2020-12-03
- Allow the mixstatus processor to be configured.
v0.2.0 - 2020-11-18
-
Introduced a method to play and cue CDJs.
-
Device manager has learned
getDeviceEnsured
, which will wait until the device appears on the network before resolving. Useful for when you know a device should be on the network, but maybe has not yet announced itself -
Use
getDeviceEnsured
when querying the aggregate database. This will help with situations where a device reports having a track loaded from a device which has not yet announced itself on the network. -
A new
prolink-connect/lib/types
file is available, which only exports types and enums, and does NOT require any runtime dependencies. This may be useful when you want to use prolink-connect types in a frontend application, and do not want to accidentally bundle various node.js dependencies into your app.This specifically will fix an issue where
@sentry/node
was being bundled into frontend apps.
-
Expose the mixstatus processor as a service getter on the Network object. This makes it easier to share a single instance of the mixstatus processor within an app.
-
Remove the
mikro-orm
dependency. We now directly use SQLite to cache pdb databases locally.
-
Fixed various false-positive now-playing repostings with the mixstatus processor, along with some missing now-playing events.
This removes a huge dependency from the library, and makes consumption significantly easier if you plan to bundle your application.
There should be no API changes because of this.
-
Fixed a minor bug in trackTypeNames mapping.
-
Avoid hard errors on failed artwork lookups.
v0.1.0 - 2020-06-23
- Fixed a bug in mixstatus when ending a track by taking the deck off-air and then cueing before it finished determining if the off-air action passed the number of interrupt beats, causing the track to incorrectly NOT be cleared from having been marked as having reported itself as playing.
v0.1.0-prerelease.21 - 2020-06-17
- Initial working implementation. This is currently being used to re-implement prolink-tools.