Song Setup
Last updated
Last updated
The most basic song type, mainly used as a script you can extend the functionality of using inheritance.
Fields explanation:
First Beat Offset - most often the song doesn't actually start on the first millisecond of the audio file or the song has a long intro, this value (in milliseconds) should be used to delay any visuals that need to happen. As an example in a mania game, you would use this to delay the note press time (and not to add an offset to the input time). Personally, I like having the editor do all the work for me, so when placing a note it automatically adds the offset time to the note time; then, in game, I don't have to worry about this offset at all, I just need to spawn notes on the time that I saved beforehand.
Looping - it's important to set this flag whenever you want to loop a song, because the Engine does a tiny bit of logic under the hood to make sure the song time and audio loops smoothly.
Base BPM - mainly used by the Beat Sequencer, but can be also used for example to set the distance between beat lines in a Mania Editor. You can actually completely disregard this field if you're not using BPM for anything gameplay related.
BPM Changes - simple Time and BPM struct in case you ever need to change the bpm during a song.
Sequenced song was made to work along with the Auto Beat Sequencer, it's basically just a song with additional fields to easily change the sequences during song playback.
Beat Sequencer will, by default, automatically start with Sequence of index 0.
You can't edit sequences directly in the editor of a sequenced song, but you can press the button to the right of it to force the inspector to show you the sequence in question for editing.
As you can see on the image above, if you wish to have an empty sequence playing for a duration of a song (for example during a calmer section), you can use the sequence index -1 to make the Beat Sequencer play an Empty Sequence.
Beat Sequence under the hood is, simply, a 2D Array of Bools, where the first dimension (the X axis) represents the beat and the second dimension (the Y axis) represents a generic instrument, which can be whatever you want, such as a kick, snare, synth note, etc.
Provided custom editor should help you set up your sequence quickly.