Privacy and Security methods I use

Ever since I worked at an internet marketing company on an advertising analytics platform, I have realised that I don’t want my personal internet browsing tracked, monetised, influenced, and sold to the highest bidder. These are the steps that I have taken to reduce (you can never totally eliminate) this process.

Pi-Hole DNS

This is a DNS server installed on a Raspberry Pi on my local home network. I have all the internet traffic going through my Virgin Media router filtered through this DNS server. It has many privacy-boosting features, but its main claim to fame is that it blocks the vast majority of internet advertising and analytics traffic on the DNS level. It currently blocks 20% of the requests made, which results in approximately 20% faster internet for me, and a lot more privacy/less tracking/less adverts.

Firefox Browser

Using the Firefox Browser is kind of a no-brainer for internet privacy, because of out of all the main browsers available it is open-source and not controlled by a large commercial tech company. It has the best default privacy features out of all the browsers I’ve used. I use it on all my devices and the configuration is synced across all of them.

AdBlocker Ultimate Firefox Extension

This is the best web page advert remover I have used. It is constantly updated with new ways of removing adverts as the main companies like Facebook find ways around it. It currently removes all the adverts on all the web pages I browse on, including Facebook, which is quite a feat.

ClearURLs Firefox Extension

This removes all tracking elements from URLs in web pages you load, automatically. Tracking elements are information passed through in parameters appended to the end of web page links which provide information on where the traffic has come from and the tracked behaviour of the web user on the previous site. This is particularly important in advertising analytics, and breaking this chain between websites does a lot to protect your privacy.

Fakespot Fake Amazon Reviews and eBay Sellers Firefox Extension

This plugin is not strictly related to privacy but does help an awful lot on online shopping. It analyses Amazon and eBay reviewers for patterns to help understand whether they are fabricated or not. Often online merchants will use fake reviews to boost an otherwise mediocre product. This helps me save money on those.

Kaspersky Anti-Virus Protection

This is another level of general internet protection from the paid Kaspersky anti-virus product. Kaspersky costs me a small subscription every year but it is better than the free alternatives, and offers this browser plugin which has been helpful in sniffing out malware.

The Persuit of Happiness and the Hill-Climbing Problem

It seems that for a lot of people, perhaps the vast majority, they cannot expect to be 100% happy all the time. Even those incredibly successful celebrities and incredibly rich CEOs and politicians are not happy 100% of the time.

So is it a good idea to seek 100% happiness right away? Or should we always try and select the ‘least worst’ situation? If we keep making progress and optimse our happiness levels through constantly selecting the ‘least worst’ situation whenever we have a descision then it seems to me we will maximise our happiness potential in the long run.

Once we have reached the plateau of happiness for our chosen path though, and we are not getting any happier or there is no way to continue improving our happiness, then the only way of potentially improving our happiness is to do something radical and leap to another approach.

For those with training in A.I. or optimisation algorithms, I see this conceptually as see this as a hill-climbing local optimsation plateau problem. You can optimise locally your happiness level, but you need to take a risk when you have plateau’d in your happiness along your current path, to do something completely different and jump to another hill which might offer a higher level of happiness in the long run, although it may not. The amount of risk you take is dependant on the knowledge you have (the heuristics) that the next ‘hill’ or path you take will lead to a better outcome. But.. if it won’t, and all the paths available to you have been analysed, and you will not make yourself happier, you have won at the happiness problem. You are the happiest you can make yourself and no amount of seeking happiness improvements in your life will help.

This can be extended to job hopping, relationships.. of course there is an amount of risk as we never have a perfect heuristic but the concept is the same. Through constantly hopping hills and constantly seeking 100% happiness you can make yourself less happy than you thought. Maybe you were never born to be 100% happy? Maybe none of us ever were, we can just do the best with the oppertunities we were given.

I don’t know if I explained it well but this does a better job:

Retrospective on 2021

Well, 2021 has been a bit of a downer in a number of ways. There has been some upsides though.

  • I spent the first part of 2021 burned out, as in – totally burned out – of my career and really needing a break. This affected my work. It turns out that unknown to me at the time, I had cancer, Hodgkins Lymophoma, and a lot of my lack of energy and generally feeling awful was down to a large tumor that had been growing my chest for some time and was pressing down on my heart and lungs. In June I was admitted to hospital and they diagnosed the cancer. In July I started chemotherapy. Now the good news is that Hodgkins Lymphoma is one of the best cancers to get if you were able to choose, as it has a very high cure rate and very low fatality rate. The chemo as of November’s scan seems to be working even better than expected and they were expecting a good outcome. So that is positive. I should hopefully be done with chemo by March 2022.
  • One of the good things about 2021 has been the job that I found in the music industry. It is still doing software engineering, what my career has been based around, but they seem like a very nice bunch of people, and were prepared to support me and keep me on around chemotherapy. I am still employed part-time and that has been a HUGE help financially as you really don’t get a lot of money in benefits from the government, even when you have cancer it seems, and my family have had to help me out quite a bit. I have also had some success in the work that I’ve been doing – it seems very appreciated which is something I’m not really used to!
  • I have continued DJing on Twitch which has been great. I still do my regular Sunday show for 4 hours most Sundays, and it is a lot of fun and I have a bunch of regulars who pop in. I enjoy it a lot. I reached 500 followers and raised a LOT of money via charity streams with other DJs, both as a DJ and also helping as an organiser.
  • In December Conny and I caught the omicron varient of COVID-19 and that was a huge worry at the time because of my low immune system due to chemo and cancer. However we both have beaten it now, I had a short stay in hospital but it wasn’t that bad. NHS staff were very helpful and I think it really helped that I had 3 vaccinations in my system at the time of catching it.
  • In Jan 2021 I took the third of the 10 week university level courses at Point Blank Music School as part of my study of Electronic Music Production. This course was on mixing and mastering. I have learned a lot from it already, although I still haven’t finished it as I was quite busy most of the year.
  • I single-handedly raised £270 from friends and family for a cancer charity for my mother (who also has cancer) during a 12 hour DJ stream on my birthday in 2021. Ironically I had no idea I had cancer myself at the time.
  • I ripped all of CDs to FLAC. Hundreds of CDs. Ripped hundreds of DVDs, PS2 and PS1 games too. Hosted them all on a Plex media server and gave the majority of discs away to charity.
  • I sorted all my physical books, split into different subject bookshelves, alphabeticalised and catalogued in
  • I have read more books this year than several previous years. I still have a huge backlog to go through though.
  • I played quite a few more computer games than I have for a while, including beating Cyberpunk 2077 in a no-sleep 28 hour marathon after it was released. (Although that was technically in December 2020 I am going to include it anyway). It was such a great game in my view, amazing storyline and setting.

Here’s to 2022!

Setting up Enlightenment window manager on Ubuntu 21.10

Enlightenment is a very underrated window manager choice, in my opinion. It still looks very pretty and is very configurable. There is a packaging bug with the latest version of Enlightement in the 21.10 repo which means it doesn’t work correctly. The fix is to set the suid bit on the ‘enlightenment_system’ binary. So:

  1. sudo apt install enlightenment
  2. sudo find /usr/lib -type f -name enlightenment_system -exec sudo chmod 4755 {} \;
  3. Log out of Ubuntu
  4. Click the settings cog in the bottom right to change your Window manager to enlightenment
  5. Log on and the settings wizard will help you configure Enlightenment

My Simple Commandline Git Workflow

This is a simple description of how I work 99% of the time, as I am a simpleton. Origin/main is the new origin/master for future repositories, I just note both here for completeness because I use origin master for a lot of current repos.

  1. I first make sure I am uptodate on origin/master or origin/main by git pulling.
  2. git checkout origin master
  3. git pull origin master
  4. I start making changes to the local copy on my local machine.
  5. When it gets to a point where I want to save my changes, I:
  6. git stash push
  7. git checkout -b <branch name which will be made into a PR>
  8. git stash pop
  9. I then commit the changes to the new branch.
  10. git commit
  11. When I am ready to create the PR, I create and push to the remote branch:
  12. git push origin <branch name which will be made into a PR>
  13. Github will tell me if master/main has diverged past a state where my commits can be merged in without conflict. If there is a possible conflict, I will merge in origin master/main to my local copy and then push to the PR branch again:
  14. git checkout <branch name which will be made into a PR>
  15. git pull origin master (or origin main)
  16. I resolve locally conflicts through git mergetool which, for me, is vim’s three way diff tool.
  17. I commit the updated conflicts and push to the remote branch – git add && git commit && git push origin <branch name which will be made into a PR>
  18. Often at this point I find I have to add new commits to fix things I have broken or have been flagged up in PR review.
  19. git commit
  20. git push origin <branch name which will be made into a PR>
  21. Reviewers now have some of their comments made on stale commits in Github. This is better than squashing the commits I find because sometimes the commits are not stale and their comments are still valid, and it becomes easier to keep track of. They can view the ‘files changed’ tab to add review comments until they are happy. I loop back to check whether master/main has diverged, and if it hasn’t just keep adding commits to address their concerns.
  22. The PR gets approved (hopefully)
  23. I merge the PR into master or main
  24. I delete the old branch

How to fix Plex Media Servers ‘Various Artists’ problem using and other tools

The Problem

As of the day of posting, Plex Media Server has a suboptimal handling of Various Artists compilations. Unless you follow BOTH of these rules, described clearly on the Plex support here under ‘Various Artists’, then they won’t appear collected under a particular album, they will be spread out filed under the different artists that created them. I think it should only require one of these rules, but it is not up to me. The problem is that release metadata available from the online metadata databases, often doesn’t follow these rules – lots of DJ mix compilations for example, do not set albumartist tag to Various Artists from the online metadata databases.

Also you may want to adopt a different file structure for your music than what is recommended and essential for Plex. I would agree that ONE of these measures should be required, and I would argue that setting album artist would be enough for Plex to figure out this problem, but you also need to structure your music also under the way they suggest, you won’t get the desired result of compilations being collected as a single album and in order.

My Solution

Firstly, you’re going to have to manually add the ‘Various Artists’ content to the ‘albumartist’ tag for all tracks in a compilation that doesn’t have them. Currently I’ve only found a way to do this by hand, would be very interested in any automated approaches, or if someone wants to write a plugin that would be amazing. You can do this with any tag editor, but I wrote my own solution which is faster for what I want to do and easy to use on my existing setup and database which has a lot of these problem compilations already. Because I am using Windows I wrote a batch file which uses several third party tools to fix the metadata fast. You will have to download and setup the tools seperately, details are in the batch file comments.

Secondly, you’re going to have to make sure that moves your files into the way that Plex Media Server recommends. This is my current config file, the important bits here are the file rename and move structure, as per the support page, it has to be something along the lines of:

$albumartist/$album/$artist - $title

My Process

  1. ‘beet ls <query string> to identify tracks that need fixing. ‘beet ls fabric’ for example, got almost all of my dozens of Fabric mix CD tracks, which sped up the renaming significantly than using a GUI editor to go in and manually change each album. You have to make sure that the query string selects only the tracks you want to modify, unless you want to go back and edit those few tracks that got caught in the process later.
  2. I send that query string to my batch file which goes through the ‘beets ls -p ‘ full path results iteratively and runs a couple of command line tag editors on them, the first works for all MP3s and the second for all FLACs, e.g. ‘.\tag-various-artists.bat fabric’
  3. ‘beet update’ to update my database with the new metadata I’ve changed with the batch script.
  4. ‘beet dup -d’ to delete any duplicates that have arisen.
  5. ‘beet move -p’ to preview the file moves into the new directory structure that is required by Plex.
  6. When I’ve scanned through and am happy with the file moves – ‘beet move’ to do the moving.
  7. I then backup my files through robocopying to an external drive, but this is not essential.
  8. Make sure you have checked ‘prefer existing metadata’ in the Plex options for your music library.
  9. Set Plex to rescan your libraries metadata.


The batch file I use, my config and other tools I use to organise my music collection on Windows 10.

The Results

All my Fabric mix CDs are now properly collected under one ordered album each on Plex:

My PSP Entertainment System for 2021!

I have recently been in hospital and been diagnosed with a condition that might mean I need to return quite a bit, at least in the short term. When I was in hospital I was struck by the fact that there were very long periods of waiting and it was easy to get very bored and quite dejected just sitting in a hospital bed.

Also there is not a lot of room for laptops, tablets and other things – you really don’t get a lot of space by your bed usually to store large items and they are not practical most of the time. Therefore I thought I would hack together some kind of portable entertainment system that I could use to pass the time and to block out some of the hospital negativity if I need to be in hospital again. My DJ headphones Seinhausser HD 2-IIs are actually very useful in a hospital because they are very good at sound isolation and you can remove one of the ear cups so you can lie on your side in a hospital bed and just listen to one earcup without it being uncomfortable, so they were very good to use with the PSP.

I chose the PSP 2000 model as it is very capable of playing emulated games up to Playstation 1 era, which includes my favourites the GBA, SNES and Genesis games. It also has option to watch Sony UMD movies, and the screen is actually very good and clear in the dark and most light settings.

I went through Etsy until I found a seller that was selling custom PSPs. They came with a tested battery, a mint condition screen and you could choose from a number of different cases. I chose the rare special edition Japanese signature Model 000001 Tsukimi case and it came to quite a reasonable price overall, £160 for everything although no memory card was supplied.

When it arrived, I was a bit worried that the screen would be scratched, but when I peeled off the screen protector there was zero damage to the screen. In all other ways it seemed mint, so was very happy. The battery was an official Sony one which still held a charge well, which I was very happy about because it is difficult to find a good battery.

I peeled off the screen protector and put on a new one straight away. I also ordered a 32GB PSP memory card, and a joint USB charge/data transfer cable. When the card arrived I put on the PSP 2000 ‘PRO’ Custom Firmware, allowing me to ‘root’ the device and install third-party software such as emulators on it. I then installed a PSP Snes9x version and downloaded a full complete set of SNES games and copied them to the memory card. I had to split the games up into folders of 200 games or so each otherwise the PSP struggled indexing all the games, but when I had done that they all worked. I could play any Super Nintendo game ever released on the emulator on my PSP and take them anywhere.

I also bought a hardshell carry case for my PSP which will have enough room for a charger, a few Sony UMD disks and the PSP. The PSP 2000 models are different from the 1000 models in that they actually have a HDMI cable available, so you can connect them to a HDMI monitor. So I bought one of those to play when I am home at my desk with my HDMI monitor – it is a much better user experience! See the picture below, it even works well in my 21:9 ultrawide monitor after fiddling with various upscaling options:

I already had a couple of Sony UMD discs and they are very cheap on Ebay, so I splashed out and ordered a complete set of the Harry Potter 1-8 movies. I could definitely just rip movies and put them on the memory card and it would save a lot of hassle but I like the UMD format and as I said they are very cheap nowadays. I may put some additional video file rips on the memory card.

I got ALL the information I could have wanted for this project from the excellent Reddit subreddit ‘PSP’. Reddit is a font of useful, up to date, technical info and just following the wiki and top links on that subreddit really was all that was required to do everything I needed.

Making Twitch DJ Promo Mix Videos

Sometimes as a DJ you may want to reconstruct the Twitch stream you have streamed into a video format to send to other people, for promotional purposes, or just to have a record of what you’ve done. Twitch makes this difficult though, as it mutes copyrighted music in the video it records for your Twitch stream. Also, when you download this video, it does not include the chat log, so any attempts at reconstruction are without the chat, so it looks like the DJ is just talking to him/herself. Not good. However you can get past this. This is how I reconstruct a video set to create a promo DJ video mix for my stream. You will need:

  1. VOD recording of your stream
  2. A full audio capture unmuted. I use for this as I find it very convinent. It is a paid service but it’s cheap, and you can just set it as a stream endpoint on Streamlabs OBS and forget about it – it will record all the audio from your streams. Currently there is not an option to download the audio, but you can get past that, see below.
  3. – The Twitch Downloader tool that allows you to download chat logs from the Twitch VOD and reconstruct them into a twitch chat pane video
  4. A video editor and some basic video editing skills. iMovie for OSX is good, I use the free Video Editor for Windows 10

Downloading the video from Twitch

Just browse to your video section of the creator dashboard and you will have an oppertunity to download the video of your Twitch stream.

Downloading the audio from Mixcloud

Make sure your audio recording is published on your Mixcloud and just use the site to download a m4a copy of your audio stream.

Downloading and rendering the chat playback using Twitch Downloader

This is a great program but is a bit technical. There are two steps you need to do – 1) download the chat logs from a VOD and then 2) Render them into a video. So for example:

  1. .\TwitchDownloaderCLI.exe -m ChatDownload -u 1055017670 -o bla.json

    – where 1055017670 is your VOD ID (find this by browsing to your video on Twitch. the VOD ID will be displayed in the URL)

  2. .\TwitchDownloaderCLI -m ChatRender -i bla.json -h 540 -w 212 --framerate 30 --update-rate 0 --font-size 11 -o chat.mp4

    – this will render your chat playback in a video file with the dimensions 540x212px and the font-size of 11. This is what I use, you can edit this to suit your tastes.

Once you have these three elements, you can use any good video editor to sync the audio with the video, and overlay the chat video onto the video of your stream. Add some titles and there you have a promo video.

Distributing your promo DJ mix video

You may run into problems distributing your video as services like YouTube will flag up that you are using copyrighted music. However you can use the fantastic Handbrake tool to compress your video file into a small filesize, and then upload the resulting video to Google Drive. Then you can set Google Drive to ‘share via link’ and distribute that link to people you want to watch your video. They will sometimes be offered a live stream option but for best results they need to download the whole video file (so make it small!) and watch in a video player like Windows Media Player.

A Basic Example – Here’s one I made earlier

Remember to download the whole file for best results:
You should (maybe) also be able to preview it here:

Using Navidrome on a RPI3 to host my music collection for DJing so I can listen between sets

As a DJ it is important to listen to the music in your collection so you get an idea of what would work in particular sets, and you have a memory of how the tracks progress. So I decided to host a Spotify like service in my house so I could listen to my 500GB+ DJ music library. Navidrome (free open source software from is running on the Raspberry Pi 3 which is under my desk via a wired connection with it’s own http://navidrome.local custom domain name. This is what it looks like:

It remotely mounts the music share on my main Windows PC which is almost always on, and quickly indexes and serves up the content in a Spotify type way.

I have setup an iptables port redirect so that any web traffic to port 80 or port 443 will be redirected to the correct navidrome app port so I don’t have to remember the obscure port number just the domain name above. I have also setup AutoFS to automatically detect when my main PC is running and mount the windows share automatically, so everything just works whenever my main PC is switched on and off, and docker-compose automatically loads the container whenever it goes down and the setup persists between reboots of the RPI and the windows PC. I have also installed Plex on the same RPI, using AutoFS so that it mounts and unmounts the video share on my other PC when it is switched on. I have ripped a bunch of comedy videos from my DVDs and BluRays using Handbrake.

Navidrome implements the Subsonic API, so it is compatible with a lot of different applications, including the excellent DSub application for Android which offers a more mobile-friendly streamlined player that connects to my Navidrome server and allows caching and pre-downloading, and a bunch of other cool features.

It provides an easy way for me to browse and play any music from my music collection from anywhere on my network, and it has full metadata added as part of my DJ music metadata workflow (see: for more info). I have also setup my RPI3 as a ZeroTier bridge to my local network, meaning I can create a P2P VPN from my phone to stream music via DSub when I am outside the house too, or to access Plex on the RPI from my phone while I’m on the move.

Another useful feature is that I can save playlists using Navidrome and download all the files that make up the playlist via the web interface. This is useful for preparing a set and moving all teh files onto my DJing laptop so that I can analyse them in Serato and play them in a Serato crate.

Proper Care and Operation of Vinyl Turntables for DJs

Setup your new Turntable

Follow this and only this guide. This is the best vinyl setup video on the internet as of 2021:

A lot of DJ turntables are based on Technics OEM clones, and so you will need to set the tonearm height, which is the only thing not covered by the above video:

The Basics

Once you’ve setup your turntable:

0) Should go without saying that I always use a velvet dust brush on my records just before I play them. Only takes a couple of seconds when you’re used to doing it.

1) I always use a stylus guard or record player dust cover when not using my decks.

2) I regularly clean my stylus/needle either by blowing or (how you’re supposed to do it) with a stylus cleaning brush.

3) I highly recommend you get one of these tracking weight scales:
and a small 10cm or so spirit level.

4) If you are dealing with expensive records, records you care about, or records that you think one day might become expensive, I do think it is a worthwhile investment to get a set of good outer covers for the vinyl jackets and some good quality inner sleeves to replace the inner sleeves (often printed paper) that come with the record. You typically put the old sleeves next to the record in the outer sleeve so they don’t get worn down by use. This will cut down the amount of dust and static that accumalates also. Take the digital download cards out of the records when you open them – if you leave them sealed with your record for years they can cause compression marks on the vinyl. I usually redeem them online once I buy the record and then rip up the digital download card.

5) Vinyl is an analogue medium. Occassionally things are going to go wrong – you’re going to get some fluff on your stylus and the record will stop tracking properly, or the record is going to skip, or there will be crackling from surface noise, dust, dirt, whatever. You will have to take action, usually involing lifting the needle from the record, often in the middle of your set. Be prepared, but you can always remind the audience jokingly that you are actually playing real records – they will (hopefully) understand it’s not like pressing a button.

6) Needle drops. I do not recommend beginner DJs start dropping the needle manually onto their records. On every record deck there will be a lever that gently lowers the needle into position on the record, and raises it when reversed. It IS possible to bypass this and drop the needle manually and gently on the record without using the lever, and lots of very experienced DJs can do it so well that there is no long-term damage to the needle and they are faster and often more accurate than using the lever, but doing it this way there is much more of a risk when starting out that you will scratch your records. Scratch DJs and old timer vinyl DJs drop the needle all the time, and good for them. Until you are more used to everything I recommend you use the lever.

7) Flight cases. You can get cheap second hand flightcases that have lasted decades and probably will last decades more. You’re looking for something sturdy and mostly metal but as light as possible. Make sure there are no dents and the catches operate like they should, and your decks and mixer snugly fit in without any movement. Coffin style flightcases are a popular option for vinyl DJs as they reduce setup time, but they are pretty heavy. Remember to check with the venue how much space you will have and will they have a table or booth you can put your entire setup on. A lot of venues are used to much smaller controller setups so check first.

8) Record boxes/bags. There are lots of different options here. I would recommend a secondhand metal flightcase style record box which is as light as possible, opens up at the front so you have plenty of space to shuffle through the records, and has wheels and a handle so you can pull it around like a suitcase. A full record box can be VERY VERY heavy! Only take the ones you know are going to go down well. There is a lot less manouvering space in your set for real vinyl DJing as opposed to just turning up with a controller and 20k songs to choose from, so you have to plan things more. Get a good idea what type of music you are booked for, and what people are likely to like. Make sure the records you have are good quality and will not skip or cause you problems. Remember to keep records away from direct sunlight – they will warp. A good habit is to put them back in the box once you’ve played them. They should always be kept standing up vertically, never stack them horizontally as the weight can cause problems for the bottom records. You may opt to leave behind all the outer sleeves and inlays etc and put each record in your record box only in a paper inner sleeve where you can write the artist, the track, the position on the record, and the BPM, and anything else you want to make selection easier. Colour coded stickers can be useful. Don’t assume you will have light in a darkened environment to read your inner sleeves, and I wouldn’t rely on your mobile phone torch – it uses up battery and you might need it for other things. You can get clip-on battery powered lights or keyring pencil torches that last for ages on a single battery.

Monthly Maintenance

Once every month or so, I do this:

A) Check the spirit level on the platter of your turntable without a record, to make sure that from top to bottom, from left to right, and from the center to the outside of the platter, everything is stable. If anything is off, use the adjustable feet on your decks to make sure everything is level, or put some cut up cardboard under one of the legs to lift it, if you don’t have adjustable feet.

B) Use the scale recommended above to check the tracking weight, again without a record on. Make sure it is within your cartridge acceptable weight range, but relatively low within that range unless you’re doing a lot of scratching. Higher tracking weight = quicker burnout of needle and record, but closer tracking when you scratch.

C) If you are using DVS, use some vinyl record cleaner to clean the DVS timecode records you’re using, and wipe them clean.

D) If you are using DVS, recalibrate the decks using the DVS software so that it uses the right sensitivity after any adjustments you have made.

E) Check all the connections on the back of your turntables, make sure they are tightly plugged in, occasionally they become loose over time and with knocks, and that can cause problems.

F) Check the speed of your platter is stable and spot on at different speeds – most OEM Technics style clones have a small strobe light and a number of dots. Learn how to use those to quickly check that all is in order.

That’s it. That’s all you need to do to make sure your equipment is reliable and lasts a long time.

Lighting and Camera Setup

Light Sources:

  • Phillips Hue Colour Lamp (top right)
  • Phillips Hue Colour Lamp (Middle)
  • Phillips Hue Colour Lamp (Bottom)
  • Phillips Hue Lightstrip
  • “DJ David Craddock” white illuminated sign
  • “Live on Air” blue sign
  • Laser (green or red laser wash)
  • Revolving disco balls

Dark Music Lighting Settings

For Phillips Hue sources I use Hue Sync on my broadcast PC which syncs the lights in time with the music. I will use different palletes depending on the event. For darkwave/dark music style events I will use this pallette:

I will have the ‘Live on Air’ sign on, but not the disco balls or the laser.

Generic Disco/Party Settings

For lighter/retro music settings such as my bi-weekly ‘DJ’s Choice’ I will use the following settings:

I will have the ‘Live on Air’ sign on, and the disco balls and laser.


All cameras are mounted on tripods and require a USB port. Most have USB extension cables.

  • Spedal Wide Angle camera – this will be used as the DJ CAM as the wide angle will cover the entire room
  • Logitech C920 A – this will be used as the Decks Cam Right
  • Logitech C920 B – this will be used as the Decks Cam Left

Resolume MIDI Control in my Twitch DJing Setup

I have retired the Novation SL Zero Mk1 MIDI controller that was causing me a lot of grief when I was running Resolume and Ableton Live at the same time, as its Automap functionality was locking on to the Ableton Live mixer in session view now and then, and so, sometimes, when I thought I was controlling Resolumes visual FX, I was actually changing the volume faders in my DJ mix. Which was bad.

I have replaced it with the even older but classic Behringer BCF2000. I use the sliders to control the 8 dashboard visual FX controls on Resolume. I also have attached two pedals to the BCF2000. The first one, the sustain on/off switch pedal, I have mapped to control whether Resolume is running in autopilot mode or just looping the current visual. This will allow me to set it on autopilot through most of the set and then focus on one visual when I want to do some more involved stuff. The expression pedal, I have set to control the opacity of the top layer. I run Resolume with two layers, the main layer which is usually a background of an animation, and then the ‘extra lines and bars and stuff on top’ layer. So when I gradually depress and release the expression pedal, I fade in and fade out the ‘extra stuff’ layer from the scene.

I have additionally mapped four buttons on the Behringer BCF2000 to manually skip forward and backwards each layer through the prepared layer list. So if one layer is boring or I want to select something specific I have some control over that without having to open the Resolume window on the PC.

So far I’m happy with the autopilot setup I’ve got. I want to spend more time on Resolume and the VJing side of my stream, but for now this will do and will offer sufficient variety.

Hybrid Serato DJ Pro DVS/Ableton Live DJ setup (21/4/21)

I recently found a good price on a Vestax VCM-600 controller. It is a specially made MIDI controller for Ableton Live, with the same build quality as a DJ mixer. It allows for control over 6 channels in the Ableton Live ‘session’ view, which is arranged similarly to a mixing console. It also adds dozens of MIDI mappable DJ controls such as the traditional Hi, Mid and Lo EQs, a crossfader, a filter control, control over a lot of Ableton FX, and more. It has 6 channel faders + 2 send faders for FX. More info in this video:

It replaces my Pioneer DJM-S3 mixer. I use a 4×4 interface compatible with Serato DJ Pro DVS, the Denon DS1, and run the timecode audio from the Reloop 8000Mk2 decks through the Denon DS1. It outputs the Serato DJ Pro modified audio for both decks. The outputs of the DS1 are connected via a Douk VU-Meter (to see the levels for both decks for accurate gain control while mixing) to the Behringer UMC1820 audio interface which is connected to my broadcast PC running Ableton.

When I move the faders on the Vestax VCM-600 controller attached to the broadcast PC, it functions as a DJ mixer, with the actual mixing taking place in Ableton through the UMC1820 audio interface.

The microphone for streaming is connected to the sound interface as usual, and the DJ headphones are connected to the headphone amp on the the sound interface, with mic levels and cueing dealt with via Ableton Live.

The advantages of this setup over my previous setup are multifold, as I now have a 6 channel fully configurable mixer. Firstly it will allow me to bring in various external hardware instruments such as drum machines, hardware synths etc, all controlled via Ableton. I could also bring in software instruments/VSTs. It would allow me to use high quality studio software FX in my DJ sets. It would also allow me to trigger samples from Ableton Live and have them output on one of the channels, synced to the beat.

I am currently using the 4-band X:One EQ filter Ableton FX Unit clone from, see: .
I am also using the DJM-900 filter clone. I have adapted these both into my Ableton VCM600 template set. I might release this set later once I’ve built it up more with Ableton FX.

I am currently using Serato DJ Pro FX controlled by my Akai SP8 cheap controller connected to my DJ laptop, which I have changed the knobs on to make them more tactile. I also have an Ableton Push mk1 controller hooked up to broadcast PC which is useful for multiple things, but mostly for quickly controlling Ableton Live without having to mess around with the mouse. I have not synced the BPM automatically yet between Serato and Ableton; Serato has a problem with Ableton Link integration I found. For the moment, I am using the Serato DJ Pro beat-synced FX on Serato, and using tap-tempo on my Ableton Push controller to set the BPM in Ableton Live. I don’t need the BPM to be exact at the moment for Ableton Live as I am not using any beat-synced FX or looping FX on Ableton.

Looping, beat repeat, cue point jumping, tempo, sync, scratching and platter changes for each deck are handled by the controls on the Reloop 8000mk2 which are both connected via USB to Serato on the DJ laptop, so they function as a DVS system but with also pads and controls for Serato too.

I am using Resolume on my broadcast PC. I run a number of scenes on autopilot mode, and use the ancient Novation SL1 Mk1 MIDI controller to apply video FX to Resolume. I sync the BPM to Resolume through Ableton Link, with Ableton Live setting the BPM for Resolume through Ableton Link, and me setting the BPM for Ableton Live using the tap-tempo on the Ableton Push controller.

I have a sustain pedal which I use to trigger the ‘ducking’ affect in Ableton when I want to talk over the music.. when the pedal is depressed, the music fades down and the mic up a bit, so people can hear me better. When the pedal is let go, the microphone volume is killed so no background noise is picked up.

Here it is in action – the clicks are me flipping the crossfader or the channel faders on the VCM-600:

As you can see from the video, the latency really isn’t an issue. It’s very responsive even though the timecode audio from the turntables is being processed by the Denon DS1, sent through the Douk VU-meter, and then converted to digital signals by the UMC1820 sound interface, sent through an EQ and FX chain, and mixed by Ableton according to the VCM600 DJ controller movements.

Here is a flowchart which should help explain the signal flow:

Here is a list of equipment that I use:

  • VESTAX VCM-600 Ableton Controller. Came out in 2010, cannot buy anymore new. Bought second-hand for £175. Had to clean the knobs with isopropyl alcohol as the coating becomes sticky after years and years of use.
  • Novation Remote Zero SL Controller. Very old MIDI controller, cannot buy anymore. Can buy very cheaply now. Not sure if I would buy this exact controller again but it certainly is durable.
  • AKAI LPD8 Controller. Very cheap MIDI controller still being sold. Bought new for £30. Took the knobs off and replaced them with Doepfer knobs from my Eurorack for better grip.
  • Behringer UMC1820 Sound Interface. Very good value USB audio interface with lots of inputs and outputs. It comes with 8 physical inputs and 10 physical outputs. To get access to the other inputs and outputs you would need to buy an ADAT or SPDIF expander. Bought new for around £200.
  • Douk VU-Meter. Very cheap though accurate VU-meter for checking volume levels. Bought new for £60.
  • Denon DS1 Serato Interface. Not sold anymore, sadly, although it has a class-compliant driver for OSX so it is likely to remain suported for a while, while the alternative Rane Serato interfaces may not. Bought secondhand via Ebay for £120.
  • Reloop 8000mk2 vinyl turntables. Excellent turntables with a huge amount of features and a solid build. They are available quite cheaply new. Paid around £400 each for them. I use Concorde Mk2 Digital needles and Serato Butterrug slipmats and Serato control vinyl.
  • Ableton Push Mk1 Controller. Although the MK2 is out, the MK1 is still supported and there is no indication it will be deprecated soon. Not available new anymore, buy secondhand. I paid £250 for mine although they’re available much cheaper now.
  • RODE Procaster Microphone, cage, pop sheild and boom mount – This is an excellent high quality microphone. You can get a lot cheaper if you wanted to. Mic setup cost about £200 new.
  • Apple Macbook Pro 2015 13″ Retina edition. Still going strong from when I bought it. Only has 8GB memory and that is shared with the graphics card, but otherwise it is fine. I have kept it on Mojave, no plans to update. I only use it with Serato DJ Pro. I have an external HD attached to it for all my DJ music.
  • Broadcast PC – a workstation PC I built myself. For the specs see: In particular I have found the Nvidea 1080 graphics card very useful for Resolume – no way would it run well on my laptop.

For new equipment I use often or, or Amazon, or whatever is cheaper on Google Shopping.
For used equipment I use or or occasionally Facebook adverts.

2020 Retrospective – Wow, what a year!

I think, for obvious reasons, 2020 has been a year that no-one could really have expected. With COVID-19 and lockdown, a lot of things have changed, both in my life, in everyone’s lives, and in the workplace.

My online DJing setup

Things that went well

  • I changed medication around March 2020 which has resulted in significant weight loss, as expected. The previous medication was making me put on and retain weight even when I was eating very very little. In March 2020 my weight was nearly 136KG and now it has gone down to 125KG in March 2021. I have not been doing more exercise, indeed quite a bit less, as I have been staying indoors most of the time. The weight loss has had a very good effect on my general health and my sleep.
  • I am much happier than this time last year. Working corporate jobs I found very very stressful and apart from being financially rewarding, I wasn’t getting much else out of it. My mental and physical health was suffering. My relationship with my wife and friends are much better now because I am less miserable all the time.
  • I have taken up DJing over the internet and have turned this into a part-time income. It is so much fun. I used to DJ in clubs in my 20s regularly and I didn’t realise how much I had missed it. It is great to have a way to connect socially with people in lockdown and people really appreciate my DJ sets, which is great.
  • Working from home has been a great change for me. Before the pandemic I wanted to work from home 100% anyway, because I was ending up spending at least 2 hours commuting to and from work, it was costing a lot (because I can’t drive) and it was taking up a lot of time and energy.
My work from home setup

Things that didn’t go so well

  • I found that when I am working 100% from home, it is difficult to do work that I am not motivated to do. It is much easier to get things done that you really don’t enjoy when you are in the office. I have noticed a productivity decline in things I don’t really want to do, but I don’t think this is necessarily a problem with working from home, simply it is something I need to address by finding work I am more motivated to do.
  • My financial situation is a bit unsteady at the moment. I have got used to living on much less, and my costs are minimal. However I am struggling to find a job I am motivated to stick with. I think this simply requires me to explore careers and jobs outside of what I have done before.

26/2/2021 DJ Setup with Diagrams

After the last post I have added Ableton Live and my Eurorack modular to my DJ setup, with a master clock being sent via MIDI cables from my Roland TR8 drum machine that syncs with Ableton. The drum machine also can be used creatively for drum fills etc.

I hope these two diagrams explain my setup adequately – sometimes a picture is worth a thousand words! The ‘actor’ is me – I just couldn’t find a way to change that on 🙂

DJ Books: Reviewed

The classic!

Yes! Some people actually write and read BOOKS on DJing. As if YouTube wasn’t enough. Well it can be enough.. but YouTube is also a cess pit of rubbish information, and at least a book has a better chance of being properly edited and reviewed. Also reading a book makes you more intellectual. Which is utterly true.

So. I have been reading through these DJing books to see if they could teach me something I didn’t know about DJing after over 10 years doing it. And there were quite a few interesting techniques and tricks that I learned from these.

How to DJ (Properly) – Frank Broughton, Bill Brewster (2003)

This is a great old book that I first bought when I was getting into DJing back around 2000. It covers so much technical and non-technical information that is still highly relevant today, but some parts are laughably out of date. I really wish they would update this book and put out a new version. A lot of the non-technical stuff you won’t find elsewhere and is really useful still. Definitely worth a read but don’t expect a modern take on things.

FutureDJs: How to DJ – Austen Smart, Scott Smart, Tom Dent (2019)

This is the book you want if you want a modern and uptodate introduction to DJing. It was designed as a textbook to help train high school music teachers so they could include DJing tuition in their classrooms. It’s amazing – really great – and contains lots of diagrams which help the explanation. If you want to get just one book on DJing buy this.

Rock The Dancefloor: The proven five-step formula for total DJing success – Phil Morse (2016)

I have to say straight away that I am quite biased as I don’t actually like Phil Morse of fame. I don’t find his reviews to be that accurate and often seem a bit like advertisements of products. I have learned some things from his website but not a huge amount. However this book has got lots of great reviews so I thought I’d mention it. I do have a copy but I found it a bit difficult to get through as it is all written in Phil’s quite conversational prose, with no diagrams or pictures or anything really to break it up. It may well be worth checking out to see if you can get anything from it though. I will probably try and get through it myself and give it a proper review, but just so you know it’s out there.

Beyond Beatmatching: Take Your DJ Career to the Next Level – Yakov Vorobyev, Eric Coomes, Bill Murphy (2012)

This is quite an interesting and quite advanced book by the developers of Mixed in Key. In it, they talk about using MIK’s features to detect musical key and energy level, and how you can use those features to plan your set around harmonic mixes and energy level arcs. It is quite advanced and very interesting. MIK is a pretty good piece of software, I have had it crash a few times when analysing very big libraries but generally it is pretty solid. I recommend checking this out, because although the basics of harmonic mixing are probably talked about in any recent DJing book, this goes into greater depth.

Twitch Streaming Technical Setup

I thought I’d write a bit here about my Twitch DJing setup and some of the hardware and software I’m using. Twitch streaming has become very popular over the lockdown period, and I think people might be interested in how I have configured my stream. Something that seperates my stream from anyone else I’ve seen on Twitch is that is that I do live vinyl DJing AND live VJing at the same time on my stream. This is how I achieve it.

Broadcast PC

This is my main desktop PC that I use for personal use as well as streaming. It has a Nvidia 1080 graphics card which is very useful with Resolume Avenue, the VJing software I use. I have one main big monitor and one smaller second monitor which I have attached to a long HDMI cable and placed next to my DJing desk along with a second mouse and keyboard which goes into a USB 3.0 hub and a long USB 3.0 extension cable. When I go to DJ I set the Windows graphical settings to duplicate my screen on both screens, so I can control the broadcast computer from where I am standing next to my DJ equipment. I have a Behringer UMC1820 sound interface which has 8 balanced phono inputs. Inputs 5&6 are permanently connected to my DJ mixer, and I use Input 1 for my microphone.

Broadcasting Software

I use Streamlabs OBS on my broadcast PC. I did initially subscribe so they let me download one of their custom themes, which I have heavily edited but still remains integral to my setup. For some reason even though my subscription has lapsed that has not made any difference to whether I can continue using this theme and the app, although it has turned my follow/subscription/bit notifications back to the plain old free ones. I prefer it over free OBS for three features at least.

Firstly, the studio mode – I am not sure if OBS free has this (maybe it does?) but it is useful when fixing things live to have two scenes active, one which is being broadcast and one which is only visible to me. Secondly, the way you can order the layers on the scene, this is very intuitive to me and was more intuitive than the layering (front to back) on OBS free. Thirdly, the remote control element.. I have a remote control app for my Android tablet and phone which allows me to quickly cycle through scenes – no need to shell out for fancy scene controllers.

I use the free NDI tools for NDI streams to Streamlabs OBS for the external video elements on my screen – one from Resolume Avenue on my broadcast PC and the second from my Macbook Pro which is running Serato Video. I also use streamelements and Moobot to enable kappagen effects, and to moderate the chat and provide information to chatters.


2x Logitech C920 web cams on tripods. I bought them because I saw them used at the BBC where I used to work. I think if I had more USB3 ports on my computer the bandwidth for these cameras would be increased and the resolution would be wider, but as they are, they are really solid. I’ve only had occasional problems with the auto-focus when there is a lot of lighting strobing going on.

DJing Equipment

I have a pair of Reloop 8000mk2 turntables with a Pioneer DJM-S3 Serato mixer. Both integrate really well with Serato and offer additional performance features. I use Serato on my aging Macbook Pro 2015 and have actually got it to reliably output Serato Video using NDI capture tool and send it over the network to my broadcasting computer without the fan having to spin up. I only use Serato on my Macbook because I don’t want to burden it – it is doing enough as it is! I have a 2TB external HD where I put all my digital music files and have it mounted as a network share so I can transfer files over the network from my main PC. I use Mixed in Key to add Serato cue points to music I use, and the free MusicBrainz Picard to correctly tag files and organise my music collection.


I use Phillips Hue lightsources and the hyeDynamic Windows 10 app. It connects to the Hue hub strobes the lights in time with an audio input. I have a Hue Lightstrip and 4x Hue Colour bulbs and they all sync together. I also have a small laser unit that syncs in time with the beat and is useful as added background lighting.


I use Resolume Avenue with a number of clips I have commercially bought. I have it running mostly in autopilot mode with all the clips synced to the beat. The beat is provided by a free app called ‘AudioBoxBaby’ which I am really looking to replace, but there is simply nothing else out there on the market. It detects the approximate BPM of any audio coming in on my sound interface from my DJ mixer, and translates it into a single repeating midi note. This midi note I have mapped to the tap tempo button in Resolume so it is like a human tapping the tempo along with the music in theory. Serato DJ Pro supports Ableton Link, and so does Resolume Avenue, but I have found that syncing via Ableton Link to be very problematic when using Serato, and of course it doesn’t work when not using Serato, for example with all vinyl sets.

I also have a Novation Zero SL controller which I have had for over 10 years and still works perfectly, so I really recommend it! It is attached via a USB extension cable to my broadcasting PC and I use it to control some basic VJing effects that I put over the audiopilot clips to create buildups and visual changes in time with the music. It has 8 sliders and I move them in time with the beat or to create buildups/variations etc.


I have a Rode Procaster mic with a Rode microphone boom, shock cage and pop shield, which is attached to my audio interface for my broadcasting PC with a long cable. I have it wired so that when I press a piano sustain pedal on the floor under my microphone, vocal ducking happens – e.g. the music fades down slightly and the microphone volume fades up so you can hear me talking over the music. In order to accomplish that I use two commercial apps, the first called ‘Auto-Duck in Real Time’ which allows me to configure the vocal ducking linked to a keyboard keypress, and ‘Bome’s MIDI Translator Classic’ which when the MIDI signal that is generated when I press the sustain pedal connected to my Novation Zero SL controller, the MIDI translator converts it into a keypress that is picked up by the ‘Auto-Duck in Real Time’ app to trigger vocal ducking.  I have it configured so while I am holding down the sustain pedal, it ducks the music playing and when I release it, the music goes back to normal.

Internet Connection

I have a fast Virgin Media internet connection with 30mbits/second upload. I think my Twitch stream and everything else in my home requires about 5mbits/sec upload! I also have a backup internet fibre DSL connection that thankfully I have never had to use when I’m streaming, but it also has around 15mbits/second upload and I should be able to switch between both relatively quickly if I needed to.

Phew! That’s all! 🙂 I realise it is technically involved compared to a lot of peoples setups, but I have always been really interested in the technical side and have been lucky enough to be able to create exactly the setup that I really wanted for my stream. If you’re interested in checking it out, my regular stream is from 4PM UK time/UTC every Sunday and I play for at least 4 hours. Follow me on Twitch at:

Struggling with the technical side? If you are interested in hiring me to help develop your own streaming setup, I have worked before in this capacity and can supply excellent references. The work can be done online, as with your permission I can remote control your computer and configure things. Please send me a message if you are interested via the contact form on this website.

David’s Guide to The News

Journalism has deteriorated to a huge degree in the online age. A lot of articles and video content are one-sided short ‘clickbait’ – short messages designed to trigger an extreme emotional reaction. ALMOST ALL journalism is like this these days, it doesn’t matter if you have a highly established news network you have been trusting for decades, they have all had to adopt this low-quality strategy due to the ultra-competitive and dire financial situation that all news reporting finds itself in. However a lot of people still take news content at complete face value, and this leads to a huge number of people being misled about the real facts.

So, whenever you are reading, listening to, or watching a piece of news content, here are some questions you can ask yourself to really get the full picture of what you are consuming.

1) How long is this news article/segment? What depth does it go into? Broadsheets like the New York Times go into much more depth than a 10 second ‘news highlights’ clip, and will usually present a much more detailed and extensive argument. If you really want to understand something, as the saying goes, read a book – or better yet, several books from several different perspectives. Do not expect to understand the full issue from TV news segments.

2) What emotional reaction is the journalist trying to get me to feel? What language does the piece use, what quotes are they using, what video are they using, what music do they use to set the scene, is the news anchor looking like they are being particularly dramatic? What is the emotional message?

3) What is the editorial slant of the news source? EVERY news source has an editorial voice – or bias – and you need to take that into account when getting your news from that source. It doesn’t matter if you generally agree with the editorial voice, you have to understand that everything is biased. News isn’t free and a lot of news sources get their funding from various ‘benefactors’ who often have a very real say on their editorial bias. Knowing how the news organisation is funded is very important in knowing what slant they will take, especially when it relates to political news.

4) Does the news piece provide a fair and plausible representation of both sides? There are ALWAYS two sides to the story, this is something that has been all but extinguished in modern news reporting. A few news sources will set up often comic ‘straw men’ opposition points, like the BBC interviewing odd people who drink their own urine for a news piece on how health information is understood by the public. While this may be amusing, it is not meant to present a fair and accurate argument from both sides, it is designed to ridicule one side. There are usually some genuine points from each side that are worth everyone considering, no matter what story it is.

5) Seek out contrary points and opposition points of view. If you want to understand a news event further, seek out a number of different articles from respectable sources with very different editorial voices/biases. Even when you take into account their individual biases, there are usually some valid points underneath it all.

I hope that everyone will consider thinking more criticially about the news they consume.

Finally my 27U Eurorack is complete!

So.. finally my 27U Eurorack modular synthesiser is complete. I have filled up the third – and surely last, as there is no more room in the studio! – case. I started this Eurorack modular in 2015.. so I am glad it is all complete now. I put in a small amount nearly every month for new modules. I am not some ‘rich kid’ who could afford to buy everything at once – and indeed I think my gradual approach has benefitted the overall modular because it’s made me think about what I actually need, and given me time to learn as I go along.

These are the details for the (newest) left section case:

These are the details for the middle and right sections:

Very happy!

Ivy Bridge 2011 PCs are still useful today

In our house, seperate to my main PC (see the tab above) we still have two Ivy Bridge-based PCs:

Conny’s PC

  • i7-3770K
  • 16GB DDR3 RAM
  • Nvidea Radeon 970 Graphics Card
  • 250 GB SSD
  • Windows 10

My wife uses this as her main PC, and plays quite a few games with it. For a CPU and motherboard that I put together in 2011 or so, I am quite amazed it still runs adequetely! It runs the games she wants to play, the most graphically intensive being Deadpool, but it will also cope with Borderlands 2, Skyrim Special Edition, Shadow Warrior 2, and others. She is not interested in the top graphics games, but it runs just fine.

My Second PC

I have a computer that I use for my own programming and tech hobby projects. It used to be a top of the range workstation 2011 and I got it in a hardware disposal sale at Arm Ltd for only £400 in 2019. This is quite the deal, as it included a lisence for Windows 10 (normally costs £100 on its own).

  • Intel Xeon E5 2650 v2 8 CPU cores @ 2.60GHz
  • 32.0GB DDR3 RAM
  • 2048MB ATI AMD Radeon R9 200
  • 250GB SSD
  • 3TB HD
  • Windows 10

I don’t need a powerful graphics card as I don’t game on it, and the Radeon R9 3200 supports my 2560x1440px monitor so it is more than adequete. I have installed VMWare on it and am looking to spin up some virtual machines as servers, and have them running in the background while I am browsing. I could assign several cores and quite a lot of the RAM and not really notice a difference with the light work I do when using the computer.

I am just amazed at how much you can do with these old high-end CPUS. The performance delta between these Ivy Bridge 2011 CPUs today’s processors really isn’t that large, and they are so cheap these days. This following video shows just how cheap you can build one of these setups, and how powerful they are even today:

The only situation where these processors don’t really work hugely well is in applications which emphasise single-core performance – I tried to use my second PC as an Ableton Live machine, and a lot of audio plugins I wanted to use were not optimised for multi-core processors, just single-core, so that didn’t work well.

Studio Setup in 2020


I have made some considerable modifications to my modular since my last post. I have a 4-voice polyphony setup now with multiple voice Osc, VCA, Envelope and MIDI-CV modules, allowing me to experiment with polyphony voicing.

Elsewhere, I have added an Access Virus C synthesizer to my studio, and now have rack-mounted Behringer Model D and Emu Orbit 9090 synthesizers. I have also upgraded to Ableton 10 and use NI’s Komplete suite including Massive X, plus TAL-NO-UX Juno 106 softsynth, Sylenth1 and others.

A Retrospective for Years 2016-19

I thought I’d update my blog to reflect recent changes in my life, and review what was good and bad about them, as I was doing before.

The “Not Awesome”

  1. My overall health level has got a bit worse over the years. I have had limited success in losing weight. I was going for regular walks nearly every week with a friend of mine, but that has stopped lately. I find it difficult exercising while living in a city, as my favourite activity for excercising is walking, and there are not a huge amount of pleasent walking oppertunities around my area. I have been getting Ubers to parks and walking there. A posssible solution that I am actually considering is moving outside of the city, where there are a lot more pleasent walking oppertunities on my doorstep, and which would hopefully lead to a much more active lifestyle.

The “Awesome”

  1. Conny and I got married! We have also adopted two cats, so we have a little family now 🙂
  2. Brexit is not going to affect Conny’s ability to live and work in the UK after all, which is a great relief.
  3. I am doing well in my job, having achieved a “High Performing” overall performance rating at work for this year. This has taken a huge amount of personal effort.
  4. I have cutout meat from my diet for health reasons, although I’m still eating fish. I have also started getting prepared healthy dinner meals from this site online. The meals are a lot more healthy than what I was eating before, plus it saves Conny from having to cook for me in the evening, which is good as she is currently working two jobs.
  5. Conny has started work and is really enjoying it.
  6. Our finances are looking much more healthy than in previous years, with Conny starting working and due to bonuses in my current job. I have increased contributions for my pension, and we are doing very well with budgeting and financial planning.
  7. I’ve managed to build up my music studio and gaming PC setup quite a bit, which was always something I wanted to do after taking on a more stressful (and rewarding) job.
  8. Our house price has gone up a lot.
  9. I’ve developed a much healthier attitude to my professional skills and development, after reading the ‘Passionate Programmer’ I have been putting in extra time after work to read a number of books and developing my technical skills.
  10. I have started learning maths in my spare time through enlisting one of Conny’s friends who is also math tutor. Building up my math skills will unlock a lot of interesting paths for my software development skills, such as audio DSP, graphics programming, and data science.
  11. I have taken up record and CD collecting, and have quite a large collection of electronic music on vinyl and CD now. I bought a Rega Planar 1 turntable and two CDJ1000s with a pioneer mixer for DJing. I can connect the setup to Serato on my laptop for digital DJing too.

Home Cinema Setup

I have been gradually adding parts to my PC so that it functions better for watching movies and gaming. Here are the components that I have used:

Monitor – BenQ EX3501R 35″ Ultra WQHD Curved Monitor

This monitor is great for watching movies and gaming as it is ultra-wide at an aspect radio of 21:9, 3440×1440, a VA panel with high contrast, and the monitor is slightly curved so that you get a cinematic experience.

Surround Sound Speakers – Logitech Z906 5.1 Speakers

This is a good set of 5.1 surround sound speakers with a separate subwoofer. I connect it from my motherboard’s optical out via ADAT for the best connection. I have the rear speakers mounted on the wall behind me, and the front speakers on the desk in front of me angled towards my seat.

Phillips Hue Bulbs and Dynamic Lighting

I have three Phillips Hue bulbs near the monitor which I have added to a ‘Hue Entertainment Group’ which means their colours can be rapidly changed with applications that use the Phillips Hue Entertainment API. One such application is ‘hueDynamic for Hue’ which is a Windows 10 application that monitors the colours on the pixels at the edges of the monitor, and changes the lights next to each edge according to the colours on that edge. This means I can have some dynamic lighting when watching movies.

Source of 4K Video

Even though my monitor doesn’t quite support 4K, using VLC means I can adjust the aspect ratio so that it will re scale the 4K video onto the monitor’s 3440×1440 dimensions, making 4K the best fit for my monitor. However my wireless connection is not currently fast enough to stream 4K video, so I use the ‘4K Video Downloader’ app to download free 4K videos from YouTube so I can play them on VLC.

Putting It All Together

(Click on diagram to enlarge)

So, I download 4K videos from Youtube, play them on VLC which adjusts the 4K content to fit my monitor. The audio goes to my surround sound setup which creates a virtualised surround sound output to my speakers, and the hueDynamic app running in the background on my PC samples the colours are the left and right areas of my monitor, and dynamically changes the colour of the Hue bulbs as the video plays. This creates an immersive ‘Home Cinema’ experience.


Finished Eurorack

Finally I have finished my Eurorack synthesiser! And I know many people say that ‘Euroracks are never finished’ but this one absolutely has to be, for financial reasons. I think that I have got to a place where I have every major feature common in most synthesisers, but in a modular instrument format. It is a great place to learn about different synthesis techniques.

finished modular


This is the layout on where you can examine each module.

Node.js HTTPS server with self-signed certificate creation on openssl 0.9.8zh with node.js 7.10.0

I couldn’t find a concise guide to setting this up quickly so thought it was worth a post. To quickly get something working and create a https server using the above versions of openssl and node.js, do the following:

 Generate self-signed server certificate with no password

sudo openssl req -x509 -newkey rsa:2048 -keyout ./csr.pem -out server.crt -days 3001 -nodes

Use this node.js code to setup a server quickly

const https = require('https');
const fs = require('fs');

const options = {
key: fs.readFileSync('csr.pem'),
cert: fs.readFileSync('server.crt')

https.createServer(options, (req, res) => {
res.end('hello world\n');

Go to https://localhost:8000 and accept the certificate, you should see ‘hello world’

Finished Planning My Eurorack Modular Synthesizer

In January 2015 I put in an order for my first Eurorack case. Little did I know that I would end up filling that case and buying a larger one. Finally, 2 years and 3 months later, I have nearly finished assembling what will be the complete Eurorack. I have been buying a module or two per month, researching what I need and playing a lot with what I have got already to find out its limitations and areas for possible expansion. It’s much like incrementally building and upgrading a gaming PC really, although with very different results.

Today I have come up with a final plan for what the cases will contain. The picture below is slightly misleading, I have two cases, so the case below is actually split down the middle into two enclosures. The left-side case is 2/3rds the size of the right hand case, that is why there is a grey unusable area at the top left.

With the purchase of 4 modules this month, I’m nearly at the end. The remaining 3 modules will be bought and installed over the next month or two, depending on budget.

Screen Shot 2017-04-16 at 22.58.16.png

In addition to the Eurorack modular, I also have a polyphonic MIDI->CV converter called the CV.OCD which plugs into the modular, a Nord Drum semi-modular analogue drum synthesizer, which also plugs in and allows me to make and play drum sounds, a Korg SQ1 sequencer which allows me to add 2×8 step sequencers to the mix, a MS20 Mini semi-modular synthesizer and a keyboard controller which allows me to play notes and chords on the whole damn thing.


I have built a synth roughly around three goals. The first is keeping a traditional ‘East Coast’ 3 voice subtractive synthesiser format, e.g. 3 oscillators, 3 filters, 3 envelopes, lots of LFOs and modulation, 3 VCAs, mixers, an FX unit including delay, reverb and others, 4×8 step sequencers which can be chained together (plus the 2×8 step in the SQ1). The second is that I wanted 3 voice polyphony – not ‘true’ analogue polyphony because that is difficult to achieve – but 3 of everything, wired together with a polyphonic MIDI -> CV controller, allowing me to play chords and experiment with traditional musical structures. The third goal was to keep the cost down! I am really not one of these modular synth heads with a huge studio and a near infinite budget, I have a lot of financial outgoings which I have met while building this. Building a modular synthesizer is never really ‘cheap’ in any sense of the word I would use, but this is definitely a lot cheaper than many other modulars I’ve seen, without compromising on quality.


What I have Learnt

  • Modular synthesizers can be built on a relatively low budget to achieve a good result.
  • I have sold all but one of my other synthesizers that I had before starting this project, finding the modular approach much more fun and rewarding then the in-the-box techniques and non-modular hardware synths.
  • Ignore what others might term as ‘conventional wisdom’ in building a modular, the freedom of Eurorack is that you can build whatever you want, and exactly what you want, so go with what works for you.
  • Slowly building up a modular synthesizer is likely to be much better than buying everything at once, you will experiment with what you’ve got, and learn its limitations and that will guide your purchases. It is impossible (in my opinion) to truly know what you want before you have started.
  • Use to plan out your synthesizer. It is very useful and has a huge database of modules. You can rearrange modules countless times on Modulargrid before you do it in reality, so you can plan and achieve a productive workflow.




Goals for 2017

Looking at my past posts, you may notice that I didn’t set myself any goals for 2016. Looking back, this was a mistake, so I’m going to remedy this by setting some for 2017.


  • Lose a significant amount of weight – this is very important for health reasons.
  • Study maths courses – I intend to sign up for some maths courses at the OU. This will improve my mathematical knowledge, allowing for further study in subjects I’m interested in, plus allow me to work in more mathematically-heavy careers. This equates to 10 hours study per week, so it’s not a light commitment, but one I think I need to make.
  • Exercise more – this is important as it improves my mindset, stamina, and makes me feel good.

Not too many goals this time, but some important ones, and I think I’m in a good position to commit to these thanks to the support of my partner, and therefore I am in a position to improve my life.

Will post updates at some point during the year to chart this progress.


Studio Setup


This is my current studio setup.

I have the following gear:

Eurorack 9U case
Eurorack 6U case
KORG MS20 Mini Synth
Roland TB3 Synth
AY3 Chiptune Synth
Roland A500-PRO Keyboard Controller
Nord Drum Synth
Macbook Pro with Ableton Live 9 Suite
MIDI.OCD Polyphonic MIDI->CV Converter
Samson Patchbay

I am looking to sell my Acces Virus A and concentrate on filling up the remaining Eurorack case holes.

Switching to

I am currently moving the blog, which was formerly hosted on Dreamhost, to hosting. Most of the content is moved over already, I have to go through all the posts and tidy up the references, relink the images etc. Hopefully I will get around to this shortly.

Music Workflow 2017

In 2017 I want to build a relatively static hardware-based workflow. This is what I’ve chosen:workflow-setup

The components are:

Current Music-Making Setup

With my current setup, I’m trying to make as much music ‘out of the box’ as possible, away from the computer as I find it more fun.


KORG Minilogue: I use this for a keyboard controller, and I use the 16 step sequencer to run simple sequences. It connects to the PC via USB and has MIDI output. I can also use this as a synthesizer its own right, it’s good for backing chords and pads.
KORG MS20 Mini: I’m borrowing this from a friend. I will use it as a bass synth mostly. I’ve got a Harvestman English Tear module which connects it to my Eurorack.


Electro Harmonix Stereo Memory Man with Hazarai: This is an effects pedal with reverb and delay, which I use to add a bit of effects to modular synthesizer before I record. I will also use effects within Ableton, but I like the sound of this pedal in general.

Drum Machine:

Nord Drum Mk1: This accepts triggers from the Eurorack I’ve recently discovered, so I have a drum machine that I can connect up to the Eurorack with 4 different drum voices.


This is equivalent to a fairly standard three oscilator synth, with ring-mod, S&H and noise out. I have a few different filters, an XPander style filter, an ‘extreme’ filter which is loosely modelled on the MS20 filter, and a triple resonance filter which I use for noise soundscapes. It has two envelopes, and a Make Noise Maths and a Serge VCS equivalent for some modulation madness. It also has a 16 step sequencer.

My Eurorack Modular
My Eurorack Modular


I still use Ableton Live as a midi sequencer, creating midi clips for drums and the hardware synths. I will build up a patch on the synth, tweaking until it sounds servicable, then make a midi clip, record some loops from the synths, and cut up and move the audio around to compose a track. I might add some soft-synths and effects such as reverb and delay on the PC and mix the track. Then I will upload it to soundcloud and show it to musically minded friends. Depending on what they say, I may tweak the track and upload it again. This whole process usually is done within the space of a day or two, I sometimes spend longer for tracks that I want to be more finished and professional, but I am not really usually making music for more than a few people at the moment, so I don’t spend ages finetuning each track.

Narrative-Led PC Games

80 days poster

When I first started getting into computer roleplaying games in the 90s/00s I remember playing the Infinity Engine games by Bioware and Black Isle, such as Baldur’s Gate 2, the original Fallout games, and of course Planescape: Torment. It was the quality of writing that drew me in and took me to another world, the graphics were just a background setting to that writing.

Somewhere in the 2000s RPGs became more action orientated and prioritised mechanics and visual appeal and combat over branching stories. Nowadays a lot of popular RPGs are those such as Dark Souls, which seem more about combat and atmosphere than anything else. Blockbuster games such as Dragon Age: Inquisition and The Witcher 3 still show that great writing, characterisation and real player choices can still be popular.

I still prefer the classic RPGs of yesteryear, those with mountains of dialogue and that take direct influence from fantasy novels and pen and paper, Dungeons and Dragons type games, which I grew up with. Here are some games which capture some of that great writing for me, although some are more interactive fiction than technically RPGs:

80 Days
You are the butler of Philleas Fogg, the man Jules Verne writes about in ‘Around the World in 80 Days’. Your task is to choose how to get around the world not more than 80 days, as you plan routes between cities, buy and sell items and manage the finances of the trip. It really captures a sense of adventure in the world, and builds on Jules Verne’s steampunk theme as you encounter fantastical means of transport such as mechanical ostriches, airships and others. Every route is different and you can choose how the story unfolds by selecting different actions your character will take. The writing is the best I’ve ever seen in a mainstream game.

Sunless Sea
In this game which also takes influence from Jules Verne, the city of London has fallen through the crust of the earth into hell, where there is a giant underwater cavern called the Underzee. You sail across this underground sea, exploring islands and immersing yourself in this Vernesque/Victorian/Lovecraftian setting. The writing again is amazing; it reads like poetry.

Torment: Tides of Numenera
Another outlandish game, this time set in the world of Monte Cook’s Numenera, the writer behind the Planescape world which Planescape: Torment was set in. It hasn’t fully been realised yet but this game in early access form is already weird and wonderful, and much more interesting to me than yet another copy of on the elves and dwarves Tolkien formulaic settings.

Eurorack 2016


So.. the problem, as so many people have said, with getting into building a Eurorack modular synthesizer is that it becomes addictive, and you inevitably spend more than you can really afford. That said.. I now have a great fully customised synthesiser for what I want to do 🙂 The layout is:

Top shelf:

3 oscilators and noise generator in the top left, 4 VCAs and S&H and Ring Mod sections in the mid center, LFOs in the top right.

Middle shelf:

Filters! I love filters. 3 large format filter modules, and a Triple Resonance Filter which consists of an additional 3 filters packed into one unit. A quantizer is also there which I currently don’t use much.

Bottom shelf:

Envelopes in the bottom left, Voltage Controlled Slew Generator and Make Noise’s Maths in the center left, center right is my trigger sequencer setup from LADIK, bottom right is attenuators and linear and exponential mixers.

OSX Fish Functions to open Chrome from the Shell

These functions are quite handy, and allow you to do things such as copy and paste errors and google for them without having to manually open a browser. You have to enclose arguments to both functions in single quotes, e.g. ‘chrome ‘; and google ‘one two three four’. You should add these to your config file at ~/.config/fish/ and make sure Google Chrome is already installed.

function chrome
  /usr/bin/open -a '/Applications/Google' $argv[1:]
function google
  /usr/bin/open -a '/Applications/Google' "$argv[1]"

My vIM Configuration

Screen Shot 2016-03-26 at 04.00.46

I use a heavily customised setup for vIM, the text editor that annoys me the least in ~30 years of using a computer. You can see my exact setup in my dotfiles repo on github,

Here are the plugins I use:

  • ConqueTerm – Opens a shell window inside vIM, allowing you to have a REPL environment within vIM.
  • NERDTree – A filetree plugin that you can see on the left of the window above. It replicates the Sublime text editor’s filetree.
  • vim-airline – This is a statusline plugin for vIM that allows for a nicer status view for windows and buffers.
  • vim-devicons – Allows for UTF-8 icons to make vIM editing slightly more graphical. Used by airline to display more info in less space, and by NERDTree to show filetype information.
  • vim-fish – Syntax highlighting for fish shell script editing.
  • vim-rails – Syntax highlighting and more for rails.
  • vim-ruby – Syntax highlighting for Ruby.

Working with Fish Shell, ffmpeg, MP4Box and sox to generate audio files

More adventures with Fish shell. I have scripted the generation of a bunch of test asset audio files in mp4 format suitable for dash streaming. I have used the audio file commandline tools ffmepg MP4Box and sox in this script, they are pretty powerful and worth installing via homebrew on OSX.

Thoughts: I think that instead of quoting you can just output $variable, which is probably better coding style. I’m still working out good way to return variables from functions, it seems that you need to echo out the output and that gets picked up by the calling function, which is a bit messy.

#!/usr/bin/env fish
# move to the asset output directory..
cd ..

# Generate .m4a file for file, and all the associated .mp4 dash assets
function generateDash
  set bitrate $argv[1]
  set input_filename $argv[2]
  set output_filename "$input_filename"-"$bitrate".m4a
  ffmpeg -i "$input_filename" -ab "$bitrate"k "$output_filename"
  MP4Box -dash 10000 "$output_filename"

# Generate 3 second sine wave in a specified bitrate at a specified frequency
function generateWav
  set bitrate $argv[1]
  set filename $argv[2]
  set frequency $argv[3]
  set wavfilename "$filename"-"$bitrate".wav
  sox -n --norm=-3 -b "$bitrate" "$wavfilename" synth 3 sine "$frequency"
  echo $wavfilename

# Main loop, generate 128,192 and 320 bitrate dashed .mp4s for 16bit and 32bit 3 second sine waves
for i in (seq 24)
  set freq (math "$i * 64.5")
  set wavfilename (generateWav 16 "output$i" "$freq")
  generateDash 128 "$wavfilename"
  generateDash 192 "$wavfilename"
  generateDash 320 "$wavfilename"
  set wavfilename (generateWav 24 "output$i" "$freq")
  generateDash 128 "$wavfilename"
  generateDash 192 "$wavfilename"
  generateDash 320 "$wavfilename"

Audio Routing for my PC

For my own benefit as much as anyone elses, I thought I’d document my PC audio setup. I have two soundcards and two sets of speakers, one surround soundcard and speaker set for gaming and watching surround sound movies, and one audio interface linked up to my studio monitor speakers for music production. I also have a Digi 002 mixer which I use to mix in the outputs from my synthesisers to my recording interface. When I want to record, I usually record one track at a time from a synthesier to the audio input of the audio interface, via the Digi 002 mixer:

Untitled Diagram

These are the audio cables needed for this setup, some of which I will need to order in shorter sizes than the 3m ones I already have, to reduce cable clutter:

single phono to phono
2x phono to 2x phono
single phono to phono
single 3.5mm jack to phono
single 3.5mm jack to phono
2x phono to 2x phono
2x phono to 2x phono
2x phono to 2x phono
2x phono to 2x phono
2x phono to 2x phono
2x phono to 2x phono

Fish Shell Scripting

A few months ago I switched across from Bash onto the Fish shell, on my main development machine. I can’t get enough of its fast autosuggestions and its sane scripting language. Compared to Bash it is very fun to use.

Today I wrote a script to automate the backup of my development workspace onto a private bitbucket account. Bitbucket is good because it allows unlimited private repositories, but it caps the size of these repos at 2GB max, with some features disabled after 1GB. This means that I want to find out the size of my repo before automatically backing it up. This script does this:

#!/usr/bin/env fish

set size (du -sm . | awk '{print $1}')
echo "Workspace is $size MB"
if math "$size > 1000"
  echo "Workspace too big to commit!"
  echo "Workspace is under 1GB, OK to commit"

git add .
git commit -m "Automated backup"
git push origin master

Each individual directory additionally usually has its own git config which is synced to the separate repos for the code I’m actually working on. But if my development machine is stolen or somehow destroyed, or I want to quickly replicate my environment on another machine with access to the original repos, then I can regenerate the associations between the different directories. It also makes me mindful of not committing images or other video assets.

ADAT with Digi 002 Consoles – Don’t throw them away just yet!

So I got given a Digi 002 console version, which looks like this:

Digi 002 Console

A fairly old style digital audio interface and mixer, which was all the rage back in 2002 when it first came out, but now is often found sitting in the skip. Why? Because it is a Pro-Tools inteface, and Avid stopped supporting it about 5 years ago, so it won’t actually work under Pro Tools and Windows 10 (believe me, I’ve tried!). It only works as a recording interface through Pro Tools, so you can’t just connect it via firewire to your PC and expect it to work.

It does have a stand-alone mode though, which allows you to use it as an analogue mixer, and that is pretty useful in itself if you want to drive monitors or record things from the master out. However after digging around on internet forums for a while, I figured out a way of actually using it as a recording interface! This is through use of the ADAT output, allowing you to plug it into a ADAT capable soundcard and record seperate channels over optical.

Caveats: it has to be 44.1khz sample rate, and you still have to use the Digi 002’s analogue to digital coverters in the chain, which are pretty old now!

If you’re willing to live with this, and I was considering what the console cost me, you get an extra 8 audio input channels in your soundcard! Well worth the effort I’d say.

To set it up with my Focusrite Sapphire 24 Pro, I followed the following advice from the Focusrite forum. This should work on most of the Sapphire range of soudcards.

A Basic Eurorack Technique

I thought it might be of some interest to describe how I use my Eurorack, at lot of the time, in making tracks. I have a 3 oscilator – 3 VCA – 3 filter Eurorack which I use primarily so that the oscilators initially work in unison mode with some slight detuning. I typically use a single loop, arpeggio or pattern that I repeat over the song. Then, partway through a track, I will transpose the octaves of the oscilators and vary the sustain of the envelopes, along with the filters and pulse-width modulation amount, to make a morphing yet harmonious sound texture progression.

Here is my Doepfer Eurorack, which has 2 oscilators, the third is provided by a Doepfer Dark Energy MK1 semi-modular synthesiser that is wired into the Eurorack.



Here is the patch I almost always use:


Eurorack Patch Diagram

Here are some examples of where this same basic technique has been used:

Goals of 2015 Summary

2015 goals written on a whiteboard

At the start of 2015, I wrote down some goals for 2015. Around half-way through the year, I revisited these goals with some thoughts on how well I’d done. Now 2015 is over, I want to reflect on what has been achieved and what hasn’t.

I also want to comment on the fact that I am discussing personal things here. A few years ago I was decided that I was going to keep this blog professional and pretty much dry of any thoughts or feelings on my personal life. I have moved away from that though, inspired by blogs such as Iain’s, where personal thoughts and feelings are mixed with technical observations. I would like to think that this isn’t a bad move; after all if potential employers come to look at this 5 years from now, and don’t like what I’ve done here, then I probably don’t want to work for them anyway. There is the argument that blogs should be ‘themed’ or targetted towards a particular subject to garner followers, and that too much sharing is possibly a bad thing. However, my current thoughts are that dry techncial info is boring, and I’d rather mix it with other things that are important to me.

Retrospective for 2015

With that said.. 2015 was an eventful year, some things were awesome, some not.

The “Not Awesome”

My mum started treatment for cancer, which is a non-curable kind, Myeloma. The treatment was a success and she is currently in remission for the time being, so that is a good thing, but how long she will stay in remission we do not know. Both my remaining grandparents also sadly passed away. I also split up with my girlfriend of 5 years, which was difficult and still haunts me to a certain degree.

The “Awesome”

The money that my parents were going to put towards the wedding of the ex-girlfriend, they gave to me so I could put a deposit down on a house. So in August I bought and moved into a house in Withington, which I am in the process of doing up. It is *incredibly* cheap to buy in Manchester compared to the south-east of England, where I’m originally from, where the dream of having my own 3 bed, semi-detached house would not be possible in any area with a reasonable number of IT jobs in short distance. I don’t drive, so the fact that the tram stop is 10 minutes walk away is great for getting to work.

I met my current girlfriend, Conny in May, and things seem to be going very well; she is even planning to move from Berlin to Manchester to live with me. This is obviously great, and I don’t know where I would be without her support.


With all these things happening in my personal life, work took a secondary focus as I got things sorted. It also made me rethink what I wanted from my career. At the start of 2015 I had a new role, as Test Manager; the first level of technical management in my area at the BBC, and a big career move for me. Although I liked some aspects of the management role, I missed the technical challenges that had pretty much characterised the last 10 years of my career. There was not much direct coding, and I felt I was in danger of losing that aspect of my work. I took a 6 month attachment to R&D, which had me working in an extremely challenging technical role, on a HTML5 360 VR engine. In April when this attachment ends, I am looking to continue in a technical role of some description, and not return to pure management, at least for the meantime.

Goals of 2015 – How Did I Do?

Work Goals

  • Settle into my new role at the BBC as Test Manager – As I mentioned before I’ve taken a move towards another route in my career
  • Pushing for a place to be opened up in Platform Test to employ someone from the Extend Scheme – This was achieved, and Ben has joined the BBC on an Extend placement.

Creative Goals

Social Goals

Financial Goals

  • Saving more over the course of the year – Partly achieved. I have bought a house, so now I am in a quite a bit of debt, but the money I will be putting towards my mortgage will be money I am effectively ‘saving’ because it will be put into the value of the house.
  • Joining a pension scheme – Achieved.

Health Goals

  • Adopt a regular form of keeping fit – Partly achieved. I have now setup a return commute which involves walking past a gym that I’m a member of, so it is quite easy to go in there for 30 mins on the treadmill 2-3 times a week. I’ve just got to maintain the discipline.

Top 5 Recommended Upgrades for your PC

I have made a lot of different upgrades and modifications to my PC, as you can see here. Some of the upgrades have made more of a difference than others though. Here is what I think you should be concentrating on, if you’re looking to upgrade.


  • Solid State Hardisk (SSD) – Solid State hard drives use flash memory instead of the moving disk platters of traditional hard disks. It is the same type of storage as your USB stick. This type of storage is a lot faster to access compared to magnetic storage. Upgrading will result in a huge performance increase for most systems if you are changing from a traditional hard disk. Get as big a size as you can afford. If you play computer games or do a lot of media production work, then the added space will be useful. They have reduced in price over the years, the first SSD I bought was £120 for 120GB SSD back in 2012, in 2015 I just bought a 250GB SSD for £50. So it’s definitely affordable now.
  • Large Monitor – If you can get a 27″-32″ monitor then do so. It has made so much difference to the day to day usage of my PC. I would recommend 1440p if you can. 1440p is half the resolution of 4K. I wouldn’t recommend a 4K monitor yet in 2015 as I don’t think they have enough software support, and the cost is considerable for a decent screen. If you’re a gamer, then you might want to aim for a higher refresh speed, but I’d say this should be a secondary consideration to the screen space. Look on TFTCentral for reviews and guides to the different screen types available.
  • Good Soundcard and Surround Sound Speaker System – Headphones are OK, but even a basic surround sound soundcard and speaker system is going to be so much better. I have a Asus Xonar Phoebus Solo which I recommend, it’s a 7.1 surround sound card. I have a cheap £60 set of surround sound speakers, Logitech Z506 Surround Sound Speakers. Surround sound really makes a difference in gaming and movies. I think it’s the seperate subwoofer that has the most effect, so if you are not that convinced by surround sound, you could get a 2.1 (two speakers and a subwoofer) setup for a bit less.
  • Ergonomic Mouse and good mousemat – Chances are, most of the time you’re at your PC, you will be using the mouse. It is therefore really important you have a good mouse that won’t damange your hand after a few years use and is comfortable to use. Modern mice use laser scanners to track the position of the mouse on a flat surface. A higher resolution laser (measured in DPI – dots per inch) means that you can get more accurate tracking. Therefore look for high DPI mice for gaming or fine detail work as well as an ergonomic fit and lots of buttons. I recommend Logitech mice, after having had several Razer mice that didn’t last very long. I would also pick up a steel mousemat, as they never get tangled up in your mouse like the fibre mousemats do.
  • Recent Graphics Card – If you are into gaming or 3D modelling work, you would often prioritise this over any other upgrade. A new graphics card means that your existing games will run faster on higher detail settings, and you can play new games on higher settings with better framerate. I don’t think it matters too much whether you go for Nvidea or AMD as long as you can run the games you want to run. If you are not interested in running the latest games, then perhaps you don’t need this, but you may be missing out in the future.

Too much Scrolling! – Tips for Dealing with Mouse-Wheel Finger Repetitive Strain Injury

Recently I had noticed I’d been having quite bad problems with my fingers based on the fact that I had been scrolling the mouse wheel too much when scrolling through web pages. Here are a number of options you can take if you are in a similar situation as me:

Change OS’s scrolling speed to its maximum

This is the easiest change on most modern OSs, and will result in less scroll movements made by your fingers, because each scroll movement will move the screen down by a full screen height, (equivalent to a page down). This can be a bit annoying though as you lose accuracy when you want to just scroll down a small amount, it takes a bit of getting used to. Also you are still using the same muscles, just not as often.

Use keyboard shortcuts for scrolling

Space and shift-space should perform scrolling up and down in Firefox and Chrome on OSX and Windows. The more you avoid using the mouse and use the keyboard, the less you will use the same muscle in your fingers each time. Of course you may develop keyboard-related RSI, but so far I haven’t been affected by this.

Change to an Ergonomic Mouse

At work I now use an ergonomic Logitch mouse which has a responsive scroll wheel, and an option to ‘unlock’ the movement of the scroll wheel, allowing it to freely spin which results in greater comfort. Before I was using a work mouse which had a scroll wheel which you had to press down very hard to get it to do anything.

Use a Touchpad

You can get freestanding touchpads for Windows and OSX, which operate like a laptop’s touchpad. This has the advantage that you can also use trackpad gestures – Windows 8 onwards and modern versions of OSX have their own sets of handy gestures for speeding up use. I recommend the Logitech T650 Wireless Touchpad for Windows 8 onwards, and the – expensive but very impressive – Apple Magic Pad 2 for OSX . You can also get the Apple Magic Pad 1 which is half the price, but the feedback and gesture support isn’t quite as good. A trackpad is not much use for gaming but for normal browsing and office use it’s fine.

Biggest Disappointment Purchases for PC – Razer Tiamat + Lightpack

As you can see, I buy a lot of bits and pieces for my PC. Occasionally though, I buy something that I feel was a disappointment, or not worth the investment. This post is meant to caution against other people making the same mistake.

Razer Tiamat – 7.1 Surround Sound Gaming Headset, with microphone (


This was a big dissapointment in a couple of ways. The first, and most obvious in hindsight now I’m actually working on spatial audio for a living at BBC R&D, is that 7.1 surround sound headsets are a joke. There is no way you can get enough seperation between the different speaker drivers when your ears are so close to the speakers. If you have a soundcard or motherboard that supports surround sound, do yourself a favour and get a surround sound speaker set.

The second problem is that the Razer Tiamat has issues with electrical hum from the unshielded cables it uses. I replaced it with the ROCCAT Kave XTD 5.1 Analog surround sound headset which is better, although still not anything like the surround sound speaker setup which I now have.

Lightpack – Backlight kit with adaptive lighting for games (


I took a risk on this, it was a kickstarter idea which offered the promise of an ‘intelligent’ backlight which changed colours depending on what was on the screen. And it did work pretty well.. back when I was running Windows 7. Since upgrading to Windows 10, I haven’t been able to get it to work properly when playing games with Playclaw, which is my main use for it. I even had to purchase Playclaw, as the software which comes with Lightpack doesn’t work well. It still has limited use for me in terms of a colour spectrum effect for music when I throw a party, through using third-party software such as Ambibox. But the company really should improve its software to work with Windows 10 gaming. It didn’t even work well for me under Windows 8.

My Favourite OSX Apps for Development

I’ve just recently bought a Macbook Pro for myself, after having used a MBP at work for 4 years. I find it to be a really powerful development environment for the development I do, in languages such as Java, PHP, Ruby, Python and JS. Here is what I use day-to-day:

OSX El Capitan

I haven’t found anything not to like about this upgrade. I don’t use a lot of external devices, for which Bruce has found problems with El Capitan’s new restricted driver management for Arduinos and others. I like the fact I can use split screen functionality to side-by-side two windows easily, a feature that I very much like in Windows 10 too.

iTerm 2

This is an awesome terminal, better than OSX’s terminal. Nothing much more to say about it.

Fish Shell

This shell has fast and smart command-line completion which is very handy and I’d highly recommend it if you use the commandline a lot and are not totally won over by Bash. It looks nice too.


This is pretty much essential for command line OSX. It is a package manager which downloads and compiles the latest version of open source packages on your Mac. If you don’t use it already, get used to it.

IntelliJ WebStorm

WebStorm is great for debugging JavaScript applications, which I seem to be doing a lot of lately. I recommend the IntelliJ IDEA family of IDEs, once you get use to them, they are a great help in productive development. There are also vim and Emacs keybindings.


If you are a fan of vim you will know what I mean when I say I can’t be without it. My Dotfiles show my .vimrc and plugin configuration.


Thankfully the BBC has moved over to Github, meaning all my coding uses Git. It is so useful, and not just for storing code, you can store anything.


I use Apple Music, and iTunes Match, so iTunes is a must. It annoys me at times, but I just have to live with it.


Alfred is a replacement for Spotlight search in OSX. It has a lot of functionality that I’m still getting my head around, but it speeds up my OSX workflow a lot when undertaking frequent tasks such as Google searching.


Evernote is so useful for making and sharing notes on my phone, mac, work computer.. anywhere


This is something someone only recently recommended to me. It seems very useful from what I’ve seen, great way to share images files, screenshots, webcasts.. anything. Also it has as expiry policy for media, like Snapchat, so it doesn’t exist on the internet for generations to come.

Next Big Thing: Voice Control for Home Automation


So, I have totally bought in to the home automation craze that is currently ‘the next big thing’ in the technology world in 2015. Apple has released iOS 9 with their HomeKit home automation framework, Google have the Nest series of smart devices, and there are numerous emerging competitors and hundreds of devices out there right now that will network together in your home.

For the uninitiated, a ‘virtual assistant’ is a cloud-connected voice processing system which you can ‘talk’ to. This is how a voice assistant essentially works:

1. You speak into the device. Your device will record what you’ve said, and send it to the cloud.
2. In the cloud, sophisticated and adaptive voice recognition software analyses what you’ve said and converts it into text.
3. The text command is run on a server somewhere, for example the command, ‘what is the weather today?’ will fetch the latest weather report for your area and summarise it.
4. The summarised report is converted into speech and streamed back to your device.

Apple have Siri, Microsoft have Cortana, Google has Google Now and Amazon have Alexa. These are all voice assistants which utilise the power of big data and machine learning over millions of requests to improve their own accurately.

The more people use virtual assistants, the better they get. Apple have been really pushing Siri, including it in the Apple Watch and most recently the new Apple TV. Not necessarily because it’s what people want *now*, but because they are banking on enough people using it so it snowballs into the lead, vastly improves in functionality, and becomes ubiquitous in the home, maybe 5-10 years down the line.

Apple’s Siri has reported a 40% reduction in errors recently, meaning only 5% of the words it processes, on average, are misread. This clearly can, and will, improve as more people use it.

The speech recognition capability in Siri now has a 5 percent word error rate, thanks to a 40 percent reduction on the part of Apple, Craig Federighi, Apple’s senior vice president of software engineering, said today at Apple’s 2015 Worldwide Developers Conference in San Francisco.

Amazon, meanwhile, has the ‘Alexa’ virtual assistant, which seems to have most use in home automation. Although Siri is linked in with Apple’s ‘HomeKit’ automation standard, HomeKit-enabled devices are only just now starting to be released, and reliability is currently a problem. Meanwhile, Google have concentrated on providing a small number of reliable devices in their Wi-Fi enabled ‘Nest’ series. Google’s Nest Thermostat has recently integrated Amazon’s Alexa virtual assistant to recognise speech commands such as ‘turn up the temperature to 20 degrees’.

What a lot of people are saying is the ‘killer app’ for virtual assistants is the handsfree speaker and microphone unit ‘Amazon Echo’. Amazon Echo is a small unit with a highly sensitive microphone and speaker, which sits in your living room and you can ‘talk’ to it, just like you would with Google Now or Apple’s Siri. The best thing about Amazon Echo is that it can talk to other smart home devices, such as the popular Phillips Hue lights, the Nest thermostat, various security cameras. It also integrates with the site which is like a giant patchbay for smart devices, allowing you to connect them together and cause a state in one device to trigger an action.

So you can be sitting in your living room, and say ‘Dim all the lights in the house’ and Amazon Echo will do just that.

Unfortunately though, due to the fact that it uses Microsoft’s Bing search and doesn’t give you an option to choose a different search engine, it is not legal to sell the Amazon Echo in the UK due to a non-competition covering search engines in EU law. Therefore there is still an open gap in the market for this type of product, one which Apple’s HomeKit and Siri integration is racing to fill. However the closed nature of the HomeKit world means that it is likely that it won’t integrate with the non-Apple setup of Google Nest and others.

Introversion, Extroversion and the BBC Software Engineer


Whether you agree with Myers-Briggs personality profiling or not, like fellow BBC’er Ian Forrester I have found them a useful frame of reference from which to discuss my personality, because I see similarities between my perception of me, and the classification.

I took the Myers-Briggs personality profiling, and it has labelled me on several occasions an INTP:

INTPs are marked by a quiet, stoic, modest, and aloof exterior that masks strong creativity and enthusiasm for novel possibilities. Their weaknesses include poor organization, insensitivity to social niceties, and a tendency to get lost in abstractions. Keirsey referred to INTPs as Architects, one of the four types belonging to the temperament he called the Rationals

I – Introversion preferred to extraversion: INTPs tend to be quiet and reserved. They generally prefer interacting with a few close friends rather than a wide circle of acquaintances, and they expend energy in social situations (whereas extraverts gain energy).

Is this bad news for me? Introversion can be seen as a negative in today’s hyper-communicative world, especially for a team-based work environment. However I don’t think it need be a problem in an organisation that prioritises abstract thinking and creativity, because introverts are often very strong in both. The technology and R&D side of the BBC, I would argue, is such an organisation.

I know a few people from Imperial College London, one of the top universities in the world for Computer Science (and Science Technology Engineering and Medicine in general) and have found it full of technically gifted introverts. Now, I didn’t go to Imperial myself, but it does seem that there is a correlation between introversion and high amounts of technical ability. I have found this also with a lot of software engineers that I have worked with.

I am not saying necessarily that all good software engineers are extreme introverts, in fact I would say that this is untrue in a number of cases. This is because Agile software engineering often uses techniques such as pair programming from Extreme Programming, and it helps to have extroversion when dealing with hyper-social practices such as programming as a pair every day all day (which I have done, and found it very draining).

In fact, I have noticed that technical ability is less important than your ability to work in a team at the BBC. I generally have fairly good social skills and tend to like introverts so I personally have not had a problem with dealing with people who were very introverted but were technically quite brilliant. However it was clear that these types of people just didn’t seem to fit in quite as well in BBC teams with high collaboration aspects. I think this may be down to cultural fit rather than something we can extrapolate over all software engineering organisations.


Indeed, aside from my anecdotal evidence, in the book ‘Making Software’ Jo E. Hannay analyses the academic research on what type of personality programmers have, and what effect this has on their work. She writes;

We found that programmers deviated from a reference group in that they are lower on Extraversion, lower on Emotional Stability, and higher on Openness to Experience [Hannay et al. 2010]. See also [Moore 1991], [Smith 1989], [Woodruff 1979], [Capretz 2003], and [Turley and Bieman 1995] for related results. Programmers are also more homogeneous than the population as a whole; that is, programmers vary less in personality than do people in general.

So programmers tend to be introverts. Not really hugely suprising is it? However, she also notes:

We investigated .. in the context of 198 professional programmers pair programming over one day [Hannay et al. 2010]. We found that personality was a weak predictor of pair programming performance. Even crude measures of expertise, task complexity, and even the country in which the programmers where employed had greater predictive power than personality. The study also included an analysis of personality on individual programming and whether the effect on performance of pairing up had anything to do with personality. Again, expertise and task complexity are stronger predictors than personality.

Therefore an introverted personality is a poor predictor of pair programming performance across the industry. She goes on to say:

In ethnographic studies focusing on personality issues and disruption in software engineering team collaboration, it was found that disruption is bad, but lack of debate (which is a mild form of disruption) is worse [Karn and Cowling 2006], [Karn and Cowling 2005]. It is argued that pairs or teams with personalities that are too alike will lead to lack of debate. This finds empirical confirmation in [Williams et al. 2006] and [Walle and Hannay 2009]. In particular, differences in Extraversion has the largest effect: pairs whose peers have different levels of Extraversion collaborate more intensely (that is, engage in more discussion) than those with more similar levels.

She is saying that a pair of extroverted and introverted personalities collaborate more strongly than a homogenous pair. To me, this is good evidence that introversion and extroversion have their place in modern software development teams across the industry, and both types of personality should be culturally valued for collaboration, not just extroverts, even at hyper-collaborative organisations such as the BBC.