translateUmpToMidi1Bytes

fun translateUmpToMidi1Bytes(dst: MutableList<Byte>, src: Sequence<Ump>, context: UmpToMidi1BytesTranslatorContext = UmpToMidi1BytesTranslatorContext()): Int

Converts UMP stream (of either MIDI 1.0 or 2.0) to MIDI 1.0 bytestream, as per Default Translation, with SMF delta time extension (otional). JR Timestamps are expressed as SMF delta time field in a MIDI event. As our MidiMusic2 can hold JR Timestamp fields to actually represent SMF-compatible ticks (i.e. they need to be converted to UMP compatible JR Timestamp to conform to UMP specification), the input UMP stream could contain such JR Timestamps (it is indeed intended to convert Midi2Music track contents to SMF compatible events).

treatJRTimestampAsSmfDeltaTime argument determines whether this function converts JR Timestamp values into SMPTE offset OR NOT. In SMP, the deltaTime values can be either SMPTE offsets or tempo based ticks. In argument UMP stream, the deltaTime values can be either JR Timestamp of tempo based ticks (note that the ticks are NOT conforming to UMP spec. as explained above). If the JR Timestamp value is NOT of the tempo based ticks, then we have to convert JR Timestamps (of 1/31250 seconds) to SMPTE offsets.

When do you NOT need delta time information when translating MIDI2 UMP stream that contain JR Timestamps? I cannot think of any usage scenario. IMO you will always need delta times. But if you REALLY do not need them, then you can skip delta times by skipDeltaTime = true.