Initial commit
This commit is contained in:
commit
1e710af520
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
/XDUData
|
||||
/
|
||||
web.config
|
39
Css/main.css
Normal file
39
Css/main.css
Normal file
@ -0,0 +1,39 @@
|
||||
@font-face {
|
||||
font-family: FOT-RodinNTLGPro-B_0;
|
||||
src: url(../Fonts/FOT-RodinNTLGPro-B_0.woff2) format('woff');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: FOT-RodinNTLGPro-DB;
|
||||
src: url(../Fonts/FOT-RodinNTLGPro-DB.woff2) format('woff');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: FOT-RodinNTLGPro-M;
|
||||
src: url(../Fonts/FOT-RodinNTLGPro-M.woff2) format('woff');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: Orbitron Black;
|
||||
src: url(../Fonts/Orbitron Black.woff2) format('woff');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: Orbitron Bold;
|
||||
src: url(../Fonts/Orbitron Bold.woff2) format('woff');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: Orbitron Light;
|
||||
src: url(../Fonts/Orbitron Light.woff2) format('woff');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: Orbitron Medium;
|
||||
src: url(../Fonts/Orbitron Medium.woff2) format('woff');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: SourceCodePro-Regular;
|
||||
src: url(../Fonts/SourceCodePro-Regular.woff2) format('woff');
|
||||
}
|
BIN
Fonts/FOT-RodinNTLGPro-B_0.woff2
Normal file
BIN
Fonts/FOT-RodinNTLGPro-B_0.woff2
Normal file
Binary file not shown.
BIN
Fonts/FOT-RodinNTLGPro-DB.woff2
Normal file
BIN
Fonts/FOT-RodinNTLGPro-DB.woff2
Normal file
Binary file not shown.
BIN
Fonts/FOT-RodinNTLGPro-M.woff2
Normal file
BIN
Fonts/FOT-RodinNTLGPro-M.woff2
Normal file
Binary file not shown.
BIN
Fonts/Orbitron Black.woff2
Normal file
BIN
Fonts/Orbitron Black.woff2
Normal file
Binary file not shown.
BIN
Fonts/Orbitron Bold.woff2
Normal file
BIN
Fonts/Orbitron Bold.woff2
Normal file
Binary file not shown.
BIN
Fonts/Orbitron Light.woff2
Normal file
BIN
Fonts/Orbitron Light.woff2
Normal file
Binary file not shown.
BIN
Fonts/Orbitron Medium.woff2
Normal file
BIN
Fonts/Orbitron Medium.woff2
Normal file
Binary file not shown.
BIN
Fonts/SourceCodePro-Regular.woff2
Normal file
BIN
Fonts/SourceCodePro-Regular.woff2
Normal file
Binary file not shown.
53
Js/Common.js
Normal file
53
Js/Common.js
Normal file
@ -0,0 +1,53 @@
|
||||
'use strict';
|
||||
|
||||
var rootUrl = `${window.location.protocol}//${window.location.host}/`
|
||||
|
||||
class commonFunctions {
|
||||
static getFileText(file) {
|
||||
return new Promise((resolve, reject) => {
|
||||
fetch(file)
|
||||
.then((success) => {
|
||||
success.text()
|
||||
.then((text) => {
|
||||
resolve(text);
|
||||
});
|
||||
}, (failure) => {
|
||||
reject(failure);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
static getFileJson(file) {
|
||||
return new Promise((resolve, reject) => {
|
||||
fetch(file)
|
||||
.then((success) => {
|
||||
success.json()
|
||||
.then((json) => {
|
||||
resolve(json);
|
||||
});
|
||||
}, (failure) => {
|
||||
reject(failure);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
static readLine(line, headers) {
|
||||
if(line.startsWith('//')) {
|
||||
return {comment: line};
|
||||
} else if(!line) {
|
||||
return undefined;
|
||||
} else {
|
||||
var split = line.split('\t');
|
||||
var newEntry = {};
|
||||
for(let i = 0; i < split.length; ++i) {
|
||||
var x = split[i];
|
||||
newEntry[headers[i]] = x;
|
||||
}
|
||||
return newEntry;
|
||||
}
|
||||
}
|
||||
|
||||
static lerp(start, end, t) {
|
||||
return (1 - t) * start + t * end;
|
||||
}
|
||||
}
|
61
Js/Main.js
Normal file
61
Js/Main.js
Normal file
@ -0,0 +1,61 @@
|
||||
'use strict';
|
||||
|
||||
const pixiApp = {
|
||||
app: new PIXI.Application({width: 1334, height: 750}),
|
||||
loader: PIXI.loader
|
||||
};
|
||||
const utage = new UtageInfo();
|
||||
const player = new Player(pixiApp, utage);
|
||||
const context = new (window.AudioContext || window.webkitAudioContext)();
|
||||
const onBodyLoaded = () => {
|
||||
var promises = [
|
||||
utage.loadUtageSettings()
|
||||
];
|
||||
|
||||
Promise.all(promises)
|
||||
.then((success) => {
|
||||
onParsed(success);
|
||||
}, (failure) => {
|
||||
console.log(failure);
|
||||
});
|
||||
};
|
||||
|
||||
function onParsed (success) {
|
||||
buildMissionSelectList();
|
||||
document.getElementById('app-container').appendChild(pixiApp.app.view);
|
||||
}
|
||||
|
||||
function buildMissionSelectList() {
|
||||
let selectBox = document.getElementById('select-mission');
|
||||
selectBox.innerHTML = '';
|
||||
for(let i = -1; i < utage.missionsList.length; ++i) {
|
||||
let opt = document.createElement('option');
|
||||
if(i === -1) {
|
||||
opt.setAttribute('value', '{Select}');
|
||||
opt.innerText = 'Select Mission';
|
||||
} else {
|
||||
let m = utage.missionsList[i];
|
||||
opt.setAttribute('value', m);
|
||||
opt.innerText = m;
|
||||
}
|
||||
selectBox.appendChild(opt);
|
||||
}
|
||||
}
|
||||
|
||||
function missionChanged(event) {
|
||||
if(!event || !event.currentTarget || !event.currentTarget.value || event.currentTarget.value === '{Select}') { return; }
|
||||
|
||||
let newMission = utage.availableMissions[event.currentTarget.value.split('|')[0]];
|
||||
utage.parseMissionFile(`${utage.rootDirectory}XDUData/${newMission.Path.replace('Asset/', '').replace('.utage', '')}`)
|
||||
.then((success) => {
|
||||
player.playFile()
|
||||
.then((success) => {
|
||||
debugger;
|
||||
}, (failure) => {
|
||||
debugger;
|
||||
console.log(failure);
|
||||
});
|
||||
}, (failure) => {
|
||||
console.log(failure);
|
||||
});
|
||||
}
|
107
Js/Player.js
Normal file
107
Js/Player.js
Normal file
@ -0,0 +1,107 @@
|
||||
class Player {
|
||||
constructor(pixi, utage) {
|
||||
this.pixi = pixi;
|
||||
this.loader = pixi.loader;
|
||||
this.resources = pixi.loader.resources;
|
||||
this.utage = utage;
|
||||
this.currentCharacters = [];
|
||||
}
|
||||
|
||||
playFile() {
|
||||
let runningPromise = new Promise((resolve, reject) => {
|
||||
this.resolve = resolve;
|
||||
this.reject = reject;
|
||||
});
|
||||
this.preCheckFilesToGet()
|
||||
.then((success) => {
|
||||
this.pixi.app.ticker.add((delta) => {
|
||||
this.onPixiTick(delta);
|
||||
});
|
||||
this.getNextCommand();
|
||||
}, (failure) => {
|
||||
console.log(failure);
|
||||
});
|
||||
return runningPromise;
|
||||
}
|
||||
|
||||
preCheckFilesToGet() {
|
||||
return new Promise((resolve, reject) => {
|
||||
for(var i = 0; i < utage.currentPlayingFile.length; ++i) {
|
||||
try {
|
||||
var c = utage.currentPlayingFile[i];
|
||||
if(c.comment) { continue; }
|
||||
var command = c.Command ? c.Command.toLowerCase() : '';
|
||||
switch(command) {
|
||||
//BG images
|
||||
case "bg":
|
||||
if(this.utage.textureInfo[c.Arg1]) {
|
||||
if(!this.resources[`bg|${c.Arg1}`]) {
|
||||
this.loader.add(`bg|${c.Arg1}`, this.utage.textureInfo[c.Arg1].FileName);
|
||||
}
|
||||
} else if(!this.utage.textureInfo[c.Arg1]) {
|
||||
console.log(`Failed to get BG: ${c.Arg1}`);
|
||||
}
|
||||
break;
|
||||
//Text
|
||||
case "":
|
||||
//Character Text
|
||||
if(c.Arg1 && c.Arg2 && c.Arg2 != "<Off>" && c.Text &&
|
||||
this.utage.characterData[c.Arg1] && this.utage.characterData[c.Arg1][c.Arg2]) {
|
||||
if(!this.resources[`char|${c.Arg1}|${c.Arg2}`]) {
|
||||
this.loader.add(`char|${c.Arg1}|${c.Arg2}`, this.utage.characterData[c.Arg1][c.Arg2].FileName);
|
||||
}
|
||||
} else if(c.Arg1 && c.Arg2 && c.Arg2 != "<Off>" &&
|
||||
(!this.utage.characterData[c.Arg1] || !this.utage.characterData[c.Arg1][c.Arg2])) {
|
||||
console.log(`Failed to get Character: ${c.Arg1}|${c.Arg2}`);
|
||||
}
|
||||
break;
|
||||
}
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
this.loader
|
||||
.on("progress", (loader, resource) => {
|
||||
this.onPixiProgress(loader, resource)
|
||||
})
|
||||
.load(() => {
|
||||
this.onPixiLoad(resolve, reject);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
onPixiProgress(loader, resource) {
|
||||
|
||||
}
|
||||
|
||||
onPixiLoad(resolve, reject) {
|
||||
resolve();
|
||||
}
|
||||
|
||||
onPixiTick(delta) {
|
||||
|
||||
}
|
||||
|
||||
onEndFile() {
|
||||
this.resolve();
|
||||
}
|
||||
|
||||
getNextCommand() {
|
||||
let running = true;
|
||||
do
|
||||
{
|
||||
var command = utage.currentPlayingFile.pop();
|
||||
if(!utage.currentPlayingFile || utage.currentPlayingFile.length === 0) {
|
||||
this.onEndFile();
|
||||
running = false;
|
||||
return;
|
||||
}
|
||||
if(!command || command.comment) {
|
||||
continue;
|
||||
}
|
||||
//do things
|
||||
continue;
|
||||
} while (running);
|
||||
}
|
||||
}
|
214
Js/UtageParse.js
Normal file
214
Js/UtageParse.js
Normal file
@ -0,0 +1,214 @@
|
||||
//http://madnesslabo.net/utage/?page_id=4448&lang=en
|
||||
'use strict';
|
||||
|
||||
class UtageInfo {
|
||||
constructor() {
|
||||
this.currentPlayingFile = [];
|
||||
this.rootDirectory = `${rootUrl}XDUPlayer/`;
|
||||
this.availableMissions = {};
|
||||
this.missionsList = [];
|
||||
this.characterData = {};
|
||||
this.layerData = {};
|
||||
this.localizeInfo = {};
|
||||
this.paramInfo = {};
|
||||
this.soundInfo = {};
|
||||
this.textureInfo = {};
|
||||
}
|
||||
|
||||
loadUtageSettings(resolve, reject) {
|
||||
return new Promise((resolve, reject) => {
|
||||
var promises = [
|
||||
commonFunctions.getFileJson(`${this.rootDirectory}Js/XduMissions.json`),
|
||||
commonFunctions.getFileText(`${this.rootDirectory}XDUData/Utage/Diva/Settings/Character.tsv`),
|
||||
commonFunctions.getFileText(`${this.rootDirectory}XDUData/Utage/Diva/Settings/Layer.tsv`),
|
||||
commonFunctions.getFileText(`${this.rootDirectory}XDUData/Utage/Diva/Settings/Localize.tsv`),
|
||||
commonFunctions.getFileText(`${this.rootDirectory}XDUData/Utage/Diva/Settings/Param.tsv`),
|
||||
//commonFunctions.getFileText(`${this.rootDirectory}XDUData/Utage/Diva/Settings/Scenario.tsv`),
|
||||
commonFunctions.getFileText(`${this.rootDirectory}XDUData/Utage/Diva/Settings/Sound.tsv`),
|
||||
commonFunctions.getFileText(`${this.rootDirectory}XDUData/Utage/Diva/Settings/Texture.tsv`)
|
||||
];
|
||||
Promise.all(promises)
|
||||
.then((success) => {
|
||||
this.availableMissions = success[0];
|
||||
this.missionsList = Object.keys(this.availableMissions).map((k) => {
|
||||
return `${this.availableMissions[k].Id}|${this.availableMissions[k].Name}`;
|
||||
});
|
||||
this.missionsList.sort();
|
||||
this.parseCharacterInfo(success[1]);
|
||||
this.parseLayerInfo(success[2]);
|
||||
this.parseLocalizeInfo(success[3]);
|
||||
this.parseParamInfo(success[4]);
|
||||
this.parseSoundInfo(success[5]);
|
||||
this.parseTextureInfo(success[6]);
|
||||
resolve();
|
||||
}, (failure) => {
|
||||
reject(failure);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
parseMissionFile(file) {
|
||||
return new Promise((resolve, reject) => {
|
||||
commonFunctions.getFileText(file)
|
||||
.then((success) => {
|
||||
var lines = success.split("\n");
|
||||
var headers = [];
|
||||
for(let i = 0; i < lines.length; ++i) {
|
||||
var line = lines[i];
|
||||
if(i === 0) {
|
||||
headers = line.split('\t');
|
||||
} else {
|
||||
var read = commonFunctions.readLine(line, headers);
|
||||
if(read) {
|
||||
this.currentPlayingFile.push(read);
|
||||
}
|
||||
}
|
||||
}
|
||||
//Reverse the array since pop takes from the end.
|
||||
this.currentPlayingFile.reverse();
|
||||
resolve();
|
||||
}, (failure) => {
|
||||
reject(failure);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
//http://madnesslabo.net/utage/?page_id=4521&lang=en
|
||||
parseCharacterInfo(text) {
|
||||
var lines = text.split("\n");
|
||||
var headers = [];
|
||||
var lastCharName = '';
|
||||
var lastNameText = '';
|
||||
for(let i = 0; i < lines.length; ++i) {
|
||||
var line = lines[i];
|
||||
if(i === 0) {
|
||||
headers = line.split('\t');
|
||||
} else {
|
||||
var read = commonFunctions.readLine(line, headers);
|
||||
if(read && !read.comment) {
|
||||
//If character name is empty it means it belongs to the line before it
|
||||
// so I am grouping the patterns by character name.
|
||||
if(read.CharacterName) {
|
||||
lastCharName = read.CharacterName;
|
||||
}
|
||||
delete read.CharacterName;
|
||||
if(read.NameText) {
|
||||
lastNameText = read.NameText;
|
||||
} else {
|
||||
read.NameText = lastNameText;
|
||||
}
|
||||
if(read.FileName && !read.FileName.startsWith('file://')) {
|
||||
read.FileName = `${this.rootDirectory}XDUData/Character/${read.FileName}`;
|
||||
}
|
||||
if(!this.characterData[lastCharName]) {
|
||||
this.characterData[lastCharName] = {};
|
||||
}
|
||||
this.characterData[lastCharName][read.Pattern || "none"] = read;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//http://madnesslabo.net/utage/?page_id=4518&lang=en
|
||||
parseLayerInfo(text) {
|
||||
var lines = text.split("\n");
|
||||
var headers = [];
|
||||
for(let i = 0; i < lines.length; ++i) {
|
||||
var line = lines[i];
|
||||
if(i === 0) {
|
||||
headers = line.split('\t');
|
||||
} else {
|
||||
var read = commonFunctions.readLine(line, headers);
|
||||
if(read && read.LayerName) {
|
||||
this.layerData[read.LayerName] = read;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//http://madnesslabo.net/utage/?page_id=4514&lang=en
|
||||
parseLocalizeInfo(text) {
|
||||
var lines = text.split("\n");
|
||||
var headers = [];
|
||||
for(let i = 0; i < lines.length; ++i) {
|
||||
var line = lines[i];
|
||||
if(i === 0) {
|
||||
headers = line.split('\t');
|
||||
} else {
|
||||
var read = commonFunctions.readLine(line, headers);
|
||||
if(read && read.Key) {
|
||||
this.localizeInfo[read.Key] = read;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//http://madnesslabo.net/utage/?page_id=4517&lang=en
|
||||
parseParamInfo(text) {
|
||||
var lines = text.split("\n");
|
||||
var headers = [];
|
||||
for(let i = 0; i < lines.length; ++i) {
|
||||
var line = lines[i];
|
||||
if(i === 0) {
|
||||
headers = line.split('\t');
|
||||
} else {
|
||||
var read = commonFunctions.readLine(line, headers);
|
||||
if(read && read.Label) {
|
||||
this.paramInfo[read.Label] = read;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//http://madnesslabo.net/utage/?page_id=4519&lang=en
|
||||
parseSoundInfo(text) {
|
||||
var lines = text.split("\n");
|
||||
var headers = [];
|
||||
for(let i = 0; i < lines.length; ++i) {
|
||||
var line = lines[i];
|
||||
if(i === 0) {
|
||||
headers = line.split('\t');
|
||||
} else {
|
||||
var read = commonFunctions.readLine(line, headers);
|
||||
if(read && read.Label) {
|
||||
if(read.FileName && read.Type) {
|
||||
if(!read.FileName.includes('.')) {
|
||||
read.FileName = `${read.FileName}.opus`;
|
||||
}
|
||||
switch(read.Type.toLowerCase()) {
|
||||
case 'se':
|
||||
if(read.FileName.includes(',')) {
|
||||
var s = read.FileName.split(',');
|
||||
read.FileName = `${s[0].split('_').join('/')}/${s[1]}`;
|
||||
}
|
||||
read.FileName = `${this.rootDirectory}XDUData/Se/${read.FileName}`;
|
||||
break;
|
||||
case 'bgm':
|
||||
read.FileName = `${this.rootDirectory}XDUData/Bgm/${read.FileName}`;
|
||||
break;
|
||||
}
|
||||
}
|
||||
this.soundInfo[read.Label] = read;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//http://madnesslabo.net/utage/?page_id=4520&lang=en
|
||||
parseTextureInfo(text) {
|
||||
var lines = text.split("\n");
|
||||
var headers = [];
|
||||
for(let i = 0; i < lines.length; ++i) {
|
||||
var line = lines[i];
|
||||
if(i === 0) {
|
||||
headers = line.split('\t');
|
||||
} else {
|
||||
var read = commonFunctions.readLine(line, headers);
|
||||
if(read && read.Label) {
|
||||
read.FileName = `${this.rootDirectory}XDUData/BG/${read.FileName}`;
|
||||
this.textureInfo[read.Label] = read;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
10883
Js/XduMissions.json
Normal file
10883
Js/XduMissions.json
Normal file
File diff suppressed because it is too large
Load Diff
899
Js/bgmLoop.json
Normal file
899
Js/bgmLoop.json
Normal file
@ -0,0 +1,899 @@
|
||||
{
|
||||
"bgm_adv_battle_01": {
|
||||
"duration": 93.01484375,
|
||||
"loop_end": {
|
||||
"samples_48k": 4464640,
|
||||
"samples_native": 2976427,
|
||||
"seconds": 93.01334375
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 543504,
|
||||
"samples_native": 362336,
|
||||
"seconds": 11.323
|
||||
}
|
||||
},
|
||||
"bgm_adv_comical_01": {
|
||||
"duration": 57.7235625,
|
||||
"loop_end": {
|
||||
"samples_48k": 2770663,
|
||||
"samples_native": 1847109,
|
||||
"seconds": 57.72215625
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 250656,
|
||||
"samples_native": 167104,
|
||||
"seconds": 5.222
|
||||
}
|
||||
},
|
||||
"bgm_adv_emergency_01": {
|
||||
"duration": 98.295,
|
||||
"loop_end": {
|
||||
"samples_48k": 4718094,
|
||||
"samples_native": 3145396,
|
||||
"seconds": 98.293625
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 1304784,
|
||||
"samples_native": 869856,
|
||||
"seconds": 27.183
|
||||
}
|
||||
},
|
||||
"bgm_adv_everyday_01": {
|
||||
"duration": 75.8483125,
|
||||
"loop_end": {
|
||||
"samples_48k": 3640636,
|
||||
"samples_native": 2427091,
|
||||
"seconds": 75.84659375
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 349200,
|
||||
"samples_native": 232800,
|
||||
"seconds": 7.275
|
||||
}
|
||||
},
|
||||
"bgm_adv_everyday_02": {
|
||||
"duration": 70.43615625,
|
||||
"loop_end": {
|
||||
"samples_48k": 3380871,
|
||||
"samples_native": 2253914,
|
||||
"seconds": 70.4348125
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 588144,
|
||||
"samples_native": 392096,
|
||||
"seconds": 12.253
|
||||
}
|
||||
},
|
||||
"bgm_adv_everyday_03": {
|
||||
"duration": 78.99671875,
|
||||
"loop_end": {
|
||||
"samples_48k": 3791752,
|
||||
"samples_native": 2527835,
|
||||
"seconds": 78.99484375
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 436416,
|
||||
"samples_native": 290944,
|
||||
"seconds": 9.092
|
||||
}
|
||||
},
|
||||
"bgm_adv_highlight_01": {
|
||||
"duration": 97.1335,
|
||||
"loop_end": {
|
||||
"samples_48k": 4662328,
|
||||
"samples_native": 3108219,
|
||||
"seconds": 97.13184375
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 473232,
|
||||
"samples_native": 315488,
|
||||
"seconds": 9.859
|
||||
}
|
||||
},
|
||||
"bgm_adv_highlight_02": {
|
||||
"duration": 76.46521875,
|
||||
"loop_end": {
|
||||
"samples_48k": 3670234,
|
||||
"samples_native": 2446823,
|
||||
"seconds": 76.46321875
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 648768,
|
||||
"samples_native": 432512,
|
||||
"seconds": 13.516
|
||||
}
|
||||
},
|
||||
"bgm_adv_highlight_03": {
|
||||
"duration": 109.82465625,
|
||||
"loop_end": {
|
||||
"samples_48k": 5271502,
|
||||
"samples_native": 3514335,
|
||||
"seconds": 109.82296875
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 1476672,
|
||||
"samples_native": 984448,
|
||||
"seconds": 30.764
|
||||
}
|
||||
},
|
||||
"bgm_adv_peace_01": {
|
||||
"duration": 83.74309375,
|
||||
"loop_end": {
|
||||
"samples_48k": 4019584,
|
||||
"samples_native": 2679723,
|
||||
"seconds": 83.74134375
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 541344,
|
||||
"samples_native": 360896,
|
||||
"seconds": 11.278
|
||||
}
|
||||
},
|
||||
"bgm_adv_sorrow_01": {
|
||||
"duration": 75.9431875,
|
||||
"loop_end": {
|
||||
"samples_48k": 3645204,
|
||||
"samples_native": 2430136,
|
||||
"seconds": 75.94175
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 975936,
|
||||
"samples_native": 650624,
|
||||
"seconds": 20.332
|
||||
}
|
||||
},
|
||||
"bgm_adv_tension_01": {
|
||||
"duration": 66.506,
|
||||
"loop_end": {
|
||||
"samples_48k": 3192193,
|
||||
"samples_native": 2128129,
|
||||
"seconds": 66.50403125
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 411504,
|
||||
"samples_native": 274336,
|
||||
"seconds": 8.573
|
||||
}
|
||||
},
|
||||
"bgm_home_01": {
|
||||
"duration": 76.73034375,
|
||||
"loop_end": {
|
||||
"samples_48k": 3682962,
|
||||
"samples_native": 2455308,
|
||||
"seconds": 76.728375
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 850176,
|
||||
"samples_native": 566784,
|
||||
"seconds": 17.712
|
||||
}
|
||||
},
|
||||
"bgm_raid_01": {
|
||||
"duration": 111.7009375,
|
||||
"loop_end": {
|
||||
"samples_48k": 5361571,
|
||||
"samples_native": 3574381,
|
||||
"seconds": 111.69940625
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 1110144,
|
||||
"samples_native": 740096,
|
||||
"seconds": 23.128
|
||||
}
|
||||
},
|
||||
"jingle_gacha": {
|
||||
"duration": 15.652,
|
||||
"loop_end": {
|
||||
"samples_48k": 751200,
|
||||
"samples_native": 500800,
|
||||
"seconds": 15.65
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 290400,
|
||||
"samples_native": 193600,
|
||||
"seconds": 6.05
|
||||
}
|
||||
},
|
||||
"musicBase": {
|
||||
"duration": 86.40134375,
|
||||
"loop_end": {
|
||||
"samples_48k": 4147201,
|
||||
"samples_native": 2764801,
|
||||
"seconds": 86.40003125
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 0,
|
||||
"samples_native": 0,
|
||||
"seconds": 0.0
|
||||
}
|
||||
},
|
||||
"music_apple": {
|
||||
"duration": 86.01065625,
|
||||
"loop_end": {
|
||||
"samples_48k": 4128439,
|
||||
"samples_native": 2752293,
|
||||
"seconds": 86.00915625
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 0,
|
||||
"samples_native": 0,
|
||||
"seconds": 0.0
|
||||
}
|
||||
},
|
||||
"music_asu_no_gaika": {
|
||||
"duration": 89.30321875,
|
||||
"loop_end": {
|
||||
"samples_48k": 4286482,
|
||||
"samples_native": 2857655,
|
||||
"seconds": 89.30171875
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 961632,
|
||||
"samples_native": 641088,
|
||||
"seconds": 20.034
|
||||
}
|
||||
},
|
||||
"music_beyond_the_blade": {
|
||||
"duration": 107.07978125,
|
||||
"loop_end": {
|
||||
"samples_48k": 5139739,
|
||||
"samples_native": 3426493,
|
||||
"seconds": 107.07790625
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 1172256,
|
||||
"samples_native": 781504,
|
||||
"seconds": 24.422
|
||||
}
|
||||
},
|
||||
"music_bye_bye_lullaby": {
|
||||
"duration": 77.39109375,
|
||||
"loop_end": {
|
||||
"samples_48k": 3714693,
|
||||
"samples_native": 2476462,
|
||||
"seconds": 77.3894375
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 892320,
|
||||
"samples_native": 594880,
|
||||
"seconds": 18.59
|
||||
}
|
||||
},
|
||||
"music_dangerous_sunshine": {
|
||||
"duration": 99.20853125,
|
||||
"loop_end": {
|
||||
"samples_48k": 4761918,
|
||||
"samples_native": 3174612,
|
||||
"seconds": 99.206625
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 1238112,
|
||||
"samples_native": 825408,
|
||||
"seconds": 25.794
|
||||
}
|
||||
},
|
||||
"music_dareka_no_tame_no_hikari": {
|
||||
"duration": 108.5063125,
|
||||
"loop_end": {
|
||||
"samples_48k": 5208220,
|
||||
"samples_native": 3472147,
|
||||
"seconds": 108.50459375
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 2697264,
|
||||
"samples_native": 1798176,
|
||||
"seconds": 56.193
|
||||
}
|
||||
},
|
||||
"music_edge_works_of_goddess_zababa": {
|
||||
"duration": 91.3029375,
|
||||
"loop_end": {
|
||||
"samples_48k": 4382446,
|
||||
"samples_native": 2921631,
|
||||
"seconds": 91.30096875
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 1080480,
|
||||
"samples_native": 720320,
|
||||
"seconds": 22.51
|
||||
}
|
||||
},
|
||||
"music_eiai_promise": {
|
||||
"duration": 123.58634375,
|
||||
"loop_end": {
|
||||
"samples_48k": 5932080,
|
||||
"samples_native": 3954720,
|
||||
"seconds": 123.585
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 1861680,
|
||||
"samples_native": 1241120,
|
||||
"seconds": 38.785
|
||||
}
|
||||
},
|
||||
"music_first_love_song": {
|
||||
"duration": 104.9476875,
|
||||
"loop_end": {
|
||||
"samples_48k": 5037417,
|
||||
"samples_native": 3358278,
|
||||
"seconds": 104.9461875
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 585072,
|
||||
"samples_native": 390048,
|
||||
"seconds": 12.189
|
||||
}
|
||||
},
|
||||
"music_fushichou_no_flamme": {
|
||||
"duration": 129.0045,
|
||||
"loop_end": {
|
||||
"samples_48k": 6192121,
|
||||
"samples_native": 4128081,
|
||||
"seconds": 129.00253125
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 2669376,
|
||||
"samples_native": 1779584,
|
||||
"seconds": 55.612
|
||||
}
|
||||
},
|
||||
"music_gekisou_gungnir": {
|
||||
"duration": 100.545375,
|
||||
"loop_end": {
|
||||
"samples_48k": 4826109,
|
||||
"samples_native": 3217406,
|
||||
"seconds": 100.5439375
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 1120224,
|
||||
"samples_native": 746816,
|
||||
"seconds": 23.338
|
||||
}
|
||||
},
|
||||
"music_gekisyou_infinity": {
|
||||
"duration": 152.32209375,
|
||||
"loop_end": {
|
||||
"samples_48k": 7311394,
|
||||
"samples_native": 4874263,
|
||||
"seconds": 152.32071875
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 3361680,
|
||||
"samples_native": 2241120,
|
||||
"seconds": 70.035
|
||||
}
|
||||
},
|
||||
"music_gekkabijin": {
|
||||
"duration": 99.34246875,
|
||||
"loop_end": {
|
||||
"samples_48k": 4768356,
|
||||
"samples_native": 3178904,
|
||||
"seconds": 99.34075
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 1268592,
|
||||
"samples_native": 845728,
|
||||
"seconds": 26.429
|
||||
}
|
||||
},
|
||||
"music_gekkou_no_tsurugi": {
|
||||
"duration": 86.184875,
|
||||
"loop_end": {
|
||||
"samples_48k": 4136785,
|
||||
"samples_native": 2757857,
|
||||
"seconds": 86.18303125
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 833472,
|
||||
"samples_native": 555648,
|
||||
"seconds": 17.364
|
||||
}
|
||||
},
|
||||
"music_genkaitoppa_g_beat": {
|
||||
"duration": 121.08309375,
|
||||
"loop_end": {
|
||||
"samples_48k": 5811907,
|
||||
"samples_native": 3874605,
|
||||
"seconds": 121.08140625
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 1906128,
|
||||
"samples_native": 1270752,
|
||||
"seconds": 39.711
|
||||
}
|
||||
},
|
||||
"music_genocide_saw": {
|
||||
"duration": 95.9691875,
|
||||
"loop_end": {
|
||||
"samples_48k": 4606449,
|
||||
"samples_native": 3070966,
|
||||
"seconds": 95.9676875
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 1209408,
|
||||
"samples_native": 806272,
|
||||
"seconds": 25.196
|
||||
}
|
||||
},
|
||||
"music_ginwan_airget_lamh": {
|
||||
"duration": 99.313,
|
||||
"loop_end": {
|
||||
"samples_48k": 4766931,
|
||||
"samples_native": 3177954,
|
||||
"seconds": 99.3110625
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 1055424,
|
||||
"samples_native": 703616,
|
||||
"seconds": 21.988
|
||||
}
|
||||
},
|
||||
"music_gohoushi_maidmode": {
|
||||
"duration": 95.612125,
|
||||
"loop_end": {
|
||||
"samples_48k": 4589314,
|
||||
"samples_native": 3059543,
|
||||
"seconds": 95.61071875
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 1287408,
|
||||
"samples_native": 858272,
|
||||
"seconds": 26.821
|
||||
}
|
||||
},
|
||||
"music_gokuren_igalima": {
|
||||
"duration": 80.25296875,
|
||||
"loop_end": {
|
||||
"samples_48k": 3852064,
|
||||
"samples_native": 2568043,
|
||||
"seconds": 80.25134375
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 476784,
|
||||
"samples_native": 317856,
|
||||
"seconds": 9.933
|
||||
}
|
||||
},
|
||||
"music_gun_bullet_xxx": {
|
||||
"duration": 83.22640625,
|
||||
"loop_end": {
|
||||
"samples_48k": 3994797,
|
||||
"samples_native": 2663198,
|
||||
"seconds": 83.2249375
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 117312,
|
||||
"samples_native": 78208,
|
||||
"seconds": 2.444
|
||||
}
|
||||
},
|
||||
"music_gyakkou_no_flugel": {
|
||||
"duration": 114.43875,
|
||||
"loop_end": {
|
||||
"samples_48k": 5492964,
|
||||
"samples_native": 3661976,
|
||||
"seconds": 114.43675
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 1260816,
|
||||
"samples_native": 840544,
|
||||
"seconds": 26.267
|
||||
}
|
||||
},
|
||||
"music_gyakkou_no_resolve": {
|
||||
"duration": 111.3798125,
|
||||
"loop_end": {
|
||||
"samples_48k": 5346163,
|
||||
"samples_native": 3564109,
|
||||
"seconds": 111.37840625
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 1638576,
|
||||
"samples_native": 1092384,
|
||||
"seconds": 34.137
|
||||
}
|
||||
},
|
||||
"music_hadakaninatte_natsu": {
|
||||
"duration": 85.93515625,
|
||||
"loop_end": {
|
||||
"samples_48k": 4124794,
|
||||
"samples_native": 2749863,
|
||||
"seconds": 85.93321875
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 654768,
|
||||
"samples_native": 436512,
|
||||
"seconds": 13.641
|
||||
}
|
||||
},
|
||||
"music_hajimarino_uta": {
|
||||
"duration": 167.56865625,
|
||||
"loop_end": {
|
||||
"samples_48k": 8043231,
|
||||
"samples_native": 5362154,
|
||||
"seconds": 167.5673125
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 1400592,
|
||||
"samples_native": 933728,
|
||||
"seconds": 29.179
|
||||
}
|
||||
},
|
||||
"music_hidamari_memoria": {
|
||||
"duration": 107.5283125,
|
||||
"loop_end": {
|
||||
"samples_48k": 5161266,
|
||||
"samples_native": 3440844,
|
||||
"seconds": 107.526375
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 861504,
|
||||
"samples_native": 574336,
|
||||
"seconds": 17.948
|
||||
}
|
||||
},
|
||||
"music_kimitoiu_otokanade_tsukirumade": {
|
||||
"duration": 95.7555,
|
||||
"loop_end": {
|
||||
"samples_48k": 4596183,
|
||||
"samples_native": 3064122,
|
||||
"seconds": 95.7538125
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 845616,
|
||||
"samples_native": 563744,
|
||||
"seconds": 17.617
|
||||
}
|
||||
},
|
||||
"music_koi_no_okehazama": {
|
||||
"duration": 76.1594375,
|
||||
"loop_end": {
|
||||
"samples_48k": 3655587,
|
||||
"samples_native": 2437058,
|
||||
"seconds": 76.1580625
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 710064,
|
||||
"samples_native": 473376,
|
||||
"seconds": 14.793
|
||||
}
|
||||
},
|
||||
"music_kono_ima_wo_ikite": {
|
||||
"duration": 161.39909375,
|
||||
"loop_end": {
|
||||
"samples_48k": 7747063,
|
||||
"samples_native": 5164709,
|
||||
"seconds": 161.39715625
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 939792,
|
||||
"samples_native": 626528,
|
||||
"seconds": 19.579
|
||||
}
|
||||
},
|
||||
"music_kyoushitsu_monochrome": {
|
||||
"duration": 79.831625,
|
||||
"loop_end": {
|
||||
"samples_48k": 3831834,
|
||||
"samples_native": 2554556,
|
||||
"seconds": 79.829875
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 489168,
|
||||
"samples_native": 326112,
|
||||
"seconds": 10.191
|
||||
}
|
||||
},
|
||||
"music_makenaiai_ga_kokoniaru": {
|
||||
"duration": 93.74815625,
|
||||
"loop_end": {
|
||||
"samples_48k": 4499835,
|
||||
"samples_native": 2999890,
|
||||
"seconds": 93.7465625
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 1334880,
|
||||
"samples_native": 889920,
|
||||
"seconds": 27.81
|
||||
}
|
||||
},
|
||||
"music_makyu_ichiibal": {
|
||||
"duration": 81.071375,
|
||||
"loop_end": {
|
||||
"samples_48k": 3891351,
|
||||
"samples_native": 2594234,
|
||||
"seconds": 81.0698125
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 650016,
|
||||
"samples_native": 433344,
|
||||
"seconds": 13.542
|
||||
}
|
||||
},
|
||||
"music_melodious_moonlight": {
|
||||
"duration": 99.05025,
|
||||
"loop_end": {
|
||||
"samples_48k": 4754340,
|
||||
"samples_native": 3169560,
|
||||
"seconds": 99.04875
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 1230576,
|
||||
"samples_native": 820384,
|
||||
"seconds": 25.637
|
||||
}
|
||||
},
|
||||
"music_nijiiro_no_flugel": {
|
||||
"duration": 112.277,
|
||||
"loop_end": {
|
||||
"samples_48k": 5389231,
|
||||
"samples_native": 3592821,
|
||||
"seconds": 112.27565625
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 1157088,
|
||||
"samples_native": 771392,
|
||||
"seconds": 24.106
|
||||
}
|
||||
},
|
||||
"music_orbital_beat": {
|
||||
"duration": 74.67153125,
|
||||
"loop_end": {
|
||||
"samples_48k": 3584140,
|
||||
"samples_native": 2389427,
|
||||
"seconds": 74.66959375
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 1202976,
|
||||
"samples_native": 801984,
|
||||
"seconds": 25.062
|
||||
}
|
||||
},
|
||||
"music_oukyo_sulsagana": {
|
||||
"duration": 100.1548125,
|
||||
"loop_end": {
|
||||
"samples_48k": 4807359,
|
||||
"samples_native": 3204906,
|
||||
"seconds": 100.1533125
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 1065168,
|
||||
"samples_native": 710112,
|
||||
"seconds": 22.191
|
||||
}
|
||||
},
|
||||
"music_over_killscythe_hell": {
|
||||
"duration": 91.43084375,
|
||||
"loop_end": {
|
||||
"samples_48k": 4388601,
|
||||
"samples_native": 2925734,
|
||||
"seconds": 91.4291875
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 1212432,
|
||||
"samples_native": 808288,
|
||||
"seconds": 25.259
|
||||
}
|
||||
},
|
||||
"music_practice_mode": {
|
||||
"duration": 108.994625,
|
||||
"loop_end": {
|
||||
"samples_48k": 5231652,
|
||||
"samples_native": 3487768,
|
||||
"seconds": 108.99275
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 1314384,
|
||||
"samples_native": 876256,
|
||||
"seconds": 27.383
|
||||
}
|
||||
},
|
||||
"music_ressou_gungnir": {
|
||||
"duration": 141.42465625,
|
||||
"loop_end": {
|
||||
"samples_48k": 6788316,
|
||||
"samples_native": 4525544,
|
||||
"seconds": 141.42325
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 3042432,
|
||||
"samples_native": 2028288,
|
||||
"seconds": 63.384
|
||||
}
|
||||
},
|
||||
"music_sakura_blizzard": {
|
||||
"duration": 101.234875,
|
||||
"loop_end": {
|
||||
"samples_48k": 4859196,
|
||||
"samples_native": 3239464,
|
||||
"seconds": 101.23325
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 1204704,
|
||||
"samples_native": 803136,
|
||||
"seconds": 25.098
|
||||
}
|
||||
},
|
||||
"music_santa_ga_machi_ni_yattekuru": {
|
||||
"duration": 104.1534375,
|
||||
"loop_end": {
|
||||
"samples_48k": 4999269,
|
||||
"samples_native": 3332846,
|
||||
"seconds": 104.1514375
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 662304,
|
||||
"samples_native": 441536,
|
||||
"seconds": 13.798
|
||||
}
|
||||
},
|
||||
"music_seigiwoshinjite_nigirishimete": {
|
||||
"duration": 87.9635625,
|
||||
"loop_end": {
|
||||
"samples_48k": 4222179,
|
||||
"samples_native": 2814786,
|
||||
"seconds": 87.9620625
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 382512,
|
||||
"samples_native": 255008,
|
||||
"seconds": 7.969
|
||||
}
|
||||
},
|
||||
"music_seiten_galaxy_cross": {
|
||||
"duration": 126.5226875,
|
||||
"loop_end": {
|
||||
"samples_48k": 6073014,
|
||||
"samples_native": 4048676,
|
||||
"seconds": 126.521125
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 1793712,
|
||||
"samples_native": 1195808,
|
||||
"seconds": 37.369
|
||||
}
|
||||
},
|
||||
"music_senkin_daurudabura": {
|
||||
"duration": 110.1046875,
|
||||
"loop_end": {
|
||||
"samples_48k": 5284932,
|
||||
"samples_native": 3523288,
|
||||
"seconds": 110.10275
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 1316256,
|
||||
"samples_native": 877504,
|
||||
"seconds": 27.422
|
||||
}
|
||||
},
|
||||
"music_senkin_daurudabura_test01": {
|
||||
"duration": 82.6820625,
|
||||
"loop_end": {
|
||||
"samples_48k": 3968674,
|
||||
"samples_native": 2645783,
|
||||
"seconds": 82.68071875
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 0,
|
||||
"samples_native": 0,
|
||||
"seconds": 0.0
|
||||
}
|
||||
},
|
||||
"music_senritsu_sorority": {
|
||||
"duration": 162.176125,
|
||||
"loop_end": {
|
||||
"samples_48k": 7784385,
|
||||
"samples_native": 5189590,
|
||||
"seconds": 162.1746875
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 3414720,
|
||||
"samples_native": 2276480,
|
||||
"seconds": 71.14
|
||||
}
|
||||
},
|
||||
"music_shinwasekai_karano_kyousyuu": {
|
||||
"duration": 70.55734375,
|
||||
"loop_end": {
|
||||
"samples_48k": 3386688,
|
||||
"samples_native": 2257792,
|
||||
"seconds": 70.556
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 0,
|
||||
"samples_native": 0,
|
||||
"seconds": 0.0
|
||||
}
|
||||
},
|
||||
"music_sorae": {
|
||||
"duration": 128.56625,
|
||||
"loop_end": {
|
||||
"samples_48k": 6171114,
|
||||
"samples_native": 4114076,
|
||||
"seconds": 128.564875
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 2426880,
|
||||
"samples_native": 1617920,
|
||||
"seconds": 50.56
|
||||
}
|
||||
},
|
||||
"music_stand_up_ready": {
|
||||
"duration": 111.54221875,
|
||||
"loop_end": {
|
||||
"samples_48k": 5353941,
|
||||
"samples_native": 3569294,
|
||||
"seconds": 111.5404375
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 1302960,
|
||||
"samples_native": 868640,
|
||||
"seconds": 27.145
|
||||
}
|
||||
},
|
||||
"music_the_moon_is_a_harsh_mistress": {
|
||||
"duration": 96.8825,
|
||||
"loop_end": {
|
||||
"samples_48k": 4650280,
|
||||
"samples_native": 3100187,
|
||||
"seconds": 96.88084375
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 1302096,
|
||||
"samples_native": 868064,
|
||||
"seconds": 27.127
|
||||
}
|
||||
},
|
||||
"music_trust_heart": {
|
||||
"duration": 90.5468125,
|
||||
"loop_end": {
|
||||
"samples_48k": 4346170,
|
||||
"samples_native": 2897447,
|
||||
"seconds": 90.54521875
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 1176384,
|
||||
"samples_native": 784256,
|
||||
"seconds": 24.508
|
||||
}
|
||||
},
|
||||
"music_waikyou_shenshoujin": {
|
||||
"duration": 117.59053125,
|
||||
"loop_end": {
|
||||
"samples_48k": 5644249,
|
||||
"samples_native": 3762833,
|
||||
"seconds": 117.58853125
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 1612608,
|
||||
"samples_native": 1075072,
|
||||
"seconds": 33.596
|
||||
}
|
||||
},
|
||||
"music_watashitoiu_otohibiki_sonosakini": {
|
||||
"duration": 93.04259375,
|
||||
"loop_end": {
|
||||
"samples_48k": 4465980,
|
||||
"samples_native": 2977320,
|
||||
"seconds": 93.04125
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 716208,
|
||||
"samples_native": 477472,
|
||||
"seconds": 14.921
|
||||
}
|
||||
},
|
||||
"music_zettou_amenohabakiri": {
|
||||
"duration": 113.1419375,
|
||||
"loop_end": {
|
||||
"samples_48k": 5430724,
|
||||
"samples_native": 3620483,
|
||||
"seconds": 113.14009375
|
||||
},
|
||||
"loop_start": {
|
||||
"samples_48k": 1179312,
|
||||
"samples_native": 786208,
|
||||
"seconds": 24.569
|
||||
}
|
||||
}
|
||||
}
|
16
Player.html
Normal file
16
Player.html
Normal file
@ -0,0 +1,16 @@
|
||||
<html>
|
||||
<link rel="stylesheet" type="text/css" href="../Css/generic.min.css">
|
||||
<link rel="stylesheet" type="text/css" href="Css/main.css">
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/pixi.js/4.5.1/pixi.min.js"></script>
|
||||
<script src="Js/Common.js" charset="UTF-8"></script>
|
||||
<script src="Js/UtageParse.js" charset="UTF-8"></script>
|
||||
<script src="Js/Player.js" charset="UTF-8"></script>
|
||||
<script src="Js/Main.js" charset="UTF-8"></script>
|
||||
<body onload="onBodyLoaded()">
|
||||
<div id="select-mission-container">
|
||||
<select id="select-mission" onchange="missionChanged(event)"></select>
|
||||
</div>
|
||||
<div id="app-container">
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
Loading…
x
Reference in New Issue
Block a user