Attention: Please read the large Music Box Composer's and Programmer's Handbook at least once if you seriously want to use the system and don't forget to read and accept the Copyright section before you do it. After you read that documentation at least once you can use this Quick Documentation too as a quick editor reference for the composers.
 

Table of Contents

  1. Intro
  2. General Infos
  3. Main Screen
    1. Track Editor
    2. Pattern Editor
  4. Instrument Screen
    1. Misc Options
    2. ABCDE Bytes
      1. Channel 1
      2. Channel 2
      3. Channel 3
      4. Channel 4
    3. Arpeggio Table
    4. Sample Table
  5. Player Screen
  6. Extra Screen
  7. Closing Words

Intro

Hello and be welcome to the MusicBox QuickDox. It is intended to be a short and handy introduction to MusicBox for those who have some experience with Amiga or PC-based tracker programs, Commodore 64 music editors or the like. We also assume that you have MusicBox up and running on your GameBoy (or on your emulator, although we strongly recommend using the real thing). For a more detailed insight into MusicBox's inner workings read the Music Box Composer's and Programmer's Handbook.

General Infos

You can move around with the arrow buttons (wow, what a suprise!). If there are more windows on the screen, most cases you can switch between them with the A button.

Whenever you want to input a number or a note, press the B button. A window will come up where you can choose the value you need (please note that MusicBox does not do any check on the values you enter - so you have to make sure that you do not enter out-of-range values). Press B again to input it, or press A to abort input and return to previous window. In some cases you will also find a submenu in that window with INS and DEL. You can switch to that menu with the SELECT button. To leave this submenu, choose a '---' and press B. If you press B on INS or DEL the expected thing is bound to happen - a row will be inserted or deleted, respectively.

And watch out: all numbers in MusicBox and therefore also in this documentation are hexadecimal values, whether or not they are marked with the $ prefix.

Main Screen

In the upper right corner of the screen you can see two numbers. The left one shows your position in the track or pattern and the one on the right shows the actual pattern.

Track Editor

This is where you are when MusicBox starts. Here you can specify what patterns and in which order will be played. In contrast to the PC trackers there is not one but four pattern order coloumns, as every channel has its own pattern order. This is because every pattern describes only one channel, not all of them - this way we could save some memory and you can save lots of typing.

Each coloumn is $40 rows long, so your music can't be longer than that. You can enter the pattern's number (only 00-37 is valid), FF or FE. (FE and FF are commands and these are only active in the first column.)

FF means restart - when the player reaches an FF the music will be restarted. FE means stop - that is, the music will be stopped.

Pattern Editor

There are $38 (00-37) patterns, each is $40 rows long. Each row consists of two fields - a note and an instrument number. You can use $21 instruments (00-20), the 00 will show up as --, this is a "null" instrument you can't change.

Instrument Screen

You can get there by pressing SELECT on the main screen. Here you can edit your instruments and some other things. In the upper right corner you can find the familiar numbers - this time showing the actual instrument and your position in the arpeggio/sample table.

Misc Options

The aforementioned "other things" are represented by three numbers in the lower left corner. These are:
Speed
The time between two rows in the patterns (for techies: it is based on the 30 Hz VBlank). The smaller the number the faster your music.
Left/Right Volume (reg $FF24)
The first digit is the left volume, the second one is the right volume. Valid values for each digit are numbers between 0 and 7, so f.e. 46 and 77 are valid values while 48 is not. (For the techie types: this value is written directly to register $FF24)
Channels on Left/Right (reg $FF25)
This number is composed as the sum of the following numbers:
So f.e. FF means that all channels are put out on both sides, and ED means channel 4 and 3 sounds on both sides while channel 1 only on the right and channel 2 only on the left.

ABCDE Bytes

It is the most complicated part. I tried to explain everything in a way a composer needs to know things and checked everything (unlike some other people who didn't do this and talked bullshit). If you want to know more read the Pan docs, or refer to some other source of information.

Please note that while the four channels represent at least three different approaches to generate sound MusicBox uses the same instrument pool for all channels so it is up to you to use instruments only on channels for which they were designed.

All instruments consits of five bytes, called A, B, C, D and E bytes. The interpretation of these bytes depend on the channel the instrument is played on. To get the value that produces the wanted result just choose the right value for every section of that byte and add them.

Channel 1

This channel uses a synthetised pulse waveform to generate sound - it's a little bit similar to what the Commodore 64 and the Commodore +4 does.
Byte A - Frequency Slide
Byte B - Waveform/Sound Length
There are two sections encoded into this byte:
Byte C - Volume Envelope
There are three sections in this single byte:
Byte D - Sound length mode
Byte E - Arpeggio pointer
This is the first position of the instrument in the arpeggio table

Channel 2

Byte A is not used, the rest works the same way as with Channel 1.

Channel 3

Channel 3 uses samples to generate sounds in a way resemblig the working of the Amiga and other wavetable synthetisers.
Byte A - Sample pointer
A pointer into the sample table. Legal values are numbers between $00 and $0E (note that there's no sample $0F).
Byte B - Sound length
The length of the sound. All values ($00-$FF) are legal. The bigger the value the shorter the sound. See also byte D.
Byte C - Sample volume
Byte D - Sound length mode
Byte E - Arpeggio pointer
This is the first position of the instrument in the arpeggio table

Channel 4

Channel 4 is a noise generator. Its main use is to simulate percussion instruments. The pitch of the note in the pattern has no effect on the produced sound.
Byte A - Noise mode
It's a little bit hard to describe what does what - experiment!
Byte B - Sound length
The length of the sound. Values $00-$3F are legal. The bigger the value the shorter the sound. See also byte D.
Byte C - Volume Envelope
There are three sections in this single byte:
Byte D - Sound length mode
Byte E
Unused.

Arpeggio Table

This is the rightmost coloumn on the screen. It contains the arpeggio data.

The arpeggio works in a way that every frame (that is 30 times in a second) the player takes the next value from the arpeggio table and adds as many halfnotes to the pitch of the base note. If it finds a $80, it takes the next value and jumps to that position.

For example, we play a C-5 note and have this sequence beginning at position $05:
00 04 07 80 05
This means, that first the player takes the 00. C-5 and 0 halfnotes, that is a C-5. OK. Next time it takes the 04. C-5 and four halfnotes is an E-5, so it plays that. Next it takes 07, C-5 and seven halfnotes is a G-5. Next there is a 80. It takes the byte after 80 - that is 05, so it jumps to position number 05. There is a 00, so it plays C-5... and so on, and so on. This way we got a nice C major chord.

Sample Table

This is is the second coloumn from the right on the screen. It contains sample data for channel 3.

Each sample is $10 bytes long, so sample 0 begins at position 00, sample 1 begins at position $10, and so on.

The soundchip interprets the samples as $20 nibbles. A nibble is a 4 bits long unit, so it is basically one hexadecimal digit. So if you have a sample like
01 23 45 67 89 AB CD EF FE DC BA 98 76 54 32 10,
the soundchip will interpret it as a 0, then a 1, then a 2, then a 3, and so on, so it will be a triangle waveform.

Player Screen

You can get here by pressing the START button on the Main or the Instrument Screen. Here you can do a few things, by pressing the following buttons:
Button A
Start/Stop playing the music
Button B
Fast forward (only if music is playing)
Left/Right
Decrease/increase the starting position in the pattern order table. The music will be started from this position. Remember, only values $00-$3F are legal!
Up/Down
Increase/Decrease the restarting position in the pattern order table. The music will be played from this position when the player reaches an $FF in the pattern order table. Only values $00-$3F are legal.
SELECT
Back to the Main/Instrument Screen (depending on where did you get here)
START
Enter the Extra Screen

Extra Screen

A menu. Self explanatory for the most part, and the not-so-trivial is listed here.
Clear Samples
Beware: despite the name it erases the ABCDE bytes, not the Sample Table!
Shut Down
Disables the SRAM. If SRAM is enabled when you switch off your GB, the music data may get corrupted. Although it is very unlikely to happen the best is to play safe and use condom... er, disable the SRAM :)

Closing Words

If you want to contact me for any reason (feedback, questions, whatever) just drop me an email at db@tvnet.hu.

Bye bye!