Tabula Sonora 0.1.0
A native C++20 implementation of the Roland Sound Canvas VA synth voice
Loading...
Searching...
No Matches
ts::sequence_builder Namespace Reference

Turns a flat event list into per-part controller timelines and a note list. More...

Functions

Sequence build (std::span< const MidiEvent > events)
 Builds a sequence from a flat event list, ordered by position.
constexpr int channel_from_block (int block) noexcept
 Converts a GS block number to a MIDI channel.

Variables

constexpr int default_volume = 100
 Power-on volume after a GM or GS reset.
constexpr int default_expression = 127
 Power-on expression.
constexpr int default_pan = 64
 Power-on pan.
constexpr int default_master = 127
 Power-on master volume.
constexpr int default_reverb_send = 40
 GM default reverb send.
constexpr int default_chorus_send = 0
 GM default chorus send.

Detailed Description

Turns a flat event list into per-part controller timelines and a note list.

The engine has no MIDI output, so nothing can be read back from it: every piece of channel state has to be tracked here.

Function Documentation

◆ build()

Sequence ts::sequence_builder::build ( std::span< const MidiEvent > events)
nodiscard

Builds a sequence from a flat event list, ordered by position.

◆ channel_from_block()

int ts::sequence_builder::channel_from_block ( int block)
nodiscardconstexprnoexcept

Converts a GS block number to a MIDI channel.

The block number is not the channel: block 0 is channel 9 (the drum part), blocks 1–9 are channels 0–8, and blocks 10–15 map straight through.

Variable Documentation

◆ default_volume

int ts::sequence_builder::default_volume = 100
inlineconstexpr

Power-on volume after a GM or GS reset.

◆ default_expression

int ts::sequence_builder::default_expression = 127
inlineconstexpr

Power-on expression.

◆ default_pan

int ts::sequence_builder::default_pan = 64
inlineconstexpr

Power-on pan.

◆ default_master

int ts::sequence_builder::default_master = 127
inlineconstexpr

Power-on master volume.

◆ default_reverb_send

int ts::sequence_builder::default_reverb_send = 40
inlineconstexpr

GM default reverb send.

◆ default_chorus_send

int ts::sequence_builder::default_chorus_send = 0
inlineconstexpr

GM default chorus send.