GuitarPrometheus::Profiles::ProfileFormState
GuitarPrometheus::Profiles::ProfileFormState
Plain form-state mirror of a [Profile](/api-reference/classes/classguitarprometheus_1_1profiles_1_1profile/). More…
#include <ProfileEdits.h>
Public Attributes
| Name | |
|---|---|
| std::string | name |
| std::string | category |
| std::map< Techniques::Technique, int > | techniqueKeyswitches |
| std::map< Techniques::Articulation, int > | articulationKeyswitches |
| std::map< Techniques::Articulation, ArticulationMod > | articulationMods |
| std::map< MusicModels::Dynamic, int > | velocityForDynamic |
| bool | isDrumProfile |
| std::map< std::string, int > | drumMap |
| std::map< Techniques::Technique, int > | keyswitchVelocityForTechnique |
| std::map< Techniques::Articulation, int > | keyswitchVelocityForArticulation |
| nlohmann::json | keyswitchTree |
| std::map< std::string, std::string > | techniqueFlags |
| std::map< std::string, std::string > | variantDefaults |
| bool | showUnmapped |
| int | octaveOffset |
| bool | humanizerEnabled Profile-level humanizer enable. |
| Midi::HumanizerConfig | humanizerSettings Profile-level humanizer settings. |
Detailed Description
struct GuitarPrometheus::Profiles::ProfileFormState;Plain form-state mirror of a [Profile](/api-reference/classes/classguitarprometheus_1_1profiles_1_1profile/).
Populated from a [Profile](/api-reference/classes/classguitarprometheus_1_1profiles_1_1profile/) via toFormState and converted back to a fully-validated [Profile](/api-reference/classes/classguitarprometheus_1_1profiles_1_1profile/) via applyProfileEdits. Lets the editor UI hold a mutable copy without violating Profile’s immutability.
Drum-map state is unconditional here: isDrumProfile == false means the produced Profile gets std::nullopt for drumMap; isDrumProfile == true carries drumMap even if empty.
Public Attributes Documentation
variable name
std::string name;variable category
std::string category;variable techniqueKeyswitches
std::map< Techniques::Technique, int > techniqueKeyswitches;variable articulationKeyswitches
std::map< Techniques::Articulation, int > articulationKeyswitches;variable articulationMods
std::map< Techniques::Articulation, ArticulationMod > articulationMods;variable velocityForDynamic
std::map< MusicModels::Dynamic, int > velocityForDynamic;variable isDrumProfile
bool isDrumProfile = false;variable drumMap
std::map< std::string, int > drumMap;variable keyswitchVelocityForTechnique
std::map< Techniques::Technique, int > keyswitchVelocityForTechnique;variable keyswitchVelocityForArticulation
std::map< Techniques::Articulation, int > keyswitchVelocityForArticulation;variable keyswitchTree
nlohmann::json keyswitchTree = nlohmann::json::object();variable techniqueFlags
std::map< std::string, std::string > techniqueFlags;variable variantDefaults
std::map< std::string, std::string > variantDefaults;variable showUnmapped
bool showUnmapped = true;variable octaveOffset
int octaveOffset = 0;variable humanizerEnabled
bool humanizerEnabled = false;Profile-level humanizer enable.
False (default) leaves event timing/velocities untouched regardless of humanizerSettings content. Mirrors [Profile::getHumanizerEnabled()](/api-reference/classes/classguitarprometheus_1_1profiles_1_1profile/#function-gethumanizerenabled).
variable humanizerSettings
Midi::HumanizerConfig humanizerSettings {};Profile-level humanizer settings.
Round-tripped to the same JSON block as the on-disk profile schema (resources/schema/profile-v1.schema.json).
Updated on 2026-05-29 at 07:39:52 +0000