Carillon Player GB

From GameBrew
Carillon Player
Carilloneditorgb.png
General
AuthorAleksi Eeben
TypeMusic Apps
Version1.2
LicenseMixed
SystemCGB, DMG
Last Updated2001/01/09
Links
Download
Website

A music engine for Game Boy and Game Boy Color.

User guide

Contents

  • Carillon Editor ROM Image.
  • Small demo songs.
  • SRAM Images for demo songs and preset sounds (transfer to card SRAM).
  • Carillon Editor Utility (PC) and related files.
  • Sound files for Sound Manager.
  • Alternate set of waveforms (Waveform RAM images).
  • Samples for testing (8-bit unsigned raw).
  • Example of playing music, with and without samples.
  • Documentation and screenshots.

Startup/Options Screen

Mode Switching
Block Editor Go to block editor
Sound Editor Go to sound editor
Block Order List Go to block order list
Block Commands
Copy to Buffer Copies the current block to copy buffer
Copy from Buffer Replaces the current block with the contents of copy buffer
Copy Ch from Buffer Replaces the current channel (or cmd-column) with the same channel in the copy buffer
Transpose Up Transposes all notes one semitone up (Except C-0 which is reserved for "body" of drum sounds)
Transpose Down Transposes all notes one semitone down (Except C-0)
Swap Ch1 and Ch2 Swaps channels 1 and 2 (Usable when working with FX Hammer)
Sound Commands
Copy to Buffer Copies the current sound to copy buffer (In fact all 3 sounds sharing the same number are copied)
Copy from Buffer Replaces the current sound with the same channel sound in the copy buffer
Card Options
Load from SRAM Loads all music data from card SRAM (Shortcut: hold the control pad left or right during POWER ON)
Store in SRAM Stores all music data in card SRAM (All SRAM data is overwritten)

Block Commands

MOx (Modulate Channel (Vibrato)):

  • MO1 - Modulate channel 1
  • MO2 - Modulate channel 2
  • MO4 - Modulate channel 3
  • MO5 - Modulate (1+4) channels 1 and 3
  • MO6 - Modulate (2+4) channels 2 and 3 (etc.)
  • Always set VRx (rate) and VWx (width) before using this command. Modulating multiple channels at the same time is possible but not recommended.

SLx (Slide Channel):

  • Channel parameter like in MOx.
  • Always initialize the slide (using UPx or DNx) before using this command.

VWx (Set Vibrato Width):

  • VW0 - Smallest vibrato
  • VW5 - Widest vibrato
  • The actual vibrato width is different on each octave. Use your ears.

VRx (Set Vibrato Rate):

  • VR1 - Slowest
  • VRB - Fastest

UPx (Init Slide Up):

  • UP1 - Slowest
  • UPF - Fastest
  • The actual slide amount is different on each octave. Experiment.

DNx (Init Slide Down):

  • DN1 - Slowest
  • DNF - Fastest
  • Be careful with the lowest notes (C-0 to F-0), the frequency register values may wrap!

TMx (Set Tempo):

  • TMF - Slowest: 7,5 frames / step (switches between 7 and 8)
  • TMC - 6 frames / step
  • TM8 - 4 frames / step
  • TM7 - 3,5 frames / step (switches between 3 and 4)
  • TM6 - 3 frames / step
  • TM2 - Fastest: 1 frame / step

BRx (Pattern Break):

  • Parameter has no effect.

Multiple Songs in One Music Bank

In the current version the starting positions for songs are fixed. This should be no problem since you can always jump to a different position in the order list by using the loop command.

  • Song 0 - Starting at $00
  • Song 1 - Starting at $80
  • Song 2 - Starting at $40
  • Song 3 - Starting at $c0
  • Song 4 - Starting at $20
  • Song 5 - Starting at $60
  • Song 6 - Starting at $a0
  • Song 7 - Starting at $e0

Fundamentals

Game Boy has 4 audio channels. Channels 1 and 2 can output square wave only. Channel 3 can reproduce a digital waveform (single cycle). Channel 4 is noise or buzz.

Carillon Player has 16 sound slots for channels 1-2 (CH1-2), another 16 for channel 3 (WAVE3) and 16 more for channel 4 (PRC4). The sound edit screen displays 3 sounds at the same time.

CH1-2

(Example Sound: Pulse Width Modulation, Envelopes)

The sound data is read from top to bottom. The first column contains sound data for channels 1-2 (CH1-2). There are 4 parameters for each step:

RLNOTE (Relative Note):

The parameter is utilized for arpeggios, special effects, and drum sounds. C-3 represents the actual note in block data, and any other notes are considered relative to this. A bass drum sound is created by writing a fast arpeggio from maybe G-4 down to C-3, then playing that at C-0 in the block data. (Refer to the included demo songs for details.)

LEV0-F (Volume Level):

Carillon Player utilizes a fully programmable envelope in CGB, which allows an individual volume settings for each sound step. The envelopes offer various effects, including fading in and out, as well as wobbling around a specific value for tremolo effects.

PWD0-3 (Pulse Width):

Also called "wave duty" in some documents. Only four settings are possible:

  • 0 - Pulse width 12.5% (sharp tone)
  • 1 - Pulse width 25% (less sharp)
  • 2 - Pulse width 50% (hollow tone)
  • 3 - Pulse width 75% (same as 1 inverted, sounds the same)

You can see the steps are big leaps really and smooth modulation like on C64 is not really possible.

TME1-F (Step Time):

The number of frames (approx. 1/60 of a second) to wait before proceeding with the next step in the sound.

  • 1 - Used for drum sounds (sliding frequency) and fast arpeggios
  • 2 - Good for 3 note arpeggios
  • 3 to 6 - For pulse width modulation
  • 6 to F - For sustaining sounds and tails of fading sounds

WAVE3

(Example Sound: rpeggios, Waveforms, Looping)

The second column in the sound editor shows sound data for channel 3 (WAVE3). There are 4 parameters for each step:

RLNOTE (Relative Note)

This parameter is the same as for CH1-2.

WAV0-F (Waveform)

The preset waveforms are:

  • 0 - 3: Pulse waveform* (similar to CH1-2)
  • 4 - 9: Filtered Sawtooth
  • A - F: Filtered Sawtooth w/Resonance

You can replace these with your own waveforms by using the Carillon Editor Utility.

Note that the Game Boy hardware requires a sound retrig every time a waveform is changed. This causes awful clicks in the sound. There are a variety of ways to make this problem less obvious. Use arpeggios, carefully consider the step times, maybe synchronize waveform steps with the song tempo... Bottom line, use your ears.

LEV0-3 (Volume Level):

Channel 3 has only 4 possible volume settings:

  • 0 - No sound at all
  • 1 - Full volume (original waveform)
  • 2 - Half volume (waveform shifted right by one bit)
  • 3 - 25% volume (waveform shifted right by two bits)

The bits are actually "shifted out" so that the waveform resolution is smaller at lower volumes.

TME1-F (Step Time):

Same as CH1-2. The number of frames (approx. 1/60 of a second) to wait before proceeding with the next step in the sound.

  • 1 - For fast arpeggios and special effects
  • 2 - Good for 3 note arpeggios
  • 3 to 6 - Suitable for "filter sweeps"
  • 6 to F - For sustaining sounds and tails of fading sounds

PRC4

(Example Sound: Percussive Sounds.)

The rightmost column shows sound data for channel 4 (PRC4). The example sound is a simple snare drum. In a song you may want to add some bleep on CH1-2 at the same time to get more body.

FRQ0-D (Noise Frequency):

This parameter together with DIV0-F sets the noise frequency. The following values work when DIV0-F is set to zero.

  • 0 - Very soft noise (almost inaudible on the real Game Boy hardware)
  • 1 to 3 - Suitable for tails of drum sounds
  • 3 to 4 - Good for hihats
  • 5 - Maybe for a cymbal sound or a shaker "body"
  • 6 to 7 - Initial "hit" of a snare or bass drum sound
  • 8 to 9 - Drum sound "body", maybe for explosions
  • A to D - Just some low garbling

Note that emulators are not very exact with the noise channel: For example, noise frequencies 0 to 2 are played much louder than they sound on the actual hardware.

DIV0-F (Noise Freq Divider):

  • 0 to 7 - Noise
  • 8 to F - Buzz

Basically you can use 0 or 8 most of the time and set the desired noise frequency using the FRQ0-D parameter above. Like with the example sound.

LEV0-F (Volume Level):

Similar to the volume level parameter on channels 1-2 (CH1-2).

TME1-F (Step Time):

The number of frames (approx. 1/60 of a second) to wait before proceeding with the next step in the sound.

  • 1 - For initial "hit" of a drum or percussion sound
  • 1 to 3 - For the fading out right after the initial "hit"
  • 4 to F - For sustaining sounds and tails of fading sounds

Carillon Editor Utility

Carillon Editor Utility is a small PC program for building customized editor ROM's with your own samples and waveforms. Also included are some functions for handling your stored music data.

Create Editor ROM:

Builds an Editor ROM image (*.gb) with the current set of waveforms and samples. To create music you need to transfer this image to a development flash cartridge.

After finishing your song on CGB transfer the entire 32KB SRAM from the cartridge to your PC. This stored music data (*.sav) contains all music and sample data and a copy of the player code.

Slice SRAM File:

Slices a 32KB SRAM File (*.sav) into two files (or ROM banks for assembler):

  • 16KB music player code and music data (*.bin).
  • 16KB sample player code and sample data (*.sam).

Create Test ROM:

Builds a Test ROM image (*.gb) from your music file. There are two versions of the test code:

  • 16KB Music Bank (*.bin) converts into a 32KB Test ROM which doesn't include samples or sample player.
  • 32KB SRAM File (*.sav) converts into a 64KB Test ROM which contains all the samples and sample player code.

The test ROM's (and the player code) work on both CGB and DMG.

Sound Manager:

Program for handling individual sounds in stored music data. On startup you have an empty SRAM Image to which you can add any sounds from your sound library.

The list shows all 48 sound slots available. Each sound type has it's own file extension:

  • CH12 sounds (*.c1s).
  • WAV3 sounds (*.c3s).
  • PRC4 sounds (*.c4s).

You can also use the Sound Manager for adding new sounds to a music project you're currently working on. Open your SRAM File and do any changes you like with the sounds - The block and sequencer data are not altered. Since SRAM Files don't include sound names all used slots are labeled just "Sound1.c1s" etc.

Controls

Startup/Options Screen

Up/Down - Move cursor

Left/Right - Jump to next or previous menu

Start - Execute command under cursor

Select - Go back to last edit screen

Block Editor

D-Pad - Scroll block / Move cursor

A+Left/Right - Edit note in semitone steps / Select command

A+Up/Down - Edit note in octave leaps / Edit command parameter

A+Start (or B+Start) - Enter sample or percussion note

A+Select (or B+Select) - Tie note / Change sound number of an existing note

A+B - Delete

B+Left/Right - Go to next/previous sound

B+Up/Down - Go to next/previous block

Start - Play block / Stop playing

Down+Start - Play and scroll the block while playing

Up+Start - Stop scrolling (without stopping the music)

Left/Right+Start - Play the current step only

Left+Select - Jump to start of block

Right+Select - Jump to middle of block

Select - Go to Options Screen

(Tip: A+Left/Right remembers the last note entered if the current step is empty. A+Up uses "C-0" instead - For fast editing of 2 channel drum sounds always write the drum body to be played at "C-0".)

Sound Editor

D-Pad - Move cursor

A+Up/Down - Edit sound parameter

A+Select - Enter loop command

A+Left/Right - Set loop position

B+Up/Down - Go to next/previous sound

B+Left/Right - Change pan position (L/M/R)

A+B - Delete

Start - Trig sound

Up/Down+Start - Trig octave higher/lower

Select - Go to Options screen

Block Order List

Up/Down - Scroll order list

Up/Down+Start - Scroll fast

A+Left/Right - Edit step

A+Up/Down - Edit step in leaps of $10 blocks

A+B - Delete

A or B+Select - Insert

Start - Play song / Stop playing

Right+Start - Play song starting at current cursor position

Select - Go to Options screen

Screenshots

carilloneditorgb.pngcarilloneditorgb2.png

carilloneditorgb3.pngcarilloneditorgb4.png

Media

Introduction - Carillon Editor Music Tracker for Game Boy tutorial part 1 (David Couzelis)

Compatibility

Recommended for use on Color Game Boy hardware. Starting from version 1.1, the editor should also work on the old monochrome Game Boy and Game Boy Pocket.

For emulators, try (V)GBC (by Rusty Wagner) or No$gmb(v2.5). Note: No$gmb may have slight channel 3 note issues but runs well on older PCs. REW is another option but lacks sample playback and may have timing problems.

Known issues

  • Even though all sample data is saved in a 32KB SRAM File it's not possible to recall the samples back to the editor. If you want to edit your song at later time, you must use your customized Editor ROM with the correct sample set. Sample data is always played from ROM.
  • All of the 48 blocks ($00-$2f) are only usable when running the editor on a Color Game Boy. On older Game Boys you can only use the first 16 blocks ($00-$0f) due to smaller work RAM.
  • If you have a silly loop command (that jumps into itself) in the order list or sound data the player will hang up. The editor has some checks for such a situation but the actual play routine doesn't.

External links

Advertising: