Archive for the Programming Category


Posted in .NET, C#, Melody Mine, Music, Programming, Windows, WPF on 04/07/2020 by imekon8

I’ve started writing a new tool to help generate MIDI output. The song part consists of chunks of patterns that get output to MIDI when play is activated.


Patterns describe the notes to output:


These are notes – but not as you’d know them. The scale and mode (see the top) describe which notes get used (in this case C Major). That way any notes you play are always “musical” as the scale isn’t chromatic (i.e. all the twelve notes) but on a scale.


Game Off 2017

Posted in Games, Godot, Programming on 08/11/2017 by imekon8

I’ve never done a game jam before, so this is my first!

The theme is “throwback”.

Well, I remember a game I played a long time ago. It was like asteroids but… not like it. It had colourful explosions that filled the screen and was crazy to watch. It also had black holes.

So, I’ve decided to do something similar. I’ve called it WakiZoids. Here’s a few screenshots from the game in progress:


and another…


This one has the “ACME Tracking” display. A simple radar showing you objects of interest. The original asteroids had rocks and one spaceship. I’m going for loads of rocks, lots of spaceships of varying types, beasties, sentinel ships… hyperspace?

All in one month?



Rethinking FX with Melody Mine

Posted in Android, iPad, JUCE, Melody Mine, Programming, Sound on 25/05/2014 by imekon8

Instead of four global FX, instead I’m going for 4 FX slots per instrument. You can build a simple chain of FX that way.

instruments with multiple fx

Sample Browser

Posted in JUCE, Programming, Sound, Windows on 24/03/2014 by imekon8

sample browser

Melody Mine in wxWidgets (the old one)

Posted in Melody Mine, Music, Programming, Sound, wxWidgets on 01/02/2014 by imekon8


Created with wxWidgets.

Melody Mine, Patterns

Posted in JUCE, Melody Mine, Music, Programming, Sound, Windows on 01/02/2014 by imekon8


Pattern editing

Melody Mine… in JUCE!

Posted in JUCE, Melody Mine, Programming, Sound, Windows on 01/02/2014 by imekon8


Melody Mine rewritten with JUCE. The Song page.

My first day at Codies

Posted in C#, Programming, Sound with tags , on 01/12/2013 by imekon8

My desk sat facing three offices in the sound engineers corridor. I could hear machine guns firing, as one guy worked on Flashpoint.

Behind me was a voice booth. Another engineer was recording sound effects for a horror game called Jericho.

So, machine guns in front, screaming behind me. Sound engineers play things LOUDLY. I had a headache at the end of my first week!

Being a games developer

Posted in MFC, Programming with tags , , , on 01/12/2013 by imekon8

If someone had said I would be a games developer I’d have said they were mad. Yet… that’s what I did, for a while.

It all started with Sensaura, a small audio company that made a 3D sound library for use on soundcards for… games.

Games were evolving, moving away from PC’s onto consoles. So the need for soundcards was falling. Sensaura switched to some software, like a stereo expander called Jamma for WinAmp. It arrived late and did not sell well.

Then the sound library got ported to the PS2. That got us a library that was used on some games. I started to get involved, writing my first high level library on top of the 3D sound library. It was not a success, as I’d no experience of writing for consoles. Another engineer took over and rewrote it, and GameCoda was born.

I worked on an MFC application called CAGE Producer, a tool to help sound engineers get audio into a game. It started with the basics, the sound banks then added the more higher level objects.

I wrote a DirectX previewer so we could see scenes created with 3ds MAX and with our sound library. Then we used a 3D game engine called Alchemy that we got a free license for – that gave us PC, Xbox, PS2 and GameCube.

I created plugins for 3ds MAX and Maya to export our audio with Alchemy data.

The PC and Xbox were easy – they were pretty much the same for development. The PS2 was a harder battle. I remember working with a test PS2 to get networking on it (DLink USB) so an artist could load up a scene with audio and play it back.

Except, nobody used the pipeline that way.

It was a good way to show off our tech, but games weren’t made that way.

Then Creative bought Sensaura, and I sensed the end was in sight for us. Sure enough, two years after buying us, they announced the reduction in R&D and closed EMU in the States and us in the UK.

So, I’m out of a job.

By now, I’m working on OpenAL for Xbox 360 with Codemasters. They wanted a cross platform audio solution and this was their choice. I reworked it, removing unnecessary locking and speeding it up… and fix a number of crazy bugs.

When I was made redundant, I asked my contact at Codemasters if he wanted a tools programmer for audio. He said yes, and I joined Codies in 2007.

Tools for Games

Posted in C#, Programming, Work on 24/10/2010 by imekon8

Been working on general tools in C# for the last few months. Not doing audio stuff. Makes a change.