Difference between revisions of "Music sequence"
(Created page with "Music in Super Mario 64 is controlled by sequence files. They are in .m64 format, which is similar to MIDI. A sequence file has a sequence script, that can...") |
|||
Line 1: | Line 1: | ||
− | Music in Super Mario 64 is controlled by sequence files. They are in .m64 format, which is similar to [[wikipedia:MIDI|MIDI]]. A sequence file has a sequence script, that can spawn channels, which have channel scripts, that can spawn layers, which have layer scripts that can play notes. Each note is performed using an instrument from a sound bank. A sequence file can use multiple banks. The mapping from sequences to sound banks is described in '''sound/sequences.json'''. Channels can switch between banks using a command. However, in practice most sequences limit themselves to a single sound bank. The main exception is sequence 0, which is responsible for sound effects. | + | Music in Super Mario 64 is controlled by sequence files. They are in .m64 format, which is similar to [[wikipedia:MIDI|MIDI]]. A sequence file has a sequence script, that can spawn channels, which have channel scripts, that can spawn layers (also known as tracks), which have layer scripts that can play notes. Each note is performed using an instrument from a sound bank. A sequence file can use multiple banks. The mapping from sequences to sound banks is described in '''sound/sequences.json'''. Channels can switch between banks using a command. However, in practice most sequences limit themselves to a single sound bank. The main exception is sequence 0, which is responsible for sound effects. |
+ | |||
+ | A sequence may play up to 16 channels with up to 4 layers per channel. | ||
== Create sequences == | == Create sequences == |
Revision as of 00:55, 7 November 2020
Music in Super Mario 64 is controlled by sequence files. They are in .m64 format, which is similar to MIDI. A sequence file has a sequence script, that can spawn channels, which have channel scripts, that can spawn layers (also known as tracks), which have layer scripts that can play notes. Each note is performed using an instrument from a sound bank. A sequence file can use multiple banks. The mapping from sequences to sound banks is described in sound/sequences.json. Channels can switch between banks using a command. However, in practice most sequences limit themselves to a single sound bank. The main exception is sequence 0, which is responsible for sound effects.
A sequence may play up to 16 channels with up to 4 layers per channel.
Create sequences
There are several ways for creating new sequence files.
Seq64
Seq64 is a GUI program for editing sequence files for Super Mario 64 and other Nintendo games. It also features full MIDI importing and exporting.
https://github.com/sauraen/seq64
Manually
Sequence files can also be created manually in a textual format. Create a new assembly file in the sequences directory, for example sound/sequences/us/23_custom_sequence.s. This file should begin with the following header:
.include "seq_macros.inc"
.section .rodata
.align 0
Next you can write down a series of commands. See include/seq_macros.inc for a list of available commands.
See also
- Custom music for SM64 on SMW Central