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
-
Intro
-
General Infos
-
Main Screen
-
Track Editor
-
Pattern Editor
-
Instrument Screen
-
Misc Options
-
ABCDE Bytes
-
Channel 1
-
Channel 2
-
Channel 3
-
Channel 4
-
Arpeggio Table
-
Sample Table
-
Player Screen
-
Extra Screen
-
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:
-
80 - Channel 4 is output to the left
-
40 - Channel 3 is output to the left
-
20 - Channel 2 is output to the left
-
10 - Channel 1 is output to the left
-
08 - Channel 4 is output to the right
-
04 - Channel 3 is output to the right
-
02 - Channel 2 is output to the right
-
01 - Channel 1 is output to the right
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
-
Speed of slide (choose one):
-
$00 - No slide
-
$10 - Sweep very swiftly
-
$20 - Sweep swiftly
-
...
-
$70 - Sweep slowly
-
Direction of slide (choose one):
-
$00 - Slide up
-
$08 - Slide down
-
Step of slide - note that too little steps may result in no slide (choose
one):
-
$00 - No slide
-
$01 - Biggest steps
-
$02 - A bit smaller steps
-
...
-
$07 - Smallest steps
-
Byte B - Waveform/Sound Length
-
There are two sections encoded into this byte:
-
Waveform (choose one):
-
$00 - 12.5% (-_______)
-
$40 - 25.0% (--______)
-
$80 - 50.0% (----____)
-
$c0 - 75.0% (------__)
-
Sound Length - after this time the sound will be muted, see also byte D
(choose one):
-
$00 - Shortest
-
$01 - A little bit longer
-
$02 - Two little bits longer
-
...
-
$1f - Longest
-
Byte C - Volume Envelope
-
There are three sections in this single byte:
-
Initial volume (choose one):
-
$00 - Silence
-
$10 - Very, very quiet
-
$20 - Very quiet
-
...
-
$F0 - Loudest
-
Direction of volume change (choose one):
-
$00 - Fade away
-
$08 - Amplify
-
Speed of change (choose one):
-
$00 - No change
-
$01 - Change very swiftly
-
$02 - Change swiftly
-
...
-
$07 - Change slowly
-
Byte D - Sound length mode
-
$00 - Ignore the length in byte B, note will sound till the next note
-
$40 - The note sounds as long as specified in byte B
-
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
-
$00 - Mute
-
$20 - Full volume
-
$40 - Half volume
-
$60 - Quarter volume
-
Byte D - Sound length mode
-
$00 - Ignore the length in byte B, note will sound till the next note
-
$40 - The note sounds as long as specified in byte B
-
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!
-
Pitch of noise (choose one):
-
$00 - Highest
-
$10 - Very, very high
-
$20 - Very high
-
...
-
$D0 - Lowest
-
$E0 & $F0 - Illegal values
-
Noise mode (choose one):
-
$00 - Noise 1
-
$08 - Noise 2
-
Another pitch of noise - strange, eh? (choose one):
-
$00 - Highest
-
$01 - Very, very high
-
$02 - Very high
-
...
-
$0F - Lowest
-
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:
-
Initial volume (choose one):
-
$00 - Silence
-
$10 - Very, very quiet
-
$20 - Very quiet
-
...
-
$F0 - Loudest
-
Direction of volume change (choose one):
-
$00 - Fade away
-
$08 - Amplify
-
Speed of change (choose one):
-
$00 - No change
-
$01 - Change very swiftly
-
$02 - Change swiftly
-
...
-
$07 - Change slowly
-
Byte D - Sound length mode
-
$00 - Ignore the length in byte B, note will sound till the next note
-
$40 - The note sounds as long as specified in byte B
-
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!