@@ -291,7 +291,8 @@ include::example$tag_shared.edn[]
291291(draw-box (text "unknown" :math [:sub 1]) {:span 3})
292292(draw-box (text "time" :math) {:span 4})
293293(draw-box (text "loop_time" :math) {:span 4})
294- (draw-related-boxes (repeat 12 nil))
294+ (draw-box (text "c" :math [:sub "id"]))
295+ (draw-related-boxes (repeat 11 nil))
295296
296297(draw-box (text "len_comment" :math) {:span 4})
297298(draw-gap "comment" {:min-label-columns 4})
@@ -330,9 +331,16 @@ _type_ is 2, meaning that this cue stores a loop, then __loop_time__
330331at bytes{nbsp}``18``-`1b` stores the track time in milliseconds at
331332which the player should loop back to _time_.
332333
333- The next twelve bytes have an unknown purpose, but seem to have the
334- value `00`, except for the second byte which seems to have the value
335- `10`. They are followed by __len_comment__, which contains the length,
334+ Immediately after the loop time, at byte{nbsp}``1c`` is the single
335+ byte value __color_id__ (labeled _c~id~_). This holds the color,
336+ if any, assigned to memory points and loops. If it is not zero,
337+ it is the ID of a row in the <<exports.adoc#color-rows,color table>>.
338+ Hot cues do not use this value, and have their own color information
339+ later in the entry.
340+
341+ The next eleven bytes have an unknown purpose, but seem to have the
342+ value `00`, except for the first byte which seems to have the value
343+ `01`. They are followed by __len_comment__, which contains the length,
336344in bytes, of the _comment_ field which immediately follows it. If
337345__len_comment__ has a non-zero value, _comment_ will hold the text of
338346the comment, encoded as a UTF-16 Big Endian string with a trailing
@@ -342,25 +350,25 @@ trailing `NUL`).
342350
343351WARNING: Some extended cue entries are incomplete, and their
344352__len_entry__ indicates they end before the comment, or include the
345- comment but end before the color information. Code that processes them
346- needs to be prepared to handle this, and treat such partial cues as
347- having no comment and/or color.
353+ comment but end before the hot cue color information.
354+ Code that processes them needs to be prepared to handle this,
355+ and treat such partial cues as having no comment and/or hot cue color.
348356
349357Immediately after _comment_ (in other words, starting __len_comment__
350358+ `1c` past the start of the entry) there are four one-byte values
351- containing color information. __color_code__ (labeled _c_ in the
352- diagram) appears to be a code identifying the color with which
353- rekordbox displays the cue, by looking it up in a table. There have
354- been sixteen codes identified, and their corresponding RGB colors can
355- be found by looking at the
359+ containing hot cue color information. __color_code__
360+ (labeled _c_ in the diagram) appears to be a code identifying the color
361+ in which rekordbox displays the cue, by looking it up in a table.
362+ There have been sixteen codes identified, and their corresponding RGB
363+ colors can be found by looking at the
356364https://github.com/Deep-Symmetry/beat-link/blob/v0.6.1/src/main/java/org/deepsymmetry/beatlink/data/CueList.java#L457-L509[`findRecordboxColor`
357365static method] in the Beat Link library’s `CueList` class. The next
358366three bytes, __color_red__ (labeled _r_), __color_green__ (labeled
359367_g_), and __color_blue__ (labeled _b_), make up an RGB color
360368specification which is similar, but not identical, to the color that
361369rekordbox displays. We believe these are the values used to illuminate
362370the RGB LEDs in a player that has loaded the cue. When no color is
363- associated with the cue, all four of these bytes have the value `00`.
371+ associated with the hot cue, all four of these bytes have the value `00`.
364372
365373We do not know what, if anything, is stored in the remaining bytes of
366374the tag.
0 commit comments