78 std::array<
std::uint8_t, 8> pieces_{};
79 std::uint8_t received_mask_ = 0;
80 std::uint8_t last_piece_ = 0;
82 bool have_last_piece_ =
false;
Collection of timestamped MIDI events within a single audio buffer period.
Definition buffer.hpp:31
static constexpr audio::RtSafetyClass process_rt_safety_class
Definition external_sync.hpp:114
ExternalSyncOutputResult process(const TransportSnapshot &transport, midi::MidiBuffer &output) const noexcept
ExternalSyncOutput(ExternalSyncOutputConfig config={}) noexcept
Definition external_sync.hpp:117
Allocation-free MTC decoder.
Definition external_sync.hpp:67
MtcChaseUpdate consume_sysex(std::span< const std::uint8_t > message, timebase::RationalRate sample_rate) noexcept
MtcChaseUpdate consume(const midi::MidiEvent &event, timebase::RationalRate sample_rate) noexcept
RtSafetyClass
Definition rt_safety_contract.hpp:11
@ AudioCallbackSafeAfterPrepare
Definition rt_safety_contract.hpp:13
Definition audio_renderer.hpp:20
bool valid_mtc_timecode(const MtcTimecode &timecode) noexcept
@ Complete
Definition compile_executor.hpp:15
timebase::SamplePosition mtc_timecode_to_samples(const MtcTimecode &timecode, timebase::RationalRate sample_rate) noexcept
Convert between an MTC wall-clock label and a non-negative timeline sample.
MtcDirection
Definition external_sync.hpp:51
@ Forward
Definition external_sync.hpp:54
@ Reverse
Definition external_sync.hpp:52
@ Unknown
Definition external_sync.hpp:53
@ InvalidTransport
Definition audio_renderer.hpp:218
MtcFrameRate
Definition external_sync.hpp:17
@ Fps30
Definition external_sync.hpp:21
@ Fps24
Definition external_sync.hpp:18
@ Fps2997Drop
Definition external_sync.hpp:20
@ Fps25
Definition external_sync.hpp:19
MtcTimecode samples_to_mtc_timecode(timebase::SamplePosition position, timebase::RationalRate sample_rate, MtcFrameRate frame_rate) noexcept
ExternalSyncOutputCode
Definition external_sync.hpp:93
@ OutputOverflow
Definition external_sync.hpp:99
@ InvalidFrameRate
Definition external_sync.hpp:97
@ InvalidSampleRate
Definition external_sync.hpp:96
@ Complete
Definition external_sync.hpp:94
@ InvalidOutputLimit
Definition external_sync.hpp:98
MtcChaseCode
Definition external_sync.hpp:43
@ Incomplete
Definition external_sync.hpp:45
@ Invalid
Definition external_sync.hpp:48
@ Discontinuity
Definition external_sync.hpp:47
@ Locked
Definition external_sync.hpp:46
@ Ignored
Definition external_sync.hpp:44
Definition beat_division.hpp:11
Timestamped MIDI event combining a choc::midi::ShortMessage with timing info.
Definition message.hpp:32
Definition external_sync.hpp:85
std::uint32_t max_messages_per_block
Definition external_sync.hpp:90
std::uint8_t mtc_device_id
Definition external_sync.hpp:89
bool emit_mtc
Definition external_sync.hpp:87
MtcFrameRate mtc_frame_rate
Definition external_sync.hpp:88
bool emit_midi_clock
Definition external_sync.hpp:86
Definition external_sync.hpp:102
std::uint32_t sysex_messages
Definition external_sync.hpp:105
std::uint32_t short_messages
Definition external_sync.hpp:104
ExternalSyncOutputCode code
Definition external_sync.hpp:103
Definition external_sync.hpp:57
MtcChaseCode code
Definition external_sync.hpp:58
MtcDirection direction
Definition external_sync.hpp:59
MtcTimecode timecode
Definition external_sync.hpp:60
timebase::SamplePosition position
Definition external_sync.hpp:61
Definition external_sync.hpp:24
std::uint8_t hours
Definition external_sync.hpp:25
std::uint8_t minutes
Definition external_sync.hpp:26
std::uint8_t seconds
Definition external_sync.hpp:27
constexpr auto operator<=>(const MtcTimecode &) const =default
std::uint8_t frames
Definition external_sync.hpp:28
MtcFrameRate frame_rate
Definition external_sync.hpp:29
Definition transport.hpp:71
Definition rational_time.hpp:14
Definition rational_time.hpp:9