|
Tabula Sonora 0.1.0
A native C++20 implementation of the Roland Sound Canvas VA synth voice
|
| Nts | |
| Nsmf | A dependency-free Standard MIDI File reader |
| CSongLoop | Loop points a file declared, in samples on the render-block grid |
| CSong | A parsed file: the event list plus what the container knew beyond the events |
| CAllpassStage | One allpass stage: a read tap, a write tap and the two coefficients around them |
| CAlternateEntry | An entry of the alternate-articulation table |
| CChannelMask | Per-channel mute and solo |
| CChorus | The GS chorus: a modulated delay line with two anti-phase taps |
| CChorusPreset | Coefficients for one GS chorus type |
| CChorusPresets | The eight GS chorus types plus the power-on default |
| CControllerTimeline | A controller's value over time, as breakpoints |
| CControlMatrix | The GS controller assignment matrix (40 2x): six sources, each with eleven depths |
| CModulation | What one source contributes, once its depths have been scaled by its current amount |
| CLaw | What turns a summed destination into its own unit — part_mod_depth_recalc, once per destination |
| CControlUpdate | One parameter set by one message |
| CDcBlocker | The engine's DC blocker: one design, instantiated once on each effect input |
| CDecodedWave | A wave decoded from the ROM, with everything playback needs |
| CDelayParameters | Compiled coefficients for one GS delay type |
| CDelayPresets | The ten GS delay types and the two published conversion tables |
| CDllIdentity | Identity of the SCCore.dll build every offset in the manifest is pinned to |
| CDrumKey | One drum key's settings within a kit |
| CDrumKeyOverrides | Per-part coarse-pitch and panpot overrides, set by NRPN |
| CDrumKitTable | The drum kit records: for each of 128 keys, which tone sounds and how it is levelled, tuned, panned and grouped |
| CEffect | A stereo send effect fed from one mono bus |
| CEffectPresets | The coefficient sets for the three GS send effects |
| CEffectProgrammer | 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 |
| CEfxRecord | One record of the DLL's own insertion-effect directory |
| CEngineNoise | The engine's shared pseudo-random generator |
| CEnvelopeMachine | The segment-rate and segment-shape machine shared by the TVA, TVF and pitch envelopes |
| CEqBand | One shelving band: H(z) = (b0 + b1·z⁻¹) / (1 − a1·z⁻¹) |
| CEqPresets | The four-band EQ block's coefficient tables — two bands, two corner frequencies each |
| CEqualizer | The GS four-band EQ: a low shelf and a high shelf, in series, on a stereo bus |
| CFrameRing | A lock-free single-producer, single-consumer ring of interleaved stereo frames |
| CInsertionEffect | The GS insertion EFX block: one stereo effect ahead of the send network |
| CInterpolator | The sampler's 4-tap FIR resampler — the single most timbre-defining element of the engine |
| CLfoConfig | One LFO's static configuration |
| CLfoEngine | The two LFO engines that modulate every partial |
| CLimits | Depth clamp and rounding constant for a destination |
| CLfoRunner | One LFO's running state: phase, delay and fade-in accumulators, stepped a control tick at a time |
| CLiveRegion | 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 |
| CMidiEvent | One scheduled MIDI message |
| CMultisampleZone | A key range within a multisample and the wave it selects |
| CNoteRecord | One note, with every parameter latched as it was at note-on |
| CNoteRenderer | Renders one note by assembling the whole voice chain: sampler, pitch, filter, amplitude and pan |
| CControllers | Optional per-note controller curves |
| CPanLaw | The engine's pan law: an exact 128-entry table, not a computed curve |
| CPart | One of the sixteen parts: the channel state a running engine keeps between events |
| CPartialParameters | A zero-copy typed view over one 0x6e-byte partial parameter block inside a tone record |
| CPartModifiers | The GS part modify offsets, as the synthesis chains consume them |
| CPartTimelines | Per-channel controller timelines |
| CPatchDirectory | 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 |
| CPitchChain | The pitch side of a voice: key-follow, transposition, the pitch envelope, and bend |
| CKeyFollow | The effective pitch key and its fractional crossfade weight |
| CPitchEnvelope | The pitch envelope's decoded segment targets and timings |
| CPitchEnvelopeRunner | Walks a pitch envelope one control tick at a time |
| CPitchRamp | The per-voice pitch ramp that glides the sampler's read rate across a control block |
| CProgramReference | A (map, bank, program) triple that resolves through the same three-level lookup |
| CRenderedNote | One rendered note: stereo output plus the pre-pan mono the send buses are fed from |
| CRenderOptions | How a sequence should be rendered |
| CRenderResult | A finished render |
| CResolvedPartial | One partial that sounds for a given note and velocity |
| CResolvedTone | The waves that sound for one tone at a given note and velocity |
| CReverb | The GS reverb: a Schroeder/Dattorro tank transcribed from the engine |
| CReverbPreset | Coefficients for one GS reverb type |
| CReverbPresets | The eight GS reverb types plus the power-on default |
| CReverbTank | One reverb tank |
| CRomIdentityError | Thrown when the supplied SCCore.dll is not the build the table offsets are pinned to |
| CRomImage | Read-only access to SCCore.dll as a data file |
| CRomLocation | Where a front end looked for the ROM, and what it found |
| CRxSwitches | The GS receive switches, one per message class the module can be told to ignore |
| CSampler | Wave playback: decode, then resample at a moving rate while honouring the loop |
| CSegmentEnvelope | A four-segment envelope with a release, evaluated at any sample position |
| CSequence | A parsed sequence: controller timelines, notes, and the global effect selections |
| CSequencePlayer | Drives a running engine from a MIDI event list |
| CStateVariableFilter | The engine's filter: a Chamberlin state-variable filter, with all four responses taken as different taps of the same two-integrator loop |
| CSystemDelay | The GS system delay: three taps off one feedback line, behind a fixed input pre-delay |
| CTableEntry | One static table sliced byte-for-byte out of the DLL |
| CTableManifest | 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 |
| CTableSet | The static tables the engine needs, loaded from SCCore.dll or from a directory of extracted .bin slices |
| Cnames | Cache file names for every table in the manifest |
| CTankAllpasses | The two nested allpasses inside each tank |
| CTankTaps | One reverb tank's eight ring offsets, resolved from their names once |
| CTone | One melodic tone record: an ASCII name, a master level, and up to two partial parameter blocks |
| CToneGenerator | The real-time engine: MIDI in, audio out, rendered a block at a time |
| CToneGeneratorOptions | How a running engine should behave |
| CToneZone | One key zone of a tone, expressed in MIDI note numbers |
| CTvaChain | The amplitude side of a voice: the level chain that turns static bytes into a gain, and the four-segment envelope that moves it |
| CTvfChain | 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 |
| COffsets | The envelope's peak and its five stage offsets, in cutoff units relative to that peak |
| CEnvelope | A cutoff envelope and the base cutoff its offsets are added to |
| CCoefficients | The pair of coefficients the filter runs on for one control block |
| CVoice | A handle to one voice slot: an index into the pool's parallel arrays plus the control-rate operations that act on it |
| CVoicePool | The voice allocator |
| CWaveDescriptor | One entry of the wave-descriptor table: where a sample lives in the wave ROM, how it is tuned, and how it loops |
| CWaveRom | The 24 MB wave ROM embedded in SCCore.dll — the literal Sound Canvas hardware mask ROM, two banks addressed in 1 MB regions |
| CSplitRegion | Splits a descriptor's region byte into a bank and a bank-relative region index |
| CWaveStreams | 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 |
| CXgAddress | An XG message split into the parts a front end needs to act on it |