Giando
Published

Linino Christmas with Lifx

Make Christmas lights that vary color with the music!

Full instructions provided2,227
Linino Christmas with Lifx

Things used in this project

Story

Read more

Code

code.txt

JSON
{
  "name": "XmasLifx",
  "version": "0.0.1",
  "description": "Ideino project",
  "author": {
    "name": "Ideino Team"
  },
    "dependencies": {
        "lifx": "*"
    }
}

code.txt

JavaScript
var linino = require('ideino-linino-lib'),
    board = new linino.Board(),
    tone = require('tone.json'),
    buz = board.pin.pwm.P5;
    var del = 0;

var lifx = require('lifx');
var lx = lifx.init();

var jbells = [
        "NOTE_E5", "NOTE_E5", "NOTE_E5", "NOTE_E5", "NOTE_E5", "NOTE_E5", "NOTE_E5", "NOTE_G5", "NOTE_C5", "NOTE_D5", "NOTE_E5",
        "NOTE_F5", "NOTE_F5", "NOTE_F5", "NOTE_F5", "NOTE_F5", "NOTE_E5", "NOTE_E5", "NOTE_E5", "NOTE_E5", "NOTE_D5", "NOTE_D5", "NOTE_E5", "NOTE_D5", "NOTE_G5",
        "NOTE_E5", "NOTE_E5", "NOTE_E5", "NOTE_E5", "NOTE_E5", "NOTE_E5", "NOTE_E5", "NOTE_G5", "NOTE_C5", "NOTE_D5", "NOTE_E5",
        "NOTE_F5", "NOTE_F5", "NOTE_F5", "NOTE_F5", "NOTE_F5", "NOTE_E5", "NOTE_E5", "NOTE_E5", "NOTE_G5", "NOTE_G5", "NOTE_F5", "NOTE_D5", "NOTE_C5", "0", "0"
];
var jbellstimes = [
    200, 200, 400, 200, 200, 400, 200, 200, 200, 200, 800,
    200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 400, 400,
    200, 200, 400, 200, 200, 400, 200, 200, 200, 200, 800,
    200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 800
];

lx.lightsOn();

function play(melody, times) {
    board.noTone(buz);
    for (thisNote = 0; thisNote < melody.length; thisNote++) {
        sendsound(tone.tone[melody[thisNote]], del);
        del = times[thisNote] + del;
    }

}

function sendsound(sound, time) {
    setTimeout(function() {
        board.tone(buz, sound);
        lx.lightsColour((sound * 16384) & 0xFFFF, 32767, 65535, 0, 0);
    }, time);
}


board.connect(function() {
    board.pinMode(buz, board.MODES.PWM);

    play(jbells, jbellstimes);

});

Credits

Giando

Giando

15 projects • 16 followers

Comments