Tabula Sonora 0.1.0
A native C++20 implementation of the Roland Sound Canvas VA synth voice
Loading...
Searching...
No Matches
Class Hierarchy
This inheritance list is sorted roughly, but not completely, alphabetically:
 Cts::AllpassStageOne allpass stage: a read tap, a write tap and the two coefficients around them
 Cts::AlternateEntryAn entry of the alternate-articulation table
 Cts::ChannelMaskPer-channel mute and solo
 Cts::ChorusPresetCoefficients for one GS chorus type
 Cts::ChorusPresetsThe eight GS chorus types plus the power-on default
 Cts::TvfChain::CoefficientsThe pair of coefficients the filter runs on for one control block
 Cts::NoteRenderer::ControllersOptional per-note controller curves
 Cts::ControllerTimelineA controller's value over time, as breakpoints
 Cts::ControlMatrixThe GS controller assignment matrix (40 2x): six sources, each with eleven depths
 Cts::ControlUpdateOne parameter set by one message
 Cts::DcBlockerThe engine's DC blocker: one design, instantiated once on each effect input
 Cts::DecodedWaveA wave decoded from the ROM, with everything playback needs
 Cts::DelayParametersCompiled coefficients for one GS delay type
 Cts::DelayPresetsThe ten GS delay types and the two published conversion tables
 Cts::DllIdentityIdentity of the SCCore.dll build every offset in the manifest is pinned to
 Cts::DrumKeyOne drum key's settings within a kit
 Cts::DrumKeyOverridesPer-part coarse-pitch and panpot overrides, set by NRPN
 Cts::DrumKitTableThe drum kit records: for each of 128 keys, which tone sounds and how it is levelled, tuned, panned and grouped
 Cts::EffectA stereo send effect fed from one mono bus
 Cts::ChorusThe GS chorus: a modulated delay line with two anti-phase taps
 Cts::ReverbThe GS reverb: a Schroeder/Dattorro tank transcribed from the engine
 Cts::SystemDelayThe GS system delay: three taps off one feedback line, behind a fixed input pre-delay
 Cts::EffectPresetsThe coefficient sets for the three GS send effects
 Cts::EffectProgrammerComputes the reverb, chorus and delay coefficient sets from the DLL's own preset tables — the managed re-implementation of the engine's start-up register program
 Cts::EfxRecordOne record of the DLL's own insertion-effect directory
 Cts::EngineNoiseThe engine's shared pseudo-random generator
 Cts::TvfChain::EnvelopeA cutoff envelope and the base cutoff its offsets are added to
 Cts::EnvelopeMachineThe segment-rate and segment-shape machine shared by the TVA, TVF and pitch envelopes
 Cts::EqBandOne shelving band: H(z) = (b0 + b1·z⁻¹) / (1 − a1·z⁻¹)
 Cts::EqPresetsThe four-band EQ block's coefficient tables — two bands, two corner frequencies each
 Cts::EqualizerThe GS four-band EQ: a low shelf and a high shelf, in series, on a stereo bus
 Cstd::exceptionSTL class
 Cstd::runtime_errorSTL class
 Cts::RomIdentityErrorThrown when the supplied SCCore.dll is not the build the table offsets are pinned to
 Cts::FrameRingA lock-free single-producer, single-consumer ring of interleaved stereo frames
 Cts::InsertionEffectThe GS insertion EFX block: one stereo effect ahead of the send network
 Cts::InterpolatorThe sampler's 4-tap FIR resampler — the single most timbre-defining element of the engine
 Cts::PitchChain::KeyFollowThe effective pitch key and its fractional crossfade weight
 Cts::ControlMatrix::LawWhat turns a summed destination into its own unit — part_mod_depth_recalc, once per destination
 Cts::LfoConfigOne LFO's static configuration
 Cts::LfoEngineThe two LFO engines that modulate every partial
 Cts::LfoRunnerOne LFO's running state: phase, delay and fade-in accumulators, stepped a control tick at a time
 Cts::LfoEngine::LimitsDepth clamp and rounding constant for a destination
 Cts::LiveRegionA region read straight from the DLL at render time rather than cached to a .bin file — the two wave-ROM banks and the drum-kit lookup tables
 Cts::MidiEventOne scheduled MIDI message
 Cts::ControlMatrix::ModulationWhat one source contributes, once its depths have been scaled by its current amount
 Cts::MultisampleZoneA key range within a multisample and the wave it selects
 Cts::TableSet::namesCache file names for every table in the manifest
 Cts::NoteRecordOne note, with every parameter latched as it was at note-on
 Cts::NoteRendererRenders one note by assembling the whole voice chain: sampler, pitch, filter, amplitude and pan
 Cts::TvfChain::OffsetsThe envelope's peak and its five stage offsets, in cutoff units relative to that peak
 Cts::PanLawThe engine's pan law: an exact 128-entry table, not a computed curve
 Cts::PartOne of the sixteen parts: the channel state a running engine keeps between events
 Cts::PartialParametersA zero-copy typed view over one 0x6e-byte partial parameter block inside a tone record
 Cts::PartModifiersThe GS part modify offsets, as the synthesis chains consume them
 Cts::PartTimelinesPer-channel controller timelines
 Cts::PatchDirectoryThe static patch directory: resolves a program change and a played note to the waves that sound, entirely from ROM tables with no engine involved
 Cts::PitchChainThe pitch side of a voice: key-follow, transposition, the pitch envelope, and bend
 Cts::PitchEnvelopeThe pitch envelope's decoded segment targets and timings
 Cts::PitchEnvelopeRunnerWalks a pitch envelope one control tick at a time
 Cts::PitchRampThe per-voice pitch ramp that glides the sampler's read rate across a control block
 Cts::ProgramReferenceA (map, bank, program) triple that resolves through the same three-level lookup
 Cts::RenderedNoteOne rendered note: stereo output plus the pre-pan mono the send buses are fed from
 Cts::RenderOptionsHow a sequence should be rendered
 Cts::RenderResultA finished render
 Cts::ResolvedPartialOne partial that sounds for a given note and velocity
 Cts::ResolvedToneThe waves that sound for one tone at a given note and velocity
 Cts::ReverbPresetCoefficients for one GS reverb type
 Cts::ReverbPresetsThe eight GS reverb types plus the power-on default
 Cts::ReverbTankOne reverb tank
 Cts::RomImageRead-only access to SCCore.dll as a data file
 Cts::RomLocationWhere a front end looked for the ROM, and what it found
 Cts::RxSwitchesThe GS receive switches, one per message class the module can be told to ignore
 Cts::SamplerWave playback: decode, then resample at a moving rate while honouring the loop
 Cts::SegmentEnvelopeA four-segment envelope with a release, evaluated at any sample position
 Cts::SequenceA parsed sequence: controller timelines, notes, and the global effect selections
 Cts::SequencePlayerDrives a running engine from a MIDI event list
 Cts::smf::SongA parsed file: the event list plus what the container knew beyond the events
 Cts::smf::SongLoopLoop points a file declared, in samples on the render-block grid
 Cts::WaveRom::SplitRegionSplits a descriptor's region byte into a bank and a bank-relative region index
 Cts::StateVariableFilterThe engine's filter: a Chamberlin state-variable filter, with all four responses taken as different taps of the same two-integrator loop
 Cts::TableEntryOne static table sliced byte-for-byte out of the DLL
 Cts::TableManifestThe machine-readable map of everything the engine needs out of SCCore.dll: the pinned build identity, every static table's byte-exact offset, and the live ROM/directory regions
 Cts::TableSetThe static tables the engine needs, loaded from SCCore.dll or from a directory of extracted .bin slices
 Cts::TankAllpassesThe two nested allpasses inside each tank
 Cts::TankTapsOne reverb tank's eight ring offsets, resolved from their names once
 Cts::ToneOne melodic tone record: an ASCII name, a master level, and up to two partial parameter blocks
 Cts::ToneGeneratorThe real-time engine: MIDI in, audio out, rendered a block at a time
 Cts::ToneGeneratorOptionsHow a running engine should behave
 Cts::ToneZoneOne key zone of a tone, expressed in MIDI note numbers
 Cts::TvaChainThe amplitude side of a voice: the level chain that turns static bytes into a gain, and the four-segment envelope that moves it
 Cts::TvfChainThe filter side of a voice: the cutoff chain that turns static bytes into the two coefficients the state-variable filter needs, and the envelope that moves the cutoff over time
 Cts::VoiceA handle to one voice slot: an index into the pool's parallel arrays plus the control-rate operations that act on it
 Cts::VoicePoolThe voice allocator
 Cts::WaveDescriptorOne entry of the wave-descriptor table: where a sample lives in the wave ROM, how it is tuned, and how it loops
 Cts::WaveRomThe 24 MB wave ROM embedded in SCCore.dll — the literal Sound Canvas hardware mask ROM, two banks addressed in 1 MB regions
 Cts::WaveStreamsThe two raw streams that make up one wave: a signed delta per sample, and a shift exponent per 16-sample block packed two to a byte
 Cts::XgAddressAn XG message split into the parts a front end needs to act on it