Skip to content

7.3.0

Compare
Choose a tag to compare
@github-actions github-actions released this 24 Nov 20:10
· 134 commits to main since this release
167f73b

Added

  • Precise position packets sent by CDJ-3000s are processed and used to keep track of the exact playback position of these players with much higher fidelity than is possible for other players, even when they are not currently playing.
  • Recognition of dynamic loop information sent by CDJ-3000s, including display of such loops in the WaveformDetailComoponent. This means that even loops which do not exist within the track metadata can be displayed on CDJ-3000s, and for such players inactive loops can be drawn in gray rather than the usual orange.
  • A new utility function to calculate a raw pitch integer value given a human-oriented pitch percentage value, because the new precise position packets sent by the CDJ-3000 use the humane approach.
  • A convenience method on TrackPositionUpdate which returns the beat within bar represented by that track position.
  • We can now recognize loaded menu items that represent a track title plus musical key.

Fixed

  • We now send startup and keep-alive packets in a way that is compatible even with CDJ-3000s that are using player numbers 5 and 6 (they no longer display a warning dialog nor drop off the network).
  • The calculation of pitch percentages from pitch values found in CDJ status packets was slightly inaccurate because of two transposed digits in a calculation.
  • The code that detects pre-nexus CDJs was confused by the CDJ-3000.
  • Sometimes beat packets can come after a status packet at the very beginning of a new beat, and this used to cause the beat number to jump up and back down.
  • The clipping region was not being set correctly when painting phrase information at the bottom of the waveform detail component, which could cause the fill dots to extend beyond the edge of the component in certain circumstances.
  • The code to clear out the device name buffer when setting a new device name for the VirtualCdj was using the wrong value for toIndex (I had thought the argument was a length instead), so long names were not being properly cleared out.

Changed

  • The TrackPositionUpdate class has a new field, precise, which reports whether we are receiving precise position updates from the player.
  • When determining the item type of a menu item response message, we now mask the menu item type (field 7) with 0xffff, because CDJ-3000s seem to send additional (as yet unknown) information in the higher-order bytes.