Welcome to Hackster!
Hackster is a community dedicated to learning hardware, from beginner to pro. Join us, it's free!
Giando
Published

Linino Christmas with Lifx

Make Christmas lights that vary color with the music!

Full instructions provided2,234
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
15 projects • 16 followers
Contact

Comments

Please log in or sign up to comment.