Editing Creating cave music
Jump to navigation
Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 3: | Line 3: | ||
The BMS file type is a sequenced music format used in many games. For the cave music in Pikmin 2 however, it is specially-formatted. It mainly contains many short snippets of musical information to be randomized. | The BMS file type is a sequenced music format used in many games. For the cave music in Pikmin 2 however, it is specially-formatted. It mainly contains many short snippets of musical information to be randomized. | ||
− | The CND files are the actual "songs"; they take specific groups of snippets from a BMS file, and endlessly puzzle-piece them together to form a coherent piece of music. | + | The CND files are the actual "songs"; they take specific groups of snippets from a BMS file, and endlessly puzzle-piece them together to form a coherent piece of music. |
− | This guide will function as a walkthrough for creating your own randomly sequencing cave song. | + | This guide will function as a walkthrough for creating your own randomly sequencing cave song. All of the editing will be done in hexadecimal. |
''Requirements:'' | ''Requirements:'' | ||
Line 12: | Line 12: | ||
* A basic understanding of hexadecimal, and a hex editor. An editor that can dynamically resize the window is ideal (HxD on Windows, or Hex Fiend on MacOS are fantastic examples). | * A basic understanding of hexadecimal, and a hex editor. An editor that can dynamically resize the window is ideal (HxD on Windows, or Hex Fiend on MacOS are fantastic examples). | ||
− | Additionally, studying the existing cave songs on your own and how those exploit the conductor system in interesting ways | + | Basic understanding of how [https://youtube.com/watch?v=QPFWzSlg-78 cave music works] and the [[Creating Interactive BMS Files|standard interactive music]] is recommended before starting.<br>Additionally, studying the existing cave songs on your own and how those exploit the conductor system in interesting ways can greatly help you come up with ideas for your own custom music. |
== Overview of file functions == | == Overview of file functions == | ||
Line 104: | Line 104: | ||
So, how do we choose how often gestures will play? Will a gesture play every beat? Every 1/2 a beat? You will need to add a timetable for that! | So, how do we choose how often gestures will play? Will a gesture play every beat? Every 1/2 a beat? You will need to add a timetable for that! | ||
A timetable is a sequence that dictates when gestures should play. A timetable ends with <code>FFFF</code>. You can make a timetable as complex as you like.<br> Some examples of timetables you can use are:<br> | A timetable is a sequence that dictates when gestures should play. A timetable ends with <code>FFFF</code>. You can make a timetable as complex as you like.<br> Some examples of timetables you can use are:<br> | ||
− | * <code> | + | * <code>0780FFFF</code> Play a gesture every 16 beats.<br> |
− | * <code> | + | * <code>03C0FFFF</code> Play a gesture every 8 beats.<br> |
− | * <code> | + | * <code>01E0FFFF</code> Play a gesture every 4 beats.<br> |
− | * <code> | + | * <code>03C003C003C001E001E001E001E003C0FFFF</code> This sequence will play a gesture every 8 beats (3x), play a gesture every 4 beats (4x), then play a gesture for 8 beats (1x), in that order.<br> |
− | * <code> | + | * <code>00F0FFFF</code> Play a gesture every 1/2 note (every 2 beats).<br> |
− | * <code> | + | * <code>0078FFFF</code> Play a gesture every 1/4 note (every beat).<br> |
− | * <code> | + | * <code>003CFFFF</code> Play a gesture every 1/8th note.<br> |
− | * <code> | + | * <code>001EFFFF</code> Play a gesture every 1/16th note.<br> |
− | * <code> | + | * <code>003C0078001EFFFF</code> This sequence will play a gesture for an 1/8th note, play a gesture for a 1/4 note, then play a gesture for a 1/16th note, in that order.<br> |
Considering that <code>001E</code> (30 in decimal) is a 1/16th note, you can create any specific timing you want. Just add another 30 to the value for each additional sixteenth note in length.<br> | Considering that <code>001E</code> (30 in decimal) is a 1/16th note, you can create any specific timing you want. Just add another 30 to the value for each additional sixteenth note in length.<br> | ||
− | For example, Soil 1's enemy mix piano plays a | + | For example, Soil 1's enemy mix piano plays very rapidly; its timetable uses a value of 90, which looks like <code>005AFFFF</code>. The gestures last for three sixteenth notes.<br> |
You can insert your timetables anywhere at the end of your BMS. | You can insert your timetables anywhere at the end of your BMS. | ||
<gallery mode="packed-hover" widths=250px heights=250px> | <gallery mode="packed-hover" widths=250px heights=250px> |