"use strict"; var goDocStorage = null; var goPaper = null; var go_top_level_group = null;; var go_paper_x_dim = 920; var go_paper_y_dim = 445; var gameOnCurrentTimeXPos = 0; var gameOnCurrentTimelineRect = null; var num_midi_pitches = 128; var group_x_scale; var group_y_scale; var group_rotate; var group_x_trans; var group_y_trans; function updateGameOnCurrentTimeline() { gameOnCurrentTimeXPos = (mediaPlayer.currentTime / mediaPlayer.duration) * go_paper_x_dim; var gameOnCurrentTimeYPos = (mediaPlayer.currentTime / mediaPlayer.duration) * go_paper_y_dim; //console.log("*** x pos = " + gameOnCurrentTimeXPos); gameOnCurrentTimelineRect.attr({x: gameOnCurrentTimeXPos}); if (gs.xsltParams.interface_name == "respooled") { go_top_level_group.translate(group_x_scale*go_paper_y_dim, go_paper_y_dim+(gameOnCurrentTimeYPos * group_x_scale * Math.abs(group_y_scale))); } } function getDocStorage(docOID) { var docStorage = null; if (hasLocalStorage) { if (goDocStorage == null) { var docStorageStr = localStorage.getItem(docOID); //console.log("***docStorageStr = " + docStorageStr); //var docStorage = (docStorageStr != null) ? eval("("+docStorageStr+")") : {palTracks:{}, popTracks:{}}; docStorage = eval("("+docStorageStr+")") || {palTracks:{}, popTracks:{}}; goDocStorage = docStorage; } else { docStorage = goDocStorage; } } return docStorage; } function getActiveTrackLayers(opt_field) { var field = opt_field || "name"; var palActiveLayers = []; $('#palForm input:checked').each(function() { palActiveLayers.push(this[field]); }); return palActiveLayers; } function populatePalList(docStorage) { // populate pal List if (hasLocalStorage) { var palTracks = docStorage.palTracks || {}; //console.log("*** palTracks = " + JSON.stringify(palTracks)); var palListKeys = Object.keys(palTracks).sort(); for (var i=0; i' + name + ''); } } else { // Put in some fake data for now $('#palList').append('Piano Hero
'); $('#palList').append('Drum-beat Hero
'); } } function computeMidiStats(track) { var min_midi_pitch = num_midi_pitches-1; var max_midi_pitch = 0; var track_chromatic_durations = []; for (var i=0; i<12; i++) { track_chromatic_durations[i] = 0; } // Process each block within the track for (var b=0; b max_midi_pitch) { max_midi_pitch = midi_pitch; } var chromatic_pitch = midi_pitch % 12; var chromatic_duration = block_events[ne].duration; block_chromatic_durations[chromatic_pitch] += chromatic_duration; track_chromatic_durations[chromatic_pitch] += chromatic_duration; } if (!("_computedKey" in track_block)) { var strongest_profile = khKeyDetection(block_chromatic_durations); track_block._computedKey = strongest_profile; console.log("***### key prediction: " + strongest_profile); } } if (!("_computedKey" in track)) { var strongest_profile = khKeyDetection(track_chromatic_durations); track._computedKey = strongest_profile; } return { "max_midi_pitch": max_midi_pitch, "min_midi_pitch": min_midi_pitch}; } function displayActiveTrackLayers(docStorage) { console.log("displayActiveTrackLayers()"); goPaper.clear(); // Clear takes out any previous group element, so need to be regenerated go_top_level_group = new goPaper.group("gameOnPaper",[]); if (hasLocalStorage) { // 'palTracks' have the form: // palTracks[save_name] = [ { name: "my recording 1", baseCTime: 123.3, events: [ .... ] } ] var palTracks = docStorage.palTracks || {}; var total_duration = mediaPlayer.duration; //console.log("*** total duration = " + total_duration); var atl = getActiveTrackLayers("value"); //console.log("*** atl = " + JSON.stringify(atl)); var min_midi_pitch = num_midi_pitches-1; var max_midi_pitch = 0; for (var i=0; i