-CANVAS_VARIABLE(canvasvar_EditPoint, "edit point")
-CANVAS_VARIABLE(canvasvar_PlayHead, "play head")
-CANVAS_VARIABLE(canvasvar_MeterColorBase, "meter fill min")
-CANVAS_VARIABLE(canvasvar_MeterColorMid, "meter fill mid")
-CANVAS_VARIABLE(canvasvar_MeterColorTop, "meter fill max")
-CANVAS_VARIABLE(canvasvar_MeterColorClip, "meter fill clip")
-CANVAS_VARIABLE(canvasvar_MidiSelectRectOutline, "midi select rect outline")
-CANVAS_VARIABLE(canvasvar_MidiSelectRectFill, "midi select rect fill")
-CANVAS_VARIABLE(canvasvar_MidiNoteOutlineMin, "midi note outline min")
-CANVAS_VARIABLE(canvasvar_MidiNoteOutlineMid, "midi note outline mid")
-CANVAS_VARIABLE(canvasvar_MidiNoteOutlineMax, "midi note outline max")
-CANVAS_VARIABLE(canvasvar_MidiNoteFillMin, "midi note fill min")
-CANVAS_VARIABLE(canvasvar_MidiNoteFillMid, "midi note fill mid")
-CANVAS_VARIABLE(canvasvar_MidiNoteFillMax, "midi note fill max")
-CANVAS_VARIABLE(canvasvar_MidiNoteSelectedOutline, "midi note selected outline")
-CANVAS_VARIABLE(canvasvar_PianoRollWhite, "piano roll white")
-CANVAS_VARIABLE(canvasvar_PianoRollBlack, "piano roll black")
-CANVAS_VARIABLE(canvasvar_PianoRollBlackOutline, "piano roll black outline")
+CANVAS_VARIABLE(canvasvar_VerboseCanvasCursor, "verbose canvas cursor")
+CANVAS_VARIABLE(canvasvar_VestigialFrame, "vestigial frame")
+CANVAS_VARIABLE(canvasvar_VideoBar, "video timeline bar")
+CANVAS_VARIABLE(canvasvar_FrameBase, "region base")
+CANVAS_VARIABLE(canvasvar_CoveredRegion, "region area covered by another region")
+CANVAS_VARIABLE(canvasvar_WaveForm, "waveform outline")
+CANVAS_VARIABLE(canvasvar_WaveFormClip, "clipped waveform")
+CANVAS_VARIABLE(canvasvar_WaveFormFill, "waveform fill")
+CANVAS_VARIABLE(canvasvar_ZeroLine, "zero line")
+CANVAS_VARIABLE(canvasvar_ZoomRect, "zoom rect")
+CANVAS_VARIABLE(canvasvar_MonitorSectionKnob, "monitor knob")
+
+CANVAS_VARIABLE(canvasvar_ButtonBorder, "border color")
+#define BUTTON_VARS(root,name) \
+CANVAS_VARIABLE(canvasvar_ ## root ## FillStart, name ": fill start") \
+CANVAS_VARIABLE(canvasvar_ ## root ## FillEnd, name ": fill end") \
+CANVAS_VARIABLE(canvasvar_ ## root ## FillStartActive, name ": fill start active") \
+CANVAS_VARIABLE(canvasvar_ ## root ## FillEndActive, name ": fill end active") \
+CANVAS_VARIABLE(canvasvar_ ## root ## LED, name ": led") \
+CANVAS_VARIABLE(canvasvar_ ## root ## LEDActive, name ": led active") \
+CANVAS_VARIABLE(canvasvar_ ## root ## Text, name ": text") \
+CANVAS_VARIABLE(canvasvar_ ## root ## TextActive, name ": text active") \
+
+BUTTON_VARS(ProcessorPreFader, "processor prefader")
+BUTTON_VARS(ProcessorFader, "processor fader")
+BUTTON_VARS(ProcessorPostFader, "processor postfader")
+BUTTON_VARS(ProcessorControlButton, "processor control button")
+BUTTON_VARS(MonitorButton, "monitor button")
+BUTTON_VARS(SoloIsolateButton, "solo isolate")
+BUTTON_VARS(SoloSafeButton, "solo safe")
+BUTTON_VARS(MonitorSectionCutButton, "monitor section cut")
+BUTTON_VARS(MonitorSectionDimButton, "monitor section dim")
+BUTTON_VARS(MonitorSectionSoloButton, "monitor section solo")
+BUTTON_VARS(MonitorSectionInvertButton, "monitor section invert")
+BUTTON_VARS(MonitorSectionMonoButton, "monitor section mono")
+BUTTON_VARS(MonitorSectionSoloModelButton, "monitor section solo model")
+BUTTON_VARS(MonitorSectionSoloOverrideButton, "monitor solo override")
+BUTTON_VARS(MonitorSectionSoloExclusiveButton, "monitor solo exclusive")
+BUTTON_VARS(RudeSolo, "rude solo")
+BUTTON_VARS(RudeIsolate, "rude isolate")
+BUTTON_VARS(RudeAudition, "rude audition")
+BUTTON_VARS(FeedbackAlert, "feedback alert")
+BUTTON_VARS(InvertButton, "invert button")
+BUTTON_VARS(MuteButton, "mute button")
+BUTTON_VARS(SoloButton, "solo button")
+BUTTON_VARS(RecEnableButton, "record enable button")
+BUTTON_VARS(SendButton, "send alert button")
+BUTTON_VARS(TransportButton, "transport button")
+BUTTON_VARS(TransportRecenableButton, "transport recenable button")
+BUTTON_VARS(TransportOptionButton, "transport option button")
+BUTTON_VARS(TransportActiveOptionButton, "transport active option button")
+BUTTON_VARS(PluginBypassButton, "plugin bypass button")
+BUTTON_VARS(PunchButton, "punch button")
+BUTTON_VARS(MouseModeButton, "mouse mode button")
+BUTTON_VARS(ZoomButton, "zoom button")
+BUTTON_VARS(RouteButton, "route button")
+BUTTON_VARS(MixerStripButton, "mixer strip button")
+BUTTON_VARS(MixerStripNameButton, "mixer strip name button")
+BUTTON_VARS(MidiInputButton, "midi input button")
+
+#define CLOCK_VARS(root,name) \
+ CANVAS_VARIABLE(canvasvar_ ## root ## Background, name ": background") \
+ CANVAS_VARIABLE(canvasvar_ ## root ## Text, name ": text") \
+ CANVAS_VARIABLE(canvasvar_ ## root ## EditedText, name ": edited text") \
+ CANVAS_VARIABLE(canvasvar_ ## root ## Cursor, name ": cursor")
+
+CLOCK_VARS(TransportClock, "transport clock")
+CLOCK_VARS(SecondaryClock, "secondary clock")
+CLOCK_VARS(TransportDeltaClock, "transport delta clock")
+CLOCK_VARS(SecondaryDeltaClock, "secondary delta clock")
+CLOCK_VARS(BigClock, "big clock")
+CLOCK_VARS(BigClockActive, "big clock active")
+CLOCK_VARS(PunchClock, "punch clock")
+CLOCK_VARS(SelectionClock, "selection clock")
+CLOCK_VARS(NudgeClock, "nudge clock")
+CLOCK_VARS(GenericClock, "clock")