Advertisement
Guest User

ruff-music.js

a guest
Aug 30th, 2016
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 'use strict';
  2.  
  3. // var f = [262, 294, 330, 349, 392, 440, 494, 523, 587, 659, 698, 784, 880, 988, 1047, 1175, 1319, 1397, 1568, 1760, 1976];
  4.  
  5. // var f = [1, 262, 294, 330, 349, 392, 440, 494];
  6.  
  7. var f = [1, 523, 587, 659, 698, 784, 880, 988, 1047]
  8.  
  9. var duration = 400;
  10. var gap = 80;
  11.  
  12. var music = [1, 2, 3, 1, 1, 2, 3, 1, 3, 4, 5, 3, 4, 5,
  13.     5, 6, 5, 4, 3, 1, 5, 6, 5, 4, 3, 1, 1, 5, 1, 1, 5, 1]
  14.  
  15.  
  16. var beat = [4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 4, 4, 8,
  17.     3, 1, 3, 1, 4, 4, 3, 1, 3, 1, 4, 4, 4, 4, 8, 4, 4, 8]
  18.  
  19. // var f = [10, 30, 50, 70, 90, 110, 130, 150, 170, 190, 210, 230, 250, 270, 290, 310, 330, 350, 370, 390, 410, 430, 450, 470, 490, 510];
  20.  
  21. $.ready(function (error) {
  22.     if (error) {
  23.         console.log(error);
  24.         return;
  25.     }
  26.  
  27.     // $('#buzzer').turnOn();
  28.     for (var i = 0; i < 3; i++) {
  29.         for (var j = 0; j < music.length; j++) {
  30.             $('#led-r').turnOn();
  31.             console.log('playing: ', f[music[j]]);
  32.             play(f[music[j]],beat[j]);
  33.             $('#buzzer').turnOff();
  34.             $('#led-r').turnOff();
  35.             delay(gap);
  36.         }
  37.         console.log('round: ', i);
  38.     }
  39.  
  40.     $('#buzzer').turnOff();
  41.  
  42. })
  43.  
  44. function play(sound, beats) {
  45.     var start = Date.now();
  46.     var endAt = start + duration * beats / 4;
  47.     var now = 0;
  48.     var total = 1;
  49.     while (Date.now() < endAt) {
  50.         total++ % 2 ? $('#buzzer')._gpio.write(1) : $('#buzzer')._gpio.write(0);
  51.         // console.log($('#buzzer')._gpio.read());
  52.         delay((1 / sound) * 1000);
  53.  
  54.     }
  55. }
  56.  
  57.  
  58. function delay(milliseconds) {
  59.     var start = new Date().getTime();
  60.     for (var i = 0; i < 1e7; i++) {
  61.         if ((new Date().getTime() - start) > milliseconds) {
  62.             break;
  63.         }
  64.     }
  65. }
  66.  
  67. $.end(function () {
  68.     $('#led-r').turnOff();
  69.     $('#buzzer')._gpio.write(0)
  70. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement