als erstes Mal ein gaanz großes DANKESCHÖN an den Entwickler, das ist echt genial was du hier machst und wie User-nah du arbeitest!

Ich bin seit ein paar Jahren zufriedener PC_DIMMER-User, jetzt stehe ich aber vor einem Problem, das ich alleine nicht mehr so richtig bewältigen kann:
Ich habe mir das Novation Launchpad zugelegt, weil mir das Prinzip mit den verschieden beleuchtbaren Tasten so schön fürs Licht-Steuern vorkommt. Jetzt bin ich gerade dabei, das irgendwie in mein Setup zu integrieren, aber mir fehlt noch die "schöne" Lösung...
Und zwar sendet das Teil ganz einfach bei jedem Tastendruck eine MIDI-Note, beim Loslassen den Off-Befehl. Die Hintergrundbeleuchtung der Tasten wird über das Backtrack gesteuert, dabei hört jede Taste auf die gleiche Note, die sie auch auslöst, und die Farbe wird im Velocity-Wert übermittelt. Die möglichen Farben sind Rot, Grün, Amber und Gelb, jeweils mit 3 Helligkeits-Stufen. Die zugehörigen Velocity-Werte sind auf verschiedene Weise über die 127 Werte verteilt - und da ist auch schon mein Problem: Wie kann ich es am elegantesten umsetzen, dass im MIDI-Backtrack der Velocity-Wert geschickt wird, den ich für diesen Button haben will?
Mein erster (unschöner) Ansatz ist, dass ich ein DDF nur mit einem COLOR-Kanal geschrieben habe und dieses Gerät 64mal angelegt habe. D.h. in jede Szene und jeden Effekt, den ich damit steuern will, habe ich dann eine Szene eingefügt, die den Button entsprechend leuchten lässt. Da kommt aber gleich das nächste Hindernis: Wie kann ich das Ende einer Szene oder eines Effektes überwachen, um dann wieder eine inaktiv-Farbe an den Button zu senden?
Dann habe ich angefangen, das übers Kontrollpanel und Programmcode-Buttons umzusetzen, weil ich so die ButtonMouseUp-Funktion habe, in der ich das "Ende" behandeln kann...
Aber das sind alles irgendwie keine richtigen Lösungen, deshalb bitte ich euch um Hilfe/Ideen.
Wahrscheinlich wäre es dafür sinnvoll, ein PlugIn zu programmieren? Nur das müsste in Delphi sein, oder? Und da fehlt mir leider komplett die Erfahrung...

Und dann habe ich noch eine Frage zu Programmcode-Buttons im Kontrollpanel: Kann ich da irgendwie globale Variablen einsetzen? Sprich dass z.B. ein Button einen Wert festlegt, den ich dann von einem anderen Button aus abfragen kann? Das habe ich bisher auch über zusätzliche Dimmerkanäle gemacht, weil ich so die set- und get-channel-Funktionen verwenden konnte...

Fragen über Fragen, ich hab mich an die Wand programmiert

Vielen Dank im Voraus für eure Antworten!!
Gruß Raphael