Commits

Jody McAdams committed 490bbf5

committing rave machine

  • Participants
  • Parent commits 040e742

Comments (0)

Files changed (2)

File Experimental/MaryHadALittleLambRaveMachine.ino

+/*
+  Melody
+ 
+ Plays a melody 
+ 
+ circuit:
+ * 8-ohm speaker on digital pin 8
+ 
+ created 21 Jan 2010
+ modified 30 Aug 2011
+ by Tom Igoe 
+
+This example code is in the public domain.
+ 
+ http://arduino.cc/en/Tutorial/Tone
+ 
+ */
+ #include "pitches.h"
+
+// notes in the melody:
+int melody[] = {
+  NOTE_B4, NOTE_A4,NOTE_G4, NOTE_A4, NOTE_B4,NOTE_B4, NOTE_B4, 0, NOTE_A4, NOTE_A4, NOTE_A4, 0, NOTE_B4, NOTE_D5,  NOTE_D5, 0};
+
+// note durations: 4 = quarter note, 8 = eighth note, etc.:
+int noteDurations[] = {
+  4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4};
+
+int LDR = 0;       // select the input pin for the LDR
+int RED = 11;
+int GREEN = 12;
+int BLUE = 13;
+
+int redVal = 0;
+int greenVal = 0;
+int blueVal = 0;
+  
+void setup()
+{
+  pinMode(LDR, INPUT);       // declare the LDR as an INPUT
+  
+  pinMode(GREEN, OUTPUT);
+  pinMode(BLUE, OUTPUT);
+  pinMode(RED, OUTPUT);
+  
+  digitalWrite(GREEN, HIGH);
+  digitalWrite(BLUE, HIGH);
+  digitalWrite(RED, HIGH);
+  
+  analogWrite( RED, 255-redVal );
+  analogWrite( GREEN, 255-greenVal );
+  analogWrite( BLUE, 255-blueVal );
+}
+
+int thisNote = 0;
+
+void loop()
+{ 
+  //MUSIC
+  int LDRval = analogRead(LDR);       // read the value from the sensor
+  
+  // to calculate the note duration, take one second 
+  // divided by the note type.
+  //e.g. quarter note = 1000 / 4, eighth note = 1000/8, etc.
+  int noteDuration = LDRval/noteDurations[thisNote];
+  //noteDuration *= (LDRval)/8;
+  
+  int melodyNote = melody[thisNote];
+  tone(8, melodyNote,noteDuration);
+  
+  // to distinguish the notes, set a minimum time between them.
+  // the note's duration + 30% seems to work well:
+  int pauseBetweenNotes = noteDuration * 1.30;
+  delay(pauseBetweenNotes);
+  // stop the tone playing:
+  noTone(8);
+  
+  ++thisNote;
+  if(thisNote == 16)
+  {
+    thisNote = 0;
+  }
+   
+  //COLORS
+  redVal += 5*(greenVal | blueVal);
+  greenVal += 2;
+  blueVal += 3*(greenVal | redVal);
+  
+  analogWrite( RED, 255-redVal );
+  analogWrite( GREEN, 255-greenVal );
+  analogWrite( BLUE, 255-blueVal );
+}

File Experimental/pitches.h

+/*************************************************
+ * Public Constants
+ *************************************************/
+
+#define NOTE_B0  31
+#define NOTE_C1  33
+#define NOTE_CS1 35
+#define NOTE_D1  37
+#define NOTE_DS1 39
+#define NOTE_E1  41
+#define NOTE_F1  44
+#define NOTE_FS1 46
+#define NOTE_G1  49
+#define NOTE_GS1 52
+#define NOTE_A1  55
+#define NOTE_AS1 58
+#define NOTE_B1  62
+#define NOTE_C2  65
+#define NOTE_CS2 69
+#define NOTE_D2  73
+#define NOTE_DS2 78
+#define NOTE_E2  82
+#define NOTE_F2  87
+#define NOTE_FS2 93
+#define NOTE_G2  98
+#define NOTE_GS2 104
+#define NOTE_A2  110
+#define NOTE_AS2 117
+#define NOTE_B2  123
+#define NOTE_C3  131
+#define NOTE_CS3 139
+#define NOTE_D3  147
+#define NOTE_DS3 156
+#define NOTE_E3  165
+#define NOTE_F3  175
+#define NOTE_FS3 185
+#define NOTE_G3  196
+#define NOTE_GS3 208
+#define NOTE_A3  220
+#define NOTE_AS3 233
+#define NOTE_B3  247
+#define NOTE_C4  262
+#define NOTE_CS4 277
+#define NOTE_D4  294
+#define NOTE_DS4 311
+#define NOTE_E4  330
+#define NOTE_F4  349
+#define NOTE_FS4 370
+#define NOTE_G4  392
+#define NOTE_GS4 415
+#define NOTE_A4  440
+#define NOTE_AS4 466
+#define NOTE_B4  494
+#define NOTE_C5  523
+#define NOTE_CS5 554
+#define NOTE_D5  587
+#define NOTE_DS5 622
+#define NOTE_E5  659
+#define NOTE_F5  698
+#define NOTE_FS5 740
+#define NOTE_G5  784
+#define NOTE_GS5 831
+#define NOTE_A5  880
+#define NOTE_AS5 932
+#define NOTE_B5  988
+#define NOTE_C6  1047
+#define NOTE_CS6 1109
+#define NOTE_D6  1175
+#define NOTE_DS6 1245
+#define NOTE_E6  1319
+#define NOTE_F6  1397
+#define NOTE_FS6 1480
+#define NOTE_G6  1568
+#define NOTE_GS6 1661
+#define NOTE_A6  1760
+#define NOTE_AS6 1865
+#define NOTE_B6  1976
+#define NOTE_C7  2093
+#define NOTE_CS7 2217
+#define NOTE_D7  2349
+#define NOTE_DS7 2489
+#define NOTE_E7  2637
+#define NOTE_F7  2794
+#define NOTE_FS7 2960
+#define NOTE_G7  3136
+#define NOTE_GS7 3322
+#define NOTE_A7  3520
+#define NOTE_AS7 3729
+#define NOTE_B7  3951
+#define NOTE_C8  4186
+#define NOTE_CS8 4435
+#define NOTE_D8  4699
+#define NOTE_DS8 4978
+
+