GuitarPrometheus::Techniques
GuitarPrometheus::Techniques
Classes
| Name | |
|---|---|
| class | GuitarPrometheus::Techniques::ArticulationSet Compact set of per-note articulations attached to an Engraving. |
| class | GuitarPrometheus::Techniques::TechniqueSet Compact set of per-note techniques attached to an Engraving. |
Types
| Name | |
|---|---|
| enum class | Articulation { Staccato, Accent, StrongAccent, Grace} Note-shape markings parsed from MusicXML <articulations> elements. |
| enum class | Technique { Muting, Vibrato, VibratoWTremBar, NaturalHarmonic, PinchHarmonic, FingerPluckOpen, FingerPluckDead, TremoloPick, ThumbSlap, Pop, Tap, LhTap, ChokedNote, PickScrape, AutoSlide, HammerOn, PullOff, Slur, Slide, SlideInFromAbove, SlideInFromBelow, SlideOutDown, SlideOutUp, Bend} Performance techniques observed in Guitar Pro 8 MusicXML exports. |
| enum class | Category { Sustained, PerNote, Span} Categorization of a technique’s MIDI emission semantics. |
Functions
| Name | |
|---|---|
| std::string_view | toJSON(Articulation a) Returns the PascalCase profile-JSON name of the articulation (e.g. |
| std::string_view | toXML(Articulation a) Returns the MusicXML element name of the articulation (e.g. |
| std::string_view | toHumanReadable(Articulation a) Returns a user-facing label for the articulation (e.g. |
| std::optional< Articulation > | articulationFromJSON(std::string_view name) Parse a profile-JSON name back to an Articulation. |
| std::optional< Articulation > | articulationFromXML(std::string_view name) Parse a MusicXML element name back to an Articulation. |
| const std::array< Technique, kNumTechniques > & | allTechniques() Canonical array of all technique enum values in declaration order. |
| std::string_view | toJSON(Technique t) Returns the PascalCase profile-JSON name of the technique (e.g. |
| std::string_view | toXML(Technique t) Returns the MusicXML element name of the technique (e.g. |
| std::string_view | toHumanReadable(Technique t) Returns a user-facing label for the technique (e.g. |
| Category | getCategory(Technique t) Returns the MIDI-emission category (Sustained, PerNote, or Span) for a technique. |
| bool | isUniversal(Technique t) Whether a technique belongs to the “universal” set shown by default in new profiles. |
| std::optional< Technique > | techniqueFromJSON(std::string_view name) Parse a profile-JSON name back to a Technique. |
| std::optional< Technique > | techniqueFromXML(std::string_view name) Parse a MusicXML element name back to a Technique. |
Attributes
| Name | |
|---|---|
| constexpr std::size_t | kNumArticulations Count of Articulation enumerators. |
| constexpr std::size_t | kNumTechniques Count of Technique enumerators. |
Types Documentation
enum Articulation
| Enumerator | Value | Description |
|---|---|---|
| Staccato | ||
| Accent | ||
| StrongAccent | ||
| Grace |
Note-shape markings parsed from MusicXML <articulations> elements.
Articulations shape the envelope of a single note (velocity, length) rather than triggering a sustained or span keyswitch. They are always per-note in keyswitch-firing semantics, so no Category accompanies them.
New articulations are added here when discovered in real files.
enum Technique
| Enumerator | Value | Description |
|---|---|---|
| Muting | ||
| Vibrato | ||
| VibratoWTremBar | ||
| NaturalHarmonic | ||
| PinchHarmonic | ||
| FingerPluckOpen | ||
| FingerPluckDead | ||
| TremoloPick | ||
| ThumbSlap | ||
| Pop | ||
| Tap | ||
| LhTap | ||
| ChokedNote | ||
| PickScrape | ||
| AutoSlide | ||
| HammerOn | ||
| PullOff | ||
| Slur | ||
| Slide | ||
| SlideInFromAbove | ||
| SlideInFromBelow | ||
| SlideOutDown | ||
| SlideOutUp | ||
| Bend |
Performance techniques observed in Guitar Pro 8 MusicXML exports.
Techniques trigger keyswitches that change how the instrument produces a sustained or span of notes (palm-mute, hammer-on, bend, …). Note-shape markings (staccato, accent, …) live in the separate Articulation enum because MusicXML separates them, and because assigning a velocity/length mod to a technique like palm-mute would be semantically meaningless.
New techniques are added here when discovered in real files.
enum Category
| Enumerator | Value | Description |
|---|---|---|
| Sustained | ||
| PerNote | ||
| Span |
Categorization of a technique’s MIDI emission semantics.
Used by Phase 5 to decide how a keyswitch is fired.
Functions Documentation
function toJSON
std::string_view toJSON( Articulation a)Returns the PascalCase profile-JSON name of the articulation (e.g.
"Staccato").
function toXML
std::string_view toXML( Articulation a)Returns the MusicXML element name of the articulation (e.g.
"strong-accent").
function toHumanReadable
std::string_view toHumanReadable( Articulation a)Returns a user-facing label for the articulation (e.g.
"Strong Accent").
function articulationFromJSON
std::optional< Articulation > articulationFromJSON( std::string_view name)Parse a profile-JSON name back to an Articulation.
Return: The matching articulation, or nullopt if the name is not recognized.
function articulationFromXML
std::optional< Articulation > articulationFromXML( std::string_view name)Parse a MusicXML element name back to an Articulation.
Return: The matching articulation, or nullopt if the name is not recognized.
function allTechniques
const std::array< Technique, kNumTechniques > & allTechniques()Canonical array of all technique enum values in declaration order.
function toJSON
std::string_view toJSON( Technique t)Returns the PascalCase profile-JSON name of the technique (e.g.
"PalmMute").
function toXML
std::string_view toXML( Technique t)Returns the MusicXML element name of the technique (e.g.
"palm-mute", "vibratoWTremBar").
Case-sensitive — matches the literal MusicXML emission from Guitar Pro.
function toHumanReadable
std::string_view toHumanReadable( Technique t)Returns a user-facing label for the technique (e.g.
"Palm Mute").
function getCategory
Category getCategory( Technique t)Returns the MIDI-emission category (Sustained, PerNote, or Span) for a technique.
function isUniversal
bool isUniversal( Technique t)Whether a technique belongs to the “universal” set shown by default in new profiles.
function techniqueFromJSON
std::optional< Technique > techniqueFromJSON( std::string_view name)Parse a profile-JSON name back to a Technique.
Return: The matching technique, or nullopt if the name is not recognized.
function techniqueFromXML
std::optional< Technique > techniqueFromXML( std::string_view name)Parse a MusicXML element name back to a Technique.
Return: The matching technique, or nullopt if the name is not recognized.
Attributes Documentation
variable kNumArticulations
constexpr std::size_t kNumArticulations = 4;Count of Articulation enumerators.
Used to size std::bitset containers.
Must be kept in sync with the enum. The static_assert below anchors it.
variable kNumTechniques
constexpr std::size_t kNumTechniques = 24;Count of Technique enumerators.
Used to size std::bitset containers.
Must be kept in sync with the enum. The static_assert below anchors it.
Updated on 2026-05-29 at 07:39:52 +0000