DATA Labs – Cassette Player Blueprint

If you’ve been following my blog you’ll know that I’ve been working on DATA labs for around a year now – the level serves as a testing ground for new ideas, blueprints and personal development and it’s been lots of fun to work on!

Recently I’ve been creating audio log entries for the level, so the player can find out a little bit of backstory about the labs and what goes on there, as well as letting me indulge in some fun blueprints. The idea evolved from a simple playback system to a fully functioning cassette player, and whilst I’d like to expand it further I feel it’s probably a little beyond the scope of this project at the moment. Here’s how it works…

Essentially you can click on items to interact when them in DATA labs – clicking on the cassette player once plays the tape, again pauses it, clicking again plays from where you left off. You can leave it running or turn it off at any time or let it play until the end. Once the tape has reached the end, it will automatically shut off. A final click lets you rewind the tape and the whole system starts again. A red LED illuminates whenever the cassette is in play mode.

Cassette Blueprint
The full blueprint for the cassette player.

A lot of the ideas here are not mind blowing of course, they seem pretty simple in fact..! However, not coming from a game design or programming background means I often find that even simple tasks take up a fair amount of my dwindling brain power, so it took a number of iterations to come up with the blueprint you see below.

cassette_recorder_part A

This basically sets a number of variables in motion so that the blueprint knows what to do when you click on it – namely whether it’s playing, paused, stopped (complete) or rewinding.

cassette_recorder_part B

The next stage handles the system for play / pause functionality, which turned out to be quite a frustrating process for me! At first, my system could only handle a few play / pause run-throughs before it got confused and either started from the beginning or stopped completely! As usual, a branch node came to the rescue with an attached ‘is playing’ variable and the rest is history. It’s worth noting I’m using FMOD audio events for this blueprint, and a useful tip is the ‘On Event Stopped’ node you can use in conjunction with them – here it handles the auto-stop function of the cassette recorder.

cassette_recorder_part C

The final section of the blueprint is the sweet, easy-icing on the cake and simply toggles the red ‘active’ LED on and off in accordance with play state. Phew!

I’ll be adding some actual recordings to all the players in the level soon, so people don’t have to listen to me repeating “THIS IS A TEST” over and over again.. but it does the job for now. Any suggestions for the system would of course be appreciated and I hope this has been a useful read for folks. If you’ve got a question let me know!


A big thank you to Warren Marshall for the excellent retro-models you can see in the level – check out his Twitter for more!


Digital Dark Age Launch Tomorrow!

I’ve been working on my degree major project ‘Digital Dark Age’ at Futureworks here in Manchester for 7 months, which isn’t really that long but it feels like an eternity! One thing I’m super happy with is how much I’ve learned and developed over that time. Even though some days it feels like I’m banging my head against a virtual brick wall with Unreal Engine, the problems I’ve encountered and (thankfully) solved have been an important part of this journey.

12.1.24 DDA Banner.gif

My initial goal was to create an immersive environment within which I could feature 5 original compositions that form a short concept album, this would be supported by a digital and physical format release via my Bandcamp page. I knew that I wanted something quite stylised for the whole project, and it turns out that the first person level I created in Unreal became a bit of an obsession! I spent a lot of time on the 5 songs for this project, and I felt that the level had to match that degree of authenticity and the aesthetic I was trying to portray… cue countless nights stuck trying to figure out (relatively simple) tasks in Unreal Engine, losing builds, breaking the mechanics of certain features, losing audio, getting audio back, running at 13fps, scripting Blueprints until 3am and trying to figure out what an earth I’d done wrong whilst drinking LOTS of coffee.

Engineering Corridor.png
The ‘engineering corridor’ was a fairly late addition to the levels design…

A lot of tasks took longer than they should have, but I was at the end of the day teaching myself techniques and methods I’d read about in the Unreal documentation and via Youtube tutorial videos (which are sometimes more trouble than they’re worth). I think it’s important to talk about the problems I encountered as it makes me feel a whole lot better knowing that I’ve solved 99% of them, and I want to say a big thank you to everyone that’s helped support the project (folks on floor 2 at Futureworks I’m talking to you!).

Wireframe 1.png
Latest wireframe overview of the level.

The project finally launches tomorrow at the Eagle Inn in Salford, which has a suitably small and dark venue.  It’s free entry and I’ll be around from 6pm onwards so feel free to come along for a pint and a natter. I’ll have 10 of the cassettes to sell and folks will be able to play on the level first hand. The night will be streamed live via Facebook (part of my assessed criteria) and maybe via Twitter as well. My next blog post will be after the launch and (if I’m still breathing) I’ll be reflecting on the event itself.

Thanks for reading folks and I’d love to hear your thoughts on the project.

Check out Digital Dark Age on Cartrdge here
Digital / Cassette Album on Bandcamp here

Building Site Sound Design

If you’ve ever lived next to a building site you will understand that it is not a particularly pleasant experience, especially when you’re trying to work. In Manchester at the moment there are lot of people excited about building sites, but I’m not one of them. It does however give the opportunity to do some sneaky field recording that offers plenty of scope for sound design and will definitely come in handy for any city / industrial environments you may well have to recreate.

Fun to watch… but not fun to listen to 12 hours a day…

Yesterday I was busy working on a new composition, trying my best to articulate string sections amidst the sound of drilling and hammering when I decided to give up and make a coffee. I took my Zoom portable recorder (a H5 with the standard X/Y mics) onto the balcony to capture some of the noise taking place next door, whilst a few builders stared at me with curiosity.

A mini windshield is a must for nearly all recording sessions with the Zoom!

Afterwards I spent some time working on mangling a few of the sounds up and creating some new assets that might come in handy for game audio projects in the future, a few of which can be heard below! (as well as a clip of the original audio).

As most audio folks will tell you… record everything as you never know what you can do with it!

Digital Dark Age Launch! 21st March


My third year degree major project ‘Digital Dark Age’ is due for launch on the 21st March, which is not that long away at all! I have roughly 1 month to finish all the interactive elements in the level and dub the cassettes / get the Bandcamp page ready for release and write everything up so I still have lots to do. All the finished mixes have now been sent off for mastering and most things are in place for the launch.
I’m really pleased with my progress so far, and I hope everyone will enjoy the level when I make it available to download. You’ll need a Windows PC (no MacOS build I’m afraid!) and I recommend you play on headphones to get the full effect. In the meantime – if anyone is interested in attending the launch event or would like more information on the project then let me know or give me a shout on Twitter! Check out the album preview below!

I’ll be writing a full summary and introduction to the project which will be available shortly, you can also check out the project HERE on Cartrdge.

DATA Labs -Distance Attenuation Testing

Hi folks! After a rather frustrating hard drive disaster back in December it’s been slow progress getting back into development of DATA labs but over the last couple of weeks I’ve been begrudgingly rebuilding the parts of the level that I lost and added some cool new features! One of these being a small public address speaker that’s been ‘hotwired’ to play some radio music in the rear office. Check it out below!


As well as the usual distance attenuation using overall level and a slight low pass filter, I’ve also included some reverb attenuation that boosts the verb the further you are away from the audio source, until you’re far enough away that the sound dies out completely. This is something I’ve started implementing on some of the ‘louder’ audio sources in the level, notably the petrol generator in the access corridor and the main public address system announcements.

FMOD: Footstep System For Unity

Recently I’ve been working on audio for a first-person shooter created in Unity, the team are using FMOD for audio implementation and one of the first stages was setting up a useful material based footstep system. I’ve been through a few iterations so far, but have finally settled on a system that I’m happy with. The challenge was making the audio engine easily adaptable when new materials and objects were introduced in-game, which is of course really useful when you’re in the early stages of development.

The first system can be seen in the screenshots below, showing the Object Footsteps event inside FMOD. Each track had a nested event which contained its associated object footstep sound, and the Object parameter control at the top, basically automated which one you’d hear depending on the surface the character stood on. (automation can be seen in fig 1.2).

Footstep System A1.PNG
fig. 1.1 – Object Footsteps Event with nested events for each object type.
Footstep System A2.PNG
fig.1.2 – Showing Object volume automation control over each surface type.

This system worked however my main concern was that every event would be playing simultaneously each time a footstep event cue was triggered in the game – this meant over 40 audio assets being run in real time for each step! Clearly… this was not the best solution (especially when you take multiplayer networking into account) so I adapted the system so that only one footstep event would play at a given moment, reducing the amount of audio being played back at once and optimising performance in the process. You can check out some of the sounds and how the object parameter value effects the event in the video below.


Fig 1.3 shows the logic behind the event, which is super simple! Unity will send a value between 0 and 8 for every step sound that is triggered. In this case ‘0’ is the generic default step, ‘1’ is asphalt and so on. Then each of the nested events (blue regions) are given a specific target range to work on (shown bottom right). For example the target range of the generic step is between 0 and 0.9, asphalt is 1 and 1.9 etc. Obviously this relies on your audio programmer or whoever is incharge of scripting inside Unity to send out the values so that FMOD can read them – but it’s fairly straightforward once you’ve got the system in place.

Footstep System B1.PNG
fig. 1.3 showing nested event paramters

The next step will be to add a ‘crouch’ parameter which will change the sound of each footstep event if the player is in the crouch position. Stay tuned!