Part 4, How to Optimize Our Workflow in Sekaiju

If you didn’t start with Part 1, So You Want to Add Custom Music to Your Banjo-Kazooie Romhack, I highly recommend you start there first as it provides context and download links to what we’re using here.

Part 1 | Part 2 | Part 3 | Part 4 | Part 5 | Part 6 | Part 7

If you didn’t start with Part 1, So You Want to Add Custom Music to Your Banjo-Kazooie Romhack, I highly recommend you start there first as it provides context and download links to what we’re using here.

Set Sekaiju to be the default application for opening Midi Files

1. Navigate to the midi that you want to hear in game and copy it, then navigate back to your BK Working folder. Create a new folder inside of here called [working midis] and paste our midi into it.

2. On our new midi, [right-click > Open with > Choose another app]. Check the box for [Always use this app to open .mid files] and if Sekaiju is listed under Other options, select it the. press Ok. Sekaiju should now open up when ever you double-click a midi on your PC.

Note: If Sekaiju isn’t listed, then you’ll have to scroll down and choose More apps… then scroll down again and choose Look for more apps on this PC. If you made a desktop shortcut for Sekaiju, you can select it there. If not, you’ll have to go to the folder where you stored the application and choose [Sekaiju.exe].

This image has an empty alt attribute; its file name is s3-1024x601.png

3. With Sekaiju open and notation for our midi on display, I’d like to do a little organization. First thing is to drag the divider bar over to see more of the detailed, left-most panel. Then scroll that panel over a bit so we can easily see everything from the InputPort to the dynamics.

This image has an empty alt attribute; its file name is s4-1024x733.png

Important parameters to be mindful of when using Sekaiju

Sekaiju is strong for its ability to play midis nearly identically to how they will sound in game. It’s extremely important you understand all the ways you can manipulate this software if you want to debug issues as messing your files up in this software is too easy.

This image has an empty alt attribute; its file name is s5-2-1024x744.png

1. Deleting ‘filler’ tracks – Some midis have what I call filler. These tracks are distinguishable because of their lack of notes, instrument, channels or any other data. Click any of the track’s boxes and click the eraser icon to send ’em packing.

2. Silent Track – What you SHOULDN’T deleted is track 1, notable for always being positioned above InputChannel 1. This silent track holds editable information about the midi like tempo, start position, end position, loops, and more. If you see would could be a second silent tracks just below the first, go ahead and delete it. That’s junk resulting from having previously saved the MIDI using a sloppy DAW.

This image has an empty alt attribute; its file name is s6.png

3. InputChannel & OutputChannel – These control what channels our instrument/notes/dynamics get played in. Each midi we look to replace has specific channels associated with it so we must align our channels in Sekaiju to reflect that.

Let’s say we wanted to overwrite the midi for Spiral Mountain. Before doing so, we would need to learn what channels this level uses and change these numbers to reflect that; something we’ll be doing later in this tutorial.

This image has an empty alt attribute; its file name is s7.png

4. OutputOn – Think of this as the on/off switch for a track. Just don’t forget to turn all your channels back on before saving!

Obviously this is great for testing out certain instruments before importing a rom but this tool can also be used when trying to learn more about dynamic zoning. Say we wanted to learn what channels are used in the underwater theme of the Spiral Mountain midi. Listening to the original song on YouTube while turning tracks on and off would be helpful when identifying what channel does what.

This image has an empty alt attribute; its file name is s8.png

5. Program Number – Manipulating this field lets us inject different instruments into our midi on the fly. If the number of the instrument you’re looking for is known, a simple double-click will let you type it in. However if you’re playing your midi and want to find the most suitable voice for your notes, utilizing the arrow buttons to explore options is great for fast, reliable testing.

This image has an empty alt attribute; its file name is s9.png

6. Dynamics – The same way a cinematographer uses lighting to set the mood of scene, we too should always be working to improve our dynamics. Thankfully, midis offer a very respectable number of options for this including volume, pan, reverb, chorus and more.

Mess around with automation in Sekaiju is unfortunately one aspect that shows the software’s age — especially if you’re used to ProTools or FL Studios. However after a bit of tinkering, you’ll be rolling your notes like nothing.

This image has an empty alt attribute; its file name is s9-1-1024x510.png

7. Piano Roll – To access this window, right-click a track and select [Show this track’s piano roll window].

This is where we set up our notation, velocity, pitch bending and more. The top window lets you adjust notes, how long their held and how much space is in between. The bottom bar allows you to adjust the velocity note are struck (very similar to volume) and left/right panning.

There’s a lot to be said about this area but the first is to practice using it diligently (if you haven’t already.) I’d recommend memorizing keyboard shortcuts or else 2/3 of your time is going to be spent moving the mouse back and forth. Here’s a start:

[Pen] = P
[Line] = L
[Erase] = E
[Select] = S
[Preview] = B

Some aspects like moving or changing the length of note clusters seem hidden. Typically, using the [select] function for this lets you manipulate anything you could do with the [pen] but on a mass scale.

This image has an empty alt attribute; its file name is s9-3-1024x504.png

8. Event List – This is the single most powerful screen in Sekaiju yet it lacks any sort of in-software documentation. If you’re a programmer, think of the event list as a track’s script. Practicing navigating this is essential for debugging weird sounding occurrences. To access it, right-click any track an select [Show this track’s event list window].

Highlighted in red, the box on the side that contents all that vocab acts as a filter to assign and manipulate various commands we can execute as a track plays. We can turn these off one by one or [right-click > solo] an individual filter. A lot of these we won’t use often. However, there are two filters I’ve found to come up more than the rest when composing and especially debugging.

This image has an empty alt attribute; its file name is 6.png

8a. Program Change – If I ever have a channel go mute for no conceivable reason, this is the first place I look. As stated above, our program number is, for all intensive purposes, the instrument that carries out the commands of our track. Especially when creating new channels or copying existing notes, this number has a tendency to get stack other instruments on top of it fast.

The example above shows what should be the Bassoon playing for this track, yet upon preview, nothing is heard. This is because six instances of changing to 2-Strings occur then five instances or silent are suppose to all occur at the same time as the Bassoon coming in.

This image has an empty alt attribute; its file name is 7.png

Thankfully, fixing this problem is as simple as deleting the excess program numbers in Value#1 so only the Bassoon comes in at 03:01:000, or the third measure.

8b. Control Change – Think of this filter as the catch-all for dynamics and… well everything else that controls the playing of your track.

This image has an empty alt attribute; its file name is s9-5-1024x738.png

The reason I stressed dynamics first is because this is ‘mostly’ what I use this for. While everything serves a purpose in this window, it’s the Value columns that make the most difference. To find what each numbers mean, we must consult the official control change chart created by the midi association.

Thankfully, we don’t need to memorize all 127 parameters. In fact, there are three that I want to point out today that I utilize 99% of the time:

If Value 1 = 7, then Value 2 = volume (0-127, 127 being the highest)
If Value 1 = 10, then Value 2 = pan (0-127, 64 being balanced across the speakers)
If Value 1 = 91, then Value 2 = reverb (0-127, 127 being the longest reverb possible)

Like instruments in Program Change, vales for each dynamic will stack up fast. It’s essentially the master automation control. Mastering how to use this in tandem with the bottom box of the piano roll is how you’re going to make your songs evoke the feeling of a live performance rather than a digital one.

This image has an empty alt attribute; its file name is s10-1024x548.png

9. Ticks Per Quarter Note, or TPQN – Every tick is a measurable interval of the passage of time relative to the intended BPM of a track. Most tracks in BK require a TPQN of 96 though there are some that have a higher count. I’d recommend setting all the midis you intend to inject into a rom to 96 TPQN. To change this, simple go to [File > Properties] and a window like the one above should appear. You can also see what your TPQN is at any time on the bottom bar of Sekaiju.

We’ve got our software, our midis and now our MINDS ready to dive into the BK contents and find out what channels we’ll be using before we do the forreal editing. Sheesh, let’s do this!

Part 5, Identifying What Channels Our Custom MIDI Should Use

Part 1 | Part 2 | Part 3 | Part 4 | Part 5 | Part 6 | Part 7