Play Song
Play Song is an event in the Sounds tab that plays a song. It can only be placed at the beginning of bars.
Play Song | |
---|---|
Tab | Sounds |
Type | PlaySong |
Origin | r1 |
Shortcut | P |
This event isn't restricted to playing songs, but its general purpose is to do so, and playing other things like SFX are better suited for Play Sound.
Usage
Setting | Type | Description |
---|---|---|
Song | Text Box (String) | Filename of the song. Allows internal filenames. |
Song settings | Popup | Settings of the song. Includes volume, pitch, pan, and offset. |
Beats per minute | Text Box (Number) | Beats per minute. Can be overwritten with Set Beats Per Minute at any point. |
Song settings
Setting | Type | Description |
---|---|---|
Volume | Slider with Text Box (Number) | Volume of the song. Ranges from 0% to 300%. 0% doesn't play the song. |
Pitch | Slider with Text Box (Number) | Pitch of the song. Ranges from 0% to 300%. |
Pan | Slider with Text Box (Number) | Panning of the song. Ranges from -100% to 100%. |
Offset | Text Box (Number) | Offset of the song in ms. |
Using multiple Play Song events can make playback in the middle of the chart break the music sometimes.
Advanced
Songs can be modified with some custom methods:
Custom Method | Description |
---|---|
CurrentSongVol(floatTargetVolume, floatFadeTimeSeconds) |
Sets the volume of the most recently played song to TargetVolume over the time given in FadeTimeSeconds. |
PreviousSongVol(floatTargetVolume, floatFadeTimeSeconds) |
Sets the volume of the second most recently played song to TargetVolume over the time given in FadeTimeSeconds. |
SongVol(stringfilename.ogg*external, floatTargetVolume, floatFadeTimeSeconds) |
Sets the volume of a specific filename to TargetVolume over the time given in FadeTimeSeconds. Can target sound effects from Play Sound. |
StopSong(intFadeTimeInSeconds) |
Like CurrentSongVol, with no volume control. |
OneSongAtATime(boolEnabled) |
Stops the previous song as soon as a new Play Song event is triggered. |
Surgery
{ "bar": X, "y": X, "type": "PlaySong", "song": {"filename": "sndOrientalTechno", "volume": 0, "pitch": 0, "pan": 0, "offset": 0}, "bpm": 100, "loop": false },
filename (string)
Song filename. Allows internal filenames with no extension.
volume (integer) (optional)
Goes from 0 to 300.
pitch (integer) (optional)
Goes from 0 to 300.
pan (integer) (optional)
Goes from -100 to 100.
offset (integer) (optional)
Offset of the song. Supports negative values.
bpm (float)
Functions the same way as Set Beats Per Minute.
loop (bool)
Deprecated, non-functional. See this event's History.
History
Trivia
- This event is one of few events that do not have a beat parameter, the others being Set Crotchets Per Bar and Set Heart Explode Volume.
- This is the only event in the game that, regardless of zoom, spans two beats visually in the editor's timeline.
- Placing multiple Play Song events (sometimes) causes the waveform to be a thick line on top of the first song's waveform. This does not affect playback.