Video clips
Chip music
Hardware projects

The Commodordion

The Commodordion is an 8-bit accordion primarily made of C64s, floppy disks, and gaffer tape.

About the project

I've been tinkering with this beast, on and off, for about three and a half years. So from my point of view, the Sixtyforgan and Qwertuoso, where I first demonstrated the accordion-like keyboard layout, were spin-offs from this project. In fact, when I released the Sixtyforgan video in 2021, I already had an early version of the Commodordion standing by, but it wasn't presentable at the time. There was no acrylic cover on the back so the guts kept spilling out, and I hadn't coded the the rhythm-box mode for the left-hand side yet.

Things were slowly coming together, though. Once I was happy with the design of the instrument, there was the small matter of learning how to play it. As any budding accordion player can tell you, it's frustrating that you can't see what your hands are doing. Mirrors can help to a degree, but in the end you really have to go by feeling and muscle memory. The little red sticker on the right-hand-side “U” key is there to help me find my way when I have to jump from one area of the keyboard to another.

The rhythm box

The melody side of the Commodordion runs Qwertuoso. The accompaniment side runs a custom application for playing chords and loops, which I'll describe here. Technically both C64s load exactly the same program, but it's possible to switch between the two applications with a special key combination.

Once the accompaniment mode is up and running, the left-hand side is operated with single keypresses only—no key combinations are required. Commonly used keys are close together and, where possible, near the outer edge of the keyboard. It's nevertheless hard to reach some of the functions with the left hand, especially when setting up a loop. I'll return to the matter of ergonomics later in this article.

There's a live mode and a programming mode. Shift lock—a mechanical toggle switch on the C64—is used to select between them.

Live mode

In live mode, the three rows with letters on them represent chords. The layout is very much inspired by the Stradella bass system found on many accordions. The bottom row, from Z to Cursor Right, contains all the major chords arranged according to the circle of fifths. Thus, from any given I chord (tonic), you'll find the IV and V chords on either side of it. The second row, from A to Return, contains the minor chords, and the third row contains diminished chords. Thus, for instance, the keys Z, A, and Q represent C♯ major, C♯ minor, and C♯ dim, respectively.

When you press and hold a chord key and no loop is playing, the program simply plays the chord as an arpeggio and a bass note.

The function keys (F1, F3, F5, F7) start playback of one of four loop patterns stored in memory. When a loop is playing, pressing a chord key adapts the contents of the loop to the desired chord. The digit keys 4–9 set the tempo. Space stops playback.

Programming mode

In programming mode, most keys represent events (triggers or notes) that can be inserted into the current loop. There are drum triggers in the area near the right shift key. Five letters in the bottom row (Z–B) represent bass notes, namely the 1st, 3rd, 5th, 7th, and 8th note from the scale of the current chord (or in case of a dim chord, the actual chord notes). The nine letters on the second row (A–L) invoke the current chord in some fashion, as arpeggios or individual notes.

When no loop is playing, these keys simply trigger the event directly, allowing you to play around and find what you're looking for.

When a loop is playing, the event is recorded. The four function keys start playback—and thus recording—of a given pattern. Space stops playback. Clr/Home clears the current pattern.

The loop is divided into a number of steps, currently always sixteen, and recorded events are quantized to the nearest step. A metronome is heard whenever a loop is playing in programming mode.

The bellows

How the bellows work is explained in the video. But in the early stages of this project (such as when the material for the “montage” part of the video was shot), I had no idea of how I was going to measure the air flow. I went through a number of failed attempts before settling on the final design.

Hot wires and turbines

One approach was inspired by the fuel injection systems used in car engines. You attach a temperature sensor to a heating element (a resistor that's designed to dissipate power). Then you create a feedback loop to keep them at a constant temperature. If the air is still, most of the heat stays near the heating element. But if the air moves, more energy is needed to stay warm, as anybody who lives in a chilly, windy place will know. By measuring how much electric power the system is consuming, you can work out the air flow.

It sounds convoluted, but I figured that if car engines rely on this technique, it probably works. And I actually managed to build a working prototype. Unfortunately it didn't respond to changes in air flow quickly enough for musical articulation. My prototype ran at a temperature of around 50°C. I suspect that it would have responded faster if I had increased the working temperature, but I worried that I'd end up burning myself or even starting a fire.

So I went to look for alternatives. While I was reading up on anemometers and propellers, I came to watch a YouTube video about renewable energy. A man was explaining something—I don't remember what it was, though I'm sure it was interesting—while standing next to a wind turbine, and he had to shout in order to make himself heard over the din. Some of that noise came from the machinery, but a lot of it was unmistakably from the wind hitting the microphone. I remember the “aha” moment vividly: That's how I'm going to measure air flow!

The envelope follower

The envelope follower is implemented on a microcontroller. I sample the incoming noise rather crudely with an analogue comparator: If the signal is above a fixed (but trimmable) threshold, that sample is considered a one. Otherwise it's a zero. Summing the last 512 samples (i.e. counting how many of them were above the threshold) gives a number that's proportional to the amount of noise.

I compute this number as a running average, which has the side effect of low-pass filtering the signal. Then I apply an extra filtering step to smooth out the curve even more. This is a tradeoff: The response needs to be snappy enough for musical phrasing, but slow enough not to contain audible frequencies. With too little filtering, you'll actually hear some of the noise from the microphone bleeding into the sound. As you can see in the “set-up” part of the video, the volume changes are lagging behind the movement of the bellows somewhat, and this is a result of the filtering. The response is quick enough to work with musically, but I think there's room for improving this algorithm.

The noise level doesn't vary linearly with the bellow pressure, so I apply a gamma correction curve before sending the output to an off-the-shelf multiplying DAC.

This particular multiplying DAC is essentially a very long resistor ladder, dividing the analogue input voltage into 4096 equal parts. A 12-bit number is used to select one of the intermediate voltages and bring it to the output.

Mixing

The audio outputs from the two C64s are mixed together in equal proportions, and this combined signal becomes the analogue input to the DAC. As it happens, I prefer the melody side to be louder than the accompaniment side, but that balance is controlled from the application software by setting the master volume of each SID chip.

As I mention in the video, when you hold the bellows still, the volume doesn't drop all the way to zero. This feature would be easy to implement in the microcontroller, or even bake into the gamma correction table. But it's often a good idea, where possible, to defer mixing decisions until after recording. Stereo cables are handy: I actually send the DAC input (the mixed audio from both C64s, unaffected by the bellows) over the left channel and its output over the right channel. Thus, the right channel drops all the way to zero when the bellows stop, but the left channel is held at a constant level. I listen to both channels on my monitor speaker when playing, but they are recorded separately, so I can fine-tune the mix according to taste later.

The recorded audio is also subjected to a bit of eq, compression, and stereo reverb.

Ergonomics

The Commodordion has one huge flaw: It puts a lot of strain on the left wrist, arm, and shoulder. Most keys on the left-hand side are hard to reach, so the wrist ends up in a fully bent position, and at the same time the arm needs to carry a lot of weight while working the bellows. As a musician I take ergonomics seriously (and so should you!), so unfortunately I won't be playing this instrument very often, and I most definitely won't practice for hours to improve my left-hand technique. This rather undermines the potential for the Commodordion as a viable musical instrument.

But on a brighter note, I'm not worried about the right-hand side at all: That arm is in a sound, relaxed position. I'll be sure to bring that lesson with me as I continue to explore the design space of C64-based instruments.

Posted Friday 21-Oct-2022 17:14

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
Fri 21-Oct-2022 18:42
This is truly incredible! Fantastic work on this!
Anonymous
Fri 21-Oct-2022 19:57
aren't you afraid of anonymous comments? is this even rate limited or something?
Anonymous
Fri 21-Oct-2022 20:53
Another amazing invention!
Anonymous
Fri 21-Oct-2022 21:06
Truly world-class.
Anonymous
Fri 21-Oct-2022 21:28
That is one of the most unique things I've ever seen done with a Commodore and floppies!
Anonymous
Fri 21-Oct-2022 21:46
Awesome!
Anonymous
Fri 21-Oct-2022 22:09
Control theory comes to mind when reading this piece, the feedback looping/correction component is at the base of control theory. Excellent work on the Commodordion, though i will say the bellows are, in my mind, the most elegant of the design. Excellent work!

aren't you afraid of anonymous comments? is this even rate limited or something?

Back in the early internet, this functionality was a base feature for most websites. So I don't know why they would be fearful.
Anonymous
Fri 21-Oct-2022 23:46
wowzers
Anonymous
Sat 22-Oct-2022 04:00
That is some beautiful innovation there.
Anonymous
Sat 22-Oct-2022 04:49
Wonderful, beautiful. Next project, a C64 Bagpipe!! :)
Anonymous
Sat 22-Oct-2022 04:57
Woah man you’re truly a genius. I want more!
Anonymous
Sat 22-Oct-2022 05:58
Fantastiskt! Aldrig sett något liknande - bra jobbat!
Anonymous
Sat 22-Oct-2022 07:07
If you ever revisit this, maybe consider using accelerometers to measure the movement rather than airflow. Your way of course is true to the Accordion function, which has it's own merit (-;
Anonymous
Sat 22-Oct-2022 07:58
great stuff!
Anonymous
Sat 22-Oct-2022 10:35
Awesome!
Anonymous
Sat 22-Oct-2022 11:37
I am so impressed by this project - from the engineering to your beautiful playing. Thank you for sharing this!
Anonymous
Sat 22-Oct-2022 12:17
Don't know how accordians work, but if there's an exhaust port did you try a micro cooling fan there? Air turning the fan generates a voltage and its pretty responsive. Curious if there's a downside that you've already come across though.
lft
Linus Åkesson
Sat 22-Oct-2022 12:44
Don't know how accordians work, but if there's an exhaust port did you try a micro cooling fan there? Air turning the fan generates a voltage and its pretty responsive. Curious if there's a downside that you've already come across though.

One possible downside is that the fan would have to respond equally (or nearly equally) to air flowing into or out of the bellows, whereas I think most fans are optimized for one direction. I also assumed they would have a large threshold of inertia before they start spinning, but I never got around to actually testing or measuring this, so I could certainly be wrong.
Anonymous
Sat 22-Oct-2022 14:37
Nice work! Btw I heard some accordion players today replace the dim chords with perfect 4th’s - more useful in certain types of music
Anonymous
Sat 22-Oct-2022 19:47
You made my week.........My C64 was all joy and you brought it back !!
Anonymous
Sat 22-Oct-2022 21:45
May I ask, are you planning on releasing a recording of your rendition of the Maple Leaf Rag? I found it to be quite a lovely cover!
Anonymous
Sun 23-Oct-2022 09:58
Please perform The Enterntainer with this. It have loved it always.. the first time when I heard it happens in late of 80's and it was performed using a regular C64 and SID.
Anonymous
Sun 23-Oct-2022 10:19
The quarantine was worth it.
Anonymous
Sun 23-Oct-2022 13:48
Just awesome. Thank you!
Anonymous
Sun 23-Oct-2022 18:40
You gave a new life to a piece of hardware dude! Awesome
Anonymous
Sun 23-Oct-2022 20:53
Great idea and great implementation and your music is just awesome, great respect!
Mikel
607
Mon 24-Oct-2022 11:15
One of my favourite projects ever. Thanks a lot for writing this extensive article! The YouTube video is great partly because of not going into so much detail, and keeping the video at an approachable length for most people. I wanted to know more after I had finished watching it, though, and I'm very glad I could get it!
Anonymous
Mon 24-Oct-2022 19:31
Просто супер! Восхищаюсь Вашим изобретением
Anonymous
Mon 24-Oct-2022 20:03
I'm completely speechless. it's awesome.
Anonymous
Mon 24-Oct-2022 22:53
Una maravilla! me encantaría tener un Comodorión para mis espectáculos con niños, yo también toco el acordeón pero el diatónico y hago música con una ganeboy al modo chiptune en Soundclub me llamo Bravuboy y te puedes descargar todos los temas que hice gratis, eres un genio!! Felicidades!! 👏🏻👏🏻👏🏻👏🏻👏🏻 Mi nombre es Pulpiño Viascón, un fuerte abrazo desde el otro lado del Atlántico.
Anonymous
Tue 25-Oct-2022 12:00
This is the most wonderful thing I have seen in a long time. Thank you for making my day!
Anonymous
Tue 25-Oct-2022 21:16
It's brutifull!!!
Anonymous
Tue 25-Oct-2022 23:58
I am impressed not only with the ingenuity of the design, but with your skill in playing it. Between the large amount of time you undoubtedly have had to spend tweaking it and the small amount of time you have actually had a working model, you have found time to learn to play it proficiently, technically and musically. Bravo!
Anonymous
Wed 26-Oct-2022 03:31
FYI, I tried to set up an account to post and got “ A database error occured! Sorry for the inconvenience.”

—————————

Is it my imagination or is there a tremolo or pitch bending effect? Is there a modifier key for that or is it always on and most of the notes in the piece you played too short for it?
Anonymous
Wed 26-Oct-2022 11:47
Thank you. I love this and you made my day! I miss my c64. 😭
lft
Linus Åkesson
Wed 26-Oct-2022 19:41
FYI, I tried to set up an account to post and got “ A database error occured! Sorry for the inconvenience.”

This should be fixed now. Thanks for reporting it!

Is it my imagination or is there a tremolo or pitch bending effect? Is there a modifier key for that or is it always on and most of the notes in the piece you played too short for it?

Yes, an automatic vibrato kicks in after about one second. This is a feature of Qwertuoso, and it can be turned on or off. In my Vocalise video, for instance, I keep it on for most of the piece but turn it off for the final note.
Anonymous
Fri 28-Oct-2022 20:04
Best music ideas always come from Sweden, you made my day :-)
AccordionBruce
Bruce Triggs
Sun 30-Oct-2022 01:03
Do you play C-system chromatic button accordion layout? Is that most common in Sweden? So many people just learning that those 🪗s map to their computer keyboards! Now build an accordion that runs Commodore 64 programs.
Anonymous
Mon 31-Oct-2022 01:50
This is absurd, I'm positively stunned.
Anonymous
Mon 31-Oct-2022 18:33
How much does it weigh? How many preset rhythm tracks can it store?
Anonymous
Mon 31-Oct-2022 23:20
I thought i heard some vibrato in the performance of Maple Leaf Rag, how did you control that?

(Also i love the commodordion and want to make one of my own now lmao)
Anonymous
Tue 1-Nov-2022 19:21
Absolutely beautiful, what a wonderful project & piece of art
Anonymous
Thu 3-Nov-2022 16:20
Do you plan on making more and selling them in the future? I would be interested in purchasing one or having one commissioned.
Anonymous
Fri 4-Nov-2022 02:40
Just heard your amazing version of Maple Leaf Rag on CBC radio (Canada) and I have to say...it's one of the most perfect pieces of music I've heard in decades.

Congratulations, and thank you!
Anonymous
Fri 4-Nov-2022 04:36
That is one of the most unique things I've ever seen done with a Commodore and floppies!
And those are the BIG 8.5 inch floppy disks, which hardly no one knows about. They went out of favor just before the first personal computers hit the market with 5.5 inch floppies. The big floppies were used on mini-computers like DEC and such.
--------------
The frickin net knows everything about me. My word image is extubate. My son-in-law is an anesthesiologist. Intubate and extubate, with means putting a breathing tube in, and taking it out, is what he does.
Anonymous
Sat 5-Nov-2022 04:12
I loved the C64 back in the day.

To think I just made industrial controllers with the C64.

Thanks for a flash to the past.

Love your Accordion-ish instrument.
Anonymous
Sun 6-Nov-2022 16:58
Amazing! I am an accordionist and one one.
MaceRat55
Mace John Rattington
Sun 6-Nov-2022 19:15
This is amazing!
Anonymous
Mon 7-Nov-2022 14:57
Oh me... impressive!
Anonymous
Mon 7-Nov-2022 19:24
One of the best Youtube videos EVER! :D :D :D
Former C64 owner from Finland.
Anonymous
Fri 11-Nov-2022 01:35
do you connect the commodorion to a speaker or amp?
Anonymous
Fri 11-Nov-2022 16:26
For an Interview with the producer, where this is mentioned :

https://youtu.be/HKP8l8jKjN8
Anonymous
Fri 11-Nov-2022 16:26
For an Interview with the producer, where this is mentioned :

https://youtu.be/HKP8l8jKjN8
Anonymous
Fri 11-Nov-2022 22:49
Come on … This is the first crazy instrument make me really happy and interested at once after marble machine, that will always hold the first position , but this is a crazy and nice idea/implementation. Reading your method for volume I bet you could use air pressure sensor like in drones for alt meter, then you might use the same traditional air pressure control the instrument, but clearer response just an idea :). I always say computer keyboard is not an instrument, but in this case I must make an exception XD Thanks for this experience i will never forget :)
Anonymous
Mon 14-Nov-2022 01:11
I would like to congratulate you for this amazing invention. From a old C64 Uruguayan user back in the 80's .
Hope you enjoy your toy and rock it out!
Anonymous
Mon 28-Nov-2022 11:46
Genius!
Anonymous
Sun 8-Jan-2023 19:17
Hello Linus,

Great Job! It is amazing sound project for C64. Are you also going to release the custom application for playing chords and loops?

Regards,
Martin P.
Anonymous
Sat 14-Jan-2023 19:34
We want more live music released on YouTube. Otroligt coolt projekt!
hackerb9
Ben in Seattle
Fri 3-Feb-2023 19:34
Spectacular! I loved your previous projects, but this... this blows me away. The beautiful elegance of using a simple microphone to measure the air pressure is so aesthetically appealing compared to all the advanced technological gizmos I was imagining as I watched you play. And I appreciate that the mathematics for processing it was so simple — just an envelope follower with γ-correction) — that even a C64 could have done the processing.
Anonymous
Sun 15-Oct-2023 18:30
Fantastic! An amazing coordination of software, electronics, and squishy hardware. And I deeply respect your use of floppy disks and duct tape - not to mention your virtuosity with the keyboard.

One thought about the means to measure airflow - since airflow is generally proportional to pressure differential, have your considered the use of a differential pressure sensor? One side exposed to the interior of the bellows, and one side to atmosphere outside - via short pieces of tubing or hose if convenient. This could be separated from your main air vent, which itself could be made from a piece of hose if you would like it to be a little quieter than a simple hole. The advantages of a pressure sensor would include responsiveness, as well as removing the need to heavily filter its output to remove noise as you mentioned you do with the microphone method. Also, you could have separate response curves for squeezing versus stretching... and still apply your gamma function or any other you choose...
Anonymous
Mon 8-Jul-2024 19:23
SO GOOD