Video clips
Chip music
Hardware projects

Bitbuf

The bitbuf is a portable 8-bit minimalistic live looping machine. Designed as a tool for chip music improvisation and live performances, it aims to provide a set of simple yet versatile features. It's a work in progress, but I've made a prototype which is already quite functional and enjoyable to work with.

The word bit in this context refers to a small fragment (a loop) of a piece of 8-bit music. Buf is computer programming jargon for a piece of memory where you store something for later retrieval. The basic job of this machine is to memorise a loop, and then recall it over and over again.

Presentation video

Related tools

Other portable minimalistic loop-based sequencers exist, such as LSDj for the gameboy, Korg DS-10 for the Nintendo DS, nanoloop and recently the DCM8. They have certainly been sources of inspiration. However, I find them to be designed in a way which, to me, is fundamentally unsatisfactory: First, neither of them appear to be useful for live looping, where loops are recorded as part of the performance. Second, they lack support for a number of techniques that are prevalent in chip music, such as the ability to change the current chord in a simple way.

Drawing on my own experiences of 8-bit music, I developed a new kind of sequencer interface to address the specific needs of chiptune improvisation (which I had to figure out as I went along). An overview of the interface is given in the presentation video above. My design goals were to create an interface which would be useful, logical and minimalistic, but not necessarily intuitive to a new user.

Technical details

The bitbuf is based on an 8-bit microcontroller: An ATmega88 with 1 kB of RAM and 8.5 kB of ROM, running at 20 MHz, programmed in C and assembly language. The tight hardware specifications aid in keeping the design minimalistic.

The sound output is provided as a 44.1 kHz mono line out signal, via an external DAC chip (MCP4921). The input is omni-mode MIDI, with support for a very limited set of continuous controllers.

The software architecture is pretty straight-forward: A 44.1 kHz timer triggers an interrupt handler which generates sound from eight oscillators and a current sample level. The worst case execution time of this handler is currently 355 cycles, which at 44.1 kHz corresponds to about 80% of the computational power of the ATmega88. Another timer, at 5 kHz, updates the sample level from a DPCM table (if a drum sample is active), scans the switch and LED matrix, and sets a flag when the playroutine is due. A UART interrupt writes received MIDI bytes into a circular buffer. Meanwhile, in the main context, the MIDI buffer and playroutine flag are polled, and acted upon. These actions include reading and modifying the loop data structure, allocating oscillators to the tracks and live notes, and updating the oscillator parameters.

Future

This is a prototype, and I'm eager to get some feedback. I don't have any long-term plans for the bitbuf yet, but please let me know what you think so far; general improvement suggestions, requests for specific features, opinions.

Posted Thursday 22-Dec-2011 14:20

Discuss this page

Disclaimer: I am not responsible for what people (other than myself) write in the forums. Please report any abuse, such as insults, slander, spam and illegal material, and I will take appropriate actions. Don't feed the trolls.

Jag tar inget ansvar för det som skrivs i forumet, förutom mina egna inlägg. Vänligen rapportera alla inlägg som bryter mot reglerna, så ska jag se vad jag kan göra. Som regelbrott räknas till exempel förolämpningar, förtal, spam och olagligt material. Mata inte trålarna.

Anonymous
Thu 22-Dec-2011 14:54
Would love to buy one!

174 more comments hidden. Click to show all.

Incarnate
Brian Christensen
Fri 22-Feb-2019 06:39
Hey Linus - Greetings from Denmark :)

I remember seeing the BitBuf Presentation a few years ago, being quite impressed by it, I came to your site here, to follow it's progress and learn more about it. Since you've put up the BifBuf presentation, quite many have been requesting it to be made commercially available, it being mass produced, or the very least a DIY kit be made with schematics and components be made available, so people could make the BitBuf themselves. But seemingly no response from you, kept checking in to see if any progress had happened, then as time went by, I kind of forgot about it as nothing new seemingly happened.

So, some years later I suddenly remembered the BitBuf and remembered this site, and immediately came here in hopes that the project had progressed, but sadly it seems nothing has happened.

I'm truly excited for the piece of technological equipment you've made the BitBuf to be - so Linus what is the current status with the BitBuf, and do you have any plans in terms of making it commercially available?

Best Regards
Brian
Anonymous
Thu 4-Feb-2021 22:57
This thing is awesome! The technical details section is quite interesting as well.

Nicely done.
Anonymous
Thu 10-Nov-2022 22:52
I'm eager to get my hands on this beauty. Have you considered sharing/selling your code and design? I would love to build a unit!
darwiniandude
Rowan Pope
Sat 15-Jul-2023 02:00
This is fantastic. It reminds me more than a little of your PO-20 Arcade pocket operator, or should I say the pocket operators in general. I have to wonder how much of the pocket operator idea was inspired by this project? As of yesterday they have the PO-20 in stock again, I've always wanted one so i've just ordered, even though the price is more now than it originally was. Love your work, especially your musical instruments made with C64 tech :)