SoundBuffer: Set song volume

- Requires a new column in the database after preview: `volume` REAL
- The value is a volume multiplier, if the value is set to null or 1 there will be no change
- The volume can be set in debugger
- Imported TJA files are now read from disk every time the song is played, freeing some memory and making it easier to create charts
- Correctly parse TJA files with alphabet notes, added "A" and "B" notes, which appear as DON (Big) and KA (Big) respectively
This commit is contained in:
LoveEevee
2019-03-16 00:34:48 +03:00
parent eb4ddb0b1f
commit 61a5d6d496
17 changed files with 135 additions and 49 deletions

View File

@@ -196,18 +196,17 @@ class Keyboard{
this.checkKey(keyCode, "sound", () => {
var circles = this.controller.getCircles()
var circle = circles[this.controller.getCurrentCircle()]
if(
sound === "don"
&& circle
&& !circle.isPlayed
&& circle.type === "balloon"
&& circle.requiredHits - circle.timesHit <= 1
){
this.controller.playSound("se_balloon")
}else{
this.controller.playSound("neiro_1_" + sound)
var currentTime = this.keyTime[keyCode]
this.keyTime[sound] = currentTime
if(circle && !circle.isPlayed){
if(circle.type === "balloon"){
if(sound === "don" && circle.requiredHits - circle.timesHit <= 1){
this.controller.playSound("se_balloon")
return
}
}
}
this.keyTime[sound] = this.keyTime[keyCode]
this.controller.playSound("neiro_1_" + sound)
})
}
getKeys(){
@@ -242,6 +241,9 @@ class Keyboard{
}
}
waitForKeyup(keyCode, type){
if(!this.keys[keyCode]){
return
}
if(type === "score"){
this.waitKeyupScore[keyCode] = true
}else if(type === "sound"){