DJ Turntable

Made by Jessica Yin

Created a mini DJ turntable that slows down and speeds up music

Created: December 29th, 2017

0

For this assignment, I made a mini DJ turntable using a soft circular potentiometer, speaker, and some buttons/switches. The buttons and switches are only for aesthetic purposes, however, since I didn't have time to figure out how to incorporate volume and play/pause into my code.

As you press the needle in different places around the record (the circular potentiometer), the speed of the song (Super Mario theme song) either increases or decreases.


Demo video: https://drive.google.com/file/d/0B0yMpI_ZOcoYaEloSjUwU0lvakk/view?usp=sharing

0
const int SENSOR_PIN = 0;
/*
  Arduino Mario Bros Tunes
  With Piezo Buzzer and PWM
  by: Dipto Pratyaksa
  last updated: 31/3/13
*/
#include "pitches.h"


#define melodyPin 3
//Mario main theme melody
int melody[] = {
  NOTE_E7, NOTE_E7, 0, NOTE_E7, 
  0, NOTE_C7, NOTE_E7, 0,
  NOTE_G7, 0, 0,  0,
  NOTE_G6, 0, 0, 0, 

  NOTE_C7, 0, 0, NOTE_G6, 
  0, 0, NOTE_E6, 0, 
  0, NOTE_A6, 0, NOTE_B6, 
  0, NOTE_AS6, NOTE_A6, 0, 

  NOTE_G6, NOTE_E7, NOTE_G7, 
  NOTE_A7, 0, NOTE_F7, NOTE_G7, 
  0, NOTE_E7, 0,NOTE_C7, 
  NOTE_D7, NOTE_B6, 0, 0,

  NOTE_C7, 0, 0, NOTE_G6, 
  0, 0, NOTE_E6, 0, 
  0, NOTE_A6, 0, NOTE_B6, 
  0, NOTE_AS6, NOTE_A6, 0, 

  NOTE_G6, NOTE_E7, NOTE_G7, 
  NOTE_A7, 0, NOTE_F7, NOTE_G7, 
  0, NOTE_E7, 0,NOTE_C7, 
  NOTE_D7, NOTE_B6, 0, 0
};
//Mario main them tempo
int tempo[] = {
  12, 12, 12, 12, 
  12, 12, 12, 12,
  12, 12, 12, 12,
  12, 12, 12, 12, 

  12, 12, 12, 12,
  12, 12, 12, 12, 
  12, 12, 12, 12, 
  12, 12, 12, 12, 

  9, 9, 9,
  12, 12, 12, 12,
  12, 12, 12, 12,
  12, 12, 12, 12,

  12, 12, 12, 12,
  12, 12, 12, 12,
  12, 12, 12, 12,
  12, 12, 12, 12,

  9, 9, 9,
  12, 12, 12, 12,
  12, 12, 12, 12,
  12, 12, 12, 12,
};

//
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  pinMode(3, OUTPUT);//speaker
  pinMode(13, OUTPUT); //LED when singing a note
  

}

void loop() {



  

  sing(1);
}
int song = 0;

void sing(int s){      
   // iterate over the notes of the melody:
   song = s;

     int size = sizeof(melody) / sizeof(int);
     for (int thisNote = 0; thisNote < size; thisNote++) {

       // 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 = 1000/tempo[thisNote];

       tone(melodyPin, melody[thisNote],noteDuration);
         int speedOfSong;
           int sensorValue;
  sensorValue = analogRead(SENSOR_PIN);
  Serial.println(sensorValue);

  if (sensorValue > 10 and sensorValue < 200){
    speedOfSong = 1.3;
    Serial.println("stage 0");
  }
  if (sensorValue > 200 and sensorValue < 400) {
    speedOfSong = 1.6;
    Serial.println("stage 1");
  }
  if (sensorValue > 400 and sensorValue < 600){
    speedOfSong = 2;
    Serial.println("stage 2");
  }
  if (sensorValue > 600 and sensorValue < 800) {
    speedOfSong = 2.5;
    Serial.println("stage 3");
  }
  if (sensorValue > 800 and sensorValue < 1000) {
    speedOfSong = 3;
    Serial.println("stage 4");
  }


       // to distinguish the notes, set a minimum time between them.
       // the note's duration + 30% seems to work well:
       int pauseBetweenNotes = noteDuration * speedOfSong;
       delay(pauseBetweenNotes);

       // stop the tone playing:
       tone(melodyPin, 0, noteDuration);

    }
  }
Click to Expand
x
Share this Project


Focused on
About

Created a mini DJ turntable that slows down and speeds up music