Version 2 update
I added two different variations of melodic voices. A lead and bass voice. Set any track to variation D and you can enter lead voice notes spanning a little more than an octave on each step using (hold X + ⬆️⬇️). Variation E is the bass voice. These can be added to any track and then you can switch back to the other variations (A-C) and add drum sounds to that same track. In order to delete a melodic note/beat simply double tap X. All other marker types are still deleted with a single tap.
I was having a little trouble getting the save function to retain all of these new configurations but I think I solved it. Let me know if you run into a scenario where the save and load (when resetting the cart) functions don't work.
Ok, here's a little drum sequencer I put together. I crammed a lot of features into this and it leans more into the features than the appearance for sure. Maybe a steep learning curve so start slow. You should definitely explore the ability to set individual track lengths and pingpong mode once you have the start stop, mute, and place beats features down.
It's a tad jittery but I think of it as having a built in humanizer effect. With the right beats it can sound pretty good actually.
Navigation & Basics
Arrow Keys (⬆️⬇️⬅️➡️): Move the player cursor around the grid and sidebar.
X Button: Add or Remove a beat at the current cursor position.
Z + X: Toggle Play / Reset.
Track Controls (Cursor on the Grid)
When your cursor is over the 16-step grid (Player X ≥ 16):
Z + ⬅️ / ➡️: Change the Loop Length for that specific track (min 2, max 16).
Z + ⬆️: Toggle Mute for the specific track.
Z + ⬇️: Toggle Pingpong Mode (The playhead bounces back and forth instead of looping).
Instrument Controls (Cursor on Left Sidebar)
When your cursor is over the track names like "ki", "sn", etc.:
Z + ⬅️ / ➡️: Cycle through Variations A, B, and C.
SFX Slots: A = 0–7, B = 8–15, C = 16–23.
Global & BPM Controls (Cursor on the Bottom Row)
When the cursor is highlighting the "bpm:" line:
Z + ⬆️: Increase BPM (Faster).
Z + ⬇️: Decrease BPM (Slower).
Z + ⬅️: Save Pattern (Stores grid, BPM, mutes, variations, and lengths to memory).
Z + ➡️: Clear Pattern (Wipes all beats from the grid).
feel free to add your own sounds and change things around as you see fit. I could dedicate one channel to melody line and one to a bassline. That might come in a future update if I feel like putting more time into this.

Here's a little drum sequencer. 8 independent channels/voices. Each channel can have an unique length, can be muted/unmuted, and can play forward or in pingpong mode, providing lots of poly-rhythm possibilities and performability. The whole sequence can be paused/restarted. There is currently no save feature. I didn't spend very long creating the sounds. Perhaps someone can make better sounds and reuse this.
There is a fair bit of jitter, inconsistency in how the beats are triggered. Everything I have found suggests this might be due to a limitation in the way Pico-8 generates timers based on fps. Does anyone have any suggestions to smooth this out? I'm at a loss with that problem.
Arkonids is my first attempt to program anything and it was a total blast. I followed along with the lazy devs hero tutorial videos from youtube and made some changes where I could. I have years of experience with tracker music programs like Impulse Tracker, LSDJ, etc., so the music and sounds were a super fun part of this for as was the pixel art design.
There are a handful of things I wished were different, for instance, I wish it recorded your high score whenever you beat a previous high score regardless of whether you beat the game. That seems to be more true arcade style. I also wanted to implement a wormhole brick that would transport you to the location of a linked brick elsewhere on the board, a power up timer, and more powerup drop movement but I'm maxed out on tokens as is. I'll save some things for a future game or revision.






1 comment