// AUTOGENERATED — do not edit. Source: schemas/modes/paf_synth.json. Run `bun run codegen/generate.ts` to regenerate. #ifndef NISPS_GENERATED_PAF_SYNTH_SCHEMA_HPP #define NISPS_GENERATED_PAF_SYNTH_SCHEMA_HPP #include "schema_types.hpp" #include "../../ml/mlp.hpp" namespace nisps::modes::generated { inline constexpr std::string_view kPafSynthModeId = "paf_synth"; inline constexpr std::string_view kPafSynthEngineId = "paf_synth"; inline constexpr std::array kPafSynthInputChannels = {{ "joy_x", "joy_y", "joy_z", "joy_w", }}; inline constexpr std::array kPafSynthHiddenLayers = {{ 10u, 10u, 14u, }}; inline constexpr MLConfig kPafSynthMLConfig = { 4u, 33u, 0.6f, }; inline constexpr std::size_t kPafSynthParamCount = 33u; inline constexpr std::array kPafSynthParams = {{ Param{ "p00", "Param 00", 0.0f, 1.0f, 0.5f, Curve::linear, "general", }, Param{ "p01", "Param 01", 0.0f, 1.0f, 0.5f, Curve::linear, "general", }, Param{ "paf0_cf", "PAF0 Center Freq", 0.0f, 1.0f, 0.5f, Curve::linear, "operators", }, Param{ "paf1_cf", "PAF1 Center Freq", 0.0f, 1.0f, 0.5f, Curve::linear, "operators", }, Param{ "p04", "Param 04", 0.0f, 1.0f, 0.5f, Curve::linear, "general", }, Param{ "paf0_bw", "PAF0 Bandwidth", 0.0f, 1.0f, 0.5f, Curve::linear, "operators", }, Param{ "paf1_bw", "PAF1 Bandwidth", 0.0f, 1.0f, 0.5f, Curve::linear, "operators", }, Param{ "p07", "Param 07", 0.0f, 1.0f, 0.5f, Curve::linear, "general", }, Param{ "paf0_vib", "PAF0 Vibrato Depth", 0.0f, 1.0f, 0.0f, Curve::square, "modulation", }, Param{ "paf1_vib", "PAF1 Vibrato Depth", 0.0f, 1.0f, 0.0f, Curve::square, "modulation", }, Param{ "p10", "Param 10", 0.0f, 1.0f, 0.5f, Curve::linear, "general", }, Param{ "paf0_vfr", "PAF0 Vibrato Rate", 0.0f, 1.0f, 0.5f, Curve::square, "modulation", }, Param{ "paf1_vfr", "PAF1 Vibrato Rate", 0.0f, 1.0f, 0.5f, Curve::square, "modulation", }, Param{ "p13", "Param 13", 0.0f, 1.0f, 0.5f, Curve::linear, "general", }, Param{ "paf0_shift", "PAF0 Shift", 0.0f, 1.0f, 0.5f, Curve::linear, "operators", }, Param{ "paf1_shift", "PAF1 Shift", 0.0f, 1.0f, 0.5f, Curve::linear, "operators", }, Param{ "p16", "Param 16", 0.0f, 1.0f, 0.5f, Curve::linear, "general", }, Param{ "dl1mix", "Delay Mix", 0.0f, 1.0f, 0.0f, Curve::square, "delay", }, Param{ "p18", "Param 18", 0.0f, 1.0f, 0.5f, Curve::linear, "general", }, Param{ "dlfb", "Delay Feedback", 0.0f, 1.0f, 0.5f, Curve::linear, "delay", }, Param{ "env_decay", "Env Decay", 0.0f, 1.0f, 0.3f, Curve::square, "envelope", }, Param{ "p21", "Param 21", 0.0f, 1.0f, 0.5f, Curve::linear, "general", }, Param{ "p22", "Param 22", 0.0f, 1.0f, 0.5f, Curve::linear, "general", }, Param{ "p23", "Param 23", 0.0f, 1.0f, 0.5f, Curve::linear, "general", }, Param{ "p24", "Param 24", 0.0f, 1.0f, 0.5f, Curve::linear, "general", }, Param{ "p25", "Param 25", 0.0f, 1.0f, 0.5f, Curve::linear, "general", }, Param{ "shape_gain", "Sine Shape Gain", 0.0f, 1.0f, 0.0f, Curve::square, "shaper", }, Param{ "shape_asym", "Sine Shape Asym", 0.0f, 1.0f, 0.0f, Curve::square, "shaper", }, Param{ "shape_mix", "Sine Shape Mix", 0.0f, 1.0f, 0.0f, Curve::linear, "shaper", }, Param{ "rm_gain", "Ring Mod Gain", 0.0f, 1.0f, 0.0f, Curve::square, "shaper", }, Param{ "env_attack", "Env Attack", 0.0f, 1.0f, 0.0f, Curve::linear, "envelope", }, Param{ "env_sustain", "Env Sustain", 0.0f, 1.0f, 0.5f, Curve::linear, "envelope", }, Param{ "env_release", "Env Release", 0.0f, 1.0f, 0.3f, Curve::linear, "envelope", }, }}; inline constexpr std::size_t kPafSynthVoiceSpaceCount = 7u; inline constexpr std::array kPafSynthVoiceSpaces = {{ "Ellipticacacia", "Rowantares", "Neemeda", "Aquillow", "Magnetarch", "Elderstar", "Ipeleiades", }}; inline constexpr std::array kPafSynthCurveOverrides = {{ CurveOverride{0u, 8u, Curve::linear}, // Ellipticacacia.paf0_vib CurveOverride{0u, 9u, Curve::linear}, // Ellipticacacia.paf1_vib CurveOverride{0u, 11u, Curve::linear}, // Ellipticacacia.paf0_vfr CurveOverride{0u, 12u, Curve::linear}, // Ellipticacacia.paf1_vfr CurveOverride{0u, 14u, Curve::square}, // Ellipticacacia.paf0_shift CurveOverride{0u, 17u, Curve::linear}, // Ellipticacacia.dl1mix CurveOverride{0u, 18u, Curve::square}, // Ellipticacacia.p18 CurveOverride{0u, 19u, Curve::square}, // Ellipticacacia.dlfb CurveOverride{0u, 20u, Curve::linear}, // Ellipticacacia.env_decay CurveOverride{0u, 26u, Curve::linear}, // Ellipticacacia.shape_gain CurveOverride{0u, 27u, Curve::linear}, // Ellipticacacia.shape_asym CurveOverride{0u, 29u, Curve::linear}, // Ellipticacacia.rm_gain CurveOverride{2u, 10u, Curve::square}, // Neemeda.p10 CurveOverride{2u, 13u, Curve::square}, // Neemeda.p13 CurveOverride{2u, 23u, Curve::square}, // Neemeda.p23 CurveOverride{2u, 24u, Curve::square}, // Neemeda.p24 CurveOverride{3u, 10u, Curve::square}, // Aquillow.p10 CurveOverride{3u, 13u, Curve::square}, // Aquillow.p13 CurveOverride{3u, 23u, Curve::square}, // Aquillow.p23 CurveOverride{3u, 24u, Curve::square}, // Aquillow.p24 CurveOverride{3u, 26u, Curve::linear}, // Aquillow.shape_gain CurveOverride{3u, 27u, Curve::linear}, // Aquillow.shape_asym CurveOverride{3u, 29u, Curve::linear}, // Aquillow.rm_gain CurveOverride{3u, 32u, Curve::square}, // Aquillow.env_release CurveOverride{4u, 5u, Curve::square}, // Magnetarch.paf0_bw CurveOverride{4u, 8u, Curve::linear}, // Magnetarch.paf0_vib CurveOverride{4u, 9u, Curve::linear}, // Magnetarch.paf1_vib CurveOverride{4u, 11u, Curve::linear}, // Magnetarch.paf0_vfr CurveOverride{4u, 12u, Curve::linear}, // Magnetarch.paf1_vfr CurveOverride{4u, 17u, Curve::linear}, // Magnetarch.dl1mix CurveOverride{4u, 20u, Curve::linear}, // Magnetarch.env_decay CurveOverride{4u, 26u, Curve::linear}, // Magnetarch.shape_gain CurveOverride{4u, 27u, Curve::linear}, // Magnetarch.shape_asym CurveOverride{4u, 29u, Curve::linear}, // Magnetarch.rm_gain CurveOverride{5u, 8u, Curve::linear}, // Elderstar.paf0_vib CurveOverride{5u, 9u, Curve::linear}, // Elderstar.paf1_vib CurveOverride{5u, 11u, Curve::linear}, // Elderstar.paf0_vfr CurveOverride{5u, 12u, Curve::linear}, // Elderstar.paf1_vfr CurveOverride{5u, 14u, Curve::square}, // Elderstar.paf0_shift CurveOverride{5u, 17u, Curve::linear}, // Elderstar.dl1mix CurveOverride{5u, 18u, Curve::square}, // Elderstar.p18 CurveOverride{5u, 19u, Curve::square}, // Elderstar.dlfb CurveOverride{5u, 21u, Curve::square}, // Elderstar.p21 CurveOverride{5u, 22u, Curve::square}, // Elderstar.p22 CurveOverride{5u, 23u, Curve::square}, // Elderstar.p23 CurveOverride{5u, 26u, Curve::linear}, // Elderstar.shape_gain CurveOverride{5u, 27u, Curve::linear}, // Elderstar.shape_asym CurveOverride{5u, 29u, Curve::linear}, // Elderstar.rm_gain CurveOverride{6u, 8u, Curve::linear}, // Ipeleiades.paf0_vib CurveOverride{6u, 9u, Curve::linear}, // Ipeleiades.paf1_vib CurveOverride{6u, 11u, Curve::linear}, // Ipeleiades.paf0_vfr CurveOverride{6u, 12u, Curve::linear}, // Ipeleiades.paf1_vfr CurveOverride{6u, 14u, Curve::square}, // Ipeleiades.paf0_shift CurveOverride{6u, 17u, Curve::linear}, // Ipeleiades.dl1mix CurveOverride{6u, 18u, Curve::square}, // Ipeleiades.p18 CurveOverride{6u, 21u, Curve::square}, // Ipeleiades.p21 CurveOverride{6u, 22u, Curve::square}, // Ipeleiades.p22 CurveOverride{6u, 23u, Curve::square}, // Ipeleiades.p23 CurveOverride{6u, 26u, Curve::linear}, // Ipeleiades.shape_gain CurveOverride{6u, 27u, Curve::linear}, // Ipeleiades.shape_asym CurveOverride{6u, 29u, Curve::linear}, // Ipeleiades.rm_gain }}; inline constexpr UIConfig kPafSynthUI = { PrimaryInput::XYPad, true, true, }; using PafSynthMLP = ::nisps::ml::MLP; inline constexpr ::nisps::ParamSchema kPafSynthSchema = { kPafSynthModeId, kPafSynthEngineId, std::span(kPafSynthInputChannels), kPafSynthMLConfig.input_size, std::span(kPafSynthHiddenLayers), kPafSynthMLConfig.output_size, kPafSynthMLConfig.default_spread, std::span(kPafSynthParams), std::span(kPafSynthVoiceSpaces), std::span(kPafSynthCurveOverrides), kPafSynthUI, }; } // namespace nisps::modes::generated #endif // NISPS_GENERATED_PAF_SYNTH_SCHEMA_HPP