pianoroll/app.js
author cavaliet
Tue, 14 Oct 2014 12:35:22 +0200
changeset 19 3b70b46e8044
parent 18 517e343a86eb
child 20 a2525a44ec94
permissions -rw-r--r--
piano roll with visual specifications
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
14
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
     1
var sock = null;
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
     2
var ellog = null;
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
     3
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
     4
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
     5
function log(m) {
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
     6
   ellog.innerHTML += m + '\n';
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
     7
   ellog.scrollTop = ellog.scrollHeight;
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
     8
};
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
     9
18
517e343a86eb a bit more config
cavaliet
parents: 17
diff changeset
    10
// Config vars
19
3b70b46e8044 piano roll with visual specifications
cavaliet
parents: 18
diff changeset
    11
var sceneWidth = 1920;
15
f1ae020c2872 piano roll works fine... and needs visual enhancement
cavaliet
parents: 14
diff changeset
    12
var sceneHeight = 128 * 4; // multiple of 128 because of 128 levels in midi signals ->  better look
19
3b70b46e8044 piano roll with visual specifications
cavaliet
parents: 18
diff changeset
    13
var sceneBgColor = 0xFFFFFF;
14
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
    14
var manualFramerate = 24;
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
    15
var pixelsPerSecond = 50; // nb of pixels per second
19
3b70b46e8044 piano roll with visual specifications
cavaliet
parents: 18
diff changeset
    16
var lineInterval = 5000; // means line every 5 seconds
17
4dd9a96a6d3b time information and keyboard drawn
cavaliet
parents: 16
diff changeset
    17
var nbLines = -1;
19
3b70b46e8044 piano roll with visual specifications
cavaliet
parents: 18
diff changeset
    18
var noteHeight = 110;
3b70b46e8044 piano roll with visual specifications
cavaliet
parents: 18
diff changeset
    19
var noteColor = 0xB74141;
15
f1ae020c2872 piano roll works fine... and needs visual enhancement
cavaliet
parents: 14
diff changeset
    20
//var speed = 1; // container -x position at each frame. Speed = 1 ~ 100px for 2 seconds
19
3b70b46e8044 piano roll with visual specifications
cavaliet
parents: 18
diff changeset
    21
//var zeroTime = new Date("2014-10-06T12:16:43.000000Z").getTime();
15
f1ae020c2872 piano roll works fine... and needs visual enhancement
cavaliet
parents: 14
diff changeset
    22
var noteDict = {};
18
517e343a86eb a bit more config
cavaliet
parents: 17
diff changeset
    23
var pianoNotes = [1,0,1,0,1,1,0,1,0,1,0,1];//Do, Do#, Ré, Ré#, Mi, Fa, Fa#, Sol, Sol#, La, La#, Si
517e343a86eb a bit more config
cavaliet
parents: 17
diff changeset
    24
// Visual config
517e343a86eb a bit more config
cavaliet
parents: 17
diff changeset
    25
var drawPianoNotes = false;
19
3b70b46e8044 piano roll with visual specifications
cavaliet
parents: 18
diff changeset
    26
var drawHorizontalLines = false;
3b70b46e8044 piano roll with visual specifications
cavaliet
parents: 18
diff changeset
    27
var drawVerticalLines = true;
14
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
    28
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
    29
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
    30
//create an new instance of a pixi stage
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
    31
var stage = new PIXI.Stage(sceneBgColor);
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
    32
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
    33
//create a renderer instance.
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
    34
var renderer = PIXI.autoDetectRenderer(sceneWidth, sceneHeight);
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
    35
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
    36
//add the renderer view element to the DOM
18
517e343a86eb a bit more config
cavaliet
parents: 17
diff changeset
    37
document.getElementById("canvasContainer").appendChild(renderer.view);
14
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
    38
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
    39
//requestAnimFrame( animate );
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
    40
15
f1ae020c2872 piano roll works fine... and needs visual enhancement
cavaliet
parents: 14
diff changeset
    41
f1ae020c2872 piano roll works fine... and needs visual enhancement
cavaliet
parents: 14
diff changeset
    42
//Draw 127 lines
f1ae020c2872 piano roll works fine... and needs visual enhancement
cavaliet
parents: 14
diff changeset
    43
var delta = sceneHeight / 128;
19
3b70b46e8044 piano roll with visual specifications
cavaliet
parents: 18
diff changeset
    44
if(drawHorizontalLines){
3b70b46e8044 piano roll with visual specifications
cavaliet
parents: 18
diff changeset
    45
    for(var i=1;i<128;i++){
3b70b46e8044 piano roll with visual specifications
cavaliet
parents: 18
diff changeset
    46
        var graphics = new PIXI.Graphics();
3b70b46e8044 piano roll with visual specifications
cavaliet
parents: 18
diff changeset
    47
        graphics.beginFill(0xFFFF00);
3b70b46e8044 piano roll with visual specifications
cavaliet
parents: 18
diff changeset
    48
        graphics.lineStyle(1, 0xAAAAAA);
3b70b46e8044 piano roll with visual specifications
cavaliet
parents: 18
diff changeset
    49
        var y = delta * i;
3b70b46e8044 piano roll with visual specifications
cavaliet
parents: 18
diff changeset
    50
        graphics.moveTo(0, y);
3b70b46e8044 piano roll with visual specifications
cavaliet
parents: 18
diff changeset
    51
        graphics.lineTo(sceneWidth, y);
3b70b46e8044 piano roll with visual specifications
cavaliet
parents: 18
diff changeset
    52
        graphics.endFill();
3b70b46e8044 piano roll with visual specifications
cavaliet
parents: 18
diff changeset
    53
        stage.addChild(graphics);
3b70b46e8044 piano roll with visual specifications
cavaliet
parents: 18
diff changeset
    54
    }
17
4dd9a96a6d3b time information and keyboard drawn
cavaliet
parents: 16
diff changeset
    55
}
19
3b70b46e8044 piano roll with visual specifications
cavaliet
parents: 18
diff changeset
    56
18
517e343a86eb a bit more config
cavaliet
parents: 17
diff changeset
    57
//Draw piano notes on the left
517e343a86eb a bit more config
cavaliet
parents: 17
diff changeset
    58
if(drawPianoNotes){
517e343a86eb a bit more config
cavaliet
parents: 17
diff changeset
    59
    for(var i=0;i<128;i++){
517e343a86eb a bit more config
cavaliet
parents: 17
diff changeset
    60
        var graphics = new PIXI.Graphics();
517e343a86eb a bit more config
cavaliet
parents: 17
diff changeset
    61
        var color = pianoNotes[i%12]==1 ? 0xFFFFFF : 0x000000;
517e343a86eb a bit more config
cavaliet
parents: 17
diff changeset
    62
        if(i==60){
517e343a86eb a bit more config
cavaliet
parents: 17
diff changeset
    63
            color = 0xFFD700;
517e343a86eb a bit more config
cavaliet
parents: 17
diff changeset
    64
        }
517e343a86eb a bit more config
cavaliet
parents: 17
diff changeset
    65
        graphics.beginFill(color);
517e343a86eb a bit more config
cavaliet
parents: 17
diff changeset
    66
        graphics.lineStyle(1, 0xAAAAAA);
517e343a86eb a bit more config
cavaliet
parents: 17
diff changeset
    67
        var y = sceneHeight - delta * (i+1);
517e343a86eb a bit more config
cavaliet
parents: 17
diff changeset
    68
        graphics.drawRect(0, y, 20, delta);
517e343a86eb a bit more config
cavaliet
parents: 17
diff changeset
    69
        graphics.endFill();
517e343a86eb a bit more config
cavaliet
parents: 17
diff changeset
    70
        stage.addChild(graphics);
517e343a86eb a bit more config
cavaliet
parents: 17
diff changeset
    71
    }
15
f1ae020c2872 piano roll works fine... and needs visual enhancement
cavaliet
parents: 14
diff changeset
    72
}
f1ae020c2872 piano roll works fine... and needs visual enhancement
cavaliet
parents: 14
diff changeset
    73
14
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
    74
var uberContainer = new PIXI.DisplayObjectContainer();
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
    75
uberContainer.position.x = Math.floor(sceneWidth*4/5);
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
    76
uberContainer.position.y = 0;
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
    77
stage.addChild(uberContainer);
15
f1ae020c2872 piano roll works fine... and needs visual enhancement
cavaliet
parents: 14
diff changeset
    78
f1ae020c2872 piano roll works fine... and needs visual enhancement
cavaliet
parents: 14
diff changeset
    79
14
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
    80
var container = new PIXI.DisplayObjectContainer();
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
    81
container.position.x = 0;
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
    82
container.position.y = 0;
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
    83
uberContainer.addChild(container);
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
    84
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
    85
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
    86
function moveContainer() {
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
    87
    container.x -= pixelsPerSecond/manualFramerate;
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
    88
    renderer.render(stage);
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
    89
}
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
    90
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
    91
function addBunny(data){
18
517e343a86eb a bit more config
cavaliet
parents: 17
diff changeset
    92
    var timeFromZero = data.content[1];
15
f1ae020c2872 piano roll works fine... and needs visual enhancement
cavaliet
parents: 14
diff changeset
    93
    var note = data.content[3];
f1ae020c2872 piano roll works fine... and needs visual enhancement
cavaliet
parents: 14
diff changeset
    94
    var velocity = data.content[4];
f1ae020c2872 piano roll works fine... and needs visual enhancement
cavaliet
parents: 14
diff changeset
    95
    if(velocity===0){
f1ae020c2872 piano roll works fine... and needs visual enhancement
cavaliet
parents: 14
diff changeset
    96
        if(note in noteDict){
f1ae020c2872 piano roll works fine... and needs visual enhancement
cavaliet
parents: 14
diff changeset
    97
            // We close the note
18
517e343a86eb a bit more config
cavaliet
parents: 17
diff changeset
    98
            /*var beginTime = new Date(noteDict[note].ts).getTime();
15
f1ae020c2872 piano roll works fine... and needs visual enhancement
cavaliet
parents: 14
diff changeset
    99
            var beginDelta = beginTime - zeroTime;
f1ae020c2872 piano roll works fine... and needs visual enhancement
cavaliet
parents: 14
diff changeset
   100
            var durationDelta = new Date(data.ts).getTime() - beginTime;
f1ae020c2872 piano roll works fine... and needs visual enhancement
cavaliet
parents: 14
diff changeset
   101
            var beginX = beginDelta * pixelsPerSecond / 1000;
18
517e343a86eb a bit more config
cavaliet
parents: 17
diff changeset
   102
            var width = durationDelta * pixelsPerSecond / 1000;*/
517e343a86eb a bit more config
cavaliet
parents: 17
diff changeset
   103
            var beginX = noteDict[note].ts * pixelsPerSecond / 1000;
517e343a86eb a bit more config
cavaliet
parents: 17
diff changeset
   104
            var width = (timeFromZero - noteDict[note].ts) * pixelsPerSecond / 1000;
15
f1ae020c2872 piano roll works fine... and needs visual enhancement
cavaliet
parents: 14
diff changeset
   105
            // We draw the rectangle
f1ae020c2872 piano roll works fine... and needs visual enhancement
cavaliet
parents: 14
diff changeset
   106
            var graphics = new PIXI.Graphics();
19
3b70b46e8044 piano roll with visual specifications
cavaliet
parents: 18
diff changeset
   107
            graphics.beginFill(noteColor, (noteDict[note].velocity / 128));
15
f1ae020c2872 piano roll works fine... and needs visual enhancement
cavaliet
parents: 14
diff changeset
   108
            var y = (128-note) * sceneHeight / 128; // (128-note) because y = 0 is for note = 128 and y = 128 for note = 0
19
3b70b46e8044 piano roll with visual specifications
cavaliet
parents: 18
diff changeset
   109
            //graphics.drawRect(beginX, y, width, sceneHeight / 128);
3b70b46e8044 piano roll with visual specifications
cavaliet
parents: 18
diff changeset
   110
            graphics.drawRect(beginX, Math.floor(y - (noteHeight/2) + ((sceneHeight / 128)/2)), width, noteHeight);
15
f1ae020c2872 piano roll works fine... and needs visual enhancement
cavaliet
parents: 14
diff changeset
   111
            graphics.endFill();
f1ae020c2872 piano roll works fine... and needs visual enhancement
cavaliet
parents: 14
diff changeset
   112
            container.addChild(graphics);
f1ae020c2872 piano roll works fine... and needs visual enhancement
cavaliet
parents: 14
diff changeset
   113
            delete noteDict[note];
f1ae020c2872 piano roll works fine... and needs visual enhancement
cavaliet
parents: 14
diff changeset
   114
        }
f1ae020c2872 piano roll works fine... and needs visual enhancement
cavaliet
parents: 14
diff changeset
   115
    }
f1ae020c2872 piano roll works fine... and needs visual enhancement
cavaliet
parents: 14
diff changeset
   116
    else{
18
517e343a86eb a bit more config
cavaliet
parents: 17
diff changeset
   117
        noteDict[note] = {ts: timeFromZero, velocity:velocity};
15
f1ae020c2872 piano roll works fine... and needs visual enhancement
cavaliet
parents: 14
diff changeset
   118
    }
14
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
   119
}
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
   120
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
   121
window.onload = function() {
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
   122
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
   123
    ellog = document.getElementById('log');
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
   124
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
   125
    var wsuri;
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
   126
    if (window.location.protocol === "file:") {
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
   127
       wsuri = "ws://127.0.0.1:8090/broadcast";
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
   128
    } else {
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
   129
       wsuri = "ws://" + window.location.hostname + ":8090/broadcast";
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
   130
    }
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
   131
    if ("WebSocket" in window) {
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
   132
       sock = new WebSocket(wsuri);
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
   133
    } else if ("MozWebSocket" in window) {
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
   134
       sock = new MozWebSocket(wsuri);
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
   135
    } else {
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
   136
       log("Browser does not support WebSocket!");
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
   137
       window.location = "http://autobahn.ws/unsupportedbrowser";
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
   138
    }
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
   139
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
   140
    if (sock) {
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
   141
       sock.onopen = function() {
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
   142
          log("Connected to " + wsuri);
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
   143
       }
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
   144
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
   145
       sock.onclose = function(e) {
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
   146
          log("Connection closed (wasClean = " + e.wasClean + ", code = " + e.code + ", reason = '" + e.reason + "')");
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
   147
          sock = null;
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
   148
       }
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
   149
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
   150
       sock.onmessage = function(e) {
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
   151
          log("Got message: " + e.data);
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
   152
          addBunny(JSON.parse(e.data));
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
   153
       }
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
   154
    }
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
   155
};
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
   156
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
   157
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
   158
function addLine(){
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
   159
    nbLines++;
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
   160
    var graphics = new PIXI.Graphics();
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
   161
    var x = nbLines * (lineInterval/1000) * pixelsPerSecond;
16
3343e89b04a1 time indication
cavaliet
parents: 15
diff changeset
   162
    //console.log("nbLines = ",nbLines, "x = ", x);
14
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
   163
    graphics.beginFill(0xFFFF00);
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
   164
    graphics.lineStyle(1, 0x444444);
19
3b70b46e8044 piano roll with visual specifications
cavaliet
parents: 18
diff changeset
   165
    graphics.moveTo(x, sceneHeight*(9/10));
14
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
   166
    graphics.lineTo(x, sceneHeight);
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
   167
    graphics.endFill();
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
   168
    container.addChild(graphics);
16
3343e89b04a1 time indication
cavaliet
parents: 15
diff changeset
   169
    // Add text
3343e89b04a1 time indication
cavaliet
parents: 15
diff changeset
   170
    var totalSec = nbLines * lineInterval / 1000;
3343e89b04a1 time indication
cavaliet
parents: 15
diff changeset
   171
    var hours = parseInt( totalSec / 3600 ) % 24;
3343e89b04a1 time indication
cavaliet
parents: 15
diff changeset
   172
    var minutes = parseInt( totalSec / 60 ) % 60;
3343e89b04a1 time indication
cavaliet
parents: 15
diff changeset
   173
    var seconds = totalSec % 60;
3343e89b04a1 time indication
cavaliet
parents: 15
diff changeset
   174
    var timeStr = (hours < 10 ? "0" + hours : hours) + ":" + (minutes < 10 ? "0" + minutes : minutes) + ":" + (seconds  < 10 ? "0" + seconds : seconds);
3343e89b04a1 time indication
cavaliet
parents: 15
diff changeset
   175
    var t = new PIXI.Text(timeStr, { font: "10pt Arial", fill: "#444444" });
3343e89b04a1 time indication
cavaliet
parents: 15
diff changeset
   176
    t.x = x + 2;
19
3b70b46e8044 piano roll with visual specifications
cavaliet
parents: 18
diff changeset
   177
    t.y = sceneHeight - 15;
16
3343e89b04a1 time indication
cavaliet
parents: 15
diff changeset
   178
    container.addChild(t);
14
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
   179
}
30ee8c47e48f first step of piano roll (needs to be much improved)
cavaliet
parents:
diff changeset
   180
var moveInterval = window.setInterval(moveContainer, 1000/manualFramerate);
18
517e343a86eb a bit more config
cavaliet
parents: 17
diff changeset
   181
var verticalLinesInterval = false;
517e343a86eb a bit more config
cavaliet
parents: 17
diff changeset
   182
if(drawVerticalLines){
517e343a86eb a bit more config
cavaliet
parents: 17
diff changeset
   183
    verticalLinesInterval = window.setInterval(addLine, lineInterval);
517e343a86eb a bit more config
cavaliet
parents: 17
diff changeset
   184
}