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

STEPPER GBA

From GameBrew
Revision as of 02:55, 13 August 2023 by HydeWing (talk | contribs)
STEPPER
Steppergba.png
General
AuthorBad Diode
TypeMusic Apps
Version1.6
LicenseMIT License
Last Updated2023/08/04
Links
Download
Website
Source

STEPPER is an open source 16-step sequencer for the Game Boy Advance (GBA).

It features an intuitive workflow inspired by Elektron instruments with per-trigger parametrization that allows access to the 4 DMG sound channels in the console (2 square waves channels, 1 custom wave channel and 1 noise channel). Supports 4 banks of 8 patterns that can be queued for live performance.

User guide

Save/Load

STEPPER allows for up to 4 banks, each containing 8 patterns.

The current bank is saved automatically when switching or selecting it in the bank section. The banks are stored in the SRAM, and the last saved state is loaded when launching STEPPER.

Use "Select + Start" to quick save the current bank.

Patterns

Patterns can be modified by using the cursor to navigate the left column. Pressing the B button adds a pattern to the queue for the next cycle, which is highlighted in blue. Currently, only one pattern can be chained.

You can edit different patterns, including the one not currently playing. The pattern being edited is indicated by a grey/blue cursor, while the playing pattern is highlighted in white.

Each pattern stores data about active channels, trigger notes, and parameters. Additionally, BPM can be independently stored for each pattern.

Note selection

You can change the notes pressing "L" or "R" over an active trigger. If the cursor is in channel selection mode, "L" and "R" will transpose all trigger notes instead.

By holding down the "Select" button while adjusting notes, they will jump by an octave instead of a semitone.

Parameters

In STEPPER, each channel has specific controls and functions:

Channel 1 and 2 - These channels allow control over the square wave duty cycle and envelope (Initial volume, direction and time). Channel 1 also has access to "sweep" parameters, which can create interesting effects when the time is not set to zero.

Channel 3 - Known as the wave channel, it provides access to two programmable waves that can be manually edited or selected from four available presets (sine, saw, square, random). The waves can be played independently (Mode A or B) or sequentially (Mode A + B). Unlike other channels, there is no volume envelope, so a note will continue playing until encountering an active trigger with zero volume or a different pitch.

Channel 4 - This is the noise channel primarily used for percussive effects. It utilizes an envelope to shape the sound and offers two modes of operation: Mode A, which produces rounder tones, and Mode B, which has a more metallic sound.

Adjusting parameters is done by holding the "A" button while hovering over a trigger. Parameters are stored individually for each trigger and can be adjusted per trigger. In channel selection mode, adjusting channel parameters will apply the changes to all 16 triggers. However, note that this global adjustment is not saved when saving banks and patterns. The grey color distinction helps differentiate between trigger-specific and channel parameters. It is also possible to paste a compatible trigger or parameter into a channel to apply it to all triggers.

Copy/Paste

STEPPER incorporates a contextual clipboard to enhance the editing workflow. The "Select + B" combination can be used to copy, and "Select + A" to paste, enabling clipboard operations.

When selecting a pattern, copying will include all active channels, triggers, and parameters. However, patterns can only be pasted into other patterns.

Channels can be copied and pasted across patterns or other channels. If the destination channel differs from the original one, only the notes and active triggers will be copied. However, if the channels are of the same type, all parameters will also be carried over.

Copying a trigger involves transferring its pitch (note), active state (on/off), and parameter settings (provided the target is compatible). To copy only the parameters, hold "A" to enter parameter select mode and press "Select" to copy them. These copied parameters can then be pasted onto any compatible trigger.

Using other gear and synchronization

There are several analog sync modes available, depending on your needs and gear available. STEPPER can use audio and link cable clock out and link cable clock in for syncronizing with external gear. Link cable sync modes use 3.3V to send and receive clock events. This voltage can be used as a sync signal (for Pocket Operators or CV gates or to control modulation in CV enabled instruments). Note that this 3.3V signal may need amplification in order to work with certain modules or devices. You can find an example of a potential voltage upshifter circuit here if you want to build one yourself.

Furthermore, when on "Sync In" mode, any 3.3V signal on any of the link ports will move the STEPPER sequencer forward while the sequencer is set to "Play". If paused or stopped, all sound will be killed. _A word of caution:_ be careful when using "Sync in", as you probably don’t want to burn your precious GBA down, so make sure the sync signal doesn’t exceed 3.3-5V. If your are building your own sync adapter using a voltage regulator is recommended.

When "Audio sync" is active, a click sound will be sent to the left channel and the mono audio signal to the right channel. Using a stereo splitter cable we can route the click track to audio sync enabled devices, like Volcas and Pocket Operators. Note that the volume of your console can be too low to trigger audio sync and sometimes additional amplification may be needed. Audio sync enables emulators and devices that lack a link cable port, such as the 3DS to play well with external gear.

Both "audio out" and "link out" signals can be sent simultaneously and configured to be sent every trig (16), every other trig (8) and every 4 trigs (4). This acts as a sort of clock divider, but some devices (like the POs) require sync signals at specific intervals.

Stepper uses both the Serial Out and Serial Clock pins for sync out, and on sync in, any of the serial pins (SO, SC, SD, SI) can be used as input, though SI is recommended. This should make any link cable that fits on the GBA to be compatible with STEPPER, if you want to learn more about making your own link cables and adapters, you can find more information here.

As a last resort, STEPPER can work with other gear by manually timing the playing head using a click/metronome or sampling patterns from STEPPER to later arrange it into a full song in your DAW or sampler of choice.

Controls

D-Pad - Move the cursor

Start - Start/Stop the sequence

Select - Quick saving the current bank, Copy pasting, Adjusting notes by octaves, Adjusting bpm by multiples of 10

B - Toggle channels/triggers and play/pause/stop, switches banks and patterns.

A - Hold it to adjust trigger parameters.

L/R - Change trigger notes/parameter values/BPM

Screenshots

steppergba2.png steppergba3.png

steppergba4.png steppergba5.png

steppergba6.png steppergba7.gif

Media

STEPPER tutorial - how to use the Game Boy Advance 16-step sequencer (Joe Bleeps)

STEPPER v1.4 is out! A 16-step sequencer for the Game Boy Advance (Bad Diode)

STEPPER v1.4 // 3DS + PO-20 audio sync (Bad Diode)

Changelog

v1.6

  • UI Improvements
    • New fixed grid (5x2) parameter adjustment UI
    • Add prob/conditional triggers (% based or 1:2, etc.)
    • Add panning support
    • Change cursor drawing for new parameter pages
    • Change cursor behavior for new parameter pages
    • Display param values on the notification bar when editing parameters
    • Change ch3 to only color the waveform that is selected depending on the mode/voice
    • Grey out colors when foreground is also grey (global channel parameters)
    • Bigger indicator for currently playing pattern in the chain
    • Thick line cursor is now the default one
  • Quality of life improvements.
    • Wave channel is simplified and now has a selection of different waves and wave variants
    • Wave channel now stops playback if it encounters an "off" trig
    • Make the channel parameters initialize to default
    • Each bank now stores its own pattern chain
    • Store pattern chains on the SRAM
    • Banks can be now switched live without playback stopping
  • New features
    • Per trig probability/conditional playing
    • Panning support

External links

Advertising: