Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Droneboy GB: Difference between revisions

From GameBrew
No edit summary
No edit summary
 
(One intermediate revision by one other user not shown)
Line 4: Line 4:
|description=Drone music application.
|description=Drone music application.
|author=purefunktion
|author=purefunktion
|lastupdated=2022/05/12
|lastupdated=2025/05/31
|type=Music Apps
|type=Music Apps
|version=1.07
|version=1.08
|format=DMG
|format=DMG
|license=MIT
|license=MIT
Line 20: Line 20:
|image_alt=Droneboy
|image_alt=Droneboy
}}
}}
Drone music application for Game Boy. Droneboy creates endless tones or drones on the Game Boys four channels. You can manipulate volume, duty and frequency.
Droneboy creates endless tones or drones on the Gameboys four channels. You can manipulate volume, duty and frequency and play and sequence chords. It is also MIDI compatible using an Arduinoboy.


== User guide ==
Written in C with sprinkles of ASM using GBDK-2020(version gbdk-4.4.0).
The Droneboy consists of four control pages: volume, duty, frequency, and chord/chord step.


Use Select to switch between these pages. Each page includes macro and inverted macro markers activated by the A button, influencing fader responses. A macro marker connects faders' changes across channels, while an inverted one does the opposite.
Read the manual in [https://github.com/purefunktion/Droneboy/tree/master/docs/Droneboy_manual.pdf Droneboy_manual.pdf]
 
== Controls ==
=== Navigation ===
Hold Select+ D-Pad - Switch between control pages (volume, duty, frequency, chord, BPM, credits)
 
=== Macro markers ===
A - Cycle through markers on a fader/control (macro marker, inverted macro marker, remove marker)


=== Volume page ===
=== Volume page ===
* Left/Right - Alter sound channel: sweep, square, wave, and noise
Left/Right - Switch channels (sweep, square, wave, noise)
* Up/Down Adjust volume, or HOLD UP/DOWN continuously changes it
 
* Hold B+Up/Down - Maximize/Minimize sound volume
Up/Down - Increase/Decrease volume (hold for continuous change)
 
Hold B+Up/Down - Maximize/Minimize volume


=== Duty page ===
=== Duty page ===
* Left/Right - Change sound channel
Left/Right - Switch sound channels (sweep, square, wave, noise)
* Up/Down - Cycle through duty settings
 
* B on noise channel - Toggle polynomial counter's step
Up/Down - Cycle duty settings (except Noise, which controls the "dividing ratio of frequencies")
* A on wave channel - Change wave type: square, saw, ramp, triangle, or sine
 
B (noise) - Toggle counter step of the polynomial counter
 
A (wave) - Change wave type (square, saw, ramp, triangle, sine)


=== Frequency page ===
=== Frequency page ===
Hold A and press B to change mode between notes and frequency.
Hold A+B - Switch between modes


In frequency mode:
'''Frequency mode:'''
* Right/Left - Alter channel (sweep/square on top, wave/noise below)
* Up/Down - Change frequency step or HOLD UP/DOWN continuously changes it
* Hold A+Up - Change frequency by 100 steps
* Hold B+Up - Change frequency by 10 steps


In note mode:
Up/Down - Increase/Decrease frequency (hold for continuous change)
* Left/Right - Change channel
* Up/Down - Change note by 1 semitone
* Hold A+Up/Down - Change note by 12 semitones (octave)
* Hold B+Up/Down - Change note by 3 semitones
* Hold B+A - Copy the current note's frequency to the frequency section (useful for detuning)


The noise channel's freq mode controls Shift Clock Frequency, while note mode offers D and G# notes.
Hold A+Up/Down - Change frequency by 100 steps


=== Chord/Chord step page ===
Hold B+Up/Down - Change frequency by 10 steps
There are two modes: "chord change" for manipulation and playing chord steps for playback.


In chord change mode, a marker(square) indicates the manipulated chord part (root note, minor/major, augmented/diminished/normal). Use Left/Right to switch parts, and Up/Down to adjust values.
'''Note mode:'''


When on root note part, hold A+Up/Down for 12 semitones, hold B+Up/Down for 3 semitones, Up/Down for 1 semitone. Press A to play current chord, press again to retain sound, allowing chord changes before retrigger.
Left/Right - Change channel


"On/off" sprite above the chord change part signifies this state.
Up/Down - Change note 1 semitone


The chord step part has 8 slots for chords set in chord change mode.
Hold A+Up/Down - Change note 12 semitones(octave)


* Move "record marker" in chord change mode with A+Left/Right.
Hold B+Up/Down - Change note 3 semitones
* Press B to assign selected slot with the chosen chord in chord mode, creating a sequence.
* Switch to chord play mode by holding A and press B.


In chord step mode, navigate the chord step sequence with Left/Right, press B to play the selected chord. Repeatedly pressing B on the same slot retriggers the chord.
Hold B+A - Copy the frequency of the current note to the frequency section


Start displays the credit page.
A (Wave) - Toggle between high/low wave type of the currently selected wave type (from duty page)
 
=== Chord page ===
Hold A+B - Switch between modes
 
'''Chord change mode:'''
 
Left/Right - Change between parts
 
Up/Down - Manipulate the values (root note, minor/major, augmented/diminished/normal)
 
Hold A+Up/Down on root note part - Jump 12 semitones(octave)
 
Hold B+Up/Down on root note part - Jump 3 semitones
 
Up/Down on root note part - Change the root note 1 semitone
 
A - Play the current chord, Change to a chord
 
Hold A+Left/Right - Move record marker
 
B - Assign the chosen chord to the currently selected slot
 
'''Chord step mode:'''
 
Left/Right - Change slot
 
B - Play the current chord
 
Start - Play/Pause sequencer
 
=== BPM page ===
 
Up/Down - Adjust BPM
 
Start - Toggle sequencer on/off


== Screenshots ==
== Screenshots ==
Line 86: Line 120:


== Changelog ==
== Changelog ==
'''1.08 2025/05/31'''
* Addition:
** New navigation, hold SELECT and press D-Pad.
** BPM page, set bpm and see sequencer status.
** Play sequence on chord page using START button.
** MIDI support, note on and CC (see manual for details).
** High and low wave versions of wave types.
** KORG nanoKONTROL 2 MIDI preset file in resources directory.
** Manual now available as PDF.
* Fix:
** Moved 1.07 version into easy directory.
** Credits page moved.
** Refactoring of code.
** Noise channel volume zombie mode.
'''1.07 2025/04/04'''
*This is the latest version. Creating this release to start a new workflow.
'''1.07 2022/05/12'''
'''1.07 2022/05/12'''
* Addition:
* Addition:
Line 140: Line 191:


== Credits ==
== Credits ==
*GBDK-2020(version gbdk-4.0.5) https://github.com/gbdk-2020/gbdk-2020
Made with:
*Emulator used in development BGB https://bgb.bircd.org/
* GBDK-2020 (version gbdk-4.4.0) https://github.com/gbdk-2020/gbdk-2020
*Sameboy also used in development, very good for examining wave ram https://sameboy.github.io/
 
*Sprites and maps made with GBTD/GBMB http://www.devrs.com/gb/hmgd/intro.html
Emulators used in development:
*Invaluable reference document for Gameboy https://gbdev.io/pandocs/
* BGB – Superb debugger https://bgb.bircd.org/
*Sound table reference for Gameboy sound frequency/note/hz/MIDI http://www.devrs.com/gb/files/sndtab.html
* Sameboy – Excellent sound support https://sameboy.github.io/
* Emulicious – Great serial debugging https://emulicious.net/
* Sprites and maps made with GBTD/GBMB http://www.devrs.com/gb/hmgd/intro.html
* Invaluable reference document for Gameboy https://gbdev.io/pandocs/
* Sound table reference for Gameboy sound frequency/note/Hz/MIDI http://www.devrs.com/gb/files/sndtab.html
* Arduinoboy by Timothy Lamb https://github.com/trash80/Arduinoboy
 
Serial implementation sources:
* https://github.com/trash80/mGB (original)
* Tim Stirratt’s very helpful version: https://github.com/tstirrat/mGB
* Special thanks to gwEm who made the lower wave tables and showed how to implement them in his fork of Droneboy https://github.com/gwEm303/Droneboy


== External links ==
== External links ==
* GitHub - https://github.com/purefunktion/Droneboy/
* GitHub - https://github.com/purefunktion/Droneboy/

Latest revision as of 01:32, 14 June 2025

Droneboy
General
Authorpurefunktion
TypeMusic Apps
Version1.08
LicenseMIT License
SystemDMG
Last Updated2025/05/31
Links
Download
Website
Source

Droneboy creates endless tones or drones on the Gameboys four channels. You can manipulate volume, duty and frequency and play and sequence chords. It is also MIDI compatible using an Arduinoboy.

Written in C with sprinkles of ASM using GBDK-2020(version gbdk-4.4.0).

Read the manual in Droneboy_manual.pdf

Controls

Navigation

Hold Select+ D-Pad - Switch between control pages (volume, duty, frequency, chord, BPM, credits)

Macro markers

A - Cycle through markers on a fader/control (macro marker, inverted macro marker, remove marker)

Volume page

Left/Right - Switch channels (sweep, square, wave, noise)

Up/Down - Increase/Decrease volume (hold for continuous change)

Hold B+Up/Down - Maximize/Minimize volume

Duty page

Left/Right - Switch sound channels (sweep, square, wave, noise)

Up/Down - Cycle duty settings (except Noise, which controls the "dividing ratio of frequencies")

B (noise) - Toggle counter step of the polynomial counter

A (wave) - Change wave type (square, saw, ramp, triangle, sine)

Frequency page

Hold A+B - Switch between modes

Frequency mode:

Up/Down - Increase/Decrease frequency (hold for continuous change)

Hold A+Up/Down - Change frequency by 100 steps

Hold B+Up/Down - Change frequency by 10 steps

Note mode:

Left/Right - Change channel

Up/Down - Change note 1 semitone

Hold A+Up/Down - Change note 12 semitones(octave)

Hold B+Up/Down - Change note 3 semitones

Hold B+A - Copy the frequency of the current note to the frequency section

A (Wave) - Toggle between high/low wave type of the currently selected wave type (from duty page)

Chord page

Hold A+B - Switch between modes

Chord change mode:

Left/Right - Change between parts

Up/Down - Manipulate the values (root note, minor/major, augmented/diminished/normal)

Hold A+Up/Down on root note part - Jump 12 semitones(octave)

Hold B+Up/Down on root note part - Jump 3 semitones

Up/Down on root note part - Change the root note 1 semitone

A - Play the current chord, Change to a chord

Hold A+Left/Right - Move record marker

B - Assign the chosen chord to the currently selected slot

Chord step mode:

Left/Right - Change slot

B - Play the current chord

Start - Play/Pause sequencer

BPM page

Up/Down - Adjust BPM

Start - Toggle sequencer on/off

Screenshots

droneboygb2.png droneboygb3.png

droneboygb4.png droneboygb5.png

Compatibility

Droneboy ROM was developed and tested using BGB, SameBoy and Emoulicious.

Changelog

1.08 2025/05/31

  • Addition:
    • New navigation, hold SELECT and press D-Pad.
    • BPM page, set bpm and see sequencer status.
    • Play sequence on chord page using START button.
    • MIDI support, note on and CC (see manual for details).
    • High and low wave versions of wave types.
    • KORG nanoKONTROL 2 MIDI preset file in resources directory.
    • Manual now available as PDF.
  • Fix:
    • Moved 1.07 version into easy directory.
    • Credits page moved.
    • Refactoring of code.
    • Noise channel volume zombie mode.

1.07 2025/04/04

  • This is the latest version. Creating this release to start a new workflow.

1.07 2022/05/12

  • Addition:
    • New less clicky volume change.
    • Continuously change volume by holding up or down.
    • Continuously change frequency when in frequency mode by holding up or down.
    • Copy over note frequency to "frequency mode" on frequency page.

1.06 2022/05/04

  • Addition:
    • Chord page.
    • Play and change chords.
    • Chord step sequence.
  • Fix:
    • Changing frequency no longer retriggers channel, aka less poppin.

1.05 2021/11/08

  • Addition:
    • New waves in wave channel, saw, ramp, triangle and sine.

1.04 2021/10/20

  • Addition:
    • Credit page.
    • Edit counter step of noise channel on duty page.
    • Tones on noise channel on freq/note page.
    • Macro markers on noise freq/noise.
  • Fix:
    • Noise channel macro and state handling.

1.03 2021/09/28

  • Fix
    • Fixed blinking backgrounds.
    • Note/frequency indicator on freq page shown correctly.

1.02 2021/09/28

  • Addition:
    • Macro and inverted macro markers.
    • Dividing ratio of frequencies fader for Noise channel on duty page.
    • Min/Max volume control.

1.01 2021/08/31

  • Addition:
    • Duty on wave channel.
    • Show correct header when in note or frequency mode on frequency page.
  • Fix:
    • Wave volume refactoring.

1.0 2021/06/03

  • Addition:
    • Initial commit.
    • Volume on all channels.
    • Duty on Sweep and Square.
    • Freq/Notes on all channels(noise only has freq).

Credits

Made with:

Emulators used in development:

Serial implementation sources:

External links

Advertising: