Firmware I've done quite a bit more work on the firmware now, and I believe it to be mostly functionally complete for producing music as I now have complete control over the AY chips. There is still some more work to do on the configuration management and screen user interface though. AY Control Up to this point not all of the AY's features have been made available via config or MIDI…
Finding out exactly what I received from China Prior to today, I had done some cursory testing of a couple of the chips in order to prove a few points about how many I could integrate into a single system. But I still didn't know if all of the chips I have are real and/or functional. Yesterday I did some further testing, but I realised my testing was not thorough enough and I came to the…
UPDATE: this post was originally much shorter and published as "Part 1" on 30 Jan 2024, but I've since (10 Feb 2024) added more content to match the current state of the project as a whole. Further progress on this project will be made as new posts however. UPDATE: 18 & 19 Feb 2024: I tested all of the AY chips. What is the AY-3-8910? I'm quite a fan of the old AY-3-8910 synthesizer…
An interface for the box that goes bleep As soon as I started thinking about building my own synth, I built into that project the requirement to interface the synth with a computer using MIDI. After all, that's what I know for generating notes, and I didn't want to start building analogue keyboards or sequencers to make the synth work standalone. This interface became known as the…
SysEx Message Structure Envelope: Manufacturer, device and protocol identifiers Refs: http://midi.teragonaudio.com/tech/midispec/sysex.htm http://midi.teragonaudio.com/tech/midispec/id.htm https://www.midi.org/specifications-old/item/manufacturer-id-numbers 0xF0 <MANF> <BYTE>+ 0xF7 We need to use the first 3 bytes to…
ESP32 Services BLE Research Relevant services: https://www.bluetooth.com/wp-content/uploads/Sitecore-Media-Library/Gatt/Xml/Services/org.bluetooth.service.device_information.xml https://www.bluetooth.com/wp-content/uploads/Sitecore-Media-Library/Gatt/Xml/Services/org.bluetooth.service.transport_discovery.xml…
Immediate (Live) interface STX R DD [DD...] ETX R is the start register: 0x11 = DACA 0x12 = DACB 0x13 = DACC 0x14 = DACD 0x15 = PSGA 0x16 = PSGB 0x17 = PSGC 0x18 = PSGN DD is the 16 bit register data. Data will continue to be read into each subsequent register until either: 'aligned' ETX received R = 19; i.e. there's no more registers to write to. All data until the next aligned ETX…
NOMENCLATURE Addresses DST SRC RB RE TB Addresses are 16 bit and written as 4 case insensitive hexadecimal characters with no spaces and no prefix or suffix. e.g.: 0000 00f8 1B6F F0e4 Literals $LIT $TSTEP $RSTEP $COUNT Literal values are 16 bit and written as 4 case insensitive hexadecimal characters with no spaces and no prefix or suffix. (Examples same as per Addresses). Interrupts I Interrupts…
A box that goes bleep Ever since starting to make my own gadgets one project that stood out to me as a must-do project was to build a modular analogue synthesizer. Taking this on was no small feat, and took the best part of 5 to 6 years to complete enough to be a mostly usable instrument. Even then, interfacing the synth to a computer DAW took longer still and I have only just recently completed…
Connected Noise Machine CONNOISE was an exercise in exploring software architecture for real-time audio synthesis. I wanted to take the concept of a modular synthesizer and replicate that in software, whereby each module has a number of inputs and outputs and performs a single function. This was also an exercise in learning some of the newer c++17 language features, but I also set myself the goal…
I've had this Super IC Copicat for a long time, since way back in the '90s. It makes quite a pleasant lo-fi echo sound and is fun to play with. Unfortunately, after all of these years the heads have become worn out and needed to be replaced. In the process of replacing the heads, a thought occurred to me - why should the heads be fixed in place? The result here, is some 3d-printed parts;…
Happy New Year It's been 10 years since I wrote the first content for the first version of this site. Since then, the site has moved domain, and moved to a different framework and I've learned quite a bit about the art of my hobbies and how to write about them. And I'm still learning. Looking back though, it's clear I was initially heavily focussed on building my synth project…
Originally authored 19 September 2023; subsequently updated: 6 October 2023: details of adding motor with gearbox 7 October 2023: minor edits for consistency Intro In my previous blog post I've talked about my journey into doing astrophotography and how a suitable camera mount is necessary in order to get any sort of reasonable results. This blog post goes into a fair amount of technical…
Intro I've always been interested in looking at the night sky, and also the technical aspects of photography. I've built a good understanding of what makes digital photography work, and how to choose the correct settings for a given environment and shot. However, up until recently I haven't made much of an effort to learn much about astronomy, what we can see in the sky with our own…
A journey in discovering complexity in a relatively simple software application. Building a live looping application I wanted to play around with a live looping pedal, but for no cost. So, what to do? I tried some of the existing (Linux) loop recorder applications, and none of them really grabbed me as a delight to use. I had my own ideas and pre-conceptions about how it should work, maybe that…
Motivation I'd recently been looking to acquire a guitar pedal multi-effect/amp modeller. There's various models available, ranging in cost from about £150 to over £1200. I was really tempted to go for something in the upper-mid-range, but could not overall justify the expense. Looking at the devices, however, they mostly nowadays consist of various types and numbers of the…
What is this ? I have built a little box of buttons which I can use to record the time I spend on each activity at work. Mostly just for my own amusement. I've open sourced the entire concept, software and physical designs (links at the bottom). This blog post doesn't really go into a lot of the gritty detail of the build of this project, unfortunately trying to achieve that might just…
I really enjoy keeping fish as pets. At current count we have ten in two aquariums. Shown above is Ziggy, our largest fantail, and a few of our smaller (and faster moving) ones. Unfortunately, over the years we have also lost a few - and when this happens, one is left wanting to know exactly why this happens. Particularly frustrating is when a fish is lost, yet the others in the same aquarium…
Background The DM24 is notorious for having its LCD screen fail after a few years use. Apparently this is due to inadequate thermal design around the screen housing, so the screen ends up exposed to higher than optimal temperatures which after a while causes the LCD to degrade. The end result is that the screen ends up unreadable due to either permanently on or off lines running across the screen.…
What do I mean by 'interrupt driven' ? By design, the LCD board I have provides the state of the buttons to the application only when the application asks for it. This means that the application has to run a loop which continually asks the LCD board for which buttons are pressed. In an interrupt-driven world, the application will sit idle until a button is pressed, and then the LCD board…
Hello! Recently I've been playing around with some electronics, Raspberry Pi, software and OS stuff which I hope to bring together into what could be an interesting project. It's something I've been thinking about for a couple of years, and bit by bit I'm actually getting there. Since I've already spent a lot of time just getting started with all the above, and learned a…