|
Tabula Sonora 0.1.0
A native C++20 implementation of the Roland Sound Canvas VA synth voice
|
| Cts::AllpassStage | One allpass stage: a read tap, a write tap and the two coefficients around them |
| Cts::AlternateEntry | An entry of the alternate-articulation table |
| Cts::ChannelMask | Per-channel mute and solo |
| Cts::ChorusPreset | Coefficients for one GS chorus type |
| Cts::ChorusPresets | The eight GS chorus types plus the power-on default |
| Cts::TvfChain::Coefficients | The pair of coefficients the filter runs on for one control block |
| Cts::NoteRenderer::Controllers | Optional per-note controller curves |
| Cts::ControllerTimeline | A controller's value over time, as breakpoints |
| Cts::ControlMatrix | The GS controller assignment matrix (40 2x): six sources, each with eleven depths |
| Cts::ControlUpdate | One parameter set by one message |
| Cts::DcBlocker | The engine's DC blocker: one design, instantiated once on each effect input |
| Cts::DecodedWave | A wave decoded from the ROM, with everything playback needs |
| Cts::DelayParameters | Compiled coefficients for one GS delay type |
| Cts::DelayPresets | The ten GS delay types and the two published conversion tables |
| Cts::DllIdentity | Identity of the SCCore.dll build every offset in the manifest is pinned to |
| Cts::DrumKey | One drum key's settings within a kit |
| Cts::DrumKeyOverrides | Per-part coarse-pitch and panpot overrides, set by NRPN |
| Cts::DrumKitTable | The drum kit records: for each of 128 keys, which tone sounds and how it is levelled, tuned, panned and grouped |
| Cts::Effect | A stereo send effect fed from one mono bus |
| Cts::Chorus | The GS chorus: a modulated delay line with two anti-phase taps |
| Cts::Reverb | The GS reverb: a Schroeder/Dattorro tank transcribed from the engine |
| Cts::SystemDelay | The GS system delay: three taps off one feedback line, behind a fixed input pre-delay |
| Cts::EffectPresets | The coefficient sets for the three GS send effects |
| Cts::EffectProgrammer | Computes 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::EfxRecord | One record of the DLL's own insertion-effect directory |
| Cts::EngineNoise | The engine's shared pseudo-random generator |
| Cts::TvfChain::Envelope | A cutoff envelope and the base cutoff its offsets are added to |
| Cts::EnvelopeMachine | The segment-rate and segment-shape machine shared by the TVA, TVF and pitch envelopes |
| Cts::EqBand | One shelving band: H(z) = (b0 + b1·z⁻¹) / (1 − a1·z⁻¹) |
| Cts::EqPresets | The four-band EQ block's coefficient tables — two bands, two corner frequencies each |
| Cts::Equalizer | The GS four-band EQ: a low shelf and a high shelf, in series, on a stereo bus |
| Cstd::exception | STL class |
| Cstd::runtime_error | STL class |
| Cts::RomIdentityError | Thrown when the supplied SCCore.dll is not the build the table offsets are pinned to |
| Cts::FrameRing | A lock-free single-producer, single-consumer ring of interleaved stereo frames |
| Cts::InsertionEffect | The GS insertion EFX block: one stereo effect ahead of the send network |
| Cts::Interpolator | The sampler's 4-tap FIR resampler — the single most timbre-defining element of the engine |
| Cts::PitchChain::KeyFollow | The effective pitch key and its fractional crossfade weight |
| Cts::ControlMatrix::Law | What turns a summed destination into its own unit — part_mod_depth_recalc, once per destination |
| Cts::LfoConfig | One LFO's static configuration |
| Cts::LfoEngine | The two LFO engines that modulate every partial |
| Cts::LfoRunner | One LFO's running state: phase, delay and fade-in accumulators, stepped a control tick at a time |
| Cts::LfoEngine::Limits | Depth clamp and rounding constant for a destination |
| Cts::LiveRegion | A 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::MidiEvent | One scheduled MIDI message |
| Cts::ControlMatrix::Modulation | What one source contributes, once its depths have been scaled by its current amount |
| Cts::MultisampleZone | A key range within a multisample and the wave it selects |
| Cts::TableSet::names | Cache file names for every table in the manifest |
| Cts::NoteRecord | One note, with every parameter latched as it was at note-on |
| Cts::NoteRenderer | Renders one note by assembling the whole voice chain: sampler, pitch, filter, amplitude and pan |
| Cts::TvfChain::Offsets | The envelope's peak and its five stage offsets, in cutoff units relative to that peak |
| Cts::PanLaw | The engine's pan law: an exact 128-entry table, not a computed curve |
| Cts::Part | One of the sixteen parts: the channel state a running engine keeps between events |
| Cts::PartialParameters | A zero-copy typed view over one 0x6e-byte partial parameter block inside a tone record |
| Cts::PartModifiers | The GS part modify offsets, as the synthesis chains consume them |
| Cts::PartTimelines | Per-channel controller timelines |
| Cts::PatchDirectory | The 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::PitchChain | The pitch side of a voice: key-follow, transposition, the pitch envelope, and bend |
| Cts::PitchEnvelope | The pitch envelope's decoded segment targets and timings |
| Cts::PitchEnvelopeRunner | Walks a pitch envelope one control tick at a time |
| Cts::PitchRamp | The per-voice pitch ramp that glides the sampler's read rate across a control block |
| Cts::ProgramReference | A (map, bank, program) triple that resolves through the same three-level lookup |
| Cts::RenderedNote | One rendered note: stereo output plus the pre-pan mono the send buses are fed from |
| Cts::RenderOptions | How a sequence should be rendered |
| Cts::RenderResult | A finished render |
| Cts::ResolvedPartial | One partial that sounds for a given note and velocity |
| Cts::ResolvedTone | The waves that sound for one tone at a given note and velocity |
| Cts::ReverbPreset | Coefficients for one GS reverb type |
| Cts::ReverbPresets | The eight GS reverb types plus the power-on default |
| Cts::ReverbTank | One reverb tank |
| Cts::RomImage | Read-only access to SCCore.dll as a data file |
| Cts::RomLocation | Where a front end looked for the ROM, and what it found |
| Cts::RxSwitches | The GS receive switches, one per message class the module can be told to ignore |
| Cts::Sampler | Wave playback: decode, then resample at a moving rate while honouring the loop |
| Cts::SegmentEnvelope | A four-segment envelope with a release, evaluated at any sample position |
| Cts::Sequence | A parsed sequence: controller timelines, notes, and the global effect selections |
| Cts::SequencePlayer | Drives a running engine from a MIDI event list |
| Cts::smf::Song | A parsed file: the event list plus what the container knew beyond the events |
| Cts::smf::SongLoop | Loop points a file declared, in samples on the render-block grid |
| Cts::WaveRom::SplitRegion | Splits a descriptor's region byte into a bank and a bank-relative region index |
| Cts::StateVariableFilter | The engine's filter: a Chamberlin state-variable filter, with all four responses taken as different taps of the same two-integrator loop |
| Cts::TableEntry | One static table sliced byte-for-byte out of the DLL |
| Cts::TableManifest | The 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::TableSet | The static tables the engine needs, loaded from SCCore.dll or from a directory of extracted .bin slices |
| Cts::TankAllpasses | The two nested allpasses inside each tank |
| Cts::TankTaps | One reverb tank's eight ring offsets, resolved from their names once |
| Cts::Tone | One melodic tone record: an ASCII name, a master level, and up to two partial parameter blocks |
| Cts::ToneGenerator | The real-time engine: MIDI in, audio out, rendered a block at a time |
| Cts::ToneGeneratorOptions | How a running engine should behave |
| Cts::ToneZone | One key zone of a tone, expressed in MIDI note numbers |
| Cts::TvaChain | The amplitude side of a voice: the level chain that turns static bytes into a gain, and the four-segment envelope that moves it |
| Cts::TvfChain | The 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::Voice | A handle to one voice slot: an index into the pool's parallel arrays plus the control-rate operations that act on it |
| Cts::VoicePool | The voice allocator |
| Cts::WaveDescriptor | One entry of the wave-descriptor table: where a sample lives in the wave ROM, how it is tuned, and how it loops |
| Cts::WaveRom | The 24 MB wave ROM embedded in SCCore.dll — the literal Sound Canvas hardware mask ROM, two banks addressed in 1 MB regions |
| Cts::WaveStreams | The 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::XgAddress | An XG message split into the parts a front end needs to act on it |