SMT - Steev's MIDI Trigger

The 'Rock Band' Hack

Copyright 2010 by Steven Goodwin

This is a cut-down version of the main SMT program that has special code which allows you to use the drums and guitars from the 'Rock Band' computer game to trigger MIDI instruments and WAV samples. The unique feature of this app is that all instruments can be used at the same time!

Warning: If you don't understand the on-screen buttons, don't press them! They're not documented here, and only of use within the full version SMT, to be released soon.

The default install provides triggers for 3 MIDI instruments, and 3 external Rock Band peripherals (drums, and two guitars).

About Rock Band Instruments

First, install the Xbox 360 driver (from Microsoft) and plug in all your instruments. The savedata/settings.xml file indicates the order in which you should connect them.

Drums

From left to right the default sounds are:
Bottom row:Crash cymbal - cowbell - hi hat (closed) - snare (kick on pedal)

You can, however, change to an alterate row of drums by using the d-pad up/down buttons. This introduces the sounds:

Middle row:Low tom - low mid tom - hi mid tom - high tom (kick on pedal)
Top row: Low timable - low bongo - conga - agogo (wood block on pedal)

The drums are usually output through MIDI channel 10. You can change this between 10 and 16 with the d-pad left/right button. Currently, only channel 11 is configured, and produces an 808 kit using the samples in the audio4 directory.

Bass guitar

The five fret buttons can be used in specific combinations to produce a scale, using the chart below.

Frets, left to right

g r y b o
=========
c . . . .
D D . . .
. E . . .
. F F . . 
. . G . .    
. . A A .
. . . B .
. . . . C
Therefore, to play an 'F', you need to hold down both the red and yellow buttons, and hit the strum bar. The sharps and flats are hidden in the remaining spaces. This pattern was chosen because it has a logical structure, and is easy to play the majority of bass parts without accidentals. Even if you miss the intended note, it shouldn't sound too bad.

TIP: You can use the settings file to transpose the guitar up or down to an alternate key.

The second set of buttons at the high end of the fret board use the same pattern as given here, except the notes are one octave higher.

There are 3 alternate bass sounds, provided by MIDI, on channels 4, 5, and 6, which can be selected with the d-pad left and right buttons.

Lead guitar

This uses the same note method as the bass guitar, except that instead of a single note, the strum bar plays an entire chord. The chord is derived from the note using a simple algorithm. Specifically, any C, F, G, Bb, or F# note creates a major chord, while the others generate minor chords. This is an arbitrary decision on my part since this produces less chance of ill-fitting chords. There is no way to re-configure this.

Strumming up plays the notes in the reverse order to strumming down.

The buttons at the high end of the fret board use the same pattern, and play single notes, used for solos.

There are 3 alternate bass sounds, provided by MIDI, on channels 7, 8, and 9, which can be selected with the d-pad left and right buttons.

About MIDI Instruments

You can use any MIDI-compatible keyboard with SMT to trigger sounds. By default any notes from MIDI channels 1, 2 or 3 will play corresponding sounds using a piano, synth pad, and harpsichord respectively.

Note: Experiment with the output MIDI driver (savedata/settings.xml) since a poor quality (or wrong) setting will introduce a time delay between hitting the note, and hearing it. Any delay in hearing notes is a result of your sound card/driver combination.

About the keyboard

The keyboard at the bottom of the screen shows the whole 88 keys available to you. This represents the state of one specific channel. This channel is selected by using the row of buttons at the very top of the screen. When you play the drums, keyboard, or guitar, you will see the notes appearing on it (provided you have selected the right channel).

You can use the computers keyboard to also trigger sounds on the currently selected channel. The 'z' key triggers C3 (MIDI note 36), with each next key triggering the appropriate note. The top row of the keyboard begins with 'q' and C4 (MIDI note 48).

Configuring SMT

This is not easy, and isn't encouraged - wait for the full version!

But, if you must tinker - look inside the savedata/through.xml file and you'll understand what goes on.

In the future

Although some of these require more hardware which I don't have.

About

The original SMT was released in 1995 on the Amiga, and is probably still around on Aminet. The PC version was started in 1999, but was dropped when I found myself using the sequencer more as a programmed instrument in its own right.

In 2008, I started SMT-PC again as a practical test of the new audio library I'd written for the SGX Game Engine. This time, work got in the way.

Then in 2010, a special offer at work meant I could get the Rock Band hardware for a cheap enough price to make it worth experimenting. I took the box home on the Friday evening, plugged it in on Saturday afternoon, and by the evening had written the special bass and guitar modules and written this README!

The full "power-user" version of SMT still isn't finished, but I hope to be able to make the first release later this year. These projects will be GPL. But while the code's a mess, I'm keeping it hidden!