Hi, Daniel !
Zweierlei:
Freut mich, daß wir einen Anfang gefunden haben
Du solltest Dich registrieren lassen, könnt' ja sein, daß Du noch öfters kommst.
So:
Du brauchst (dzt) für jedes 1/16 einen Schalter, also 16 Stücker für jeden Takt (4/4)
Da bieten sich natürlich die Bits von zwei Bytes an. Diese zwei Bytes sind also ein Pattern
Bei jedem neuen 1/16 (ACTION_16) müssen wir also das aktuelle Bit abfragen (ob BUMM oder NICHT BUMM) und auf's nächste 1/16 stellen.Code:PATTERN Pattern_a Bits 0 - 7 ---> 1/16 1 - 8 Pattern_b Bits 0 - 7 ---> 1/16 9 - 16
Wir nehmen also zwei andere Bytes "shift", durch die wir EINEN 1'er durchschieben.
Beispiel-Pattern: einmal kurz BUMM bei jedem 1/4 ( a la kick-drum)
Folgende Situation beim ersten 1/16
Jedesmal müssen wir sehen, ob dort, wo im "shift" gerade der 1-er ist, im "Pattern" gerade 1 oder 0 ist. bei "1" machern wir BUMM, bei 0 nicht.Code:Pattern_b Pattern_a 76543210 76543210 00010001 00010001 Shift_b Shift_a 00000000 00000001
Das ist der Grund, warum der 1-er durch die zwei Bytes geshifted wird.Code:Pattern b/a 00010001 00010001 shift b/a 00000000 00000001 1 --> BUMM 00000000 00000010 2 --> nix 00000000 00000100 3 --> nix 00000000 00001000 4 --> nix 00000000 00010000 5 --> BUMM ............... 01000000 00000000 15 --> nix 10000000 00000000 16 --> nix
Natürlich kann man das auch anders machen, aber du schreibst dir die Finger krumm, wenn die Sache dann komplizierter wird, mit mehreren Pattern und anderen Taktarten. fürs erste mfg robert







Zitieren
Lesezeichen