STEPPER is a 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 6 banks of 8 patterns that can be queued for live performance.

  This project is open source and can be downloaded for free here. If you want to support its development you can also get the playable rom via itch.io (Pay what you want). STEPPER is best run on real hardware but you can try it on emulators, though some can introduce sound bugs. You can also try it out directly in the browser.

  Controls D-Pad: Moves the cursor.Start: Start/Stop the sequence.Select: Context dependent mod key. Used for:Quick saving the current bank.Copy pasting.Adjusting notes by octaves.Adjusting bpm by multiples of 10.B: Toggles channels/triggers and play/pause/stop, switches banks and patterns.A: Hold it to adjust trigger parameters.L/R: Change trigger notes, parameter values, or BPM. Save/Load STEPPER supports up to 6 banks of 8 patterns each. The current bank is saved by switching banks or selecting the current one in the bank section (If the auto-save option is active). The banks are saved to the SRAM and upon launching STEPPER the last saved state will be loaded. Use “Select + Start” to manually save the current bank.

  Note selection Notes can be changed by pressing "L" or "R" over an active trigger. If the cursor is on the channel selection mode, "L" and "R" will transpose all trigger notes instead. Holding "Select" while adjusting notes will make it jump by an octave instead of a semitone.

  If a scale is selected the notes will snap to the closest note in the given key. This works for individual triggers or, when the cursor is on a channel, for transposing the notes from all the triggers in that pattern.

  Parameters Channels 1 and 2 allow us to control the square wave duty cycle and envelope (Initial volume, direction and time). Additionally, channel 1 can access the “sweep” parameters, which when the time is not zero allows for interesting FX and can also be used to create even shorter envelope sounds.

  STEPPER: Channel 1 (Square)

  STEPPER: Channel 1 (Square) Channel 3 is the wave channel. In this channel we have access to 2 selectable wavetables that can be played independently (Voice A or B) or one after another (Voice A + B). This channel has no volume envelope and it will only play for one step duration. Each wavetable has access to three basic shapes (sine, saw & square) and 4 different variations for each of them.

  STEPPER: Channel 3 (Wave)

  STEPPER: Channel 3 (Wave) Channel 4 is the noise channel, mostly used for percussive effects. It uses an envelope to shape the sound and has two modes of operation. Mode A is rounder and mode B sounds more metallic.

  STEPPER: Channel 4 (Noise)

  STEPPER: Channel 4 (Noise) Adjust the parameters by holding “A” hovering over a trig. Parameters are stored per trigger and adjusted individually for each of them. If the cursor is on channel selection mode, when adjusting the channel parameters these will be copied to all 16 triggers. Note that this global adjustment is not stored when saving banks and patterns. The grey color on the global adjustment helps differentiate between trigs and channel parameters. A compatible trig/parameter can be pasted into a channel to apply it to all triggers.

  Patterns Patterns can be changed or edited by navigating to the left column with the cursor. Pressing the B button will queue a pattern to run on the next cycle. The queued pattern will be highlighted in blue.

  We can edit different patterns other than the one that is currently playing. The pattern we are currently editing is represented by a grey/blue cursor whilst the one in play is highlighted in white.

  Each pattern stores information about active channels and their trigger notes and parameters. BPM can also be stored independently for each pattern.

  Patterns can be cleared with “Select + L + R”. This command is reversible until a cleared pattern has been modified to prevent pattern loss issues. Empty/cleared patterns are shown as dotted boxes.

  STEPPER: Pattern chains

  STEPPER: Pattern chains

  Up to 16 patterns can be chained and these chains can be sequenced and toggled on the fly, which is very fun to do in live performances. Pressing R will add the pattern under the cursor to the next empty slot. Conversely, L will remove the last pattern from the queue. Note that a currently playing pattern can't be removed unless is the last pattern in the chain. Pressing the A button will jump into the pattern chain editor, where individual patterns may be toggled on/off (B) or modified (L/R). Press A again to exit this mode.

  Pattern chains can be toggled, cleared or randomized with the corresponding buttons on the top of the pattern chain editor. The randomization only selects non empty patterns.

  If a pattern chain is playing, it will also appear in the notification bar, with the current pattern being highlighted.

  Note that patterns can still be queued while a pattern chain is active. A queued pattern will play until the end of the 16 steps, at which point the chain will continue from where it left.

  Pattern chains are saved independently for each bank.

  Copy/Paste The GBA has a limited set of controls but using STEPPER’s contextual clipboard we can greatly speedup the editing workflow. We can use “Select + B” (Copy) or “Select + A” (Paste) to perform clipboard operations.

  If the cursor is selecting a pattern, the entire pattern will be copied, including active channels, triggers and parameters. Patterns can only be pasted in other patterns.

  Channels can be copied to other patterns or channels. If the paste destination is a channel other than the original one, only the notes and active triggers will be copied. If the channel is of the same type, all the parameters will also carry over.

  Copying a trigger transfer its pitch (note), active state (on/off) and its parameter settings (Assuming the target is compatible, as explained above). If we only want to copy the parameters, hold “A” to enter parameter select mode and press “Select” to copy them. Now you can paste them to any compatible trigger.

  Note that currently you can only copy/paste within the same bank.

  Customization STEPPER: Themes

  STEPPER: Themes Using the settings menu you can change the theme of STEPPER. Currently you can choose a number of fixed themes of different color flavours. Each theme is comprised of 6 RGB555 colors (0-31 instead of 0-255 of regular RGBA):

  Foreground. Background. Accent color 1 (Cursor). Accent color 2. Accent color 3. Disabled / Background elements (Grey). If you want to contribute a theme to be included in future releases, feel free to contact me about it!

  Other customization options include:

  Global mutes: Muting a channel in one pattern will also mute it everywhere else. Global bpm: Bpm is the same for all patterns and banks. Auto-save: When active, banks will be saved before switching to a different one. Otherwise banks must be saved manually. This can be good for live performance if you want to tweak parameters around but don’t want those changes to persist while queuing a different part/bank. Sync: External synchronization (See next section). Help: Shows some usage prompts on the notifications bar. Disabling this setting can add a bit more context in some cases (For example, displaying the currently playing pattern chain or the full name of the selected scale). For advanced users it’s recommended to disable the help. STEPPER: Settings

  STEPPER: Settings

  Using other gear and synchronization STEPPER Running on a 3DS next to PO-30 Arcade

  STEPPER Running on a 3DS next to PO-30 Arcade 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. The latter is my preferred approach.

  Credits STEPPER was created originally by Bad Diode (Design/Programming), and was later joined by Catbeats (Design/Testing). Together they form the Withered City creative collective, where they are building new music software for old technology.

Development log

Comments
Welcome to zddgame comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments

  

Copyright 2023-2025 - www.zddgame.com All Rights Reserved