diff --git a/bar_chart_helper.js b/bar_chart_helper.js
index e67647a..c65d0ae 100644
--- a/bar_chart_helper.js
+++ b/bar_chart_helper.js
@@ -1,9 +1,434 @@
const jsdom = require('jsdom');
-const d3 = Object.assign({}, require('d3-selection'));
+const d3 = require('d3')
+const Modernizr = require('modernizr')
+const Handlebars = require('handlebars')
+
const barChart = require('./bar_chart');
+const { settings } = require('./settings')
+const { csv } = require('./csv')
const { JSDOM } = jsdom;
-const document = new JSDOM().window.document;
+const window = new JSDOM().window
+global.document = window.document
+
+const document = window.document;
+const $ = require('jquery')(window)
+const jQuery = require('jquery')(window)
+
+var tune = function (opts) {
+ // Overall vars
+ var data = null;
+ opts.music = typeof opts.music == 'undefined' ? true : opts.music;
+ var app = {
+ init: function () {
+ function processData(error, lyrics) {
+ // Clear any content
+ $('#tunes-' + opts.container).empty();
+ // Sanitize lyrics
+ if (opts.file == 'bigpun') {
+ lyrics[21].text = 'ña';
+ }
+ if (error) {
+ return false;
+ };
+ opts.easing = Modernizr.touch ? '' : 'elastic';
+ opts.speed = Modernizr.touch ? 100 : 400;
+ opts.startSize = Modernizr.touch ? 1 : .3;
+ data = {
+ file: opts.file,
+ container: opts.container,
+ lyrics: lyrics,
+ show: opts.show,
+ title: opts.title,
+ artist: opts.artist,
+ music: opts.music,
+ album: opts.album,
+ easing: opts.easing,
+ speed: opts.speed,
+ startSize: opts.startSize,
+ hedcut: opts.hedcut
+ };
+ // Create audio and lyric containers through handlebars
+ app.handlebars(data);
+ // Create the viz to accompany it
+ app.createViz(data);
+ // Trigger resize to ensure swiper container properly sized
+ $(window).trigger('resize');
+ };
+ if (!$('#tunes-' + opts.container).hasClass('built')) {
+ if (typeof opts.data == 'undefined') {
+ queue()
+ .defer(d3.csv, 'data/' + opts.source)
+ .await(processData);
+ } else {
+ processData(false, opts.data)
+ }
+ } else if (opts.container == 'userviz') {
+ processData(false, opts.data)
+ }
+ return this;
+ },
+ handlebars: function (data) {
+ Handlebars.registerHelper('breakspace', function (linebreak, space) {
+ var ret = space == 1 ? ' ' : '';
+ ret += linebreak == 1 ? '
' : '';
+ return ret;
+ });
+ Handlebars.registerHelper('highlight', function (d) {
+ return data.file == 'hamilton' && d[data.container] == 1 ? 'active' : '';
+ });
+
+ // Create the basic structure targeting #tunes-{{file}}
+ // var structureSource = $('#structure-template').html();
+ var structureSource = `
+
+
+ `
+ var structureTemplate = Handlebars.compile(structureSource);
+ var structureOutput = structureTemplate(data);
+ $('#tunes-' + data.container).append(structureOutput);
+
+ // Create lyrics container
+ const lyricsSource = `
+
+
+
+ {{#each lyrics}}{{{text}}}{{{breakspace linebreak space}}}{{/each}}
+
+ "{{title}}" on "{{album}}"
+
+
+
+
+ {{artist}} performing "{{title}}" on "{{album}}"
+
+
+
+
+ `
+ var lyricsTemplate = Handlebars.compile(lyricsSource);
+ var lyricsOutput = lyricsTemplate(data);
+ $('#lyrics-' + data.container).append(lyricsOutput);
+
+ if (data.container == 'userviz') {
+ $('#tunes-' + data.container + ' .lyrics-container,#tunes-' + data.container + ' .lyrics-container span').addClass('active');
+ }
+
+ // Add class to wrapper to prevent doubling up
+ $('#tunes-' + data.container).addClass('built');
+ },
+ createViz: function (data) {
+ // Set vars that will change
+ var margin,
+ width,
+ height,
+ svg,
+ unitWidth,
+ unitHeight,
+ rSize,
+ x,
+ y;
+
+ var rotate = -45;
+
+ var numberOfRows = 0; // Include zero based row
+ var rowsArr = [];
+ var numberOfBreaks = 0;
+ var numberOfSyllables = data.lyrics.length;
+ var wordSoundOffset = -5;
+ // Get number of groups
+ $.each(data.lyrics, function (i, d) {
+ d.classed = parseFloat(d.classed);
+ d.shown = false;
+ numberOfRows = d.classed > numberOfRows ? d.classed : numberOfRows;
+ if (jQuery.inArray(d.classed, rowsArr) < 0) {
+ rowsArr.push(d.classed);
+ }
+ numberOfBreaks += d.linebreak;
+ });
+
+ numberOfRows++;
+
+ function setVars() {
+ margin = {
+ top: 60,
+ right: 30,
+ bottom: 15,
+ left: 30
+ },
+ width = $('#viz-' + data.container).width() - margin.left - margin.right;
+
+ height = 200 - margin.top - margin.bottom;
+
+ wordSoundOffset = window.innerWidth < 620 ? -15 : -5;
+ // Calculate height and width based on number of rows and entries
+ unitWidth = width / (numberOfSyllables);
+
+ if (data.container == 'userviz') {
+ rSize = unitWidth;
+ height = rSize * numberOfRows;
+ if (height > 400) {
+ height = 400;
+ rSize = height / numberOfRows;
+ }
+ } else {
+ unitHeight = (height / (numberOfRows));
+ rSize = unitHeight < unitWidth ? unitHeight : unitWidth;
+ }
+
+ // Axes
+ xOffsetViz = (width - (numberOfSyllables * rSize)) / 2;
+ x = d3.scaleLinear().domain([0, numberOfSyllables]).range([0, numberOfSyllables * rSize]);
+ if (window.innerWidth > 620) {
+ y = d3.scaleLinear().domain([0, numberOfRows]).range([0, numberOfRows * rSize]);
+ } else {
+ y = d3.scaleLinear().domain([0, numberOfRows]).range([0, height]);
+ }
+
+ // Adjust RSze
+ rSize = rSize < 15 ? 15 : rSize;
+ }
+
+ setVars();
+
+ // Viz-unit variables that don't change
+ var maxOpacity = 0.8;
+
+ function resize() {
+ if ($(window).width() >= 991) {
+ var xOffset = 48;
+ }
+ else if (($(window).width() < 991) && ($(window).width() > 767)) {
+ var xOffset = 40;
+ }
+ else if (($(window).width() < 767) && ($(window).width() > 620)) {
+ var xOffset = 45;
+ }
+
+ else {
+ var xOffset = 0 + margin.left;
+ }
+
+ setVars();
+ d3.select('#viz-' + data.container + ' svg')
+ .attr('width', width + margin.left + margin.right)
+ .attr('height', height + margin.top + margin.bottom)
+ svg
+ .attr('transform', 'translate(' + (xOffsetViz + xOffset) + ',' + margin.top + ')');
+
+ svg.selectAll('.viz-row')
+ .attr('transform', function (d, i) {
+ return 'translate(' + (x(0)) + ',' + y(d) + ')';
+ });
+
+ var note = rows.selectAll('.note')
+ .attr('class', 'note')
+ .attr('transform', function (d, i) {
+ return 'translate(' + x(i) + ',' + 0 + ')';
+ })
+
+ note.selectAll('circle')
+ .attr('r', rSize)
+
+ svg.selectAll('.bg')
+ .attr('width', width)
+ .attr('height', height - rSize);
+ }
+
+ var svg = d3.select('#viz-' + data.container)
+ .append('svg')
+ .attr('width', width + margin.left + margin.right)
+ .attr('height', height + margin.top + margin.bottom)
+ .append('g')
+ .attr('transform', 'translate(' + margin.left + ',' + margin.top + ')')
+
+ //BG
+ var bg = svg.append('rect')
+ .attr('class', 'bg')
+ .attr('width', width)
+ .attr('height', height - rSize)
+ .attr('fill', 'transparent');
+
+ for (var j = 0; j <= numberOfRows; j++) {
+ var row = svg.selectAll('.viz-row')
+ .data(rowsArr).enter()
+ .append('g')
+ .attr('class', 'viz-row')
+ .attr('data-row', function (d) { return d; });
+ }
+
+ // Append sounds if exist
+ if (typeof settings[data.file] !== 'undefined') {
+ // Add sound prefixes
+ var sounds = svg.selectAll('.viz-row')
+ .append('g')
+ .attr('class', 'sound')
+ .attr('transform', function () {
+ var x = 5 + xOffsetViz;
+ return 'translate(-' + x + ',' + (rSize / 2) + ')';
+ })
+
+ .attr('opacity', 0);
+ sounds.append('text')
+ .text(function (d, i) {
+ return settings[data.file].sounds[d];
+ })
+ .attr('data-classed', function (d, i) { return d; })
+ }
+
+ // Append Groups for each note
+ var rows = svg.selectAll('.viz-row');
+ var note = rows.selectAll('.note')
+ .data(data.lyrics).enter()
+ .append('g')
+ .attr('class', 'note')
+ .attr('transform', function (d, i) {
+ return 'translate(' + (x(i)) + ',' + (0) + ')';
+ })
+
+ var firstRow = rows.filter(function (d) {
+ return d == 0 ? this : null;
+ });
+
+ // Vertical lines
+ if (data.container != 'introviz') {
+ firstRow.selectAll('.note').filter(function (d, i) {
+ return d.linebreak == 1;
+ }).append('path')
+ .attr('class', 'break')
+ .attr('data-timecode', function (d) { return d.timecode; })
+ .attr('d', 'M ' + (rSize) + ' ' + (0) + ' L ' + (rSize) + ' ' + (height))
+ .attr('stroke-dasharray', ('1,1'))
+ .attr('stroke', '#999')
+ .attr('opacity', function () {
+ return data.show ? 1 : 0;
+ });
+ var firstRowLine = svg.append('path')
+ .attr('class', 'break')
+ .attr('d', 'M ' + (0) + ' ' + (0) + ' L ' + (0) + ' ' + (height))
+ .attr('stroke-dasharray', ('1,1'))
+ .attr('stroke', '#999')
+ .attr('opacity', function () {
+ return data.show ? 1 : 0;
+ });
+ }
+
+ var wordSound = firstRow.selectAll('.note')
+ .append('g')
+ .attr('class', 'word-sound')
+ .attr('transform', 'translate(0,' + (wordSoundOffset) + ')');
+ wordSound.append('text')
+ .text(function (d) { return d.text; })
+ .attr('data-timecode', function (d) { return d.timecode; })
+ .attr('data-classed', function (d) { return d.classed; })
+ .attr('class', 'word-sound')
+ .attr('transform', 'scale(1)')
+ .attr('opacity', 0);
+
+ // Append disamond rect
+ note.filter(function (d, i) {
+ var rowNum = d3.select(this.parentNode).datum();
+ return rowNum == d.classed && d.classed != 0;
+ }).append('rect')
+ .attr('width', rSize * 1.35)
+ .attr('height', rSize * 1.35)
+ .attr('x', -rSize / 2)
+ .attr('y', -rSize / 2)
+ .attr('opacity', function (d) {
+
+ return maxOpacity;
+ })
+ .attr('class', function (d) {
+ if (data.show) {
+ if (typeof d[data.container] != 'undefined' && d[data.container] != '') {
+ return 'viz-unit active';
+ } else {
+ if (d.classed == 0) {
+ return 'viz-unit subtle';
+ } else {
+ return 'viz-unit subtle active';
+ }
+ }
+ } else {
+ return 'viz-unit';
+ }
+ })
+ .attr('data-classed', function (d) {
+ var rowNum = d3.select(this.parentNode.parentNode).datum();
+ if (rowNum == d.classed) {
+ return d.classed;
+ } else {
+ return 0;
+ }
+ })
+ .attr('transform', function (d) {
+ var rowNum = d3.select(this.parentNode.parentNode).datum();
+ if (d.classed == rowNum && data.show) {
+ // If set to "show," simply show it
+ return 'scale(1) rotate(' + rotate + ')';
+ } else {
+ if (d.classed == rowNum) {
+ // If a real circle, show it
+ return 'scale(1) rotate(' + rotate + ')';
+ } else {
+ // If not a real circle, don't show it
+ return 'scale(0) rotate(0)';
+ }
+ }
+ });
+
+ // Append annotations where applicable
+ if (typeof settings[data.file] !== 'undefined' && typeof settings[data.file].annotations !== 'undefined' && typeof settings[data.file].annotations[data.container] !== 'undefined') {
+ $.each(settings[data.file].annotations[data.container], function (i, match) {
+ var annotation = note.filter(function (d) {
+ // Get only notes where we're showing the color
+ var rowNum = d3.select(this.parentNode).datum();
+ return rowNum == d.classed && match.timecode == d.timecode ? this : null;
+ })
+ .append('g')
+ .attr('class', 'annotation')
+ .attr('transform', function () {
+ return data.show ? 'scale(1)' : 'scale(0)';
+ });
+
+ $.each(match.text.split('
'), function (j, text) {
+ annotation.append('text')
+ .text(function (d) {
+ return text;
+ })
+ .attr('text-anchor', function (d) {
+ return match.anchor;
+ })
+ .attr('y', function (d) {
+ var lineSpacing = 14;
+ if (match.position == 'under') {
+ return rSize * 1.75 + (lineSpacing * j);
+ } else if (match.position == 'above') {
+ return -rSize * 2 + (lineSpacing * j);
+ }
+ });
+ });
+ });
+ }
+
+ // Trigger resize function now that we're done
+ $(window).resize(resize);
+ },
+ }
+ return app.init();
+}
function getBarChart(params) {
const chart = new barChart(params);
@@ -17,7 +442,25 @@ function getBarChart(params) {
const svg = d3.select(document.getElementById(containerId)).node().outerHTML;
d3.select(document.getElementById(containerId)).remove();
- return svg;
+ d3.select(document.body)
+ .append('div')
+ .attr('id', 'tunes-userviz')
+
+ var userviz = tune({
+ source: '',
+ file: 'userviz',
+ title: '',
+ artist: '',
+ album: '',
+ data: csv,
+ show: true,
+ music: false,
+ container: 'userviz',
+ missing_words: false
+ });
+ const svg2 = d3.select(document.getElementById('tunes-userviz')).node().outerHTML
+
+ return svg2;
}
module.exports = {
diff --git a/csv.js b/csv.js
new file mode 100644
index 0000000..6c0676a
--- /dev/null
+++ b/csv.js
@@ -0,0 +1,2484 @@
+const csv = [
+ {
+ "text": "fast",
+ "space": "1",
+ "classed": "0",
+ "timecode": 0,
+ "linebreak": "0"
+ },
+ {
+ "text": "for",
+ "space": "0",
+ "classed": "0",
+ "timecode": 1,
+ "linebreak": "0"
+ },
+ {
+ "text": "ward",
+ "space": "1",
+ "classed": "0",
+ "timecode": 2,
+ "linebreak": "0"
+ },
+ {
+ "text": "some",
+ "space": "1",
+ "classed": "4",
+ "timecode": 3,
+ "linebreak": "0"
+ },
+ {
+ "text": "years",
+ "space": "1",
+ "classed": "0",
+ "timecode": 4,
+ "linebreak": "0"
+ },
+ {
+ "text": "la",
+ "space": "0",
+ "classed": "11",
+ "timecode": 5,
+ "linebreak": "0"
+ },
+ {
+ "text": "ter",
+ "space": "1",
+ "classed": "12",
+ "timecode": 6,
+ "linebreak": "0"
+ },
+ {
+ "text": "a",
+ "space": "1",
+ "classed": "0",
+ "timecode": 7,
+ "linebreak": "0"
+ },
+ {
+ "text": "teena",
+ "space": "0",
+ "classed": "0",
+ "timecode": 8,
+ "linebreak": "0"
+ },
+ {
+ "text": "ge",
+ "space": "0",
+ "classed": "11",
+ "timecode": 9,
+ "linebreak": "0"
+ },
+ {
+ "text": "r",
+ "space": "1",
+ "classed": "12",
+ "timecode": 10,
+ "linebreak": "0"
+ },
+ {
+ "text": "this",
+ "space": "1",
+ "classed": "5",
+ "timecode": 11,
+ "linebreak": "0"
+ },
+ {
+ "text": "is",
+ "space": "1",
+ "classed": "5",
+ "timecode": 12,
+ "linebreak": "0"
+ },
+ {
+ "text": "fun",
+ "space": "1",
+ "classed": "4",
+ "timecode": 13,
+ "linebreak": "0"
+ },
+ {
+ "text": "sweet",
+ "space": "1",
+ "classed": "3",
+ "timecode": 14,
+ "linebreak": "1"
+ },
+ {
+ "text": "i",
+ "space": "1",
+ "classed": "0",
+ "timecode": 15,
+ "linebreak": "0"
+ },
+ {
+ "text": "just",
+ "space": "1",
+ "classed": "5",
+ "timecode": 16,
+ "linebreak": "0"
+ },
+ {
+ "text": "got",
+ "space": "1",
+ "classed": "0",
+ "timecode": 17,
+ "linebreak": "0"
+ },
+ {
+ "text": "jumped",
+ "space": "1",
+ "classed": "4",
+ "timecode": 18,
+ "linebreak": "0"
+ },
+ {
+ "text": "twice",
+ "space": "1",
+ "classed": "0",
+ "timecode": 19,
+ "linebreak": "0"
+ },
+ {
+ "text": "in",
+ "space": "1",
+ "classed": "5",
+ "timecode": 20,
+ "linebreak": "0"
+ },
+ {
+ "text": "one",
+ "space": "1",
+ "classed": "4",
+ "timecode": 21,
+ "linebreak": "0"
+ },
+ {
+ "text": "week",
+ "space": "1",
+ "classed": "3",
+ "timecode": 22,
+ "linebreak": "0"
+ },
+ {
+ "text": "it's",
+ "space": "1",
+ "classed": "5",
+ "timecode": 23,
+ "linebreak": "0"
+ },
+ {
+ "text": "com",
+ "space": "0",
+ "classed": "4",
+ "timecode": 24,
+ "linebreak": "0"
+ },
+ {
+ "text": "plete",
+ "space": "1",
+ "classed": "3",
+ "timecode": 25,
+ "linebreak": "1"
+ },
+ {
+ "text": "it's",
+ "space": "1",
+ "classed": "5",
+ "timecode": 26,
+ "linebreak": "0"
+ },
+ {
+ "text": "u",
+ "space": "0",
+ "classed": "1",
+ "timecode": 27,
+ "linebreak": "0"
+ },
+ {
+ "text": "sually",
+ "space": "0",
+ "classed": "0",
+ "timecode": 28,
+ "linebreak": "0"
+ },
+ {
+ "text": "",
+ "space": "0",
+ "classed": "4",
+ "timecode": 29,
+ "linebreak": "0"
+ },
+ {
+ "text": "",
+ "space": "1",
+ "classed": "3",
+ "timecode": 30,
+ "linebreak": "0"
+ },
+ {
+ "text": "once",
+ "space": "1",
+ "classed": "4",
+ "timecode": 31,
+ "linebreak": "0"
+ },
+ {
+ "text": "a",
+ "space": "1",
+ "classed": "0",
+ "timecode": 32,
+ "linebreak": "0"
+ },
+ {
+ "text": "month",
+ "space": "1",
+ "classed": "4",
+ "timecode": 33,
+ "linebreak": "0"
+ },
+ {
+ "text": "this",
+ "space": "1",
+ "classed": "5",
+ "timecode": 34,
+ "linebreak": "0"
+ },
+ {
+ "text": "is",
+ "space": "1",
+ "classed": "5",
+ "timecode": 35,
+ "linebreak": "0"
+ },
+ {
+ "text": "some",
+ "space": "1",
+ "classed": "4",
+ "timecode": 36,
+ "linebreak": "0"
+ },
+ {
+ "text": "feat",
+ "space": "1",
+ "classed": "3",
+ "timecode": 37,
+ "linebreak": "0"
+ },
+ {
+ "text": "i've",
+ "space": "1",
+ "classed": "0",
+ "timecode": 38,
+ "linebreak": "0"
+ },
+ {
+ "text": "a",
+ "space": "0",
+ "classed": "4",
+ "timecode": 39,
+ "linebreak": "0"
+ },
+ {
+ "text": "ccom",
+ "space": "0",
+ "classed": "7",
+ "timecode": 40,
+ "linebreak": "0"
+ },
+ {
+ "text": "plished",
+ "space": "1",
+ "classed": "0",
+ "timecode": 41,
+ "linebreak": "1"
+ },
+ {
+ "text": "they've",
+ "space": "1",
+ "classed": "0",
+ "timecode": 42,
+ "linebreak": "0"
+ },
+ {
+ "text": "stomped",
+ "space": "1",
+ "classed": "7",
+ "timecode": 43,
+ "linebreak": "0"
+ },
+ {
+ "text": "me",
+ "space": "1",
+ "classed": "3",
+ "timecode": 44,
+ "linebreak": "0"
+ },
+ {
+ "text": "in",
+ "space": "0",
+ "classed": "5",
+ "timecode": 45,
+ "linebreak": "0"
+ },
+ {
+ "text": "to",
+ "space": "1",
+ "classed": "1",
+ "timecode": 46,
+ "linebreak": "0"
+ },
+ {
+ "text": "the",
+ "space": "1",
+ "classed": "0",
+ "timecode": 47,
+ "linebreak": "0"
+ },
+ {
+ "text": "mud",
+ "space": "1",
+ "classed": "4",
+ "timecode": 48,
+ "linebreak": "0"
+ },
+ {
+ "text": "gee",
+ "space": "1",
+ "classed": "3",
+ "timecode": 49,
+ "linebreak": "0"
+ },
+ {
+ "text": "for",
+ "space": "1",
+ "classed": "0",
+ "timecode": 50,
+ "linebreak": "0"
+ },
+ {
+ "text": "what",
+ "space": "1",
+ "classed": "4",
+ "timecode": 51,
+ "linebreak": "0"
+ },
+ {
+ "text": "rea",
+ "space": "0",
+ "classed": "3",
+ "timecode": 52,
+ "linebreak": "0"
+ },
+ {
+ "text": "son",
+ "space": "1",
+ "classed": "4",
+ "timecode": 53,
+ "linebreak": "0"
+ },
+ {
+ "text": "you",
+ "space": "1",
+ "classed": "1",
+ "timecode": 54,
+ "linebreak": "0"
+ },
+ {
+ "text": "stumped",
+ "space": "1",
+ "classed": "4",
+ "timecode": 55,
+ "linebreak": "0"
+ },
+ {
+ "text": "me",
+ "space": "1",
+ "classed": "3",
+ "timecode": 56,
+ "linebreak": "1"
+ },
+ {
+ "text": "but",
+ "space": "1",
+ "classed": "4",
+ "timecode": 57,
+ "linebreak": "0"
+ },
+ {
+ "text": "how",
+ "space": "1",
+ "classed": "0",
+ "timecode": 58,
+ "linebreak": "0"
+ },
+ {
+ "text": "do",
+ "space": "1",
+ "classed": "1",
+ "timecode": 59,
+ "linebreak": "0"
+ },
+ {
+ "text": "you",
+ "space": "1",
+ "classed": "1",
+ "timecode": 60,
+ "linebreak": "0"
+ },
+ {
+ "text": "get",
+ "space": "1",
+ "classed": "5",
+ "timecode": 61,
+ "linebreak": "0"
+ },
+ {
+ "text": "the",
+ "space": "1",
+ "classed": "0",
+ "timecode": 62,
+ "linebreak": "0"
+ },
+ {
+ "text": "shit",
+ "space": "1",
+ "classed": "5",
+ "timecode": 63,
+ "linebreak": "0"
+ },
+ {
+ "text": "beat",
+ "space": "1",
+ "classed": "3",
+ "timecode": 64,
+ "linebreak": "0"
+ },
+ {
+ "text": "out",
+ "space": "1",
+ "classed": "0",
+ "timecode": 65,
+ "linebreak": "0"
+ },
+ {
+ "text": "of",
+ "space": "1",
+ "classed": "4",
+ "timecode": 66,
+ "linebreak": "0"
+ },
+ {
+ "text": "you",
+ "space": "1",
+ "classed": "1",
+ "timecode": 67,
+ "linebreak": "0"
+ },
+ {
+ "text": "beat",
+ "space": "1",
+ "classed": "3",
+ "timecode": 68,
+ "linebreak": "0"
+ },
+ {
+ "text": "down",
+ "space": "1",
+ "classed": "0",
+ "timecode": 69,
+ "linebreak": "1"
+ },
+ {
+ "text": "and",
+ "space": "1",
+ "classed": "0",
+ "timecode": 70,
+ "linebreak": "0"
+ },
+ {
+ "text": "be",
+ "space": "1",
+ "classed": "3",
+ "timecode": 71,
+ "linebreak": "0"
+ },
+ {
+ "text": "up",
+ "space": "0",
+ "classed": "4",
+ "timecode": 72,
+ "linebreak": "0"
+ },
+ {
+ "text": "beat",
+ "space": "1",
+ "classed": "3",
+ "timecode": 73,
+ "linebreak": "0"
+ },
+ {
+ "text": "when",
+ "space": "1",
+ "classed": "2",
+ "timecode": 74,
+ "linebreak": "0"
+ },
+ {
+ "text": "you",
+ "space": "1",
+ "classed": "1",
+ "timecode": 75,
+ "linebreak": "0"
+ },
+ {
+ "text": "don't",
+ "space": "1",
+ "classed": "13",
+ "timecode": 76,
+ "linebreak": "0"
+ },
+ {
+ "text": "have",
+ "space": "1",
+ "classed": "0",
+ "timecode": 77,
+ "linebreak": "0"
+ },
+ {
+ "text": "no",
+ "space": "0",
+ "classed": "4",
+ "timecode": 78,
+ "linebreak": "0"
+ },
+ {
+ "text": "thing",
+ "space": "1",
+ "classed": "5",
+ "timecode": 79,
+ "linebreak": "1"
+ },
+ {
+ "text": "no",
+ "space": "1",
+ "classed": "13",
+ "timecode": 80,
+ "linebreak": "0"
+ },
+ {
+ "text": "va",
+ "space": "0",
+ "classed": "0",
+ "timecode": 81,
+ "linebreak": "0"
+ },
+ {
+ "text": "lid",
+ "space": "1",
+ "classed": "5",
+ "timecode": 82,
+ "linebreak": "0"
+ },
+ {
+ "text": "shot",
+ "space": "1",
+ "classed": "7",
+ "timecode": 83,
+ "linebreak": "0"
+ },
+ {
+ "text": "at",
+ "space": "1",
+ "classed": "0",
+ "timecode": 84,
+ "linebreak": "0"
+ },
+ {
+ "text": "life",
+ "space": "1",
+ "classed": "9",
+ "timecode": 85,
+ "linebreak": "0"
+ },
+ {
+ "text": "chance",
+ "space": "1",
+ "classed": "8",
+ "timecode": 86,
+ "linebreak": "0"
+ },
+ {
+ "text": "to",
+ "space": "1",
+ "classed": "0",
+ "timecode": 87,
+ "linebreak": "0"
+ },
+ {
+ "text": "make",
+ "space": "1",
+ "classed": "0",
+ "timecode": 88,
+ "linebreak": "0"
+ },
+ {
+ "text": "it",
+ "space": "1",
+ "classed": "5",
+ "timecode": 89,
+ "linebreak": "0"
+ },
+ {
+ "text": "or",
+ "space": "1",
+ "classed": "0",
+ "timecode": 90,
+ "linebreak": "0"
+ },
+ {
+ "text": "suc",
+ "space": "0",
+ "classed": "4",
+ "timecode": 91,
+ "linebreak": "0"
+ },
+ {
+ "text": "ceed",
+ "space": "1",
+ "classed": "3",
+ "timecode": 92,
+ "linebreak": "1"
+ },
+ {
+ "text": "'cause",
+ "space": "1",
+ "classed": "0",
+ "timecode": 93,
+ "linebreak": "0"
+ },
+ {
+ "text": "you're",
+ "space": "1",
+ "classed": "1",
+ "timecode": 94,
+ "linebreak": "0"
+ },
+ {
+ "text": "doomed",
+ "space": "1",
+ "classed": "1",
+ "timecode": 95,
+ "linebreak": "0"
+ },
+ {
+ "text": "from",
+ "space": "1",
+ "classed": "4",
+ "timecode": 96,
+ "linebreak": "0"
+ },
+ {
+ "text": "the",
+ "space": "1",
+ "classed": "0",
+ "timecode": 97,
+ "linebreak": "0"
+ },
+ {
+ "text": "start",
+ "space": "1",
+ "classed": "0",
+ "timecode": 98,
+ "linebreak": "0"
+ },
+ {
+ "text": "it's",
+ "space": "1",
+ "classed": "5",
+ "timecode": 99,
+ "linebreak": "0"
+ },
+ {
+ "text": "like",
+ "space": "1",
+ "classed": "9",
+ "timecode": 100,
+ "linebreak": "0"
+ },
+ {
+ "text": "you",
+ "space": "1",
+ "classed": "1",
+ "timecode": 101,
+ "linebreak": "0"
+ },
+ {
+ "text": "grew",
+ "space": "1",
+ "classed": "1",
+ "timecode": 102,
+ "linebreak": "0"
+ },
+ {
+ "text": "up",
+ "space": "1",
+ "classed": "4",
+ "timecode": 103,
+ "linebreak": "0"
+ },
+ {
+ "text": "on",
+ "space": "1",
+ "classed": "7",
+ "timecode": 104,
+ "linebreak": "0"
+ },
+ {
+ "text": "jump",
+ "space": "1",
+ "classed": "4",
+ "timecode": 105,
+ "linebreak": "0"
+ },
+ {
+ "text": "street",
+ "space": "1",
+ "classed": "3",
+ "timecode": 106,
+ "linebreak": "0"
+ },
+ {
+ "text": "from",
+ "space": "1",
+ "classed": "4",
+ "timecode": 107,
+ "linebreak": "0"
+ },
+ {
+ "text": "jump",
+ "space": "1",
+ "classed": "4",
+ "timecode": 108,
+ "linebreak": "0"
+ },
+ {
+ "text": "street",
+ "space": "1",
+ "classed": "3",
+ "timecode": 109,
+ "linebreak": "1"
+ },
+ {
+ "text": "but",
+ "space": "1",
+ "classed": "4",
+ "timecode": 110,
+ "linebreak": "0"
+ },
+ {
+ "text": "if",
+ "space": "1",
+ "classed": "0",
+ "timecode": 111,
+ "linebreak": "0"
+ },
+ {
+ "text": "i",
+ "space": "1",
+ "classed": "0",
+ "timecode": 112,
+ "linebreak": "0"
+ },
+ {
+ "text": "could",
+ "space": "1",
+ "classed": "10",
+ "timecode": 113,
+ "linebreak": "0"
+ },
+ {
+ "text": "just",
+ "space": "1",
+ "classed": "4",
+ "timecode": 114,
+ "linebreak": "0"
+ },
+ {
+ "text": "get",
+ "space": "1",
+ "classed": "2",
+ "timecode": 115,
+ "linebreak": "0"
+ },
+ {
+ "text": "my",
+ "space": "1",
+ "classed": "9",
+ "timecode": 116,
+ "linebreak": "0"
+ },
+ {
+ "text": "head",
+ "space": "1",
+ "classed": "2",
+ "timecode": 117,
+ "linebreak": "0"
+ },
+ {
+ "text": "out",
+ "space": "1",
+ "classed": "0",
+ "timecode": 118,
+ "linebreak": "0"
+ },
+ {
+ "text": "my",
+ "space": "1",
+ "classed": "9",
+ "timecode": 119,
+ "linebreak": "0"
+ },
+ {
+ "text": "ass",
+ "space": "1",
+ "classed": "8",
+ "timecode": 120,
+ "linebreak": "1"
+ },
+ {
+ "text": "i",
+ "space": "1",
+ "classed": "0",
+ "timecode": 121,
+ "linebreak": "0"
+ },
+ {
+ "text": "could",
+ "space": "1",
+ "classed": "10",
+ "timecode": 122,
+ "linebreak": "0"
+ },
+ {
+ "text": "a",
+ "space": "0",
+ "classed": "4",
+ "timecode": 123,
+ "linebreak": "0"
+ },
+ {
+ "text": "ccom",
+ "space": "0",
+ "classed": "7",
+ "timecode": 124,
+ "linebreak": "0"
+ },
+ {
+ "text": "plish",
+ "space": "1",
+ "classed": "0",
+ "timecode": 125,
+ "linebreak": "0"
+ },
+ {
+ "text": "a",
+ "space": "0",
+ "classed": "0",
+ "timecode": 126,
+ "linebreak": "0"
+ },
+ {
+ "text": "ny",
+ "space": "1",
+ "classed": "0",
+ "timecode": 127,
+ "linebreak": "0"
+ },
+ {
+ "text": "task",
+ "space": "1",
+ "classed": "8",
+ "timecode": 128,
+ "linebreak": "0"
+ },
+ {
+ "text": "prac",
+ "space": "0",
+ "classed": "8",
+ "timecode": 129,
+ "linebreak": "0"
+ },
+ {
+ "text": "ti",
+ "space": "0",
+ "classed": "4",
+ "timecode": 130,
+ "linebreak": "0"
+ },
+ {
+ "text": "cin'",
+ "space": "1",
+ "classed": "4",
+ "timecode": 131,
+ "linebreak": "0"
+ },
+ {
+ "text": "trash",
+ "space": "1",
+ "classed": "8",
+ "timecode": 132,
+ "linebreak": "0"
+ },
+ {
+ "text": "ta",
+ "space": "0",
+ "classed": "0",
+ "timecode": 133,
+ "linebreak": "0"
+ },
+ {
+ "text": "lkin'",
+ "space": "1",
+ "classed": "5",
+ "timecode": 134,
+ "linebreak": "0"
+ },
+ {
+ "text": "in",
+ "space": "1",
+ "classed": "5",
+ "timecode": 135,
+ "linebreak": "0"
+ },
+ {
+ "text": "a",
+ "space": "1",
+ "classed": "0",
+ "timecode": 136,
+ "linebreak": "0"
+ },
+ {
+ "text": "trance",
+ "space": "1",
+ "classed": "8",
+ "timecode": 137,
+ "linebreak": "1"
+ },
+ {
+ "text": "locked",
+ "space": "1",
+ "classed": "7",
+ "timecode": 138,
+ "linebreak": "0"
+ },
+ {
+ "text": "in",
+ "space": "1",
+ "classed": "5",
+ "timecode": 139,
+ "linebreak": "0"
+ },
+ {
+ "text": "my",
+ "space": "1",
+ "classed": "9",
+ "timecode": 140,
+ "linebreak": "0"
+ },
+ {
+ "text": "room",
+ "space": "1",
+ "classed": "0",
+ "timecode": 141,
+ "linebreak": "0"
+ },
+ {
+ "text": "yeah",
+ "space": "1",
+ "classed": "8",
+ "timecode": 142,
+ "linebreak": "0"
+ },
+ {
+ "text": "but",
+ "space": "1",
+ "classed": "4",
+ "timecode": 143,
+ "linebreak": "0"
+ },
+ {
+ "text": "i",
+ "space": "1",
+ "classed": "0",
+ "timecode": 144,
+ "linebreak": "0"
+ },
+ {
+ "text": "got",
+ "space": "1",
+ "classed": "7",
+ "timecode": 145,
+ "linebreak": "0"
+ },
+ {
+ "text": "some",
+ "space": "1",
+ "classed": "4",
+ "timecode": 146,
+ "linebreak": "0"
+ },
+ {
+ "text": "plans",
+ "space": "1",
+ "classed": "8",
+ "timecode": 147,
+ "linebreak": "0"
+ },
+ {
+ "text": "mo",
+ "space": "0",
+ "classed": "7",
+ "timecode": 148,
+ "linebreak": "0"
+ },
+ {
+ "text": "mma",
+ "space": "1",
+ "classed": "0",
+ "timecode": 149,
+ "linebreak": "1"
+ },
+ {
+ "text": "these",
+ "space": "1",
+ "classed": "0",
+ "timecode": 150,
+ "linebreak": "0"
+ },
+ {
+ "text": "damn",
+ "space": "1",
+ "classed": "8",
+ "timecode": 151,
+ "linebreak": "0"
+ },
+ {
+ "text": "rhymes",
+ "space": "1",
+ "classed": "9",
+ "timecode": 152,
+ "linebreak": "0"
+ },
+ {
+ "text": "are",
+ "space": "1",
+ "classed": "7",
+ "timecode": 153,
+ "linebreak": "0"
+ },
+ {
+ "text": "fa",
+ "space": "0",
+ "classed": "8",
+ "timecode": 154,
+ "linebreak": "0"
+ },
+ {
+ "text": "llin'",
+ "space": "1",
+ "classed": "5",
+ "timecode": 155,
+ "linebreak": "0"
+ },
+ {
+ "text": "out",
+ "space": "1",
+ "classed": "0",
+ "timecode": 156,
+ "linebreak": "0"
+ },
+ {
+ "text": "of",
+ "space": "1",
+ "classed": "0",
+ "timecode": 157,
+ "linebreak": "0"
+ },
+ {
+ "text": "my",
+ "space": "1",
+ "classed": "9",
+ "timecode": 158,
+ "linebreak": "0"
+ },
+ {
+ "text": "pants",
+ "space": "1",
+ "classed": "8",
+ "timecode": 159,
+ "linebreak": "0"
+ },
+ {
+ "text": "po",
+ "space": "0",
+ "classed": "7",
+ "timecode": 160,
+ "linebreak": "0"
+ },
+ {
+ "text": "cket",
+ "space": "1",
+ "classed": "4",
+ "timecode": 161,
+ "linebreak": "0"
+ },
+ {
+ "text": "i",
+ "space": "1",
+ "classed": "0",
+ "timecode": 162,
+ "linebreak": "0"
+ },
+ {
+ "text": "can't",
+ "space": "1",
+ "classed": "8",
+ "timecode": 163,
+ "linebreak": "0"
+ },
+ {
+ "text": "stop",
+ "space": "1",
+ "classed": "7",
+ "timecode": 164,
+ "linebreak": "0"
+ },
+ {
+ "text": "it",
+ "space": "1",
+ "classed": "5",
+ "timecode": 165,
+ "linebreak": "1"
+ },
+ {
+ "text": "and",
+ "space": "1",
+ "classed": "8",
+ "timecode": 166,
+ "linebreak": "0"
+ },
+ {
+ "text": "i'm",
+ "space": "1",
+ "classed": "9",
+ "timecode": 167,
+ "linebreak": "0"
+ },
+ {
+ "text": "star",
+ "space": "0",
+ "classed": "7",
+ "timecode": 168,
+ "linebreak": "0"
+ },
+ {
+ "text": "tin'",
+ "space": "1",
+ "classed": "4",
+ "timecode": 169,
+ "linebreak": "0"
+ },
+ {
+ "text": "to",
+ "space": "1",
+ "classed": "0",
+ "timecode": 170,
+ "linebreak": "0"
+ },
+ {
+ "text": "blend",
+ "space": "1",
+ "classed": "2",
+ "timecode": 171,
+ "linebreak": "0"
+ },
+ {
+ "text": "in",
+ "space": "1",
+ "classed": "5",
+ "timecode": 172,
+ "linebreak": "0"
+ },
+ {
+ "text": "more",
+ "space": "1",
+ "classed": "6",
+ "timecode": 173,
+ "linebreak": "0"
+ },
+ {
+ "text": "in",
+ "space": "1",
+ "classed": "5",
+ "timecode": 174,
+ "linebreak": "0"
+ },
+ {
+ "text": "school",
+ "space": "1",
+ "classed": "0",
+ "timecode": 175,
+ "linebreak": "0"
+ },
+ {
+ "text": "this",
+ "space": "1",
+ "classed": "0",
+ "timecode": 176,
+ "linebreak": "0"
+ },
+ {
+ "text": "shit",
+ "space": "1",
+ "classed": "5",
+ "timecode": 177,
+ "linebreak": "0"
+ },
+ {
+ "text": "helps",
+ "space": "1",
+ "classed": "0",
+ "timecode": 178,
+ "linebreak": "0"
+ },
+ {
+ "text": "for",
+ "space": "1",
+ "classed": "6",
+ "timecode": 179,
+ "linebreak": "0"
+ },
+ {
+ "text": "sure",
+ "space": "1",
+ "classed": "10",
+ "timecode": 180,
+ "linebreak": "1"
+ },
+ {
+ "text": "i'm",
+ "space": "1",
+ "classed": "9",
+ "timecode": 181,
+ "linebreak": "0"
+ },
+ {
+ "text": "ge",
+ "space": "0",
+ "classed": "5",
+ "timecode": 182,
+ "linebreak": "0"
+ },
+ {
+ "text": "ttin'",
+ "space": "1",
+ "classed": "4",
+ "timecode": 183,
+ "linebreak": "0"
+ },
+ {
+ "text": "more",
+ "space": "1",
+ "classed": "6",
+ "timecode": 184,
+ "linebreak": "0"
+ },
+ {
+ "text": "self",
+ "space": "1",
+ "classed": "0",
+ "timecode": 185,
+ "linebreak": "0"
+ },
+ {
+ "text": "a",
+ "space": "0",
+ "classed": "0",
+ "timecode": 186,
+ "linebreak": "0"
+ },
+ {
+ "text": "ssured",
+ "space": "1",
+ "classed": "10",
+ "timecode": 187,
+ "linebreak": "0"
+ },
+ {
+ "text": "than",
+ "space": "1",
+ "classed": "4",
+ "timecode": 188,
+ "linebreak": "0"
+ },
+ {
+ "text": "i've",
+ "space": "1",
+ "classed": "9",
+ "timecode": 189,
+ "linebreak": "0"
+ },
+ {
+ "text": "e",
+ "space": "0",
+ "classed": "2",
+ "timecode": 190,
+ "linebreak": "0"
+ },
+ {
+ "text": "ver",
+ "space": "1",
+ "classed": "12",
+ "timecode": 191,
+ "linebreak": "0"
+ },
+ {
+ "text": "been",
+ "space": "1",
+ "classed": "5",
+ "timecode": 192,
+ "linebreak": "0"
+ },
+ {
+ "text": "be",
+ "space": "0",
+ "classed": "3",
+ "timecode": 193,
+ "linebreak": "0"
+ },
+ {
+ "text": "fore",
+ "space": "1",
+ "classed": "6",
+ "timecode": 194,
+ "linebreak": "1"
+ },
+ {
+ "text": "plus",
+ "space": "1",
+ "classed": "0",
+ "timecode": 195,
+ "linebreak": "0"
+ },
+ {
+ "text": "no",
+ "space": "1",
+ "classed": "0",
+ "timecode": 196,
+ "linebreak": "0"
+ },
+ {
+ "text": "one",
+ "space": "1",
+ "classed": "4",
+ "timecode": 197,
+ "linebreak": "0"
+ },
+ {
+ "text": "picks",
+ "space": "1",
+ "classed": "5",
+ "timecode": 198,
+ "linebreak": "0"
+ },
+ {
+ "text": "on",
+ "space": "1",
+ "classed": "0",
+ "timecode": 199,
+ "linebreak": "0"
+ },
+ {
+ "text": "me",
+ "space": "1",
+ "classed": "3",
+ "timecode": 200,
+ "linebreak": "0"
+ },
+ {
+ "text": "a",
+ "space": "0",
+ "classed": "2",
+ "timecode": 201,
+ "linebreak": "0"
+ },
+ {
+ "text": "ny",
+ "space": "0",
+ "classed": "3",
+ "timecode": 202,
+ "linebreak": "0"
+ },
+ {
+ "text": "more",
+ "space": "1",
+ "classed": "6",
+ "timecode": 203,
+ "linebreak": "1"
+ },
+ {
+ "text": "i",
+ "space": "1",
+ "classed": "0",
+ "timecode": 204,
+ "linebreak": "0"
+ },
+ {
+ "text": "done",
+ "space": "1",
+ "classed": "4",
+ "timecode": 205,
+ "linebreak": "0"
+ },
+ {
+ "text": "put",
+ "space": "1",
+ "classed": "0",
+ "timecode": 206,
+ "linebreak": "0"
+ },
+ {
+ "text": "a",
+ "space": "1",
+ "classed": "0",
+ "timecode": 207,
+ "linebreak": "0"
+ },
+ {
+ "text": "stop",
+ "space": "1",
+ "classed": "0",
+ "timecode": 208,
+ "linebreak": "0"
+ },
+ {
+ "text": "to",
+ "space": "1",
+ "classed": "0",
+ "timecode": 209,
+ "linebreak": "0"
+ },
+ {
+ "text": "that",
+ "space": "1",
+ "classed": "0",
+ "timecode": 210,
+ "linebreak": "0"
+ },
+ {
+ "text": "threw",
+ "space": "1",
+ "classed": "1",
+ "timecode": 211,
+ "linebreak": "0"
+ },
+ {
+ "text": "my",
+ "space": "1",
+ "classed": "9",
+ "timecode": 212,
+ "linebreak": "0"
+ },
+ {
+ "text": "first",
+ "space": "1",
+ "classed": "12",
+ "timecode": 213,
+ "linebreak": "0"
+ },
+ {
+ "text": "punch",
+ "space": "1",
+ "classed": "4",
+ "timecode": 214,
+ "linebreak": "0"
+ },
+ {
+ "text": "end",
+ "space": "1",
+ "classed": "2",
+ "timecode": 215,
+ "linebreak": "0"
+ },
+ {
+ "text": "of",
+ "space": "1",
+ "classed": "0",
+ "timecode": 216,
+ "linebreak": "0"
+ },
+ {
+ "text": "sto",
+ "space": "0",
+ "classed": "6",
+ "timecode": 217,
+ "linebreak": "0"
+ },
+ {
+ "text": "ry",
+ "space": "1",
+ "classed": "3",
+ "timecode": 218,
+ "linebreak": "1"
+ },
+ {
+ "text": "still",
+ "space": "1",
+ "classed": "5",
+ "timecode": 219,
+ "linebreak": "0"
+ },
+ {
+ "text": "in",
+ "space": "1",
+ "classed": "5",
+ "timecode": 220,
+ "linebreak": "0"
+ },
+ {
+ "text": "my",
+ "space": "1",
+ "classed": "0",
+ "timecode": 221,
+ "linebreak": "0"
+ },
+ {
+ "text": "skull",
+ "space": "1",
+ "classed": "4",
+ "timecode": 222,
+ "linebreak": "0"
+ },
+ {
+ "text": "s",
+ "space": "1",
+ "classed": "2",
+ "timecode": 223,
+ "linebreak": "0"
+ },
+ {
+ "text": "a",
+ "space": "1",
+ "classed": "0",
+ "timecode": 224,
+ "linebreak": "0"
+ },
+ {
+ "text": "va",
+ "space": "0",
+ "classed": "11",
+ "timecode": 225,
+ "linebreak": "0"
+ },
+ {
+ "text": "cant",
+ "space": "1",
+ "classed": "4",
+ "timecode": 226,
+ "linebreak": "0"
+ },
+ {
+ "text": "em",
+ "space": "0",
+ "classed": "2",
+ "timecode": 227,
+ "linebreak": "0"
+ },
+ {
+ "text": "pty",
+ "space": "1",
+ "classed": "3",
+ "timecode": 228,
+ "linebreak": "0"
+ },
+ {
+ "text": "void",
+ "space": "1",
+ "classed": "0",
+ "timecode": 229,
+ "linebreak": "0"
+ },
+ {
+ "text": "been",
+ "space": "1",
+ "classed": "5",
+ "timecode": 230,
+ "linebreak": "0"
+ },
+ {
+ "text": "u",
+ "space": "0",
+ "classed": "1",
+ "timecode": 231,
+ "linebreak": "0"
+ },
+ {
+ "text": "sin'",
+ "space": "1",
+ "classed": "4",
+ "timecode": 232,
+ "linebreak": "0"
+ },
+ {
+ "text": "it",
+ "space": "1",
+ "classed": "5",
+ "timecode": 233,
+ "linebreak": "0"
+ },
+ {
+ "text": "more",
+ "space": "1",
+ "classed": "6",
+ "timecode": 234,
+ "linebreak": "0"
+ },
+ {
+ "text": "as",
+ "space": "1",
+ "classed": "0",
+ "timecode": 235,
+ "linebreak": "0"
+ },
+ {
+ "text": "a",
+ "space": "1",
+ "classed": "0",
+ "timecode": 236,
+ "linebreak": "0"
+ },
+ {
+ "text": "bin",
+ "space": "1",
+ "classed": "5",
+ "timecode": 237,
+ "linebreak": "0"
+ },
+ {
+ "text": "for",
+ "space": "1",
+ "classed": "6",
+ "timecode": 238,
+ "linebreak": "0"
+ },
+ {
+ "text": "sto",
+ "space": "0",
+ "classed": "6",
+ "timecode": 239,
+ "linebreak": "0"
+ },
+ {
+ "text": "rage",
+ "space": "1",
+ "classed": "0",
+ "timecode": 240,
+ "linebreak": "1"
+ },
+ {
+ "text": "take",
+ "space": "1",
+ "classed": "11",
+ "timecode": 241,
+ "linebreak": "0"
+ },
+ {
+ "text": "some",
+ "space": "1",
+ "classed": "4",
+ "timecode": 242,
+ "linebreak": "0"
+ },
+ {
+ "text": "in",
+ "space": "0",
+ "classed": "5",
+ "timecode": 243,
+ "linebreak": "0"
+ },
+ {
+ "text": "ven",
+ "space": "0",
+ "classed": "4",
+ "timecode": 244,
+ "linebreak": "0"
+ },
+ {
+ "text": "to",
+ "space": "0",
+ "classed": "6",
+ "timecode": 245,
+ "linebreak": "0"
+ },
+ {
+ "text": "ry",
+ "space": "1",
+ "classed": "3",
+ "timecode": 246,
+ "linebreak": "0"
+ },
+ {
+ "text": "in",
+ "space": "1",
+ "classed": "5",
+ "timecode": 247,
+ "linebreak": "0"
+ },
+ {
+ "text": "this",
+ "space": "1",
+ "classed": "5",
+ "timecode": 248,
+ "linebreak": "0"
+ },
+ {
+ "text": "gourd",
+ "space": "1",
+ "classed": "6",
+ "timecode": 249,
+ "linebreak": "0"
+ },
+ {
+ "text": "there's",
+ "space": "1",
+ "classed": "0",
+ "timecode": 250,
+ "linebreak": "0"
+ },
+ {
+ "text": "a",
+ "space": "1",
+ "classed": "0",
+ "timecode": 251,
+ "linebreak": "0"
+ },
+ {
+ "text": "ford",
+ "space": "1",
+ "classed": "6",
+ "timecode": 252,
+ "linebreak": "0"
+ },
+ {
+ "text": "en",
+ "space": "0",
+ "classed": "5",
+ "timecode": 253,
+ "linebreak": "0"
+ },
+ {
+ "text": "gine",
+ "space": "1",
+ "classed": "4",
+ "timecode": 254,
+ "linebreak": "1"
+ },
+ {
+ "text": "door",
+ "space": "1",
+ "classed": "6",
+ "timecode": 255,
+ "linebreak": "0"
+ },
+ {
+ "text": "hinge",
+ "space": "1",
+ "classed": "5",
+ "timecode": 256,
+ "linebreak": "0"
+ },
+ {
+ "text": "syr",
+ "space": "0",
+ "classed": "0",
+ "timecode": 257,
+ "linebreak": "0"
+ },
+ {
+ "text": "inge",
+ "space": "1",
+ "classed": "5",
+ "timecode": 258,
+ "linebreak": "0"
+ },
+ {
+ "text": "an",
+ "space": "1",
+ "classed": "0",
+ "timecode": 259,
+ "linebreak": "0"
+ },
+ {
+ "text": "o",
+ "space": "0",
+ "classed": "6",
+ "timecode": 260,
+ "linebreak": "0"
+ },
+ {
+ "text": "range",
+ "space": "1",
+ "classed": "5",
+ "timecode": 261,
+ "linebreak": "0"
+ },
+ {
+ "text": "an",
+ "space": "1",
+ "classed": "0",
+ "timecode": 262,
+ "linebreak": "0"
+ },
+ {
+ "text": "ex",
+ "space": "0",
+ "classed": "0",
+ "timecode": 263,
+ "linebreak": "0"
+ },
+ {
+ "text": "ten",
+ "space": "0",
+ "classed": "2",
+ "timecode": 264,
+ "linebreak": "0"
+ },
+ {
+ "text": "sion",
+ "space": "1",
+ "classed": "5",
+ "timecode": 265,
+ "linebreak": "0"
+ },
+ {
+ "text": "cord",
+ "space": "1",
+ "classed": "6",
+ "timecode": 266,
+ "linebreak": "0"
+ },
+ {
+ "text": "and",
+ "space": "1",
+ "classed": "4",
+ "timecode": 267,
+ "linebreak": "0"
+ },
+ {
+ "text": "a",
+ "space": "1",
+ "classed": "0",
+ "timecode": 268,
+ "linebreak": "0"
+ },
+ {
+ "text": "nin",
+ "space": "0",
+ "classed": "5",
+ "timecode": 269,
+ "linebreak": "0"
+ },
+ {
+ "text": "ja",
+ "space": "1",
+ "classed": "4",
+ "timecode": 270,
+ "linebreak": "0"
+ },
+ {
+ "text": "sword",
+ "space": "1",
+ "classed": "6",
+ "timecode": 271,
+ "linebreak": "1"
+ },
+ {
+ "text": "not",
+ "space": "1",
+ "classed": "0",
+ "timecode": 272,
+ "linebreak": "0"
+ },
+ {
+ "text": "to",
+ "space": "1",
+ "classed": "0",
+ "timecode": 273,
+ "linebreak": "0"
+ },
+ {
+ "text": "men",
+ "space": "0",
+ "classed": "2",
+ "timecode": 274,
+ "linebreak": "0"
+ },
+ {
+ "text": "tion",
+ "space": "1",
+ "classed": "5",
+ "timecode": 275,
+ "linebreak": "0"
+ },
+ {
+ "text": "four",
+ "space": "1",
+ "classed": "6",
+ "timecode": 276,
+ "linebreak": "0"
+ },
+ {
+ "text": "linch",
+ "space": "0",
+ "classed": "5",
+ "timecode": 277,
+ "linebreak": "0"
+ },
+ {
+ "text": "pins",
+ "space": "1",
+ "classed": "5",
+ "timecode": 278,
+ "linebreak": "0"
+ },
+ {
+ "text": "an",
+ "space": "1",
+ "classed": "0",
+ "timecode": 279,
+ "linebreak": "0"
+ },
+ {
+ "text": "a",
+ "space": "0",
+ "classed": "4",
+ "timecode": 280,
+ "linebreak": "0"
+ },
+ {
+ "text": "strin",
+ "space": "0",
+ "classed": "5",
+ "timecode": 281,
+ "linebreak": "0"
+ },
+ {
+ "text": "gent",
+ "space": "1",
+ "classed": "0",
+ "timecode": 282,
+ "linebreak": "0"
+ },
+ {
+ "text": "stored",
+ "space": "1",
+ "classed": "6",
+ "timecode": 283,
+ "linebreak": "1"
+ },
+ {
+ "text": "i",
+ "space": "0",
+ "classed": "0",
+ "timecode": 284,
+ "linebreak": "0"
+ },
+ {
+ "text": "ro",
+ "space": "0",
+ "classed": "4",
+ "timecode": 285,
+ "linebreak": "0"
+ },
+ {
+ "text": "nin'",
+ "space": "1",
+ "classed": "5",
+ "timecode": 286,
+ "linebreak": "0"
+ },
+ {
+ "text": "board",
+ "space": "1",
+ "classed": "6",
+ "timecode": 287,
+ "linebreak": "0"
+ },
+ {
+ "text": "a",
+ "space": "1",
+ "classed": "0",
+ "timecode": 288,
+ "linebreak": "0"
+ },
+ {
+ "text": "bench",
+ "space": "1",
+ "classed": "2",
+ "timecode": 289,
+ "linebreak": "0"
+ },
+ {
+ "text": "a",
+ "space": "1",
+ "classed": "0",
+ "timecode": 290,
+ "linebreak": "0"
+ },
+ {
+ "text": "wrench",
+ "space": "1",
+ "classed": "2",
+ "timecode": 291,
+ "linebreak": "0"
+ },
+ {
+ "text": "a",
+ "space": "1",
+ "classed": "0",
+ "timecode": 292,
+ "linebreak": "0"
+ },
+ {
+ "text": "ore",
+ "space": "1",
+ "classed": "6",
+ "timecode": 293,
+ "linebreak": "0"
+ },
+ {
+ "text": "winch",
+ "space": "1",
+ "classed": "5",
+ "timecode": 294,
+ "linebreak": "0"
+ },
+ {
+ "text": "an",
+ "space": "1",
+ "classed": "0",
+ "timecode": 295,
+ "linebreak": "0"
+ },
+ {
+ "text": "a",
+ "space": "0",
+ "classed": "4",
+ "timecode": 296,
+ "linebreak": "0"
+ },
+ {
+ "text": "tten",
+ "space": "0",
+ "classed": "2",
+ "timecode": 297,
+ "linebreak": "0"
+ },
+ {
+ "text": "tion",
+ "space": "1",
+ "classed": "5",
+ "timecode": 298,
+ "linebreak": "0"
+ },
+ {
+ "text": "whore",
+ "space": "1",
+ "classed": "6",
+ "timecode": 299,
+ "linebreak": "1"
+ },
+ {
+ "text": "e",
+ "space": "0",
+ "classed": "0",
+ "timecode": 300,
+ "linebreak": "0"
+ },
+ {
+ "text": "ve",
+ "space": "0",
+ "classed": "0",
+ "timecode": 301,
+ "linebreak": "0"
+ },
+ {
+ "text": "rything",
+ "space": "1",
+ "classed": "5",
+ "timecode": 302,
+ "linebreak": "0"
+ },
+ {
+ "text": "but",
+ "space": "1",
+ "classed": "4",
+ "timecode": 303,
+ "linebreak": "0"
+ },
+ {
+ "text": "a",
+ "space": "1",
+ "classed": "0",
+ "timecode": 304,
+ "linebreak": "0"
+ },
+ {
+ "text": "brain",
+ "space": "1",
+ "classed": "11",
+ "timecode": 305,
+ "linebreak": "0"
+ },
+ {
+ "text": "but",
+ "space": "1",
+ "classed": "4",
+ "timecode": 306,
+ "linebreak": "0"
+ },
+ {
+ "text": "dome's",
+ "space": "1",
+ "classed": "0",
+ "timecode": 307,
+ "linebreak": "0"
+ },
+ {
+ "text": "off",
+ "space": "1",
+ "classed": "0",
+ "timecode": 308,
+ "linebreak": "0"
+ },
+ {
+ "text": "the",
+ "space": "1",
+ "classed": "0",
+ "timecode": 309,
+ "linebreak": "0"
+ },
+ {
+ "text": "fu",
+ "space": "0",
+ "classed": "4",
+ "timecode": 310,
+ "linebreak": "0"
+ },
+ {
+ "text": "ckin'",
+ "space": "1",
+ "classed": "5",
+ "timecode": 311,
+ "linebreak": "0"
+ },
+ {
+ "text": "chain",
+ "space": "1",
+ "classed": "11",
+ "timecode": 312,
+ "linebreak": "1"
+ },
+ {
+ "text": "like",
+ "space": "1",
+ "classed": "0",
+ "timecode": 313,
+ "linebreak": "0"
+ },
+ {
+ "text": "an",
+ "space": "1",
+ "classed": "0",
+ "timecode": 314,
+ "linebreak": "0"
+ },
+ {
+ "text": "in",
+ "space": "0",
+ "classed": "5",
+ "timecode": 315,
+ "linebreak": "0"
+ },
+ {
+ "text": "de",
+ "space": "0",
+ "classed": "5",
+ "timecode": 316,
+ "linebreak": "0"
+ },
+ {
+ "text": "pen",
+ "space": "0",
+ "classed": "2",
+ "timecode": 317,
+ "linebreak": "0"
+ },
+ {
+ "text": "dent",
+ "space": "1",
+ "classed": "4",
+ "timecode": 318,
+ "linebreak": "0"
+ },
+ {
+ "text": "store",
+ "space": "1",
+ "classed": "6",
+ "timecode": 319,
+ "linebreak": "0"
+ },
+ {
+ "text": "some",
+ "space": "0",
+ "classed": "4",
+ "timecode": 320,
+ "linebreak": "0"
+ },
+ {
+ "text": "thing's",
+ "space": "1",
+ "classed": "5",
+ "timecode": 321,
+ "linebreak": "0"
+ },
+ {
+ "text": "wrong",
+ "space": "1",
+ "classed": "0",
+ "timecode": 322,
+ "linebreak": "0"
+ },
+ {
+ "text": "with",
+ "space": "1",
+ "classed": "5",
+ "timecode": 323,
+ "linebreak": "0"
+ },
+ {
+ "text": "my",
+ "space": "1",
+ "classed": "0",
+ "timecode": 324,
+ "linebreak": "1"
+ },
+ {
+ "text": "head",
+ "space": "1",
+ "classed": "2",
+ "timecode": 325,
+ "linebreak": "0"
+ },
+ {
+ "text": "just",
+ "space": "1",
+ "classed": "4",
+ "timecode": 326,
+ "linebreak": "0"
+ },
+ {
+ "text": "think",
+ "space": "1",
+ "classed": "5",
+ "timecode": 327,
+ "linebreak": "0"
+ },
+ {
+ "text": "if",
+ "space": "1",
+ "classed": "5",
+ "timecode": 328,
+ "linebreak": "0"
+ },
+ {
+ "text": "i",
+ "space": "1",
+ "classed": "0",
+ "timecode": 329,
+ "linebreak": "0"
+ },
+ {
+ "text": "had",
+ "space": "1",
+ "classed": "8",
+ "timecode": 330,
+ "linebreak": "0"
+ },
+ {
+ "text": "a",
+ "space": "1",
+ "classed": "0",
+ "timecode": 331,
+ "linebreak": "0"
+ },
+ {
+ "text": "brain",
+ "space": "1",
+ "classed": "0",
+ "timecode": 332,
+ "linebreak": "0"
+ },
+ {
+ "text": "in",
+ "space": "1",
+ "classed": "5",
+ "timecode": 333,
+ "linebreak": "0"
+ },
+ {
+ "text": "it",
+ "space": "1",
+ "classed": "5",
+ "timecode": 334,
+ "linebreak": "0"
+ },
+ {
+ "text": "thank",
+ "space": "1",
+ "classed": "0",
+ "timecode": 335,
+ "linebreak": "0"
+ },
+ {
+ "text": "god",
+ "space": "1",
+ "classed": "7",
+ "timecode": 336,
+ "linebreak": "0"
+ },
+ {
+ "text": "that",
+ "space": "1",
+ "classed": "8",
+ "timecode": 337,
+ "linebreak": "0"
+ },
+ {
+ "text": "i",
+ "space": "1",
+ "classed": "0",
+ "timecode": 338,
+ "linebreak": "1"
+ },
+ {
+ "text": "don't",
+ "space": "1",
+ "classed": "0",
+ "timecode": 339,
+ "linebreak": "0"
+ },
+ {
+ "text": "'cause",
+ "space": "1",
+ "classed": "4",
+ "timecode": 340,
+ "linebreak": "0"
+ },
+ {
+ "text": "i'd",
+ "space": "1",
+ "classed": "0",
+ "timecode": 341,
+ "linebreak": "0"
+ },
+ {
+ "text": "pro",
+ "space": "0",
+ "classed": "7",
+ "timecode": 342,
+ "linebreak": "0"
+ },
+ {
+ "text": "ba",
+ "space": "0",
+ "classed": "4",
+ "timecode": 343,
+ "linebreak": "0"
+ },
+ {
+ "text": "bly",
+ "space": "1",
+ "classed": "0",
+ "timecode": 344,
+ "linebreak": "0"
+ },
+ {
+ "text": "be",
+ "space": "1",
+ "classed": "0",
+ "timecode": 345,
+ "linebreak": "0"
+ },
+ {
+ "text": "da",
+ "space": "0",
+ "classed": "7",
+ "timecode": 346,
+ "linebreak": "0"
+ },
+ {
+ "text": "hmer",
+ "space": "1",
+ "classed": "4",
+ "timecode": 347,
+ "linebreak": "0"
+ },
+ {
+ "text": "'cause",
+ "space": "1",
+ "classed": "4",
+ "timecode": 348,
+ "linebreak": "0"
+ },
+ {
+ "text": "mo",
+ "space": "0",
+ "classed": "7",
+ "timecode": 349,
+ "linebreak": "0"
+ },
+ {
+ "text": "mma",
+ "space": "1",
+ "classed": "4",
+ "timecode": 350,
+ "linebreak": "0"
+ },
+ {
+ "text": "al",
+ "space": "0",
+ "classed": "0",
+ "timecode": 351,
+ "linebreak": "0"
+ },
+ {
+ "text": "ways",
+ "space": "1",
+ "classed": "0",
+ "timecode": 352,
+ "linebreak": "0"
+ },
+ {
+ "text": "said",
+ "space": "1",
+ "classed": "2",
+ "timecode": 353,
+ "linebreak": "1"
+ }
+]
+
+module.exports = {
+ csv
+}
\ No newline at end of file
diff --git a/index.html b/index.html
index e9e79a0..c7d2eba 100644
--- a/index.html
+++ b/index.html
@@ -1,56 +1,59 @@
-
-
-
- D3.js Server-side Demo
-
-
+
+
+
+ D3.js Server-side Demo
+
+ <%- barChartHelper.getBarChart({ data: fixtureData, width: 800, height: 600, xAxisLabel: '2012' , yAxisLabel: 'Views'
+ , containerId: 'bar-chart-large' }) %>
+
+
+
- .svg-chart .bar { fill: #4682B4; }
- .svg-chart .axis-label { fill: currentColor; }
-
-
-
-
- D3.js Server-side Demo
- <%-
- barChartHelper.getBarChart({
- data: fixtureData,
- width: 400,
- height: 300,
- xAxisLabel: '2012',
- yAxisLabel: 'Views',
- containerId: 'bar-chart-small'
- })
- %>
-
- <%-
- barChartHelper.getBarChart({
- data: fixtureData,
- width: 800,
- height: 600,
- xAxisLabel: '2012',
- yAxisLabel: 'Views',
- containerId: 'bar-chart-large'
- })
- %>
-
-