#pragma once
/*
 * Machine generated file
 * 2016.08.23.20:43:10
 * 1.1.1f1
 * WBL3001
 */

#include "Constants.h"

// 12th root of 2
#define kSemiToneFrequencyMultiplier 1.05946309435929

#define M_036 "m_036"
#define M_036_KIND "Lamp_3k"
#define M_036_PROPERTY_TAG 1036

#define M_037 "m_037"
#define M_037_KIND "Lamp_3k"
#define M_037_PROPERTY_TAG 1037

#define M_038 "m_038"
#define M_038_KIND "Lamp_3k"
#define M_038_PROPERTY_TAG 1038

#define M_039 "m_039"
#define M_039_KIND "Lamp_3k"
#define M_039_PROPERTY_TAG 1039

#define M_040 "m_040"
#define M_040_KIND "Lamp_3k"
#define M_040_PROPERTY_TAG 1040

#define M_041 "m_041"
#define M_041_KIND "Lamp_3k"
#define M_041_PROPERTY_TAG 1041

#define M_042 "m_042"
#define M_042_KIND "Lamp_3k"
#define M_042_PROPERTY_TAG 1042

#define M_043 "m_043"
#define M_043_KIND "Lamp_3k"
#define M_043_PROPERTY_TAG 1043

#define M_044 "m_044"
#define M_044_KIND "Lamp_3k"
#define M_044_PROPERTY_TAG 1044

#define M_045 "m_045"
#define M_045_KIND "Lamp_3k"
#define M_045_PROPERTY_TAG 1045

#define M_046 "m_046"
#define M_046_KIND "Lamp_3k"
#define M_046_PROPERTY_TAG 1046

#define M_047 "m_047"
#define M_047_KIND "Lamp_3k"
#define M_047_PROPERTY_TAG 1047

#define M_048 "m_048"
#define M_048_KIND "Lamp_3k"
#define M_048_PROPERTY_TAG 1048

#define M_049 "m_049"
#define M_049_KIND "Lamp_3k"
#define M_049_PROPERTY_TAG 1049

#define M_050 "m_050"
#define M_050_KIND "Lamp_3k"
#define M_050_PROPERTY_TAG 1050

#define M_051 "m_051"
#define M_051_KIND "Lamp_3k"
#define M_051_PROPERTY_TAG 1051

#define M_052 "m_052"
#define M_052_KIND "Lamp_3k"
#define M_052_PROPERTY_TAG 1052

#define M_053 "m_053"
#define M_053_KIND "Lamp_3k"
#define M_053_PROPERTY_TAG 1053

#define M_054 "m_054"
#define M_054_KIND "Lamp_3k"
#define M_054_PROPERTY_TAG 1054

#define M_055 "m_055"
#define M_055_KIND "Lamp_3k"
#define M_055_PROPERTY_TAG 1055

#define M_056 "m_056"
#define M_056_KIND "Lamp_3k"
#define M_056_PROPERTY_TAG 1056

#define M_057 "m_057"
#define M_057_KIND "Lamp_3k"
#define M_057_PROPERTY_TAG 1057

#define M_058 "m_058"
#define M_058_KIND "Lamp_3k"
#define M_058_PROPERTY_TAG 1058

#define M_059 "m_059"
#define M_059_KIND "Lamp_3k"
#define M_059_PROPERTY_TAG 1059

#define M_060 "m_060"
#define M_060_KIND "Lamp_3k"
#define M_060_PROPERTY_TAG 1060

#define M_061 "m_061"
#define M_061_KIND "Lamp_3k"
#define M_061_PROPERTY_TAG 1061

#define M_062 "m_062"
#define M_062_KIND "Lamp_3k"
#define M_062_PROPERTY_TAG 1062

#define M_063 "m_063"
#define M_063_KIND "Lamp_3k"
#define M_063_PROPERTY_TAG 1063

#define M_064 "m_064"
#define M_064_KIND "Lamp_3k"
#define M_064_PROPERTY_TAG 1064

#define M_065 "m_065"
#define M_065_KIND "Lamp_3k"
#define M_065_PROPERTY_TAG 1065

#define M_066 "m_066"
#define M_066_KIND "Lamp_3k"
#define M_066_PROPERTY_TAG 1066

#define M_067 "m_067"
#define M_067_KIND "Lamp_3k"
#define M_067_PROPERTY_TAG 1067

#define M_068 "m_068"
#define M_068_KIND "Lamp_3k"
#define M_068_PROPERTY_TAG 1068

#define M_069 "m_069"
#define M_069_KIND "Lamp_3k"
#define M_069_PROPERTY_TAG 1069

#define M_070 "m_070"
#define M_070_KIND "Lamp_3k"
#define M_070_PROPERTY_TAG 1070

#define M_071 "m_071"
#define M_071_KIND "Lamp_3k"
#define M_071_PROPERTY_TAG 1071

#define M_072 "m_072"
#define M_072_KIND "Lamp_3k"
#define M_072_PROPERTY_TAG 1072

#define M_073 "m_073"
#define M_073_KIND "Lamp_3k"
#define M_073_PROPERTY_TAG 1073

#define M_074 "m_074"
#define M_074_KIND "Lamp_3k"
#define M_074_PROPERTY_TAG 1074

#define M_075 "m_075"
#define M_075_KIND "Lamp_3k"
#define M_075_PROPERTY_TAG 1075

#define M_076 "m_076"
#define M_076_KIND "Lamp_3k"
#define M_076_PROPERTY_TAG 1076

#define M_077 "m_077"
#define M_077_KIND "Lamp_3k"
#define M_077_PROPERTY_TAG 1077

#define M_078 "m_078"
#define M_078_KIND "Lamp_3k"
#define M_078_PROPERTY_TAG 1078

#define M_079 "m_079"
#define M_079_KIND "Lamp_3k"
#define M_079_PROPERTY_TAG 1079

#define M_080 "m_080"
#define M_080_KIND "Lamp_3k"
#define M_080_PROPERTY_TAG 1080

#define M_081 "m_081"
#define M_081_KIND "Lamp_3k"
#define M_081_PROPERTY_TAG 1081

#define M_082 "m_082"
#define M_082_KIND "Lamp_3k"
#define M_082_PROPERTY_TAG 1082

#define M_083 "m_083"
#define M_083_KIND "Lamp_3k"
#define M_083_PROPERTY_TAG 1083

#define M_084 "m_084"
#define M_084_KIND "Lamp_3k"
#define M_084_PROPERTY_TAG 1084

#define M_085 "m_085"
#define M_085_KIND "Lamp_3k"
#define M_085_PROPERTY_TAG 1085

#define M_086 "m_086"
#define M_086_KIND "Lamp_3k"
#define M_086_PROPERTY_TAG 1086

#define M_087 "m_087"
#define M_087_KIND "Lamp_3k"
#define M_087_PROPERTY_TAG 1087

#define M_088 "m_088"
#define M_088_KIND "Lamp_3k"
#define M_088_PROPERTY_TAG 1088

#define M_089 "m_089"
#define M_089_KIND "Lamp_3k"
#define M_089_PROPERTY_TAG 1089

#define M_090 "m_090"
#define M_090_KIND "Lamp_3k"
#define M_090_PROPERTY_TAG 1090

#define M_091 "m_091"
#define M_091_KIND "Lamp_3k"
#define M_091_PROPERTY_TAG 1091

#define M_092 "m_092"
#define M_092_KIND "Lamp_3k"
#define M_092_PROPERTY_TAG 1092

#define M_093 "m_093"
#define M_093_KIND "Lamp_3k"
#define M_093_PROPERTY_TAG 1093

#define M_094 "m_094"
#define M_094_KIND "Lamp_3k"
#define M_094_PROPERTY_TAG 1094

#define M_095 "m_095"
#define M_095_KIND "Lamp_3k"
#define M_095_PROPERTY_TAG 1095

#define M_096 "m_096"
#define M_096_KIND "Lamp_3k"
#define M_096_PROPERTY_TAG 1096

#define M_097 "m_097"
#define M_097_KIND "Lamp_3k"
#define M_097_PROPERTY_TAG 1097

#define M_098 "m_098"
#define M_098_KIND "Lamp_3k"
#define M_098_PROPERTY_TAG 1098

#define M_099 "m_099"
#define M_099_KIND "Lamp_3k"
#define M_099_PROPERTY_TAG 1099

#define M_100 "m_100"
#define M_100_KIND "Lamp_3k"
#define M_100_PROPERTY_TAG 1100

#define M_101 "m_101"
#define M_101_KIND "Lamp_3k"
#define M_101_PROPERTY_TAG 1101

#define M_102 "m_102"
#define M_102_KIND "Lamp_3k"
#define M_102_PROPERTY_TAG 1102

#define M_103 "m_103"
#define M_103_KIND "Lamp_3k"
#define M_103_PROPERTY_TAG 1103

#define M_104 "m_104"
#define M_104_KIND "Lamp_3k"
#define M_104_PROPERTY_TAG 1104

#define M_105 "m_105"
#define M_105_KIND "Lamp_3k"
#define M_105_PROPERTY_TAG 1105

#define M_106 "m_106"
#define M_106_KIND "Lamp_3k"
#define M_106_PROPERTY_TAG 1106

#define M_107 "m_107"
#define M_107_KIND "Lamp_3k"
#define M_107_PROPERTY_TAG 1107

#define MODE_0 "mode_0"
#define MODE_0_KIND "Switch_06"
#define MODE_0_PROPERTY_TAG 3000

#define MODE_1 "mode_1"
#define MODE_1_KIND "Switch_06"
#define MODE_1_PROPERTY_TAG 3001

#define MODE_2 "mode_2"
#define MODE_2_KIND "Switch_06"
#define MODE_2_PROPERTY_TAG 3002

#define B_036 "b_036"
#define B_036_KIND "Lamp_06"
#define B_036_PROPERTY_TAG 2036

#define B_037 "b_037"
#define B_037_KIND "Lamp_06"
#define B_037_PROPERTY_TAG 2037

#define B_038 "b_038"
#define B_038_KIND "Lamp_06"
#define B_038_PROPERTY_TAG 2038

#define B_039 "b_039"
#define B_039_KIND "Lamp_06"
#define B_039_PROPERTY_TAG 2039

#define B_040 "b_040"
#define B_040_KIND "Lamp_06"
#define B_040_PROPERTY_TAG 2040

#define B_041 "b_041"
#define B_041_KIND "Lamp_06"
#define B_041_PROPERTY_TAG 2041

#define B_042 "b_042"
#define B_042_KIND "Lamp_06"
#define B_042_PROPERTY_TAG 2042

#define B_043 "b_043"
#define B_043_KIND "Lamp_06"
#define B_043_PROPERTY_TAG 2043

#define B_044 "b_044"
#define B_044_KIND "Lamp_06"
#define B_044_PROPERTY_TAG 2044

#define B_045 "b_045"
#define B_045_KIND "Lamp_06"
#define B_045_PROPERTY_TAG 2045

#define B_046 "b_046"
#define B_046_KIND "Lamp_06"
#define B_046_PROPERTY_TAG 2046

#define B_047 "b_047"
#define B_047_KIND "Lamp_06"
#define B_047_PROPERTY_TAG 2047

#define B_048 "b_048"
#define B_048_KIND "Lamp_06"
#define B_048_PROPERTY_TAG 2048

#define B_049 "b_049"
#define B_049_KIND "Lamp_06"
#define B_049_PROPERTY_TAG 2049

#define B_050 "b_050"
#define B_050_KIND "Lamp_06"
#define B_050_PROPERTY_TAG 2050

#define B_051 "b_051"
#define B_051_KIND "Lamp_06"
#define B_051_PROPERTY_TAG 2051

#define B_052 "b_052"
#define B_052_KIND "Lamp_06"
#define B_052_PROPERTY_TAG 2052

#define B_053 "b_053"
#define B_053_KIND "Lamp_06"
#define B_053_PROPERTY_TAG 2053

#define B_054 "b_054"
#define B_054_KIND "Lamp_06"
#define B_054_PROPERTY_TAG 2054

#define B_055 "b_055"
#define B_055_KIND "Lamp_06"
#define B_055_PROPERTY_TAG 2055

#define B_056 "b_056"
#define B_056_KIND "Lamp_06"
#define B_056_PROPERTY_TAG 2056

#define B_057 "b_057"
#define B_057_KIND "Lamp_06"
#define B_057_PROPERTY_TAG 2057

#define B_058 "b_058"
#define B_058_KIND "Lamp_06"
#define B_058_PROPERTY_TAG 2058

#define B_059 "b_059"
#define B_059_KIND "Lamp_06"
#define B_059_PROPERTY_TAG 2059

#define B_060 "b_060"
#define B_060_KIND "Lamp_06"
#define B_060_PROPERTY_TAG 2060

#define B_061 "b_061"
#define B_061_KIND "Lamp_06"
#define B_061_PROPERTY_TAG 2061

#define B_062 "b_062"
#define B_062_KIND "Lamp_06"
#define B_062_PROPERTY_TAG 2062

#define B_063 "b_063"
#define B_063_KIND "Lamp_06"
#define B_063_PROPERTY_TAG 2063

#define B_064 "b_064"
#define B_064_KIND "Lamp_06"
#define B_064_PROPERTY_TAG 2064

#define B_065 "b_065"
#define B_065_KIND "Lamp_06"
#define B_065_PROPERTY_TAG 2065

#define B_066 "b_066"
#define B_066_KIND "Lamp_06"
#define B_066_PROPERTY_TAG 2066

#define B_067 "b_067"
#define B_067_KIND "Lamp_06"
#define B_067_PROPERTY_TAG 2067

#define B_068 "b_068"
#define B_068_KIND "Lamp_06"
#define B_068_PROPERTY_TAG 2068

#define B_069 "b_069"
#define B_069_KIND "Lamp_06"
#define B_069_PROPERTY_TAG 2069

#define B_070 "b_070"
#define B_070_KIND "Lamp_06"
#define B_070_PROPERTY_TAG 2070

#define B_071 "b_071"
#define B_071_KIND "Lamp_06"
#define B_071_PROPERTY_TAG 2071

#define B_072 "b_072"
#define B_072_KIND "Lamp_06"
#define B_072_PROPERTY_TAG 2072

#define B_073 "b_073"
#define B_073_KIND "Lamp_06"
#define B_073_PROPERTY_TAG 2073

#define B_074 "b_074"
#define B_074_KIND "Lamp_06"
#define B_074_PROPERTY_TAG 2074

#define B_075 "b_075"
#define B_075_KIND "Lamp_06"
#define B_075_PROPERTY_TAG 2075

#define B_076 "b_076"
#define B_076_KIND "Lamp_06"
#define B_076_PROPERTY_TAG 2076

#define B_077 "b_077"
#define B_077_KIND "Lamp_06"
#define B_077_PROPERTY_TAG 2077

#define B_078 "b_078"
#define B_078_KIND "Lamp_06"
#define B_078_PROPERTY_TAG 2078

#define B_079 "b_079"
#define B_079_KIND "Lamp_06"
#define B_079_PROPERTY_TAG 2079

#define B_080 "b_080"
#define B_080_KIND "Lamp_06"
#define B_080_PROPERTY_TAG 2080

#define B_081 "b_081"
#define B_081_KIND "Lamp_06"
#define B_081_PROPERTY_TAG 2081

#define B_082 "b_082"
#define B_082_KIND "Lamp_06"
#define B_082_PROPERTY_TAG 2082

#define B_083 "b_083"
#define B_083_KIND "Lamp_06"
#define B_083_PROPERTY_TAG 2083

#define B_084 "b_084"
#define B_084_KIND "Lamp_06"
#define B_084_PROPERTY_TAG 2084

#define B_085 "b_085"
#define B_085_KIND "Lamp_06"
#define B_085_PROPERTY_TAG 2085

#define B_086 "b_086"
#define B_086_KIND "Lamp_06"
#define B_086_PROPERTY_TAG 2086

#define B_087 "b_087"
#define B_087_KIND "Lamp_06"
#define B_087_PROPERTY_TAG 2087

#define B_088 "b_088"
#define B_088_KIND "Lamp_06"
#define B_088_PROPERTY_TAG 2088

#define B_089 "b_089"
#define B_089_KIND "Lamp_06"
#define B_089_PROPERTY_TAG 2089

#define B_090 "b_090"
#define B_090_KIND "Lamp_06"
#define B_090_PROPERTY_TAG 2090

#define B_091 "b_091"
#define B_091_KIND "Lamp_06"
#define B_091_PROPERTY_TAG 2091

#define B_092 "b_092"
#define B_092_KIND "Lamp_06"
#define B_092_PROPERTY_TAG 2092

#define B_093 "b_093"
#define B_093_KIND "Lamp_06"
#define B_093_PROPERTY_TAG 2093

#define B_094 "b_094"
#define B_094_KIND "Lamp_06"
#define B_094_PROPERTY_TAG 2094

#define B_095 "b_095"
#define B_095_KIND "Lamp_06"
#define B_095_PROPERTY_TAG 2095

#define B_096 "b_096"
#define B_096_KIND "Lamp_06"
#define B_096_PROPERTY_TAG 2096

#define B_097 "b_097"
#define B_097_KIND "Lamp_06"
#define B_097_PROPERTY_TAG 2097

#define B_098 "b_098"
#define B_098_KIND "Lamp_06"
#define B_098_PROPERTY_TAG 2098

#define B_099 "b_099"
#define B_099_KIND "Lamp_06"
#define B_099_PROPERTY_TAG 2099

#define B_100 "b_100"
#define B_100_KIND "Lamp_06"
#define B_100_PROPERTY_TAG 2100

#define B_101 "b_101"
#define B_101_KIND "Lamp_06"
#define B_101_PROPERTY_TAG 2101

#define B_102 "b_102"
#define B_102_KIND "Lamp_06"
#define B_102_PROPERTY_TAG 2102

#define B_103 "b_103"
#define B_103_KIND "Lamp_06"
#define B_103_PROPERTY_TAG 2103

#define B_104 "b_104"
#define B_104_KIND "Lamp_06"
#define B_104_PROPERTY_TAG 2104

#define B_105 "b_105"
#define B_105_KIND "Lamp_06"
#define B_105_PROPERTY_TAG 2105

#define B_106 "b_106"
#define B_106_KIND "Lamp_06"
#define B_106_PROPERTY_TAG 2106

#define B_107 "b_107"
#define B_107_KIND "Lamp_06"
#define B_107_PROPERTY_TAG 2107

#define GATE "gate"
#define GATE_KIND "Cable_Attachment_CV"
#define GATE_PROPERTY_TAG 100001
#define GATE_PATH "/cv_inputs/gate"

#define PITCH "pitch"
#define PITCH_KIND "Cable_Attachment_CV"
#define PITCH_PROPERTY_TAG 100002
#define PITCH_PATH "/cv_inputs/pitch"

#define AUDIOIN "audioIn"
#define AUDIOIN_KIND "Cable_Attachment_Audio"
#define AUDIOIN_PROPERTY_TAG 100003
#define AUDIOIN_PATH "/audio_inputs/audioIn"

#define AUDIOOUT "audioOut"
#define AUDIOOUT_KIND "Cable_Attachment_Audio"
#define AUDIOOUT_PROPERTY_TAG 100004
#define AUDIOOUT_PATH "/audio_outputs/audioOut"

#define COLOR "color"
#define COLOR_KIND "Knob_24"
#define COLOR_PROPERTY_TAG 3010

#define SCANRATE "scanRate"
#define SCANRATE_KIND "Knob_24"
#define SCANRATE_PROPERTY_TAG 3011

#define WAVESYNC "waveSync"
#define WAVESYNC_KIND "Button_38"
#define WAVESYNC_PROPERTY_TAG 3012

#define CPUMISER "cpuMiser"
#define CPUMISER_KIND "Button_38"
#define CPUMISER_PROPERTY_TAG 3013

#define F_0 "f_0"
#define F_0_KIND "Lamp_3k"
#define F_0_PROPERTY_TAG 1200

#define F_1 "f_1"
#define F_1_KIND "Lamp_3k"
#define F_1_PROPERTY_TAG 1201

#define F_2 "f_2"
#define F_2_KIND "Lamp_3k"
#define F_2_PROPERTY_TAG 1202

#define F_3 "f_3"
#define F_3_KIND "Lamp_3k"
#define F_3_PROPERTY_TAG 1203

#define F_4 "f_4"
#define F_4_KIND "Lamp_3k"
#define F_4_PROPERTY_TAG 1204

#define F_5 "f_5"
#define F_5_KIND "Lamp_3k"
#define F_5_PROPERTY_TAG 1205

#define F_6 "f_6"
#define F_6_KIND "Lamp_3k"
#define F_6_PROPERTY_TAG 1206

#define G_0 "g_0"
#define G_0_KIND "Lamp_06"
#define G_0_PROPERTY_TAG 2200

#define G_1 "g_1"
#define G_1_KIND "Lamp_06"
#define G_1_PROPERTY_TAG 2201

#define G_2 "g_2"
#define G_2_KIND "Lamp_06"
#define G_2_PROPERTY_TAG 2202

#define G_3 "g_3"
#define G_3_KIND "Lamp_06"
#define G_3_PROPERTY_TAG 2203

#define G_4 "g_4"
#define G_4_KIND "Lamp_06"
#define G_4_PROPERTY_TAG 2204

#define G_5 "g_5"
#define G_5_KIND "Lamp_06"
#define G_5_PROPERTY_TAG 2205

#define G_6 "g_6"
#define G_6_KIND "Lamp_06"
#define G_6_PROPERTY_TAG 2206



typedef struct OmNote {
    TJBox_UInt32 pitch;
    TJBox_Float32 oldVel;
    TJBox_Float32 vel;
} OmNote;

class Om {
private:
    TJBox_ObjectRef transport;
    TJBox_ObjectRef environment;

    TJBox_ObjectRef getTransport() {
        if(!this->transport)
            this->transport = JBox_GetMotherboardObjectRef("/transport");
        return this->transport;
    }
    TJBox_ObjectRef getEnvironment() {
        if(!this->environment)
            this->environment = JBox_GetMotherboardObjectRef("/environment");
        return this->environment;
    }

    static int equalString(const char *a,const char *b)
    {
        while(*a)
            if(*a++ != *b++)
                return 0;
        return 1;
    }

public:
    TJBox_ObjectRef props;

    TJBox_UInt32 noteChangeCount;
#define NOTE_CHANGE_MAX 2000
    OmNote noteChanges[NOTE_CHANGE_MAX]; // sometimes, reason gives us many note changes at the beginning. fine.

    void addNoteChange(TJBox_UInt32 pitch,TJBox_Float32 vel)
    {
        if(this->noteChangeCount >= NOTE_CHANGE_MAX) // safety first.
            return;

        if(pitch > 127)
            return;
        if(vel < 0)
            vel = 0;
        if(vel > 127)
            vel = 127;
        OmNote *note = this->noteChanges + this->noteChangeCount++;
        note->pitch = pitch;
        note->oldVel = this->noteVels[pitch];
        this->noteVels[pitch] = vel;
        note->vel = this->noteVels[pitch];
    }

    void doDiffs(const TJBox_PropertyDiff iPropertyDiffs[], TJBox_UInt32 iDiffCount)
    {
        this->transport = 0;
        this->environment = 0;

        this->sysSystemSampleRate = 0;
        this->sysMasterTune = 0;
        
        this->sysFilteredTempo = 0;
        this->sysPlayPos = 0;
        this->sysTimeSignatureNumerator = 0;
        this->sysTimeSignatureDenominator = 0;
        this->sysRequestResetAudio = 0;

        this->noteChangeCount = 0;

        if(iDiffCount == 0)
            return;

        TJBox_ObjectRef notes = JBox_GetMotherboardObjectRef("/note_states");
        this->props = JBox_GetMotherboardObjectRef("/custom_properties");
        for(TJBox_UInt32 i = 0; i < iDiffCount; i++)
        {
            const TJBox_PropertyDiff *d = &iPropertyDiffs[i];
            TJBox_ObjectRef dRef = d->fPropertyRef.fObject;
            TJBox_Tag dTag = d->fPropertyTag;
            if(dRef == notes) 
            {
                this->addNoteChange(dTag,JBox_GetNumber(d->fCurrentValue));
            }
            else if(dRef == props)
            {
                switch(dTag)
                {
                    case MODE_0_PROPERTY_TAG: mode_0 = JBox_GetBoolean(d->fCurrentValue); break;
                    case MODE_1_PROPERTY_TAG: mode_1 = JBox_GetBoolean(d->fCurrentValue); break;
                    case MODE_2_PROPERTY_TAG: mode_2 = JBox_GetBoolean(d->fCurrentValue); break;
                    case COLOR_PROPERTY_TAG: color = JBox_GetNumber(d->fCurrentValue); break;
                    case SCANRATE_PROPERTY_TAG: scanRate = JBox_GetNumber(d->fCurrentValue); break;
                    case WAVESYNC_PROPERTY_TAG: waveSync = JBox_GetBoolean(d->fCurrentValue); break;
                    case CPUMISER_PROPERTY_TAG: cpuMiser = JBox_GetBoolean(d->fCurrentValue); break;

                }
            }
        }
    }

    TJBox_Float32 noteVels[128];

// Input Parameters
    TJBox_Bool mode_0;
    TJBox_Bool mode_1;
    TJBox_Bool mode_2;
    TJBox_Float32 color;
    TJBox_Float32 scanRate;
    TJBox_Bool waveSync;
    TJBox_Bool cpuMiser;


// Output Lamps & Meters
    TJBox_Float32 m_036;
    TJBox_Float32 m_037;
    TJBox_Float32 m_038;
    TJBox_Float32 m_039;
    TJBox_Float32 m_040;
    TJBox_Float32 m_041;
    TJBox_Float32 m_042;
    TJBox_Float32 m_043;
    TJBox_Float32 m_044;
    TJBox_Float32 m_045;
    TJBox_Float32 m_046;
    TJBox_Float32 m_047;
    TJBox_Float32 m_048;
    TJBox_Float32 m_049;
    TJBox_Float32 m_050;
    TJBox_Float32 m_051;
    TJBox_Float32 m_052;
    TJBox_Float32 m_053;
    TJBox_Float32 m_054;
    TJBox_Float32 m_055;
    TJBox_Float32 m_056;
    TJBox_Float32 m_057;
    TJBox_Float32 m_058;
    TJBox_Float32 m_059;
    TJBox_Float32 m_060;
    TJBox_Float32 m_061;
    TJBox_Float32 m_062;
    TJBox_Float32 m_063;
    TJBox_Float32 m_064;
    TJBox_Float32 m_065;
    TJBox_Float32 m_066;
    TJBox_Float32 m_067;
    TJBox_Float32 m_068;
    TJBox_Float32 m_069;
    TJBox_Float32 m_070;
    TJBox_Float32 m_071;
    TJBox_Float32 m_072;
    TJBox_Float32 m_073;
    TJBox_Float32 m_074;
    TJBox_Float32 m_075;
    TJBox_Float32 m_076;
    TJBox_Float32 m_077;
    TJBox_Float32 m_078;
    TJBox_Float32 m_079;
    TJBox_Float32 m_080;
    TJBox_Float32 m_081;
    TJBox_Float32 m_082;
    TJBox_Float32 m_083;
    TJBox_Float32 m_084;
    TJBox_Float32 m_085;
    TJBox_Float32 m_086;
    TJBox_Float32 m_087;
    TJBox_Float32 m_088;
    TJBox_Float32 m_089;
    TJBox_Float32 m_090;
    TJBox_Float32 m_091;
    TJBox_Float32 m_092;
    TJBox_Float32 m_093;
    TJBox_Float32 m_094;
    TJBox_Float32 m_095;
    TJBox_Float32 m_096;
    TJBox_Float32 m_097;
    TJBox_Float32 m_098;
    TJBox_Float32 m_099;
    TJBox_Float32 m_100;
    TJBox_Float32 m_101;
    TJBox_Float32 m_102;
    TJBox_Float32 m_103;
    TJBox_Float32 m_104;
    TJBox_Float32 m_105;
    TJBox_Float32 m_106;
    TJBox_Float32 m_107;
    TJBox_Bool b_036;
    TJBox_Bool b_037;
    TJBox_Bool b_038;
    TJBox_Bool b_039;
    TJBox_Bool b_040;
    TJBox_Bool b_041;
    TJBox_Bool b_042;
    TJBox_Bool b_043;
    TJBox_Bool b_044;
    TJBox_Bool b_045;
    TJBox_Bool b_046;
    TJBox_Bool b_047;
    TJBox_Bool b_048;
    TJBox_Bool b_049;
    TJBox_Bool b_050;
    TJBox_Bool b_051;
    TJBox_Bool b_052;
    TJBox_Bool b_053;
    TJBox_Bool b_054;
    TJBox_Bool b_055;
    TJBox_Bool b_056;
    TJBox_Bool b_057;
    TJBox_Bool b_058;
    TJBox_Bool b_059;
    TJBox_Bool b_060;
    TJBox_Bool b_061;
    TJBox_Bool b_062;
    TJBox_Bool b_063;
    TJBox_Bool b_064;
    TJBox_Bool b_065;
    TJBox_Bool b_066;
    TJBox_Bool b_067;
    TJBox_Bool b_068;
    TJBox_Bool b_069;
    TJBox_Bool b_070;
    TJBox_Bool b_071;
    TJBox_Bool b_072;
    TJBox_Bool b_073;
    TJBox_Bool b_074;
    TJBox_Bool b_075;
    TJBox_Bool b_076;
    TJBox_Bool b_077;
    TJBox_Bool b_078;
    TJBox_Bool b_079;
    TJBox_Bool b_080;
    TJBox_Bool b_081;
    TJBox_Bool b_082;
    TJBox_Bool b_083;
    TJBox_Bool b_084;
    TJBox_Bool b_085;
    TJBox_Bool b_086;
    TJBox_Bool b_087;
    TJBox_Bool b_088;
    TJBox_Bool b_089;
    TJBox_Bool b_090;
    TJBox_Bool b_091;
    TJBox_Bool b_092;
    TJBox_Bool b_093;
    TJBox_Bool b_094;
    TJBox_Bool b_095;
    TJBox_Bool b_096;
    TJBox_Bool b_097;
    TJBox_Bool b_098;
    TJBox_Bool b_099;
    TJBox_Bool b_100;
    TJBox_Bool b_101;
    TJBox_Bool b_102;
    TJBox_Bool b_103;
    TJBox_Bool b_104;
    TJBox_Bool b_105;
    TJBox_Bool b_106;
    TJBox_Bool b_107;
    TJBox_Float32 f_0;
    TJBox_Float32 f_1;
    TJBox_Float32 f_2;
    TJBox_Float32 f_3;
    TJBox_Float32 f_4;
    TJBox_Float32 f_5;
    TJBox_Float32 f_6;
    TJBox_Bool g_0;
    TJBox_Bool g_1;
    TJBox_Bool g_2;
    TJBox_Bool g_3;
    TJBox_Bool g_4;
    TJBox_Bool g_5;
    TJBox_Bool g_6;



    // meter "m_036"
    void setM_036(TJBox_Float32 v) {
        if(v != this->m_036) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_036_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_036 = v;
        }
    }

    // meter "m_037"
    void setM_037(TJBox_Float32 v) {
        if(v != this->m_037) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_037_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_037 = v;
        }
    }

    // meter "m_038"
    void setM_038(TJBox_Float32 v) {
        if(v != this->m_038) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_038_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_038 = v;
        }
    }

    // meter "m_039"
    void setM_039(TJBox_Float32 v) {
        if(v != this->m_039) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_039_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_039 = v;
        }
    }

    // meter "m_040"
    void setM_040(TJBox_Float32 v) {
        if(v != this->m_040) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_040_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_040 = v;
        }
    }

    // meter "m_041"
    void setM_041(TJBox_Float32 v) {
        if(v != this->m_041) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_041_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_041 = v;
        }
    }

    // meter "m_042"
    void setM_042(TJBox_Float32 v) {
        if(v != this->m_042) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_042_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_042 = v;
        }
    }

    // meter "m_043"
    void setM_043(TJBox_Float32 v) {
        if(v != this->m_043) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_043_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_043 = v;
        }
    }

    // meter "m_044"
    void setM_044(TJBox_Float32 v) {
        if(v != this->m_044) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_044_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_044 = v;
        }
    }

    // meter "m_045"
    void setM_045(TJBox_Float32 v) {
        if(v != this->m_045) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_045_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_045 = v;
        }
    }

    // meter "m_046"
    void setM_046(TJBox_Float32 v) {
        if(v != this->m_046) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_046_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_046 = v;
        }
    }

    // meter "m_047"
    void setM_047(TJBox_Float32 v) {
        if(v != this->m_047) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_047_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_047 = v;
        }
    }

    // meter "m_048"
    void setM_048(TJBox_Float32 v) {
        if(v != this->m_048) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_048_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_048 = v;
        }
    }

    // meter "m_049"
    void setM_049(TJBox_Float32 v) {
        if(v != this->m_049) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_049_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_049 = v;
        }
    }

    // meter "m_050"
    void setM_050(TJBox_Float32 v) {
        if(v != this->m_050) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_050_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_050 = v;
        }
    }

    // meter "m_051"
    void setM_051(TJBox_Float32 v) {
        if(v != this->m_051) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_051_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_051 = v;
        }
    }

    // meter "m_052"
    void setM_052(TJBox_Float32 v) {
        if(v != this->m_052) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_052_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_052 = v;
        }
    }

    // meter "m_053"
    void setM_053(TJBox_Float32 v) {
        if(v != this->m_053) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_053_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_053 = v;
        }
    }

    // meter "m_054"
    void setM_054(TJBox_Float32 v) {
        if(v != this->m_054) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_054_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_054 = v;
        }
    }

    // meter "m_055"
    void setM_055(TJBox_Float32 v) {
        if(v != this->m_055) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_055_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_055 = v;
        }
    }

    // meter "m_056"
    void setM_056(TJBox_Float32 v) {
        if(v != this->m_056) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_056_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_056 = v;
        }
    }

    // meter "m_057"
    void setM_057(TJBox_Float32 v) {
        if(v != this->m_057) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_057_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_057 = v;
        }
    }

    // meter "m_058"
    void setM_058(TJBox_Float32 v) {
        if(v != this->m_058) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_058_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_058 = v;
        }
    }

    // meter "m_059"
    void setM_059(TJBox_Float32 v) {
        if(v != this->m_059) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_059_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_059 = v;
        }
    }

    // meter "m_060"
    void setM_060(TJBox_Float32 v) {
        if(v != this->m_060) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_060_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_060 = v;
        }
    }

    // meter "m_061"
    void setM_061(TJBox_Float32 v) {
        if(v != this->m_061) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_061_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_061 = v;
        }
    }

    // meter "m_062"
    void setM_062(TJBox_Float32 v) {
        if(v != this->m_062) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_062_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_062 = v;
        }
    }

    // meter "m_063"
    void setM_063(TJBox_Float32 v) {
        if(v != this->m_063) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_063_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_063 = v;
        }
    }

    // meter "m_064"
    void setM_064(TJBox_Float32 v) {
        if(v != this->m_064) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_064_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_064 = v;
        }
    }

    // meter "m_065"
    void setM_065(TJBox_Float32 v) {
        if(v != this->m_065) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_065_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_065 = v;
        }
    }

    // meter "m_066"
    void setM_066(TJBox_Float32 v) {
        if(v != this->m_066) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_066_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_066 = v;
        }
    }

    // meter "m_067"
    void setM_067(TJBox_Float32 v) {
        if(v != this->m_067) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_067_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_067 = v;
        }
    }

    // meter "m_068"
    void setM_068(TJBox_Float32 v) {
        if(v != this->m_068) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_068_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_068 = v;
        }
    }

    // meter "m_069"
    void setM_069(TJBox_Float32 v) {
        if(v != this->m_069) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_069_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_069 = v;
        }
    }

    // meter "m_070"
    void setM_070(TJBox_Float32 v) {
        if(v != this->m_070) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_070_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_070 = v;
        }
    }

    // meter "m_071"
    void setM_071(TJBox_Float32 v) {
        if(v != this->m_071) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_071_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_071 = v;
        }
    }

    // meter "m_072"
    void setM_072(TJBox_Float32 v) {
        if(v != this->m_072) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_072_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_072 = v;
        }
    }

    // meter "m_073"
    void setM_073(TJBox_Float32 v) {
        if(v != this->m_073) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_073_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_073 = v;
        }
    }

    // meter "m_074"
    void setM_074(TJBox_Float32 v) {
        if(v != this->m_074) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_074_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_074 = v;
        }
    }

    // meter "m_075"
    void setM_075(TJBox_Float32 v) {
        if(v != this->m_075) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_075_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_075 = v;
        }
    }

    // meter "m_076"
    void setM_076(TJBox_Float32 v) {
        if(v != this->m_076) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_076_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_076 = v;
        }
    }

    // meter "m_077"
    void setM_077(TJBox_Float32 v) {
        if(v != this->m_077) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_077_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_077 = v;
        }
    }

    // meter "m_078"
    void setM_078(TJBox_Float32 v) {
        if(v != this->m_078) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_078_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_078 = v;
        }
    }

    // meter "m_079"
    void setM_079(TJBox_Float32 v) {
        if(v != this->m_079) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_079_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_079 = v;
        }
    }

    // meter "m_080"
    void setM_080(TJBox_Float32 v) {
        if(v != this->m_080) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_080_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_080 = v;
        }
    }

    // meter "m_081"
    void setM_081(TJBox_Float32 v) {
        if(v != this->m_081) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_081_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_081 = v;
        }
    }

    // meter "m_082"
    void setM_082(TJBox_Float32 v) {
        if(v != this->m_082) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_082_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_082 = v;
        }
    }

    // meter "m_083"
    void setM_083(TJBox_Float32 v) {
        if(v != this->m_083) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_083_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_083 = v;
        }
    }

    // meter "m_084"
    void setM_084(TJBox_Float32 v) {
        if(v != this->m_084) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_084_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_084 = v;
        }
    }

    // meter "m_085"
    void setM_085(TJBox_Float32 v) {
        if(v != this->m_085) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_085_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_085 = v;
        }
    }

    // meter "m_086"
    void setM_086(TJBox_Float32 v) {
        if(v != this->m_086) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_086_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_086 = v;
        }
    }

    // meter "m_087"
    void setM_087(TJBox_Float32 v) {
        if(v != this->m_087) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_087_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_087 = v;
        }
    }

    // meter "m_088"
    void setM_088(TJBox_Float32 v) {
        if(v != this->m_088) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_088_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_088 = v;
        }
    }

    // meter "m_089"
    void setM_089(TJBox_Float32 v) {
        if(v != this->m_089) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_089_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_089 = v;
        }
    }

    // meter "m_090"
    void setM_090(TJBox_Float32 v) {
        if(v != this->m_090) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_090_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_090 = v;
        }
    }

    // meter "m_091"
    void setM_091(TJBox_Float32 v) {
        if(v != this->m_091) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_091_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_091 = v;
        }
    }

    // meter "m_092"
    void setM_092(TJBox_Float32 v) {
        if(v != this->m_092) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_092_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_092 = v;
        }
    }

    // meter "m_093"
    void setM_093(TJBox_Float32 v) {
        if(v != this->m_093) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_093_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_093 = v;
        }
    }

    // meter "m_094"
    void setM_094(TJBox_Float32 v) {
        if(v != this->m_094) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_094_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_094 = v;
        }
    }

    // meter "m_095"
    void setM_095(TJBox_Float32 v) {
        if(v != this->m_095) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_095_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_095 = v;
        }
    }

    // meter "m_096"
    void setM_096(TJBox_Float32 v) {
        if(v != this->m_096) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_096_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_096 = v;
        }
    }

    // meter "m_097"
    void setM_097(TJBox_Float32 v) {
        if(v != this->m_097) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_097_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_097 = v;
        }
    }

    // meter "m_098"
    void setM_098(TJBox_Float32 v) {
        if(v != this->m_098) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_098_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_098 = v;
        }
    }

    // meter "m_099"
    void setM_099(TJBox_Float32 v) {
        if(v != this->m_099) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_099_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_099 = v;
        }
    }

    // meter "m_100"
    void setM_100(TJBox_Float32 v) {
        if(v != this->m_100) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_100_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_100 = v;
        }
    }

    // meter "m_101"
    void setM_101(TJBox_Float32 v) {
        if(v != this->m_101) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_101_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_101 = v;
        }
    }

    // meter "m_102"
    void setM_102(TJBox_Float32 v) {
        if(v != this->m_102) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_102_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_102 = v;
        }
    }

    // meter "m_103"
    void setM_103(TJBox_Float32 v) {
        if(v != this->m_103) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_103_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_103 = v;
        }
    }

    // meter "m_104"
    void setM_104(TJBox_Float32 v) {
        if(v != this->m_104) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_104_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_104 = v;
        }
    }

    // meter "m_105"
    void setM_105(TJBox_Float32 v) {
        if(v != this->m_105) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_105_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_105 = v;
        }
    }

    // meter "m_106"
    void setM_106(TJBox_Float32 v) {
        if(v != this->m_106) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_106_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_106 = v;
        }
    }

    // meter "m_107"
    void setM_107(TJBox_Float32 v) {
        if(v != this->m_107) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,M_107_PROPERTY_TAG),JBox_MakeNumber(v));
            this->m_107 = v;
        }
    }

    // decoration "Device_Name"

    // toggleButton "mode_0"
    TJBox_Bool getMode_0() { return this->mode_0; }

    // toggleButton "mode_1"
    TJBox_Bool getMode_1() { return this->mode_1; }

    // toggleButton "mode_2"
    TJBox_Bool getMode_2() { return this->mode_2; }

    // lamp "b_036"
    void setB_036(TJBox_Bool v) {
        if(v != this->b_036) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_036_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_036 = v;
        }
    }

    // lamp "b_037"
    void setB_037(TJBox_Bool v) {
        if(v != this->b_037) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_037_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_037 = v;
        }
    }

    // lamp "b_038"
    void setB_038(TJBox_Bool v) {
        if(v != this->b_038) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_038_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_038 = v;
        }
    }

    // lamp "b_039"
    void setB_039(TJBox_Bool v) {
        if(v != this->b_039) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_039_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_039 = v;
        }
    }

    // lamp "b_040"
    void setB_040(TJBox_Bool v) {
        if(v != this->b_040) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_040_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_040 = v;
        }
    }

    // lamp "b_041"
    void setB_041(TJBox_Bool v) {
        if(v != this->b_041) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_041_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_041 = v;
        }
    }

    // lamp "b_042"
    void setB_042(TJBox_Bool v) {
        if(v != this->b_042) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_042_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_042 = v;
        }
    }

    // lamp "b_043"
    void setB_043(TJBox_Bool v) {
        if(v != this->b_043) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_043_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_043 = v;
        }
    }

    // lamp "b_044"
    void setB_044(TJBox_Bool v) {
        if(v != this->b_044) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_044_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_044 = v;
        }
    }

    // lamp "b_045"
    void setB_045(TJBox_Bool v) {
        if(v != this->b_045) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_045_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_045 = v;
        }
    }

    // lamp "b_046"
    void setB_046(TJBox_Bool v) {
        if(v != this->b_046) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_046_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_046 = v;
        }
    }

    // lamp "b_047"
    void setB_047(TJBox_Bool v) {
        if(v != this->b_047) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_047_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_047 = v;
        }
    }

    // lamp "b_048"
    void setB_048(TJBox_Bool v) {
        if(v != this->b_048) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_048_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_048 = v;
        }
    }

    // lamp "b_049"
    void setB_049(TJBox_Bool v) {
        if(v != this->b_049) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_049_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_049 = v;
        }
    }

    // lamp "b_050"
    void setB_050(TJBox_Bool v) {
        if(v != this->b_050) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_050_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_050 = v;
        }
    }

    // lamp "b_051"
    void setB_051(TJBox_Bool v) {
        if(v != this->b_051) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_051_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_051 = v;
        }
    }

    // lamp "b_052"
    void setB_052(TJBox_Bool v) {
        if(v != this->b_052) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_052_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_052 = v;
        }
    }

    // lamp "b_053"
    void setB_053(TJBox_Bool v) {
        if(v != this->b_053) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_053_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_053 = v;
        }
    }

    // lamp "b_054"
    void setB_054(TJBox_Bool v) {
        if(v != this->b_054) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_054_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_054 = v;
        }
    }

    // lamp "b_055"
    void setB_055(TJBox_Bool v) {
        if(v != this->b_055) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_055_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_055 = v;
        }
    }

    // lamp "b_056"
    void setB_056(TJBox_Bool v) {
        if(v != this->b_056) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_056_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_056 = v;
        }
    }

    // lamp "b_057"
    void setB_057(TJBox_Bool v) {
        if(v != this->b_057) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_057_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_057 = v;
        }
    }

    // lamp "b_058"
    void setB_058(TJBox_Bool v) {
        if(v != this->b_058) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_058_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_058 = v;
        }
    }

    // lamp "b_059"
    void setB_059(TJBox_Bool v) {
        if(v != this->b_059) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_059_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_059 = v;
        }
    }

    // lamp "b_060"
    void setB_060(TJBox_Bool v) {
        if(v != this->b_060) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_060_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_060 = v;
        }
    }

    // lamp "b_061"
    void setB_061(TJBox_Bool v) {
        if(v != this->b_061) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_061_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_061 = v;
        }
    }

    // lamp "b_062"
    void setB_062(TJBox_Bool v) {
        if(v != this->b_062) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_062_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_062 = v;
        }
    }

    // lamp "b_063"
    void setB_063(TJBox_Bool v) {
        if(v != this->b_063) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_063_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_063 = v;
        }
    }

    // lamp "b_064"
    void setB_064(TJBox_Bool v) {
        if(v != this->b_064) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_064_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_064 = v;
        }
    }

    // lamp "b_065"
    void setB_065(TJBox_Bool v) {
        if(v != this->b_065) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_065_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_065 = v;
        }
    }

    // lamp "b_066"
    void setB_066(TJBox_Bool v) {
        if(v != this->b_066) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_066_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_066 = v;
        }
    }

    // lamp "b_067"
    void setB_067(TJBox_Bool v) {
        if(v != this->b_067) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_067_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_067 = v;
        }
    }

    // lamp "b_068"
    void setB_068(TJBox_Bool v) {
        if(v != this->b_068) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_068_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_068 = v;
        }
    }

    // lamp "b_069"
    void setB_069(TJBox_Bool v) {
        if(v != this->b_069) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_069_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_069 = v;
        }
    }

    // lamp "b_070"
    void setB_070(TJBox_Bool v) {
        if(v != this->b_070) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_070_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_070 = v;
        }
    }

    // lamp "b_071"
    void setB_071(TJBox_Bool v) {
        if(v != this->b_071) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_071_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_071 = v;
        }
    }

    // lamp "b_072"
    void setB_072(TJBox_Bool v) {
        if(v != this->b_072) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_072_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_072 = v;
        }
    }

    // lamp "b_073"
    void setB_073(TJBox_Bool v) {
        if(v != this->b_073) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_073_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_073 = v;
        }
    }

    // lamp "b_074"
    void setB_074(TJBox_Bool v) {
        if(v != this->b_074) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_074_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_074 = v;
        }
    }

    // lamp "b_075"
    void setB_075(TJBox_Bool v) {
        if(v != this->b_075) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_075_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_075 = v;
        }
    }

    // lamp "b_076"
    void setB_076(TJBox_Bool v) {
        if(v != this->b_076) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_076_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_076 = v;
        }
    }

    // lamp "b_077"
    void setB_077(TJBox_Bool v) {
        if(v != this->b_077) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_077_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_077 = v;
        }
    }

    // lamp "b_078"
    void setB_078(TJBox_Bool v) {
        if(v != this->b_078) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_078_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_078 = v;
        }
    }

    // lamp "b_079"
    void setB_079(TJBox_Bool v) {
        if(v != this->b_079) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_079_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_079 = v;
        }
    }

    // lamp "b_080"
    void setB_080(TJBox_Bool v) {
        if(v != this->b_080) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_080_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_080 = v;
        }
    }

    // lamp "b_081"
    void setB_081(TJBox_Bool v) {
        if(v != this->b_081) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_081_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_081 = v;
        }
    }

    // lamp "b_082"
    void setB_082(TJBox_Bool v) {
        if(v != this->b_082) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_082_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_082 = v;
        }
    }

    // lamp "b_083"
    void setB_083(TJBox_Bool v) {
        if(v != this->b_083) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_083_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_083 = v;
        }
    }

    // lamp "b_084"
    void setB_084(TJBox_Bool v) {
        if(v != this->b_084) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_084_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_084 = v;
        }
    }

    // lamp "b_085"
    void setB_085(TJBox_Bool v) {
        if(v != this->b_085) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_085_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_085 = v;
        }
    }

    // lamp "b_086"
    void setB_086(TJBox_Bool v) {
        if(v != this->b_086) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_086_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_086 = v;
        }
    }

    // lamp "b_087"
    void setB_087(TJBox_Bool v) {
        if(v != this->b_087) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_087_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_087 = v;
        }
    }

    // lamp "b_088"
    void setB_088(TJBox_Bool v) {
        if(v != this->b_088) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_088_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_088 = v;
        }
    }

    // lamp "b_089"
    void setB_089(TJBox_Bool v) {
        if(v != this->b_089) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_089_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_089 = v;
        }
    }

    // lamp "b_090"
    void setB_090(TJBox_Bool v) {
        if(v != this->b_090) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_090_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_090 = v;
        }
    }

    // lamp "b_091"
    void setB_091(TJBox_Bool v) {
        if(v != this->b_091) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_091_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_091 = v;
        }
    }

    // lamp "b_092"
    void setB_092(TJBox_Bool v) {
        if(v != this->b_092) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_092_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_092 = v;
        }
    }

    // lamp "b_093"
    void setB_093(TJBox_Bool v) {
        if(v != this->b_093) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_093_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_093 = v;
        }
    }

    // lamp "b_094"
    void setB_094(TJBox_Bool v) {
        if(v != this->b_094) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_094_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_094 = v;
        }
    }

    // lamp "b_095"
    void setB_095(TJBox_Bool v) {
        if(v != this->b_095) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_095_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_095 = v;
        }
    }

    // lamp "b_096"
    void setB_096(TJBox_Bool v) {
        if(v != this->b_096) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_096_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_096 = v;
        }
    }

    // lamp "b_097"
    void setB_097(TJBox_Bool v) {
        if(v != this->b_097) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_097_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_097 = v;
        }
    }

    // lamp "b_098"
    void setB_098(TJBox_Bool v) {
        if(v != this->b_098) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_098_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_098 = v;
        }
    }

    // lamp "b_099"
    void setB_099(TJBox_Bool v) {
        if(v != this->b_099) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_099_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_099 = v;
        }
    }

    // lamp "b_100"
    void setB_100(TJBox_Bool v) {
        if(v != this->b_100) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_100_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_100 = v;
        }
    }

    // lamp "b_101"
    void setB_101(TJBox_Bool v) {
        if(v != this->b_101) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_101_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_101 = v;
        }
    }

    // lamp "b_102"
    void setB_102(TJBox_Bool v) {
        if(v != this->b_102) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_102_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_102 = v;
        }
    }

    // lamp "b_103"
    void setB_103(TJBox_Bool v) {
        if(v != this->b_103) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_103_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_103 = v;
        }
    }

    // lamp "b_104"
    void setB_104(TJBox_Bool v) {
        if(v != this->b_104) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_104_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_104 = v;
        }
    }

    // lamp "b_105"
    void setB_105(TJBox_Bool v) {
        if(v != this->b_105) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_105_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_105 = v;
        }
    }

    // lamp "b_106"
    void setB_106(TJBox_Bool v) {
        if(v != this->b_106) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_106_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_106 = v;
        }
    }

    // lamp "b_107"
    void setB_107(TJBox_Bool v) {
        if(v != this->b_107) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,B_107_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->b_107 = v;
        }
    }

    // cvIn "gate"
    TJBox_Float32 getGate() {
        TJBox_ObjectRef ref = JBox_GetMotherboardObjectRef(GATE_PATH);
        TJBox_Float32 v = static_cast<TJBox_Float32>(JBox_LoadMOMPropertyAsNumber(ref, kJBox_CVInputValue));
        return v;
    }
    TJBox_Bool isGateConnected() {
        TJBox_ObjectRef ref = JBox_GetMotherboardObjectRef(GATE_PATH);
        TJBox_Bool v = JBox_GetBoolean(JBox_LoadMOMPropertyByTag(ref, kJBox_CVInputConnected));
        return v;    }

    // cvIn "pitch"
    TJBox_Float32 getPitch() {
        TJBox_ObjectRef ref = JBox_GetMotherboardObjectRef(PITCH_PATH);
        TJBox_Float32 v = static_cast<TJBox_Float32>(JBox_LoadMOMPropertyAsNumber(ref, kJBox_CVInputValue));
        return v;
    }
    TJBox_Bool isPitchConnected() {
        TJBox_ObjectRef ref = JBox_GetMotherboardObjectRef(PITCH_PATH);
        TJBox_Bool v = JBox_GetBoolean(JBox_LoadMOMPropertyByTag(ref, kJBox_CVInputConnected));
        return v;    }

    // audioIn "audioIn"
    void getAudioIn(TJBox_AudioSample *dataReceive) {
        TJBox_ObjectRef audioInObjectRef = JBox_GetMotherboardObjectRef(AUDIOIN_PATH);
        TJBox_Value audioInValue = JBox_LoadMOMPropertyByTag(audioInObjectRef, kJBox_AudioInputBuffer);
        JBox_GetDSPBufferData(audioInValue, 0, kBatchSize, dataReceive);
    }
    TJBox_Bool isAudioInConnected() {
        TJBox_ObjectRef audioInObjectRef = JBox_GetMotherboardObjectRef(AUDIOIN_PATH);
        TJBox_Bool v = JBox_GetBoolean(JBox_LoadMOMPropertyByTag(audioInObjectRef, kJBox_AudioInputConnected));
        return v;
    }

    // audioOut "audioOut"
    void setAudioOut(const TJBox_AudioSample *data) {
        TJBox_ObjectRef audioOutObjectRef = JBox_GetMotherboardObjectRef(AUDIOOUT_PATH);
        TJBox_Value audioOutValue = JBox_LoadMOMPropertyByTag(audioOutObjectRef, kJBox_AudioOutputBuffer);
        JBox_SetDSPBufferData(audioOutValue, 0, kBatchSize, data);
    }
    TJBox_Bool isAudioOutConnected() {
        TJBox_ObjectRef audioOutObjectRef = JBox_GetMotherboardObjectRef(AUDIOOUT_PATH);
        TJBox_Bool v = JBox_GetBoolean(JBox_LoadMOMPropertyByTag(audioOutObjectRef, kJBox_AudioOutputConnected));
        return v;    }

    // knobSelector "color"
    TJBox_Float32 getColor() { return this->color; }

    // knob "scanRate"
    TJBox_Float32 getScanRate() { return this->scanRate; }

    // toggleButton "waveSync"
    TJBox_Bool getWaveSync() { return this->waveSync; }

    // toggleButton "cpuMiser"
    TJBox_Bool getCpuMiser() { return this->cpuMiser; }

    // decoration "powercord_02"

    // decoration "screw_02"

    // decoration "placeholder"

    // meter "f_0"
    void setF_0(TJBox_Float32 v) {
        if(v != this->f_0) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,F_0_PROPERTY_TAG),JBox_MakeNumber(v));
            this->f_0 = v;
        }
    }

    // meter "f_1"
    void setF_1(TJBox_Float32 v) {
        if(v != this->f_1) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,F_1_PROPERTY_TAG),JBox_MakeNumber(v));
            this->f_1 = v;
        }
    }

    // meter "f_2"
    void setF_2(TJBox_Float32 v) {
        if(v != this->f_2) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,F_2_PROPERTY_TAG),JBox_MakeNumber(v));
            this->f_2 = v;
        }
    }

    // meter "f_3"
    void setF_3(TJBox_Float32 v) {
        if(v != this->f_3) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,F_3_PROPERTY_TAG),JBox_MakeNumber(v));
            this->f_3 = v;
        }
    }

    // meter "f_4"
    void setF_4(TJBox_Float32 v) {
        if(v != this->f_4) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,F_4_PROPERTY_TAG),JBox_MakeNumber(v));
            this->f_4 = v;
        }
    }

    // meter "f_5"
    void setF_5(TJBox_Float32 v) {
        if(v != this->f_5) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,F_5_PROPERTY_TAG),JBox_MakeNumber(v));
            this->f_5 = v;
        }
    }

    // meter "f_6"
    void setF_6(TJBox_Float32 v) {
        if(v != this->f_6) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,F_6_PROPERTY_TAG),JBox_MakeNumber(v));
            this->f_6 = v;
        }
    }

    // lamp "g_0"
    void setG_0(TJBox_Bool v) {
        if(v != this->g_0) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,G_0_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->g_0 = v;
        }
    }

    // lamp "g_1"
    void setG_1(TJBox_Bool v) {
        if(v != this->g_1) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,G_1_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->g_1 = v;
        }
    }

    // lamp "g_2"
    void setG_2(TJBox_Bool v) {
        if(v != this->g_2) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,G_2_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->g_2 = v;
        }
    }

    // lamp "g_3"
    void setG_3(TJBox_Bool v) {
        if(v != this->g_3) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,G_3_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->g_3 = v;
        }
    }

    // lamp "g_4"
    void setG_4(TJBox_Bool v) {
        if(v != this->g_4) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,G_4_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->g_4 = v;
        }
    }

    // lamp "g_5"
    void setG_5(TJBox_Bool v) {
        if(v != this->g_5) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,G_5_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->g_5 = v;
        }
    }

    // lamp "g_6"
    void setG_6(TJBox_Bool v) {
        if(v != this->g_6) {
            JBox_StoreMOMProperty(JBox_FindPropertyByTag(this->props,G_6_PROPERTY_TAG),JBox_MakeBoolean(v));
            this->g_6 = v;
        }
    }

    // decoration "cable_origin"


    TJBox_Float32 getNumberByPropertyTag(int propertyTag) {
        switch(propertyTag) {
        case COLOR_PROPERTY_TAG: return getColor(); break;
        case SCANRATE_PROPERTY_TAG: return getScanRate(); break;

        
        default: return 0;
        }
    }

    TJBox_Bool getBooleanByPropertyTag(int propertyTag) {
        switch(propertyTag) {
        case MODE_0_PROPERTY_TAG: return getMode_0(); break;
        case MODE_1_PROPERTY_TAG: return getMode_1(); break;
        case MODE_2_PROPERTY_TAG: return getMode_2(); break;
        case WAVESYNC_PROPERTY_TAG: return getWaveSync(); break;
        case CPUMISER_PROPERTY_TAG: return getCpuMiser(); break;

        
        default: return false;
        }
    }

    void setNumberByPropertyTag(int propertyTag,TJBox_Float32 v) {
        switch(propertyTag) {
        case M_036_PROPERTY_TAG: setM_036(v); break;
        case M_037_PROPERTY_TAG: setM_037(v); break;
        case M_038_PROPERTY_TAG: setM_038(v); break;
        case M_039_PROPERTY_TAG: setM_039(v); break;
        case M_040_PROPERTY_TAG: setM_040(v); break;
        case M_041_PROPERTY_TAG: setM_041(v); break;
        case M_042_PROPERTY_TAG: setM_042(v); break;
        case M_043_PROPERTY_TAG: setM_043(v); break;
        case M_044_PROPERTY_TAG: setM_044(v); break;
        case M_045_PROPERTY_TAG: setM_045(v); break;
        case M_046_PROPERTY_TAG: setM_046(v); break;
        case M_047_PROPERTY_TAG: setM_047(v); break;
        case M_048_PROPERTY_TAG: setM_048(v); break;
        case M_049_PROPERTY_TAG: setM_049(v); break;
        case M_050_PROPERTY_TAG: setM_050(v); break;
        case M_051_PROPERTY_TAG: setM_051(v); break;
        case M_052_PROPERTY_TAG: setM_052(v); break;
        case M_053_PROPERTY_TAG: setM_053(v); break;
        case M_054_PROPERTY_TAG: setM_054(v); break;
        case M_055_PROPERTY_TAG: setM_055(v); break;
        case M_056_PROPERTY_TAG: setM_056(v); break;
        case M_057_PROPERTY_TAG: setM_057(v); break;
        case M_058_PROPERTY_TAG: setM_058(v); break;
        case M_059_PROPERTY_TAG: setM_059(v); break;
        case M_060_PROPERTY_TAG: setM_060(v); break;
        case M_061_PROPERTY_TAG: setM_061(v); break;
        case M_062_PROPERTY_TAG: setM_062(v); break;
        case M_063_PROPERTY_TAG: setM_063(v); break;
        case M_064_PROPERTY_TAG: setM_064(v); break;
        case M_065_PROPERTY_TAG: setM_065(v); break;
        case M_066_PROPERTY_TAG: setM_066(v); break;
        case M_067_PROPERTY_TAG: setM_067(v); break;
        case M_068_PROPERTY_TAG: setM_068(v); break;
        case M_069_PROPERTY_TAG: setM_069(v); break;
        case M_070_PROPERTY_TAG: setM_070(v); break;
        case M_071_PROPERTY_TAG: setM_071(v); break;
        case M_072_PROPERTY_TAG: setM_072(v); break;
        case M_073_PROPERTY_TAG: setM_073(v); break;
        case M_074_PROPERTY_TAG: setM_074(v); break;
        case M_075_PROPERTY_TAG: setM_075(v); break;
        case M_076_PROPERTY_TAG: setM_076(v); break;
        case M_077_PROPERTY_TAG: setM_077(v); break;
        case M_078_PROPERTY_TAG: setM_078(v); break;
        case M_079_PROPERTY_TAG: setM_079(v); break;
        case M_080_PROPERTY_TAG: setM_080(v); break;
        case M_081_PROPERTY_TAG: setM_081(v); break;
        case M_082_PROPERTY_TAG: setM_082(v); break;
        case M_083_PROPERTY_TAG: setM_083(v); break;
        case M_084_PROPERTY_TAG: setM_084(v); break;
        case M_085_PROPERTY_TAG: setM_085(v); break;
        case M_086_PROPERTY_TAG: setM_086(v); break;
        case M_087_PROPERTY_TAG: setM_087(v); break;
        case M_088_PROPERTY_TAG: setM_088(v); break;
        case M_089_PROPERTY_TAG: setM_089(v); break;
        case M_090_PROPERTY_TAG: setM_090(v); break;
        case M_091_PROPERTY_TAG: setM_091(v); break;
        case M_092_PROPERTY_TAG: setM_092(v); break;
        case M_093_PROPERTY_TAG: setM_093(v); break;
        case M_094_PROPERTY_TAG: setM_094(v); break;
        case M_095_PROPERTY_TAG: setM_095(v); break;
        case M_096_PROPERTY_TAG: setM_096(v); break;
        case M_097_PROPERTY_TAG: setM_097(v); break;
        case M_098_PROPERTY_TAG: setM_098(v); break;
        case M_099_PROPERTY_TAG: setM_099(v); break;
        case M_100_PROPERTY_TAG: setM_100(v); break;
        case M_101_PROPERTY_TAG: setM_101(v); break;
        case M_102_PROPERTY_TAG: setM_102(v); break;
        case M_103_PROPERTY_TAG: setM_103(v); break;
        case M_104_PROPERTY_TAG: setM_104(v); break;
        case M_105_PROPERTY_TAG: setM_105(v); break;
        case M_106_PROPERTY_TAG: setM_106(v); break;
        case M_107_PROPERTY_TAG: setM_107(v); break;
        case F_0_PROPERTY_TAG: setF_0(v); break;
        case F_1_PROPERTY_TAG: setF_1(v); break;
        case F_2_PROPERTY_TAG: setF_2(v); break;
        case F_3_PROPERTY_TAG: setF_3(v); break;
        case F_4_PROPERTY_TAG: setF_4(v); break;
        case F_5_PROPERTY_TAG: setF_5(v); break;
        case F_6_PROPERTY_TAG: setF_6(v); break;

        }
    }

    void setBooleanByPropertyTag(int propertyTag,TJBox_Bool v) {
        switch(propertyTag) {
        case B_036_PROPERTY_TAG: setB_036(v); break;
        case B_037_PROPERTY_TAG: setB_037(v); break;
        case B_038_PROPERTY_TAG: setB_038(v); break;
        case B_039_PROPERTY_TAG: setB_039(v); break;
        case B_040_PROPERTY_TAG: setB_040(v); break;
        case B_041_PROPERTY_TAG: setB_041(v); break;
        case B_042_PROPERTY_TAG: setB_042(v); break;
        case B_043_PROPERTY_TAG: setB_043(v); break;
        case B_044_PROPERTY_TAG: setB_044(v); break;
        case B_045_PROPERTY_TAG: setB_045(v); break;
        case B_046_PROPERTY_TAG: setB_046(v); break;
        case B_047_PROPERTY_TAG: setB_047(v); break;
        case B_048_PROPERTY_TAG: setB_048(v); break;
        case B_049_PROPERTY_TAG: setB_049(v); break;
        case B_050_PROPERTY_TAG: setB_050(v); break;
        case B_051_PROPERTY_TAG: setB_051(v); break;
        case B_052_PROPERTY_TAG: setB_052(v); break;
        case B_053_PROPERTY_TAG: setB_053(v); break;
        case B_054_PROPERTY_TAG: setB_054(v); break;
        case B_055_PROPERTY_TAG: setB_055(v); break;
        case B_056_PROPERTY_TAG: setB_056(v); break;
        case B_057_PROPERTY_TAG: setB_057(v); break;
        case B_058_PROPERTY_TAG: setB_058(v); break;
        case B_059_PROPERTY_TAG: setB_059(v); break;
        case B_060_PROPERTY_TAG: setB_060(v); break;
        case B_061_PROPERTY_TAG: setB_061(v); break;
        case B_062_PROPERTY_TAG: setB_062(v); break;
        case B_063_PROPERTY_TAG: setB_063(v); break;
        case B_064_PROPERTY_TAG: setB_064(v); break;
        case B_065_PROPERTY_TAG: setB_065(v); break;
        case B_066_PROPERTY_TAG: setB_066(v); break;
        case B_067_PROPERTY_TAG: setB_067(v); break;
        case B_068_PROPERTY_TAG: setB_068(v); break;
        case B_069_PROPERTY_TAG: setB_069(v); break;
        case B_070_PROPERTY_TAG: setB_070(v); break;
        case B_071_PROPERTY_TAG: setB_071(v); break;
        case B_072_PROPERTY_TAG: setB_072(v); break;
        case B_073_PROPERTY_TAG: setB_073(v); break;
        case B_074_PROPERTY_TAG: setB_074(v); break;
        case B_075_PROPERTY_TAG: setB_075(v); break;
        case B_076_PROPERTY_TAG: setB_076(v); break;
        case B_077_PROPERTY_TAG: setB_077(v); break;
        case B_078_PROPERTY_TAG: setB_078(v); break;
        case B_079_PROPERTY_TAG: setB_079(v); break;
        case B_080_PROPERTY_TAG: setB_080(v); break;
        case B_081_PROPERTY_TAG: setB_081(v); break;
        case B_082_PROPERTY_TAG: setB_082(v); break;
        case B_083_PROPERTY_TAG: setB_083(v); break;
        case B_084_PROPERTY_TAG: setB_084(v); break;
        case B_085_PROPERTY_TAG: setB_085(v); break;
        case B_086_PROPERTY_TAG: setB_086(v); break;
        case B_087_PROPERTY_TAG: setB_087(v); break;
        case B_088_PROPERTY_TAG: setB_088(v); break;
        case B_089_PROPERTY_TAG: setB_089(v); break;
        case B_090_PROPERTY_TAG: setB_090(v); break;
        case B_091_PROPERTY_TAG: setB_091(v); break;
        case B_092_PROPERTY_TAG: setB_092(v); break;
        case B_093_PROPERTY_TAG: setB_093(v); break;
        case B_094_PROPERTY_TAG: setB_094(v); break;
        case B_095_PROPERTY_TAG: setB_095(v); break;
        case B_096_PROPERTY_TAG: setB_096(v); break;
        case B_097_PROPERTY_TAG: setB_097(v); break;
        case B_098_PROPERTY_TAG: setB_098(v); break;
        case B_099_PROPERTY_TAG: setB_099(v); break;
        case B_100_PROPERTY_TAG: setB_100(v); break;
        case B_101_PROPERTY_TAG: setB_101(v); break;
        case B_102_PROPERTY_TAG: setB_102(v); break;
        case B_103_PROPERTY_TAG: setB_103(v); break;
        case B_104_PROPERTY_TAG: setB_104(v); break;
        case B_105_PROPERTY_TAG: setB_105(v); break;
        case B_106_PROPERTY_TAG: setB_106(v); break;
        case B_107_PROPERTY_TAG: setB_107(v); break;
        case G_0_PROPERTY_TAG: setG_0(v); break;
        case G_1_PROPERTY_TAG: setG_1(v); break;
        case G_2_PROPERTY_TAG: setG_2(v); break;
        case G_3_PROPERTY_TAG: setG_3(v); break;
        case G_4_PROPERTY_TAG: setG_4(v); break;
        case G_5_PROPERTY_TAG: setG_5(v); break;
        case G_6_PROPERTY_TAG: setG_6(v); break;

        }
    }

    void getAudioByPropertyTag(int propertyTag,TJBox_AudioSample *samplesGot) {
        switch(propertyTag) {
        case AUDIOIN_PROPERTY_TAG: getAudioIn(samplesGot); break;

        }
    }
    TJBox_Bool isConnectedByPropertyTag(int propertyTag) {
        TJBox_Bool v = false;
        switch(propertyTag) {
        case GATE_PROPERTY_TAG: v = isGateConnected(); break;
        case PITCH_PROPERTY_TAG: v = isPitchConnected(); break;
        case AUDIOIN_PROPERTY_TAG: v = isAudioInConnected(); break;
        case AUDIOOUT_PROPERTY_TAG: v = isAudioOutConnected(); break;

        }
        return v;
    }

    // +-------------
    // | Some system values
    // |

    #define GETJNUMBER(_group,_type,_name) \
    _type sys##_name; \
    _type get##_name() { \
        if(!this->sys##_name) \
            this->sys##_name = (_type)JBox_LoadMOMPropertyAsNumber(get##_group(), kJBox_##_group##_name); \
        return this->sys##_name; \
    }

    // in hz
    GETJNUMBER(Environment,TJBox_Float32,SystemSampleRate)

    // in cents -100 to +100, centered at 440 A.
    GETJNUMBER(Environment,TJBox_Float32,MasterTune)
    
    // in bpm
    GETJNUMBER(Transport,TJBox_Float32,FilteredTempo)
    // in 15360 per quarter note
    GETJNUMBER(Transport,TJBox_Float32,PlayPos)
    GETJNUMBER(Transport,int,TimeSignatureNumerator)
    GETJNUMBER(Transport,int,TimeSignatureDenominator)
    GETJNUMBER(Transport,TJBox_Float32,RequestResetAudio)

    TJBox_Bool isPlaying() {
        TJBox_Bool v = JBox_GetBoolean(JBox_LoadMOMPropertyByTag(getTransport(), kJBox_TransportPlaying));
        return v;
    }
};

