Skip to content

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::stringname
std::stringcategory
std::map< Techniques::Technique, int >techniqueKeyswitches
std::map< Techniques::Articulation, int >articulationKeyswitches
std::map< Techniques::Articulation, ArticulationMod >articulationMods
std::map< MusicModels::Dynamic, int >velocityForDynamic
boolisDrumProfile
std::map< std::string, int >drumMap
std::map< Techniques::Technique, int >keyswitchVelocityForTechnique
std::map< Techniques::Articulation, int >keyswitchVelocityForArticulation
nlohmann::jsonkeyswitchTree
std::map< std::string, std::string >techniqueFlags
std::map< std::string, std::string >variantDefaults
boolshowUnmapped
intoctaveOffset
boolhumanizerEnabled
Profile-level humanizer enable.
Midi::HumanizerConfighumanizerSettings
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