Saltar al contenido principal

hUGE Driver

GB Studio 3.0 adds support for .uge files on top of the existing .mod files from previous versions. A project can only support one type of music files, this can be configured on the Settings View by selecting either GBT Player (for .mod files) or hUGEDriver (for .uge files) as the Music Driver.

Getting Started

To compose .uge files you can use hUGETracker or new music tracker included in GB Studio 3.0. The tracker can be accessed in the Music section of the app. It'll display any .uge files in your project's assets/music folder. And it also allows you to create new songs by pressing the + button on top of the file list.

Each song uses 4 channels: Duty 1, Duty 2, Wave and Noise. Each channel can use 15 instruments with a note pitch range from C3 to B8.

Editing a song

The music editor is divided in three parts:

  • Left sidebar: Contains the list of songs and instruments for the selected song

  • Middle panel: The music editor itself. Has two views: Piano Roll and Tracker.

  • Right sidebar: Allows to edit the song title, artist name and tempo (measured in ticks per row) and also shows the instrument editor if there's any selected in the left sidebar.

Piano Roll

In Piano Roll mode you use the cursor to add notes to a grid. The time is represented in the horizontal axis (columns) while the note pitch is represented on the vertical axis (rows).

You can only add notes to one channel at a time, selectable on the top right toolbar. The channels can be muted with the sound icon for each channel. The channels that aren't selected can be previewed by clicking the eye icon.

To input a note, select the pen tool in the toolbar and click on a cell. The note will use the selected instrument in the toolbar.

To remove a note, select the eraser tool in the toolbar and click on an existing note. You can also right click on an existing note to remove it.

Note: It's not possible to add effects in Piano Roll mode.

The song can be previewed at any time by pressing the play button.

The song can be saved by pressing the save button or Ctrl/Cmd + S.

Tracker

In Tracker mode you use the keyboard to add notes. The song advances from top to bottom, with each row representing a position of the song. There's one column for each channel, and each is divided in 3 cells: Note, Instrument and Effect.

The song grid can be navigated with the cursor keys. Keys from Q to / are used to input the values in the note column of each channel. The base octave (used for the Q key) can be selected in the dropdown menu.

The numeric keys are used to input the value in the instrument column. A default instrument can be selected in the toolbar and be used automatically when adding a new note.

The numeric keys, and keys A through F are used to input values in the effect column.

The song can be previewed at any time by pressing the play button.

The song can be saved by pressing the save button or Ctrl/Cmd + S.

Patterns

A pattern in the GB Studio music editor is unique group notes in each 4 channels. Patterns can be repeated or arranged to form the full song using the pattern editor.

The dropdown menu on each cell allows you to select one of the existing patterns or assign an empty one to the current position.

The plus button allows you to add a new pattern to the song.

Note: any unused pattern will be removed from the song on save.

Instruments

Borrowing from the descriptions on the hUGETracker manual

Selecting an instrument in the left sidebar will open the instrument editor on the right sidebar.

Changes in the instrument can be previewed at any time by pressing the "Test Instrument (C5)" button, which will play the C5 note for a few seconds with the selected instrument.

Other than the instrument name, each instrument has its own set of fields that can be edited.

Duty Instruments

Length: When enabled, the note will be cut off immediately at a specific length. If not enabled the note will play until a new note starts.

Initial volume: Sets the starting volume for the envelope. If there's no sweep change set this will be the volume for the note.

Sweep Change: Defines how steep the volume change will be. The higher or lower the value, the quicker the note will fade in or out.

Sweep time: Selects the "sweep time" for the note to take. The greater the value, the slower the sweep.

Sweep direction: Selects the direction of sweep for the note to take. Up portamentos the note up, down portamentos it down.

Sweep size: Selects the magnitude of sweep for the note to take per "tick" as specified by sweep time.

Duty: Selects the timbre of note to play. Each one sounds different, and they are useful when you don't want both of the duty channels to clash with one another.

Wave Instruments

Length: When enabled, the note will be cut off immediately at a specific length. If not enabled the note will play until a new note starts.

Wave volume: Specifies at what volume a wave instrument shall play unless overridden by a volume effect command. There are only 3 possible values here, as the wave channel's volume interface is more limited than the other channels.

Waveform: Selects which waveform should play as part of this instrument. The selected waveform can be edited by drawing on the waveform preview.

Noise Instruments

Length: When enabled, the note will be cut off immediately at a specific length. If not enabled the note will play until a new note starts.

Shift clock mask and Dividing ratio: Two components of the noise generation algorithm. Tweak them to obtain different results.

7-bit counter: When checked, the instrument will sound more like a musical tone rather than noise.

Noise Macro: Like an arpeggio effect, set up to 8 pitch changes +-32 from the noise frequency, advancing every frame, great for kick drums or fast sweeping noise. Must be shorter than your current song tempo.

Effects

Borrowing from the descriptions on the hUGETracker manual

EffectNameDescription
0xyArpeggioOn every tick, switch between the
playing note, note + x, and note + y,
where x and y are values in
semitones. Can be used to create
"chords" or a strum effect.
1xxPortamento UpSlide the pitch up by xx units
every tick.
2xxPortamento DownSlide the pitch down by xx units
every tick.
3xxTone PortamentoSlide the pitch towards the specified
note value by
xx units every tick. Stops when it
reaches the
specified note value. **This effect
cannot be used in**
a cell with an instrument value.
4xyVibratoRapidly switch between the specified
note value and note + y, at the rate of
x, where y is a value in units.
Valid values for x are 0, 1, 3, 7,
and F. This is similar to arpeggio,
except you can control the frequency,
and the amount is specified in units
rather than semitones.
5xxSet Master VolumeSets the master volume control of the
Gameboy for the left and right
speakers. Use the effect editor to
create one of these effects. Note that
a volume of zero is not completely
silent.
6xxCall RoutineCall a user-defined routine. Routines
can be created by using the "Set Music
Routine" event.
7xxNote DelayWait xx ticks before playing the
note in this cell.
8xxSet PanningSets which channels play on which
speakers. Use
the effect editor to create one of
these effects.
Can also be used as a mute for a
channel by setting it to output on
neither left nor right.
9xxSet Duty CycleSelect duty cycle for either channel 1
or channel 2. If this effect appears on
the noise or wave channels, it will
affect channel 2. Valid values for xx
are 00, 40, 80, C0. Under the hood, the
xx value is loaded directly into
ch1 or ch2's length register, so you
could theoretically achieve other
effects than just duty cycle changing.
AxyVolume SlideSlide the note's volume up by x
units, and then down by y units.
This effect actually retriggers the
note on each tick, which might not be
noticeable for instruments without
length/envelope, but could potentially
sound bad if those are present.
Recommended to use either instrument
envelopes, or the C command instead
if you can. **This effect does not work
in the same cell as a
note/instrument!**
BxxPosition JumpJump to a specific position in the song
xx.
CxxSet VolumeSet the volume of the channel to
xx. Must be accompanied by a note
and instrument to work (except on
channel 3). Valid values range from
00-0F.
DxxPattern BreakJump to the next pattern early, and
start on row xx.
ExxNote CutCut the note short after xx ticks.
FxxSet SpeedSet the number of ticks per row to
xx. Can be used in an alternating
fashion to create a swing beat.