RSSAmplifier

Blog

Home - MichD on MichD

Recent content in Home - MichD on MichD

michd.meRSS feed ↗91 posts

Latest posts

Having an Upcoming Thing while Autistic

In late 2023 I identified I’m probably autistic 1 . I really dived into the topic; I read and watched loads of experiences of autistic people, joined communities, made new friends online, and learned a lot about myself. In January 2025, I did get a formal diagnosis, letting me mostly put to rest the self-doubting voice in the back of my head. Realising this and reframing my life with this…

Now

What’s going on with me right now? This page seeks to answer that question. 
 Enjoying 
 
 I’ve recently discovered AURORA ’s music and I’m very much enjoying the albums Infections Of A Different Kind (Step 1) and A Different Kind of Human (Step 2) . They’re entirely great, but some of my favourite tracks include Gentle Earthquakes , Churchyard , A…

MIDI Message Format Reference

I put together this article as a somewhat more comprehensive overview / manual of MIDI 1.0 messaging than the Summary of MIDI messages for my own reference. Hopefully it’s of use to others as well. 
 Adapted from Summary of MIDI Messages and further reference tables . 
 See Glossary And Formatting at the bottom of this article to help understand this article. 
 
 MIDI comes…

Integrating our Air Conditioners into Home Assistant

I added Home Assistant control to our air conditioner units. It involved PCB design, some 3D printing, equipment modification, and ESPHome. 


 
 
 
 
 
 


Bash: Run arbitrary command(s) when a log entry appears

During my work on Android apps, I regularly end up debugging things that only happen after a long wait, particularly when it’s concerning streaming music, and playing adverts. If I end up having to wait for 10+ minutes, I won’t be staring at the device the entire time. 
 Unfortunately, this means I can easily miss events I’m interested in. 
 Android fortunately has…

DIY: Garage to Workshop Conversion

In June 2021, my partner Brittany and I realised a dream: we bought a house. When viewing the place, the owners showed surprise about us wanting to have a look at the standalone double garage. It was packed full of unwanted stuff, leaving barely any room to walk. As “makers”, we had some different ideas for the space. Soon after we got the keys, we got to work. 
 Let’s get…

Android: Clean up unused emulator system images

Over time I collected several Android emulators, many of which I no longer used. 
 Deleting the emulator itself was straightforward enough, but deleting the underlying system image was a bit more hidden. 
 Deleting an emulator 
 
 
 In Android Studio, open the AVD Manager from “ Tools ” → “ AVD Manager ”, where you’d normally launch an emulator.…

DI.FM Android App

Android app development for Digitally Imported Inc’s radio brands DI.FM, RadioTunes, JAZZRADIO.com, ROCKRADIO.COM, ClassicalRadio.com, and Zen Radio.

Dance Platform Firmware

The RE:Flex dance platform is a modern take on the concept with precise sensors and 84 RGB LEDs per panel.

Gradle Android: API 'variant.getX()' is obsolete

A deprecation warning I got when trying to add something to our Android gradle build script proved hard to fix, so I’m documenting my findings here. 
 These are the full messages I’d get; there are similar ones for other tasks you want to tie into. 
 
 WARNING: API ‘variant.getMergeResources()’ is obsolete and has been replaced with…

MIDI Thru box

1-to-8 (or more) output MIDI Thru utility box, which lets you connect multiple instruments to one MIDI source in a star configuration.

Firefox: Turn off automatic copy-paste

Note: this probably only applies on Unix-derived operating systems like Linux distributions and Mac OS X. 
 For work, I make extensive use of Trello. I found that I regularly end up with random URLs of pages I’d visited ending up as attachments on Trello cards I was working on. Because this happened seemingly at random, it was a bit of a privacy issue. 
 Today, I discovered the…

Stack Trace - Diversity of Thought (Trance)


 

 Diversity of Thought on Bandcamp 
 Made, as always, in FL Studio, using mainly software synths, but a little bit of my DIY modular synthesiser in the bassline as well. 
 The artwork is a picture of the “NEOWISE” comet that made an appearance for a few weeks, taken myself.

Various 3D-printed bits

Often I’ll encounter a problem that can be quite easily solved with 3D printing.

WIP: BWEEOO Eurorack filter

Under my fiancee’s and my brand RE:Flex Sound, I’m working on a versatile Eurorack format filter, with intent to bring it to market.

The Midnight - The Comeback Kid (Cimylium Remix) (D&B)


 The Comeback Kid (Cimylium Remix) on SoundCloud 
 My favourite synthwave group organised a remix contest where 4 of their most popular tracks were up for remixing. I picked my favourite one out of them and went to work. 
 In the end, the only stems I used were the vocal samples; I made my own synth patches and picked my own drums for everything else. 
 I didn’t end up…

Cimylium - Project 14328 (Drum & Bass)


 Project 14328 on SoundCloud 
 The title is a reference to the “Folding@Home” project that’s part of an effort to assist researchers around the world taking up the global fight against COVID-19. Read more about it on the F@H project page . 
 Folding@Home is a system where anyone can install a piece of software and allow the project to use their computer’s CPU…

GPG signing git commits without graphical user interface

GPG signing git commits is neat, but appears to require a graphical interface by default. Here’s a way around it.

Backgrounding in the terminal

Unless you’re running something like tmux or screen, it can be annoying when you need to enter a command while you’re already running a program in your terminal you’re not ready to quit just yet.

Testing local connection speed with iperf

iperf lets you test the connection speed between two computers you have access to, making it useful to test the speed within your local network.

Setting and resetting bits in a number

In microcontroller code (and other places that use “flags”), you often need to set a specific bit to 0 or 1 in a register.

KiCad Helper

Web-based tool to make changes to KiCad schematics that EESchema doesn’t let you do easily.

Table Tennis Scoreboard

Simple table tennis scoreboard operated with buttons mounted under the table. Indicates whose serve it is, plays a jingle when the game is over.

Deploying to your server with git push

If you’re using git for your project’s version control, it might interest you that you can deploy your latest changes to the server where you’re hosting your application by using just git on your local computer. I set this up for the site you’re reading, so I figured I’d put up a write-up of how I did it. 
 The heart of the matter are git hooks. Hooks are optional…

Instaudio

Popular audio sharing website for audio producers, voice actors, etc, visited by over 5 million people over its lifetime.

Cimylium - Byte Sequence (Ambient)


 Byte Sequence on SoundCloud 
 This track was composed in FL Studio, but recorded from purely hardware synthesisers, with a few effects added post-recording. 
 Synths used: 
 
 Korg Trinity 
 Behringer Deepmind 6 
 Roland JP-8000 


WIP: Polyphonic Synthesiser

I’ve been working on a standalone polyphonic synthesiser, though it is far from finished.

Workbench

A wooden workbench made out of commonly available lumber and plywood sheet.

Sequencer

8-step control voltage sequencer for my DIY modular synthesiser. Features quantizing, slide steps, various playback modes.

Kicad: Creating schematic components and libraries

I’ve had some trouble piecing together how to deal with custom schematic components in my PCB design package of choice, Kicad. It took too much searching and trial and error to get to grips with the process, so I’ve decided to write my own detailed article about it. This guide applies as of version 4.0.4-stable. I’m using the Windows build. 
 Please do note, this article will…

Clock Generator

A clock pulse generator with divided outputs, used to drive sequencers and other triggerable modules.

Michstortion

A versatile foldback distortion module for my DIY modular synthesiser.

ADSR Envelope Generator

Attack-Decay-Sustain-Release envelope generator, an expansion on Ray Wilson’s Music From Outer Space design.

Cimylium - Tannhauser Gate (Ambient)


 Tannhauser Gate on SoundCloud 
 Inspired by the “Blade Runner” soundtrack, this track was written using only the software synths “The CS Cloud” and “Synth1”.

Inverters Module

A utility module for my DIY Modular synthesiser, providing 4 analogue inverters and 2 logic inverters.

Spring Reverb

Spring Reverb module for my DIY Modular Synthesiser, after Ray Wilson of Music From Outer Space’s design. Uses a salvaged spring tank.

Stack Trace - Ebullience (Trance)


 

 Ebullience on Bandcamp 
 A trance track I started in June 2014 and picked up again in 2017. There are two versions; a 7m41s long version, and the extended version at over 11 minutes. 
 I decided to start a new alias “Stack Trace” for Trance / Housey music while keeping Cimylium for more mellow music like ambient or anything else. 
 Produced in FL Studio,…

Noise Generator

White and pink noise generator for my DIY Modular synth, from Music From Outer Space circuit design.

Mixer Module

4-input mixer module for my DIY Modular synthesiser. Allows setting volume of each channel as well as the overall volume of the mix output.

Voltage-controlled Amplifier

Used for contouring sounds, and various modulation depth control in my DIY modular synthesiser.

Voltage-controlled Filter

Used for cutting and accentuating harmonics in my DIY Modular Synthesiser; adapted from Thomas Henry’s VCF-1 design.

Voltage-controlled Oscillator

Audio or modulation signal source for my DIY synthesiser, derived from Ray Wilson’s Music From Outer Space’s (MFOS) VCO and Thomas Henry’s VCO-1.

MIDI Input module

MIDI to control voltage (CV) module for my DIY synthesiser.

Using Async and Await in C# (Part 1)

In programming, there are many use cases for doing things in an asynchronous way. In almost all cases, it comes down to executing an operation that may take a while, without blocking user interaction or other program execution. Perhaps the most common example of this is making a web request, waiting for its response, then doing something with said response. While you are waiting for the response,…

Conway's Game of Life

A programmer’s favourite, Conway’s Game of Life is a famous cellular automaton. I just had to implement my own version.

Adding stereo VU meters to a turntable

My fiancée got me a great gift for my last birthday: a turntable. Being a classic trance lover, I’ve since been collecting a bunch of records. The thing has really been a source of joy thus far. 
 About a month ago I started itching to do a little electronics project again as it had been a while. Long story short, I figured it’d be neat to open up this relatively simple device and add a nice…

2048 in QBasic

This little puzzle game was wildly popular at the time. I figured I’d go back to my roots and throw together an implementation in QBasic.

Cimylium - Magnitude (Trance)


 

 Magnitude on Bandcamp 
 Not much to say, as with all my trance pieces, I sunk a bunch of time into this one. Perhaps a bit of System F influence here.

RSS Dash

RSS Dash was a dashboard for RSS feed widgets, intended as an “iGoogle” replacement.

Hacking a line-in socket into an 80s radio and cassette player

A few years ago, my grandmother gave me one of the old radios she had lying around the house. My late grandfather’s hobby was participating in radio quizzes, which led him to win a lot of radios; I assume this was one of them. The radio was manufactured in the early 80s, so the guts are relatively easy to tinker with; everything is on single-layer PCBs. 
 
 
 
 
 
 The…