diff --git a/asset-src/bgm/04-Distant-Misadventure.json b/asset-src/bgm/04-Distant-Misadventure.json new file mode 100644 index 0000000..0bc554a --- /dev/null +++ b/asset-src/bgm/04-Distant-Misadventure.json @@ -0,0 +1,2296 @@ +{ + "format": "BeepBox", + "version": 9, + "scale": "normal :(", + "key": "C", + "introBars": 0, + "loopBars": 10, + "beatsPerBar": 8, + "ticksPerBeat": 4, + "beatsPerMinute": 120, + "layeredInstruments": false, + "patternInstruments": false, + "channels": [ + { + "type": "pitch", + "instruments": [ + { + "type": "FM", + "volume": 40, + "eqFilter": [], + "preset": 256, + "effects": [ + "chord type", + "note filter", + "reverb" + ], + "chord": "strum", + "noteFilter": [ + { + "type": "low-pass", + "cutoffHz": 6727.17, + "linearGain": 0.5 + } + ], + "reverb": 33, + "fadeInSeconds": 0, + "fadeOutTicks": 48, + "algorithm": "1←2←3←4", + "feedbackType": "3⟲", + "feedbackAmplitude": 6, + "operators": [ + { + "frequency": "1×", + "amplitude": 15 + }, + { + "frequency": "1×", + "amplitude": 6 + }, + { + "frequency": "5×", + "amplitude": 2 + }, + { + "frequency": "7×", + "amplitude": 4 + } + ], + "envelopes": [ + { + "target": "noteFilterAllFreqs", + "envelope": "twang 1" + }, + { + "target": "feedbackAmplitude", + "envelope": "twang 1" + } + ] + } + ], + "patterns": [ + { + "notes": [ + { + "pitches": [ + 51 + ], + "points": [ + { + "tick": 0, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 1, + "pitchBend": 0, + "volume": 100 + } + ], + "continuesLastPattern": false + }, + { + "pitches": [ + 51 + ], + "points": [ + { + "tick": 2, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 3, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 51 + ], + "points": [ + { + "tick": 4, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 5, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 51 + ], + "points": [ + { + "tick": 6, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 7, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 51 + ], + "points": [ + { + "tick": 8, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 9, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 51 + ], + "points": [ + { + "tick": 10, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 11, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 53 + ], + "points": [ + { + "tick": 12, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 13, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 53 + ], + "points": [ + { + "tick": 14, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 15, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 53 + ], + "points": [ + { + "tick": 16, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 17, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 53 + ], + "points": [ + { + "tick": 18, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 19, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 53 + ], + "points": [ + { + "tick": 20, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 21, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 50 + ], + "points": [ + { + "tick": 22, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 23, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 50 + ], + "points": [ + { + "tick": 24, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 25, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 50 + ], + "points": [ + { + "tick": 26, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 27, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 50 + ], + "points": [ + { + "tick": 28, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 29, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 50 + ], + "points": [ + { + "tick": 30, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 31, + "pitchBend": 0, + "volume": 100 + } + ] + } + ] + }, + { + "notes": [ + { + "pitches": [ + 48 + ], + "points": [ + { + "tick": 0, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 1, + "pitchBend": 0, + "volume": 100 + } + ], + "continuesLastPattern": false + }, + { + "pitches": [ + 48 + ], + "points": [ + { + "tick": 2, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 3, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 48 + ], + "points": [ + { + "tick": 4, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 5, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 48 + ], + "points": [ + { + "tick": 6, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 7, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 48 + ], + "points": [ + { + "tick": 8, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 9, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 48 + ], + "points": [ + { + "tick": 10, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 11, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 55 + ], + "points": [ + { + "tick": 12, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 13, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 55 + ], + "points": [ + { + "tick": 14, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 15, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 55 + ], + "points": [ + { + "tick": 16, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 17, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 55 + ], + "points": [ + { + "tick": 18, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 19, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 55 + ], + "points": [ + { + "tick": 20, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 21, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 51 + ], + "points": [ + { + "tick": 22, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 23, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 51 + ], + "points": [ + { + "tick": 24, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 25, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 51 + ], + "points": [ + { + "tick": 26, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 27, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 51 + ], + "points": [ + { + "tick": 28, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 29, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 51 + ], + "points": [ + { + "tick": 30, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 31, + "pitchBend": 0, + "volume": 100 + } + ] + } + ] + }, + { + "notes": [] + }, + { + "notes": [] + }, + { + "notes": [] + }, + { + "notes": [] + }, + { + "notes": [] + }, + { + "notes": [] + } + ], + "sequence": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2 + ], + "octaveScrollBar": 3 + }, + { + "type": "pitch", + "instruments": [ + { + "type": "Picked String", + "volume": 60, + "eqFilter": [ + { + "type": "low-pass", + "cutoffHz": 4756.83, + "linearGain": 0.5 + } + ], + "preset": 194, + "effects": [ + "reverb" + ], + "reverb": 33, + "fadeInSeconds": 0, + "fadeOutTicks": 48, + "harmonics": [ + 100, + 0, + 0, + 100, + 0, + 0, + 0, + 0, + 0, + 0, + 100, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 86, + 0, + 0, + 0, + 0, + 0, + 0, + 71, + 0 + ], + "unison": "none", + "stringSustain": 64, + "envelopes": [] + } + ], + "patterns": [ + { + "notes": [ + { + "pitches": [ + 48 + ], + "points": [ + { + "tick": 0, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 4, + "pitchBend": 0, + "volume": 100 + } + ], + "continuesLastPattern": false + }, + { + "pitches": [ + 50 + ], + "points": [ + { + "tick": 4, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 6, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 48 + ], + "points": [ + { + "tick": 6, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 8, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 46 + ], + "points": [ + { + "tick": 8, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 10, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 48 + ], + "points": [ + { + "tick": 10, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 12, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 43 + ], + "points": [ + { + "tick": 12, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 16, + "pitchBend": 0, + "volume": 100 + } + ] + } + ] + }, + { + "notes": [ + { + "pitches": [ + 43 + ], + "points": [ + { + "tick": 0, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 4, + "pitchBend": 0, + "volume": 100 + } + ], + "continuesLastPattern": false + }, + { + "pitches": [ + 46 + ], + "points": [ + { + "tick": 4, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 6, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 44 + ], + "points": [ + { + "tick": 6, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 8, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 41 + ], + "points": [ + { + "tick": 8, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 10, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 44 + ], + "points": [ + { + "tick": 10, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 12, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 50 + ], + "points": [ + { + "tick": 12, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 16, + "pitchBend": 0, + "volume": 100 + } + ] + } + ] + }, + { + "notes": [ + { + "pitches": [ + 48 + ], + "points": [ + { + "tick": 12, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 16, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 46 + ], + "points": [ + { + "tick": 16, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 20, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 50 + ], + "points": [ + { + "tick": 20, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 22, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 53 + ], + "points": [ + { + "tick": 22, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 24, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 50 + ], + "points": [ + { + "tick": 24, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 26, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 46 + ], + "points": [ + { + "tick": 26, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 28, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 55 + ], + "points": [ + { + "tick": 28, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 32, + "pitchBend": 0, + "volume": 100 + } + ] + } + ] + }, + { + "notes": [ + { + "pitches": [ + 48 + ], + "points": [ + { + "tick": 12, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 16, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 46 + ], + "points": [ + { + "tick": 16, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 20, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 50 + ], + "points": [ + { + "tick": 20, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 22, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 53 + ], + "points": [ + { + "tick": 22, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 24, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 50 + ], + "points": [ + { + "tick": 24, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 26, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 46 + ], + "points": [ + { + "tick": 26, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 28, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 43 + ], + "points": [ + { + "tick": 28, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 32, + "pitchBend": 0, + "volume": 100 + } + ] + } + ] + }, + { + "notes": [] + }, + { + "notes": [] + }, + { + "notes": [] + }, + { + "notes": [] + } + ], + "sequence": [ + 0, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 3, + 4 + ], + "octaveScrollBar": 2 + }, + { + "type": "pitch", + "instruments": [ + { + "type": "FM", + "volume": 80, + "eqFilter": [], + "preset": 388, + "effects": [ + "chord type", + "note filter", + "reverb" + ], + "chord": "strum", + "noteFilter": [ + { + "type": "low-pass", + "cutoffHz": 11313.71, + "linearGain": 0.1768 + } + ], + "reverb": 33, + "fadeInSeconds": 0, + "fadeOutTicks": 48, + "algorithm": "1←(2 3←4)", + "feedbackType": "3⟲", + "feedbackAmplitude": 5, + "operators": [ + { + "frequency": "2×", + "amplitude": 14 + }, + { + "frequency": "1×", + "amplitude": 6 + }, + { + "frequency": "9×", + "amplitude": 4 + }, + { + "frequency": "1×", + "amplitude": 11 + } + ], + "envelopes": [ + { + "target": "noteFilterAllFreqs", + "envelope": "twang 1" + }, + { + "target": "operatorAmplitude", + "envelope": "twang 2", + "index": 2 + }, + { + "target": "feedbackAmplitude", + "envelope": "twang 1" + } + ] + } + ], + "patterns": [ + { + "notes": [ + { + "pitches": [ + 39 + ], + "points": [ + { + "tick": 16, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 18, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 41 + ], + "points": [ + { + "tick": 18, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 19, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 43 + ], + "points": [ + { + "tick": 19, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 20, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 44 + ], + "points": [ + { + "tick": 20, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 21, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 46 + ], + "points": [ + { + "tick": 21, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 22, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 44 + ], + "points": [ + { + "tick": 22, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 23, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 43 + ], + "points": [ + { + "tick": 23, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 24, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 41 + ], + "points": [ + { + "tick": 24, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 25, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 39 + ], + "points": [ + { + "tick": 25, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 27, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 36 + ], + "points": [ + { + "tick": 28, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 32, + "pitchBend": 0, + "volume": 100 + } + ] + } + ] + }, + { + "notes": [ + { + "pitches": [ + 36 + ], + "points": [ + { + "tick": 18, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 20, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 34 + ], + "points": [ + { + "tick": 20, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 21, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 32 + ], + "points": [ + { + "tick": 21, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 22, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 34 + ], + "points": [ + { + "tick": 22, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 23, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 32 + ], + "points": [ + { + "tick": 23, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 24, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 38 + ], + "points": [ + { + "tick": 24, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 26, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 39 + ], + "points": [ + { + "tick": 26, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 28, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 43 + ], + "points": [ + { + "tick": 28, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 32, + "pitchBend": 0, + "volume": 100 + } + ] + } + ] + }, + { + "notes": [ + { + "pitches": [ + 36, + 24 + ], + "points": [ + { + "tick": 0, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 4, + "pitchBend": 0, + "volume": 100 + } + ], + "continuesLastPattern": false + }, + { + "pitches": [ + 31 + ], + "points": [ + { + "tick": 4, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 6, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 32 + ], + "points": [ + { + "tick": 6, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 8, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 29 + ], + "points": [ + { + "tick": 8, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 10, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 34 + ], + "points": [ + { + "tick": 10, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 12, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 36 + ], + "points": [ + { + "tick": 12, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 16, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 34 + ], + "points": [ + { + "tick": 16, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 20, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 38 + ], + "points": [ + { + "tick": 20, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 22, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 41 + ], + "points": [ + { + "tick": 22, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 24, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 38 + ], + "points": [ + { + "tick": 24, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 26, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 34 + ], + "points": [ + { + "tick": 26, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 28, + "pitchBend": 0, + "volume": 100 + } + ] + }, + { + "pitches": [ + 31 + ], + "points": [ + { + "tick": 28, + "pitchBend": 0, + "volume": 100 + }, + { + "tick": 32, + "pitchBend": 0, + "volume": 100 + } + ] + } + ] + }, + { + "notes": [] + }, + { + "notes": [] + }, + { + "notes": [] + }, + { + "notes": [] + }, + { + "notes": [] + } + ], + "sequence": [ + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 0, + 0, + 3 + ], + "octaveScrollBar": 1 + }, + { + "type": "drum", + "instruments": [ + { + "type": "drumset", + "volume": 80, + "eqFilter": [], + "preset": 960, + "effects": [ + "reverb" + ], + "reverb": 33, + "drums": [ + { + "filterEnvelope": "twang 1", + "spectrum": [ + 57, + 71, + 71, + 86, + 86, + 86, + 71, + 71, + 71, + 71, + 57, + 57, + 57, + 57, + 43, + 43, + 43, + 43, + 29, + 29, + 29, + 29, + 29, + 29, + 29, + 29, + 29, + 29, + 29, + 29 + ] + }, + { + "filterEnvelope": "twang 1", + "spectrum": [ + 0, + 0, + 0, + 100, + 71, + 71, + 57, + 86, + 57, + 57, + 57, + 71, + 43, + 43, + 57, + 43, + 43, + 43, + 43, + 43, + 43, + 43, + 43, + 43, + 43, + 43, + 43, + 43, + 43, + 43 + ] + }, + { + "filterEnvelope": "twang 1", + "spectrum": [ + 0, + 0, + 0, + 0, + 100, + 57, + 43, + 43, + 29, + 57, + 43, + 29, + 71, + 43, + 43, + 43, + 43, + 57, + 43, + 43, + 43, + 43, + 43, + 43, + 43, + 43, + 29, + 43, + 43, + 43 + ] + }, + { + "filterEnvelope": "twang 1", + "spectrum": [ + 0, + 0, + 0, + 0, + 0, + 71, + 57, + 43, + 43, + 43, + 57, + 57, + 43, + 29, + 57, + 43, + 43, + 43, + 29, + 43, + 57, + 43, + 43, + 43, + 43, + 43, + 43, + 29, + 43, + 43 + ] + }, + { + "filterEnvelope": "decay 2", + "spectrum": [ + 0, + 14, + 29, + 43, + 86, + 71, + 29, + 43, + 43, + 43, + 43, + 29, + 71, + 29, + 71, + 29, + 43, + 43, + 43, + 43, + 57, + 43, + 43, + 57, + 43, + 43, + 43, + 57, + 57, + 57 + ] + }, + { + "filterEnvelope": "decay 1", + "spectrum": [ + 0, + 0, + 14, + 14, + 14, + 14, + 29, + 29, + 29, + 43, + 43, + 43, + 57, + 57, + 57, + 71, + 71, + 71, + 71, + 71, + 71, + 71, + 71, + 57, + 57, + 57, + 57, + 43, + 43, + 43 + ] + }, + { + "filterEnvelope": "twang 3", + "spectrum": [ + 43, + 43, + 43, + 71, + 29, + 29, + 43, + 43, + 43, + 29, + 43, + 43, + 43, + 29, + 29, + 43, + 43, + 29, + 29, + 29, + 57, + 14, + 57, + 43, + 43, + 57, + 43, + 43, + 57, + 57 + ] + }, + { + "filterEnvelope": "decay 3", + "spectrum": [ + 29, + 43, + 43, + 43, + 43, + 29, + 29, + 43, + 29, + 29, + 43, + 29, + 14, + 29, + 43, + 29, + 43, + 29, + 57, + 29, + 43, + 57, + 43, + 71, + 43, + 71, + 57, + 57, + 71, + 71 + ] + }, + { + "filterEnvelope": "twang 3", + "spectrum": [ + 43, + 29, + 29, + 43, + 29, + 29, + 29, + 57, + 29, + 29, + 29, + 57, + 43, + 43, + 29, + 29, + 57, + 43, + 43, + 43, + 71, + 43, + 43, + 71, + 57, + 71, + 71, + 71, + 71, + 71 + ] + }, + { + "filterEnvelope": "decay 3", + "spectrum": [ + 57, + 57, + 57, + 43, + 57, + 57, + 43, + 43, + 57, + 43, + 43, + 43, + 71, + 57, + 43, + 57, + 86, + 71, + 57, + 86, + 71, + 57, + 86, + 100, + 71, + 86, + 86, + 86, + 86, + 86 + ] + }, + { + "filterEnvelope": "flare 1", + "spectrum": [ + 0, + 0, + 14, + 14, + 14, + 14, + 29, + 29, + 29, + 43, + 43, + 43, + 57, + 57, + 71, + 71, + 86, + 86, + 100, + 100, + 100, + 100, + 100, + 100, + 100, + 100, + 86, + 57, + 29, + 0 + ] + }, + { + "filterEnvelope": "decay 2", + "spectrum": [ + 14, + 14, + 14, + 14, + 29, + 14, + 14, + 29, + 14, + 43, + 14, + 43, + 57, + 86, + 57, + 57, + 100, + 57, + 43, + 43, + 57, + 100, + 57, + 43, + 29, + 14, + 0, + 0, + 0, + 0 + ] + } + ], + "envelopes": [] + } + ], + "patterns": [ + { + "notes": [] + }, + { + "notes": [] + }, + { + "notes": [] + }, + { + "notes": [] + }, + { + "notes": [] + }, + { + "notes": [] + }, + { + "notes": [] + }, + { + "notes": [] + } + ], + "sequence": [ + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + } + ] +} \ No newline at end of file diff --git a/assets/bgm/04-Distant-Misadventure.ogg b/assets/bgm/04-Distant-Misadventure.ogg new file mode 100644 index 0000000..85bb39d Binary files /dev/null and b/assets/bgm/04-Distant-Misadventure.ogg differ diff --git a/src/Gameplay.c b/src/Gameplay.c index c30ff1e..321c0a5 100644 --- a/src/Gameplay.c +++ b/src/Gameplay.c @@ -42,9 +42,10 @@ void InitGameplayScreen(void) globalTimer = 0; + if (player.hp < 1) player.hp = 1; + player.currentframe = 0; player.speed = 300.0f; - player.hp = PLAYER_HP; if (GI_callcount < 1) { player.frameRec = (Rectangle) { player.hitbox.x, @@ -116,7 +117,6 @@ void InitGameplayScreen(void) shoot[i].active = false; shoot[i].color = RED; } - ammo = 10; fireworkAmount = 100; pause = 0; @@ -174,7 +174,7 @@ void UpdateGameplayScreen(void) if (INPUT_OPTION_PRESSED) pause = !pause; // code to end the game if (level > 2) { StopMusicStream(Gameplaysong); finishfromGameplayScreen = 3; } - if (fireworkAmount < 1 && level < 2) { StopMusicStream(Gameplaysong); finishfromGameplayScreen = 4; } + if (fireworkAmount < 1 && level < 2) { StopMusicStream(Gameplaysong); levelunlocked++; finishfromGameplayScreen = 4; } if (!mute) UpdateMusicStream(Gameplaysong); diff --git a/src/Gameplay.h b/src/Gameplay.h index a2f4e07..f81c2c3 100644 --- a/src/Gameplay.h +++ b/src/Gameplay.h @@ -10,7 +10,6 @@ #define GAMEPLAY_HEADER #define MAX_FIREWORKS 10 -#define PLAYER_HP 3 #define MAX_SHOOTS 3 struct Actor { diff --git a/src/LevelSel.c b/src/LevelSel.c index 2b5bd7e..a504428 100644 --- a/src/LevelSel.c +++ b/src/LevelSel.c @@ -12,38 +12,39 @@ #include "Controls.h" #include "Gfx.h" -int finishfromLevelSelScreen = 0, levelSelected = 0; +int finishfromLevelSelScreen = 0, levelSelected = 1, levelunlocked = 0; void InitLevelSelScreen(void) { - levelSelected = 0; finishfromLevelSelScreen = 0; } void UpdateLevelSelScreen(void) { - if (INPUT_LEFT_PRESSED) levelSelected++; - if (INPUT_RIGHT_PRESSED) levelSelected--; - if (levelSelected > 0) levelSelected--; - if (levelSelected < -2) levelSelected++; + if (INPUT_LEFT_PRESSED) levelSelected--; + if (INPUT_RIGHT_PRESSED) if (levelunlocked >= levelSelected) levelSelected++; + if (levelSelected < 1) levelSelected++; + if (levelSelected > 3) levelSelected--; - if ((levelSelected == 0) && (INPUT_OPTION_PRESSED)) { level = LEVEL1; finishfromLevelSelScreen = 1; } - if ((levelSelected == -1) && (INPUT_OPTION_PRESSED)) { level = LEVEL2; finishfromLevelSelScreen = 1; } - if ((levelSelected == -2) && (INPUT_OPTION_PRESSED)) { level = LEVEL3; finishfromLevelSelScreen = 1; } + if ((levelSelected == 1) && (INPUT_OPTION_PRESSED)) { level = LEVEL1; finishfromLevelSelScreen = 1; } + if ((levelSelected == 2) && (INPUT_OPTION_PRESSED)) { level = LEVEL2; finishfromLevelSelScreen = 1; } + if ((levelSelected == 3) && (INPUT_OPTION_PRESSED)) { level = LEVEL3; finishfromLevelSelScreen = 1; } } void DrawLevelSelScreen(void) { DrawTexture(background, 0, 0, GRAY); - if (levelSelected == 0) DrawText("1", 100, 220, 30, WHITE); + if (levelSelected == 1) DrawText("1", 100, 220, 30, WHITE); else DrawText("1", 100, 220, 30, BLUE); - if (levelSelected == -1) DrawText("2", 150, 220, 30, WHITE); - else DrawText("2", 150, 220, 30, BLUE); + if (levelSelected == 2) DrawText("2", 150, 220, 30, WHITE); + else if (levelunlocked >= 1) DrawText("2", 150, 220, 30, BLUE); + else DrawText("2", 150, 220, 30, GRAY); - if (levelSelected == -2) DrawText("3", 200, 220, 30, WHITE); - else DrawText("3", 200, 220, 30, BLUE); + if (levelSelected == 3) DrawText("3", 200, 220, 30, WHITE); + else if (levelunlocked >= 2) DrawText("3", 200, 220, 30, BLUE); + else DrawText("3", 200, 220, 30, GRAY); } void UnloadLevelSelScreen(void) diff --git a/src/Main.c b/src/Main.c index ddc425c..3b08431 100644 --- a/src/Main.c +++ b/src/Main.c @@ -77,6 +77,7 @@ void gameSetup(void) level = LEVEL1; background = LoadTexture("assets/gfx/background.png"); ZadoBold = LoadFontEx("assets/fonts/ZadoBold.ttf", 96, 0, 110); + InitTitleScreen(); SetMasterVolume(0.5); } diff --git a/src/Music.h b/src/Music.h index f83d1f2..49a8be5 100644 --- a/src/Music.h +++ b/src/Music.h @@ -12,5 +12,6 @@ extern Music Endingsong; extern Music Gameoversong; extern Music Gameplaysong; +extern Music Titlesong; #endif diff --git a/src/Screens.h b/src/Screens.h index 09266cf..44e377c 100644 --- a/src/Screens.h +++ b/src/Screens.h @@ -14,6 +14,7 @@ typedef enum Levels { LEVEL1 = 0, LEVEL2, LEVEL3 } Levels; extern GameScreen currentScreen; extern Levels level; +extern int levelunlocked; void InitTitleScreen(void); void UpdateTitleScreen(void); diff --git a/src/Title.c b/src/Title.c index 58afd00..210fbf6 100644 --- a/src/Title.c +++ b/src/Title.c @@ -10,10 +10,14 @@ #include "Screens.h" #include "Controls.h" +#include "Music.h" +#include "Options.h" #include "Score.h" #include "Gfx.h" int titleSelected = 0, finishfromTitleScreen = 0; +Music Titlesong = { 0 }; + void DrawScore(void) { @@ -32,18 +36,21 @@ void InitTitleScreen(void) { titleSelected = 0; finishfromTitleScreen = 0; + Titlesong = LoadMusicStream("assets/bgm/04-Distant-Misadventure.ogg"); + PlayMusicStream(Titlesong); } void UpdateTitleScreen(void) { + if (!mute) UpdateMusicStream(Titlesong); if (INPUT_UP_PRESSED) titleSelected++; if (INPUT_DOWN_PRESSED) titleSelected--; if (titleSelected > 0) titleSelected--; if (titleSelected < -2) titleSelected++; - if ((titleSelected == 0) && (INPUT_OPTION_PRESSED)) finishfromTitleScreen = 2; - if ((titleSelected == -1) && (INPUT_OPTION_PRESSED)) finishfromTitleScreen = 1; - if ((titleSelected == -2) && (INPUT_OPTION_PRESSED)) finishfromTitleScreen = 3; + if ((titleSelected == 0) && (INPUT_OPTION_PRESSED)) { StopMusicStream(Titlesong); finishfromTitleScreen = 2; } + if ((titleSelected == -1) && (INPUT_OPTION_PRESSED)) { StopMusicStream(Titlesong); finishfromTitleScreen = 1; } + if ((titleSelected == -2) && (INPUT_OPTION_PRESSED)) { StopMusicStream(Titlesong); finishfromTitleScreen = 3; } } void DrawTitleScreen(void) @@ -72,7 +79,7 @@ void DrawTitleScreen(void) void UnloadTitleScreen(void) { - + UnloadMusicStream(Titlesong); } int FinishTitleScreen(void)