Skip to content

GuitarPrometheus::Render

GuitarPrometheus::Render

Namespaces

Name
GuitarPrometheus::Render::Smufl
SMuFL (Standard Music Font Layout) codepoint constants for the glyphs the renderer paints.

Classes

Name
structGuitarPrometheus::Render::LaidOutArticulation
One articulation glyph (staccato dot, accent wedge, …) anchored above or below a notehead.
structGuitarPrometheus::Render::LaidOutDynamic
A dynamic marking (mf, f, …) anchored below the staff at the position of the note that carries the change.
structGuitarPrometheus::Render::LaidOutKeySigAccidental
One accidental glyph in the key signature, placed after the clef at the start of the system.
structGuitarPrometheus::Render::LaidOutLedgerLine
A ledger line segment drawn above or below the staff for notes outside the five staff lines.
structGuitarPrometheus::Render::LaidOutMeasure
One laid-out measure.
structGuitarPrometheus::Render::LaidOutNote
One laid-out note (or rest), positioned in the staff’s coordinate system.
structGuitarPrometheus::Render::LaidOutScore
Result of laying out a single part as a horizontally-running system.
structGuitarPrometheus::Render::LaidOutSlur
A laid-out slur connecting two notes (which may differ in pitch and may cross measures).
structGuitarPrometheus::Render::LaidOutSystem
A multi-part system: every part of score laid out and stacked vertically with bracket grouping.
structGuitarPrometheus::Render::LaidOutTie
One laid-out measure.
structGuitarPrometheus::Render::LayoutSettings
Tunable knobs for the layout engine.
classGuitarPrometheus::Render::SvgScoreRenderer
Emits an SVG string from a laid-out score, compatible with juce::Drawable::createFromSVG().

Functions

Name
LaidOutScorelayoutPart(const SongStructure::Score & score, std::size_t partIndex, const LayoutSettings & settings)
Lay out one part of score as a sequence of [LaidOutMeasure]()s.
LaidOutSystemlayoutScore(const SongStructure::Score & score, const LayoutSettings & settings)
Lay out every part of score as a vertically-stacked system.

Functions Documentation

function layoutPart

LaidOutScore layoutPart(
const SongStructure::Score & score,
std::size_t partIndex,
const LayoutSettings & settings
)

Lay out one part of score as a sequence of [LaidOutMeasure]()s.

Pure function — no JUCE dependencies, no global state. The same input always produces the same output. Called from the render panel on every theme / size change, and from the unit tests directly.

Treble clef centred on B4 (MIDI 71). Stem direction: down for pitch ≥ B4, up otherwise. Beam grouping: contiguous notes of value < Quarter inside the same beat (where “beat” = numerator-th of the measure for time signatures with denominator ≤ 4, eighth-pair-grouped for 6/8 and other compound meters).

partIndex must be a valid index into score.getParts(). An out-of-range index returns an empty [LaidOutScore](/api-reference/classes/structguitarprometheus_1_1render_1_1laidoutscore/) with both dimensions zero.

function layoutScore

LaidOutSystem layoutScore(
const SongStructure::Score & score,
const LayoutSettings & settings
)

Lay out every part of score as a vertically-stacked system.

Uses layoutPart per part and stacks them with topMarginPx of vertical separation between systems. The bracket-group heuristic groups contiguous parts whose MIDI channels match or whose names share the first whitespace-delimited word (e.g. "Guitar 1" + "Guitar 2"). Empty input returns an empty [LaidOutSystem](/api-reference/classes/structguitarprometheus_1_1render_1_1laidoutsystem/).


Updated on 2026-05-29 at 07:39:52 +0000