bobbicodes's Avatar

bobbicodes

@bobbicodes

Programmer ♾️ chiptune composer πŸ³οΈβ€βš§οΈ she/her Lisp, Clojure, 6502 assembly, Web dev Author of LispyTunes: https://codeberg.org/bobbicodes/LispyTunes Main channei: https://www.youtube.com/@bobbiCodes Music channel: https://www.youtube.com/@bobbiChips

95
Followers
61
Following
219
Posts
22.11.2024
Joined
Posts Following

Latest posts by bobbicodes @bobbicodes

Video thumbnail

Wrote my own renderer, replacing the Cairo graphics library with 87 lines of JavaScript
codeberg.org/bobbicodes/s...

07.03.2026 23:54 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Adding a 1ms delay after encoding each frame solves the problem. Not sure if there's a better way.

06.03.2026 10:26 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Uh so it seems I'm doing something wrong because it crashes my computer when rendering more than like 50 seconds, lol.

I'm not sure what could be jamming it up, because all I'm doing is piping frames to the ffmpeg process in a loop. I'm thinking maybe it's running faster than it can be encoded.

06.03.2026 09:59 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Updated the SID oscview tool to stream the video to ffmpeg instead of writing all the images to disk.

06.03.2026 08:21 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

it sort of smells like a job for suffix trees, which are an efficient way to solve the "longest repeating substring" problem. I use them in my importer for extracting patterns.

05.03.2026 04:35 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Scarlatti Harpsichord Sonata k.420 (C64/SID)
Scarlatti Harpsichord Sonata k.420 (C64/SID) YouTube video by bobbiChips

I wrote a CLI tool to render this. It still has a few issues but it's available at codeberg.org/bobbicodes/s...
youtu.be/o-nxVCMLiGU

03.03.2026 12:54 πŸ‘ 1 πŸ” 0 πŸ’¬ 2 πŸ“Œ 0
Video thumbnail

Scarlatti Harpsichord Sonata k.420 (SID)

01.03.2026 06:02 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Released my Sabbath cover as a proper #SID tune
deepsid.chordian.net?file=/SID%20...

28.02.2026 12:51 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

There is an already stripped down version of NotSoFatso which is used for Famistudio's nsf import, might be worth a look

25.02.2026 01:30 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Video thumbnail

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

13.02.2026 08:21 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

"i have a theory: pasta companies assume you're going to walk away from the stove. they're building in a buffer for idiots..."

But wouldn't that mean they would have to reduce the time listed on the box, not increase it

06.02.2026 20:57 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
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

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

Making an N163 resampler webapp
codeberg.org/bobbicodes/n...

03.02.2026 13:52 πŸ‘ 3 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Video thumbnail

Made it so you can add/remove code blocks for driver customization
codeberg.org/bobbicodes/n...

30.01.2026 19:18 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Video thumbnail

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.

28.01.2026 14:48 πŸ‘ 6 πŸ” 2 πŸ’¬ 0 πŸ“Œ 0
Video thumbnail

Finally finished adding Namco 163 support and hooking it up to the viewers
codeberg.org/bobbicodes/n...

24.01.2026 05:57 πŸ‘ 2 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0
Video thumbnail

messing with the Super Mario Bros. music engine to put it in a minor key

22.01.2026 12:46 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Oh yeah and it means you can export songs right from Famistudio and play with them in here

18.01.2026 20:20 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Video thumbnail

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

18.01.2026 20:18 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Kreutzer Violin Etude No.13 (SID)
Kreutzer Violin Etude No.13 (SID) YouTube video by bobbiChips

www.youtube.com/watch?v=Gz3n...

15.01.2026 13:05 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
es65 6502 assembler for the browser

Did a bunch of work on this, now has conditionals, and added a proper expression evaluator which supports all common operators.
codeberg.org/bobbicodes/e...

15.01.2026 04:46 πŸ‘ 3 πŸ” 2 πŸ’¬ 0 πŸ“Œ 0

interesting that he chose to use an analogy of something that is socially accepted yet morally questionable at best

12.01.2026 03:01 πŸ‘ 4 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

If something is tedious, that's a signal that either:

1. There could be a better way to do it
2. Some tool* could be built to make it less shitty

This is how things improve over time

Having the task completed by magic means they won't

* One that operates using explainable logic and rules

11.01.2026 11:28 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

the Ben Eater video where he builds a SID player on a fucking breadboard and then generates Python slop to read the bytes in

the fact that he did it isn't even as bad as his need to announce that he did

05.01.2026 19:05 πŸ‘ 17 πŸ” 1 πŸ’¬ 1 πŸ“Œ 0

it should be fixed now. thanks for spotting that!

05.01.2026 08:52 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Oh I see! I found the bug, it's actually a stupid syntax thing

05.01.2026 08:38 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
A 6502 assembly instruction using the zero page y addressing mode.

A 6502 assembly instruction using the zero page y addressing mode.

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.

05.01.2026 06:48 πŸ‘ 3 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Preview
Stop filling scope buffers when too large The `drawGraphics` function runs in a `requestAnimationFrame` loop which doesn't run if the tab is in the background, but the oscilloscope buffers are continuously filled by the audio thread. This wil...

this was an easy fix! updating the live app now codeberg.org/bobbicodes/n...

05.01.2026 06:27 πŸ‘ 1 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0

yeah for some reason once you step with the debugger the song gets out of sync, and I can't figure out why

04.01.2026 19:53 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

hmm it could very well be a bug in (or rather, unimplemented part of) the assembler, which is just barely past the toy-stage if I'm being honest

but I designed it to be easy to extend so it shouldn't be difficult

04.01.2026 19:31 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

oh I bet it's the scope buffers, because it's in a loop that stops rendering if the tab is not active, but the emulator keeps filling them up

04.01.2026 04:39 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0