Jeffrey Cross
Jeffrey Cross

arduiNoise (võidab);

Bit-muusika armastavad Arduino kasutajad - ma kandsin (ja modifitseerisin natuke) ühe müra mänguasja programmidest üle armasino platvormile. Lihtsalt lisage paar hetkeklahvi nuppudele 8 ja 9 ning ühendage stereoheli 3 ja 4-ga - olete valmis. Loud Objects'i kood osutus üsna lõbusaks, et seda teha - kui olete uudishimulik, proovige katsetada erinevaid tempo väärtusi.

Kood-uino vaatamiseks ja allalaadimiseks loe edasi.

Loud objektide müra mänguasjade komplekt

Arduino Diecimila

/ * Stereo BeatGen v1

- algselt kirjutatud Loud Objects poolt ATTiny85 / NOISE TOY projektidele loudobjects.com - kohandas / segi Arduino poolt Collin Cunningham mulle [at] collinmel.com

eeldab, et nööbid 3 ja 4 on ühendatud vasakule ja paremale helisignaali vahelduvvoolu lülititele vahemikus 8 kuni 9 ja GND

*/

allkirjastamata pikk NextRandom = 1; allkirjastamata pikk Bass_Start = 300, Bass_End = 600; unsigned char Last_Val_Left = 1, Last_Val_Right = 1; allkirjastamata pikk Bass_Left_Period = Bass_Start, Bass_Right_Period = Bass_Start; allkirjastamata pikk Bass_Left_Sample = 1, Bass_Right_Sample = 1; unsigned char Bass_Left_On = 1, Bass_Right_On = 1; unsigned char Snare_Left_On = 1, Snare_Right_On = 1; unsigned char Snare_Left_Sample = 1, Snare_Right_Sample = 1; allkirjastamata pikk Tempo_Period = 1200, Tempo_Outer = 1, Tempo_Sample = 1; allkirjastamata char Trax_Left [] = {1, 2, 3, 0, 3, 2, 0, 1}; allkirjastamata char Trax_Right [] = {2, 1, 0, 3, 1, 3, 0, 2}; unsigned char Track_Index = -1; allkirjastamata pikk New_Rand = randomGen (); allkirjastamata pikk NextRandom2 = 1; allkirjastamata pikk Snare_Length = 500;

void setup () {// SET PINS 3 JA 4 ON OUTPUTS pinMode (3, OUTPUT); pinMode (4, OUTPUT); pinMode (2, INPUT);

// PIN-9- JA 8-TÜHISTAMISEKS (9, INPUT) PULL-UP RESISTORS-i seadistamine; pinMode (8, INPUT); digitalWrite (9, HIGH); digitalWrite (8, HIGH); digitalWrite (5, LOW);

}

tühine silmus () {

NextRandom2 = NextRandom2 + 9; New_Rand = NextRandom2;

// UPDATE SAMPLES, kui (Bass_Left_On) {if (! (- Bass_Left_Sample)) {if ((Bass_Left_Period + = 11)> Bass_End) {Bass_Left_On = 0; } Bass_Left_Sample = Bass_Left_Period; Last_Val_Left = 1 - Last_Val_Left; }}

kui (Bass_Right_On) {if (! (- Bass_Right_Sample)) {if ((Bass_Right_Period + = 13)> Bass_End) {Bass_Right_On = 0; } Bass_Right_Sample = Bass_Right_Period; Last_Val_Right = 1 - Last_Val_Right; }}

kui (Snare_Left_On) {if (! (- Snare_Left_Sample)) {Snare_Left_Sample = New_Rand / 200; //% 10; Last_Val_Left = 1 - Last_Val_Left; } if (! (- Snare_Length)) {Snare_Left_On = 0; }}

kui (Snare_Right_On) {if (! (- Snare_Right_Sample)) {Snare_Right_Sample = New_Rand / 200; //% 10; Last_Val_Right = 1 - Last_Val_Right; } if (! (- Snare_Length)) {Snare_Right_On = 0; }}

// CHECK FOR NEXT BEAT, kui (! (- Tempo_Outer)) {Tempo_Outer = 10; kui (! (- Tempo_Sample)) {if (++ Track_Index == 8) Track_Index = 0;

Tempo_Sample = Tempo_Period; Bass_Left_On = (Trax_Left [Track_Index] & 1); Bass_Right_On = (Trax_Right [Track_Index] & 1); Snare_Left_On = (Trax_Left [Track_Index] & 2); Snare_Right_On = (Trax_Right [Track_Index] & 2); Snare_Length = 5000; Bass_Left_Period = Bass_Start; Bass_Left_Sample = 1; Bass_Right_Period = Bass_Start; Bass_Right_Sample = 1; }}

// OUTPUT, kui (Last_Val_Left) PORTD | = (1 << 3); veel PORTD & = ~ ((1 << 3)); kui (Last_Val_Right) PORTD | = (1 << 4); veel PORTD & = ~ ((1 << 4)); // BUTTON INPUT CHECKS // temp 8 kui tempo, kui ((digitalRead (8)) == LOW) {randomSeed (analogRead (0)); Tempo_Period = (juhuslik (1627) / 15 * 25); // katse diferentsiaalväärtustega parema vahemiku jaoks} // pin 9 võita, kui (digitalRead (9) == LOW) {allkirjastamata char i; (i = 0; i <8; i ++) jaoks {Trax_Left [i] = randomGen (); Trax_Right [i] = randomGen (); }}} allkirjastamata pikk juhuslikGen (void) // pseudo juhuslik algsest visandist {NextRandom = NextRandom * 3865 + 131; tagastamine ((NextRandom >> 16) & 32767); }

Osa

Jätnud Kommentaari