You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

61 lines
1.2 KiB
C++

/*
I C E K I N G
/ | ⊼ ⊼ | \
/ | ߇ | \
POT 1: Amount of Penguins
POT 2: Cryokinesis Strength
POT 3: Gunter
CHANGELOG:
20190922 - v1 !!!
*/
#define POT1 (0)
#define POT2 (1)
#define POT3 (2)
#define SPEAKER (11)
int t;
int u;
int tone_delay;
int tone_freq;
int bitshift;
void
setup()
{
//Serial.begin(9600); // DEBUG
pinMode(SPEAKER, OUTPUT);
}
void
loop()
{
// 1CE C0DE
// POT1 controls the final amount of right shift (0-31)
//bitshift = analogRead(POT3) // 32; meergranen v2
bitshift = (1023 - analogRead(POT3)) / 32; // meergranen v1
t++;
u = (t*t/256)&(t>>((t/1024)%16))^t%64*(0x1CEC0DE>>(t>>9&30)&t%32)*t>>bitshift;
// Use bytebeat u value as tone frequency modulated by POT2
// Note: tone(pin, frequency) is provided by Arduino lib
//tone_freq = u * ((analogRead(POT2) / 32) + 1); // meergranen v2
tone_freq = u * (((1023 - analogRead(POT2)) / 32) + 1); // meergranen v1
tone(SPEAKER, tone_freq);
// Use POT1 to set the tone duration (63-0)
//tone_delay = (1023 - analogRead(POT1)) / 16; // meergranen v2
tone_delay = analogRead(POT1) / 16; // meergranen v1
delay(tone_delay);
// DEBUG
//Serial.println(tone_delay);
//Serial.println(tone_freq);
//Serial.println(t);
}