Sign in

bobbicodes

@bobbicodes.bsky.social
108 followers 66 following 269 posts

Programmer ♾️ chiptune composer 🏳️‍⚧️ she/her Lisp, Clojure, 6502 assembly, Web dev Author of LispyTunes: codeberg.org/bobbicodes/LispyTunes Main channei: www.youtube.com/@bobbiCodes Music channel: www.youtube.com/@bobbiChips

PostsRepliesMedia
bobbicodes @bobbicodes.bsky.social · 07/09/2026
A white woman wearing glasses, pink and purple eyeshadow and dark red lipstick. There is a blue and pink choker with a little heart, pink top with spaghetti straps and a small amount of cleavage.
020
bobbicodes @bobbicodes.bsky.social · 01/09/2026
unfinished cover of Prokofiev Toccata in D #SID i don't think i've shared this one here yet but figured i'll post this now because i just started working so who knows when i'll get around to finishing it
000
bobbicodes @bobbicodes.bsky.social · 16/08/2026
Jurassic Park Theme (John Williams) #SID
010
bobbicodes @bobbicodes.bsky.social · 20/07/2026
Seems like this feature basically works
020
bobbicodes @bobbicodes.bsky.social · 16/07/2026
trying to make an auto-arpeggio feature for handling polyphony in the piano roll... it's right at the beautiful "failing hilariously" stage oh but midi import works which is neat, that's how i got the failing test data in there
130
bobbicodes @bobbicodes.bsky.social · 14/07/2026
Demonstrating audio waveform overlay feature in #sid piano roll editor
211
bobbicodes @bobbicodes.bsky.social · 13/07/2026
made it so you can import an audio file in order to match grooves
A piano roll editor as would appear in a digital audio workstation. Superimposed on the grid is the waveform of an imported audio file, with magenta bars overlayed in the sequencer representing the copied drum groove.
020
bobbicodes @bobbicodes.bsky.social · 11/07/2026
Maki SID doodles
020
bobbicodes @bobbicodes.bsky.social · 08/07/2026
here's the slide notes in action #sid #chiptune
110
bobbicodes @bobbicodes.bsky.social · 07/07/2026
got it looking and feeling quite a bit better
010
bobbicodes @bobbicodes.bsky.social · 07/07/2026
spent way longer than i should have to implement slide notes
110
bobbicodes @bobbicodes.bsky.social · 05/07/2026
by adding arpeggios, we can finally make drums
010
bobbicodes @bobbicodes.bsky.social · 04/07/2026
Added filter cutoff macros, can almost make music with this now
182
bobbicodes @bobbicodes.bsky.social · 30/06/2026
making a sid piano roll editor
A piano roll music composition interface shown on a web page, with the keyboard on the left and a few notes on the grid. The right sidebar is going to be the instrument UI, which currently displays a single instrument which is a plain square and a default envelope setting. At the top are controls for loading and saving projects, hardware export, and navigating the grid. Finally on the bottom is a play and stop button.
252
bobbicodes @bobbicodes.bsky.social · 05/06/2026
doing some megaman on the sid
193
bobbicodes @bobbicodes.bsky.social · 22/03/2026
rough #SID sketch
010
bobbicodes @bobbicodes.bsky.social · 07/03/2026
Wrote my own renderer, replacing the Cairo graphics library with 87 lines of JavaScript codeberg.org/bobbicodes/s...
010
bobbicodes @bobbicodes.bsky.social · 01/03/2026
Scarlatti Harpsichord Sonata k.420 (SID)
010
bobbicodes @bobbicodes.bsky.social · 13/02/2026
A/B test of identity phase locking in phase vocoder based time stretching algorithm. This eliminates the artifacts typically introduced due to vertical phase discontinuities. See the paper "Phase Vocoder Done Right" by Zdenek Pruša and Nicki Holighaus: arxiv.org/pdf/2202.07382
000
bobbicodes @bobbicodes.bsky.social · 03/02/2026
Making an N163 resampler webapp codeberg.org/bobbicodes/n...
A web page with a button to load an audio file, set of input fields for wave size, wave count and resample period and text area for the wave output data. Below it is a graph showing the resampled PCM data as a white line and purple shading for the N163 wavetable values ranging from 0 to 15
030
bobbicodes @bobbicodes.bsky.social · 30/01/2026
Made it so you can add/remove code blocks for driver customization codeberg.org/bobbicodes/n...
000
bobbicodes @bobbicodes.bsky.social · 28/01/2026
Made another big improvement to the live SID scopes. The emulator now manages all the resampling and triggering in order to minimize the amount of data being sent between threads, and make the rendering as smooth as possible, at least for a webapp running in real time.
052
bobbicodes @bobbicodes.bsky.social · 24/01/2026
Finally finished adding Namco 163 support and hooking it up to the viewers codeberg.org/bobbicodes/n...
031
bobbicodes @bobbicodes.bsky.social · 22/01/2026
messing with the Super Mario Bros. music engine to put it in a minor key
000
bobbicodes @bobbicodes.bsky.social · 18/01/2026
Got the Famistudio driver working in the nerdy6502 editor. This opens up a lot of possibilities because it supports every expansion and is way more efficient, both in CPU and rom space
100
bobbicodes @bobbicodes.bsky.social · 05/01/2026
Isn't that what I'm doing here in the fetch routine? I've got the assembler code open now, so if there's a bug I'll try to fix it.
A 6502 assembly instruction using the zero page y addressing mode.
130
bobbicodes @bobbicodes.bsky.social · 04/01/2026
Cover of Vegetable Valley from Kirby's Adventure (NES), to test my new DPCM implementation in Nerdy6502
1133
bobbicodes @bobbicodes.bsky.social · 31/12/2025
ok how about I just put the tracker in the program that works, lol
111
bobbicodes @bobbicodes.bsky.social · 31/12/2025
It's obviously running like absolute shit but I've got the tracker viewer rendering, sort of
110
bobbicodes @bobbicodes.bsky.social · 30/12/2025
Successfully moved the SID emulator to a Web worker, now all data is processed in a separate thread, the audio and oscilloscope buffers are sent using Transferable objects and the text for the tracker is messaged over each frame which completely fixed the UI stuttering as far as I can tell.
181
bobbicodes @bobbicodes.bsky.social · 27/12/2025
put scopes in the tracker viewer
000
bobbicodes @bobbicodes.bsky.social · 26/12/2025
here's most of the second half of the tune
000
bobbicodes @bobbicodes.bsky.social · 25/12/2025
WIP SID cover of Nemesis, the Warlock by Rob Hubbard
220
bobbicodes @bobbicodes.bsky.social · 19/12/2025
Made a tracker-style register viewer for my SID player codeberg.org/bobbicodes/sid
142
bobbicodes @bobbicodes.bsky.social · 20/10/2025
learning to use the pokey "filter" a little bit, lol
151
bobbicodes @bobbicodes.bsky.social · 17/10/2025
Took an entire day to get it basically working but I'm shocked that it does, that was really hard to figure out The timing is off for some reason, it might be a sample rate mismatch, or I might just not be syncing the CPU with the playback engine properly
110
bobbicodes @bobbicodes.bsky.social · 16/10/2025
Developing the POKEY editor now, got basic stuff working, load/save project files, SAP export. I'm gonna make a built-in oscilloscope viewer next
182
bobbicodes @bobbicodes.bsky.social · 03/10/2025
SID port of one of my originals, "Catch the Wave" (WIP)
000
bobbicodes @bobbicodes.bsky.social · 24/08/2025
Added a bunch of i/o stuff to start moving it towards a proper SID editor. Uses simple JSON for loading/saving the entire project state. SID export is a no-brainer because the assembler output is already a SID file. WAV export auto-detects song length. bobbicodes.codeberg.page/nerdySID/
162
bobbicodes @bobbicodes.bsky.social · 20/08/2025
Added arpeggios, using them here for the chords and drums. Also added the debugger to the live app: bobbicodes.codeberg.page/nerdySID/
041
bobbicodes @bobbicodes.bsky.social · 18/08/2025
The interactive SID tutorial is getting a built-in step debugger
020
bobbicodes @bobbicodes.bsky.social · 16/08/2025
Uploaded lesson 9: Modulation to NerdySID Adds vibrato, PWM, filter sweep (oh my!) bobbicodes.codeberg.page/nerdySID/
010
bobbicodes @bobbicodes.bsky.social · 13/08/2025
Preview of next SID driver lesson, which will add automated wave sequences, vibrato, PWM and filter sweep
NerdySID Interactive C64 SID tutorial
Lesson 9: Modulations

So far, to have parameters change over time requires setting them manually via opcodes. For things like vibrato, pulse width modulation and filter sweeps, this would end up spending a considerable amount of bytecode and also obscure the intent of our composition with register spam. Our solution will be to create routines which automate variables over the course of the note, either by reading values from a table (in the case of wave/control changes), or by way of speed/width parameters (vibrato, PWM and filter sweep). This will make our song section simple once again, and we can then use macros which will set up the instrument by selecting a particular set of automations.

We have 2 new subroutines, set wave sequence and set duty. The first of which indexes into a table of sequences to be written to the control register, advances to the next step and stores the value. The second routine is cropped out of the screenshot, but it handles the pulse width modulation according to the current duty value, center, direction, speed and width variables.
031
bobbicodes @bobbicodes.bsky.social · 13/08/2025
I published the SID tutorial, with the newest lesson showing how to create instruments using assembler macros! bobbicodes.codeberg.page/nerdySID/
041
bobbicodes @bobbicodes.bsky.social · 11/08/2025
Added opcodes to the engine so sound parameters can be changed during the song. Next step I'm gonna change the note durations to be represented in a number of ticks instead of fractional lengths, because what we really need to create proper instruments is precise frame-level control.
022
bobbicodes @bobbicodes.bsky.social · 09/08/2025
The pokey driver went so swimmingly that now I'm using the same template for the SID
341
bobbicodes @bobbicodes.bsky.social · 08/08/2025
Up to lesson 6, now supports multiple streams and note lengths
000
bobbicodes @bobbicodes.bsky.social · 08/08/2025
With updated tuning
021
bobbicodes @bobbicodes.bsky.social · 08/08/2025
Figuring out how to make a POKEY driver by adapting my interactive NES tutorial, which builds a simple sound engine in the browser in several incremental steps. I'm up to lesson 4, which plays a sequence of notes of equal length.
372
bobbicodes @bobbicodes.bsky.social · 11/07/2025
Beethoven Piano Sonata #1 (SID)
020