Oha, in Bascom habe ich soetwas noch nie geschrieben oder gesehen
Die Theorie dazu ist recht komplex aber ich versuche es trotzdem einmal rüberzubringen.

Prinzipiell stehen die Helligkeitswerte am Anfang nach Kanal sortiert im Speicher zur Verfügung.
Daraus wird eine Helligkeits -> Kanalzuordnung generiert.
Diese wird sortiert und danach zu einer nach Helligkeit sortierten Ausgabemaske zusammengepackt.

In einer Timer Routine wird eben nur jene Maske ausgegeben, wenn ein interner Zähler den jeweiligen Helligkeitswert erreicht hat.

Das aufwändigste bei mir Im Code ist die Sortier und Packroutine ... (Assembler halt).

Das Assembler Listing hier zu veröffentlichen dürfte meiner Ansicht nach recht wenig bringen, da die wenigsten hier wohl den Code wirklich verstehen würden

Der Code ist zwar noch nicht 100%ig optimiert, belegt aber im Flash ca 1078 Worte (mit einer rudimentären Komunikationsroutine).