Studio Setup

Studio

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 WordPress.com

I am currently moving the blog, which was formerly hosted on Dreamhost, to WordPress.com 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.

Synths:

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.

Effects:

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.

Modular:

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

Workflow:

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.

http://store.steampowered.com/app/381780/

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.

http://store.steampowered.com/app/304650

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.

http://store.steampowered.com/app/272270/

Eurorack 2016

eurorack

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 ‘http://www.google.co.uk’ and google ‘one two three four’. You should add these to your config file at ~/.config/fish/config.fish and make sure Google Chrome is already installed.

function chrome
  /usr/bin/open -a '/Applications/Google Chrome.app' $argv[1:]
end
function google
  /usr/bin/open -a '/Applications/Google Chrome.app' "https://www.google.co.uk/search?q=$argv[1]"
end

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, https://github.com/wordswords/-.

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"
end

# 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
end

# 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"
end

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!"
  exit
else
  echo "Workspace is under 1GB, OK to commit"
end

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.

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.

Work

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.

upgrades

  • 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 (http://www.razerzone.com)

razer-tiamat71-gallery-5

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 (www.lightpack.tv)

lightpack

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.

Homebrew

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.

vim

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.

git

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.

iTunes

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

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

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

Droplr

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

Amazon-Echo-Main-Image

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 IFTTT.com 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.

IFTTT.com – Program your Life

If you haven’t seen If This Then That.com then I encourage you to check it out. It has a number of ways of automating your life, and can do things like text message you when you get mentioned on Twitter, up to deactivate your smart alarm when you’re nearing your house. This message will (hopefully) be posted on my Facebook page and my Twitter account, all thanks to IFTTT.com.

Introversion, Extroversion and the BBC Software Engineer

introvert

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.

512eTxcGW6L._SX379_BO1,204,203,200_

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.

Completed Eurorack

modular

I’ve finished my 6U Eurorack case. It took me 9 months to build, buying a couple of modules a month.

Goals

I wanted to make a self-contained dual voice synthesizer that would interface with my 2x Doepfer Dark Energy MK1s and my Microbrute, on a budget. I also wanted to add some random sound generation features.

I chose to make the synthesizer out of Doepfer modules because they are easy to find cheap second-hand, and also because they are well-engineered. (If they’re good enough for Kraftwerk, who am I to complain?)

eurorack

Oscillators and Sound Generation

  1. 2x standard Doepfer A-110-1 VCOs with pulse-width modulation. I am no expert, but find these oscillators sound good enough for the money.
  2. A-118 Random Noise module, which outputs white and coloured noise. This has been useful for adding noise to a patch, as well as feeding the random noise generator through the quantizer and S&H modules for interesting random effects.

LFOs and Envelopes

  1. A-143-3 Quad LFO, which has been very useful in modulating my external gear, such as my Microbrute and Doepfer Dark Energy synths. I find it’s a good utility module to just patch something up for modulation, even though I rarely find myself using all 4 LFOs at once.
  2. A-145 LFO – I actually find myself wishing this was a VCLFO so that I could make midi-synced LFO sweeps, and might replace it with one eventually. I like the reset feature though.
  3. 2x A-140 ADSR – Standard envelopes, I bought two so I can modulate the VCA and filter separately at the same time, as is standard in synthesizers.

Mixers and VCAs

  1. A-132-3 Dual VCA – Another standard module, this is particularly useful as it has two VCAs, so I can feed each oscillator into its own separate VCA. I would like another one of these so I could amplify the output of the noise module separately from the VCOs.
  2. 2x A-138 Exponential Mixers – I have two so I can mix multiple waveforms from the VCOs with the white noise output from my noise generator module. The mixer in the bottom right corner of the case has rubber no-slip knobs, and I use it for the main output from my synth.

Quantizer and S&H

  1. A-156 Dual Quantizer – This is a really fun module which I use with LFOs, envelopes and my noise generator to make musical sounds from non-musical sources. I think it will come into its own when I get the Make Noise Maths module, which is on my ‘next steps’ list.
  2. A-148 Dual Sample & Hold – This is a module I haven’t quite grasped the utility of yet, I currently use it wired up to filters and a LFO for S&H filter effects.

Filters

I love filters.. so I got quite a few!

  1. A-120 VCF1 Low Pass Filter (Moog style) – The standard moogy filter, nothing wrong with it. I like the sound but mostly use it for filter sweeps.
  2. A-127 Triple Voltage Controlled Resonance Filter with Breakout Box – This is the key element of my setup. It allows for some really nice multiple filter chaining effects. I have the top filter set to ‘Low Pass’ mode, and the second and third filters set to ‘Band pass’ mode. Since I already have a LP filter in the Moog style A-120 I may change this back so it becomes a triple BP filter, which is the default. You can make some really nice patches with the inbuilt LFOs modulating the filter sweeps, but usually I will wire it up to my Quad LFO for modulation. As a unit, it is really good at making vowel-like sounds for eerie ‘almost human voice’ effects. The breakout box, which I haven’t soldered in yet, so haven’t actually used, will expand the possibilities of the unit even more, allowing me to put separate filers on each oscillator, for example. Love this module.
  3. A-106-1 Xtreme Filter – I haven’t used this much yet, but I just had to have the MS-20 style LP/HP filter in my case, and this filter ticks all the boxes.

MIDI Interface and Multiples

  1. Kenton Pro Solo MIDI-to-CV interface – I use this with my computer, allowing me to send CV for the oscillators through the Intelligel Buff Mult. It has clock out and a bunch of different features, such as portamento and even a LFO.
  2. Intelligel ‘Buff Mult’ – My only non-Doepfer module. This is a buffered multiplier, meant to make sure that fast pitch changes are duplicated correctly over the oscillators. I also wire up my Doepfer Dark Energy Mk1s to this, so I can have 4 oscillators playing at once.
  3. A180-1 Multipler – Just a standard multiplier which I use because I don’t use stackable cables (can’t afford them).

Things I’d like to Learn More About

Some things I have been meaning to investigate in my own time, but haven’t, because life just gets in the way.

  1. Maths
  2. – It might surprise a few people that, as a software developer, I never took maths to A-level. I picked up a bit of maths in my CS degree, but I never really got a firm grounding in it. This has prevented me from understanding and coding advanced stuff in game development, understanding audio to a decent level, and generally doing things in which I consider the more interesting fields of computing.

  3. Music Theory
  4. – I have been getting better at playing the piano/keyboard by ear, but I have never fully learned to read music, and I would like to.

  5. Electronics
  6. – I would love to be able to build simple DIY synthesiser module kits for my Eurorack setup. I imagine I’d have to start on something small though.

It would be great if I could take courses in these subjects, via the OU or something similar. I just have to find the time.

Goals for the Year 2015 – Midway Update

Winding Road

Now that I am midway through the year, I thought I’d revisit the goals I set myself at the start of the year, to see what has changed.

Career Goals

  • Settle into my new role at the BBC as Test Manager – I suppose this has not been achieved. I will have more updates soon (hopefully) but a change of direction is likely to happen.
  • Pushing for a place to be opened up in Platform Test to employ someone from the Extend Scheme – This has been achieved, and someone will be joining Platform Test from the Extend scheme in October, I’m happy to say.

Creative Goals

  • Get better at music production – This has been achieved. I have been working with my friend I will call ‘G’, which has massively improved my production skills. I have posted music that I see as much better to Soundcloud.

Social Goals

  • Getting married – Well.. things didn’t work out with that. But I have a new girlfriend who will hopefully be moving to live with me, so things seem to be recovering there.
  • Making friends with more people that share the same interests – Partly achieved. G is a good example of someone that I have met through looking for friends with the same interest.

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 – Not achieved. I have a gym even closer to where I live, 5 minutes walk, so hopefully I will use it more soon. It is difficult for me, as the medication I’m on makes me feel tired all the time, but they do say that exercise improves energy levels.

Conclusion

Although I’ve achieved the majority of my goals, I haven’t achieved two of the major goals – around my job and around exercise, which are both things I need to work on. There is still time left this year to make a difference in these areas.

Use Siri, Apple Earphones and Apple Music Together

This requires you to have a subscription to Apple Music and a 3G/4G/wireless data connection, but it is so useful! Using this tip, you can be walking along with your iPhone in your pocket and your Apple earphones in, and then change music just by pressing a button on the earphones remote control and saying ‘Play (your favourite band)’.

blog post image

1. Activate Siri and subscribe to Apple Music. I used to subscribe to Spotify so I switched to Apple Music when I realised the advantages of the integration on my phone, and the wider selection of music. You will also need to set Siri to stream music over your cellular network, this can be done in the ‘Music’ section of iOS settings.

2. Put the iPhone in your pocket with the standard Apple Earphones plugged in. With the standard Apple Earphones, there is a remote control on the cable with one button on it. To activate Siri, hold that button down for a couple of seconds until you hear the ‘Siri’ ‘bleep’.

3. Say ‘Play The Prodigy’ if you want to listen to The Prodigy, for example. This may require a couple of tries occasionally, but usually it just works.

4. Siri should look up The Prodigy on Apple Music, find their most popular songs, put them in a playlist, start streaming them and playing them through your earphones. To skip a song, press the remote control button twice in quick succession. To adjust the volume, press the edges of your remote control, the top edge to increase volume, the bottom edge to decrease. To pause all music playback, just press the remote control button once. To resume playback, press the remote control button once again.

A limitation of this is that you have to be in an area with good reception, enough to stream your tracks from Apple Music. You shouldn’t have a problem if you live in a city like Manchester, I usually get 4G across the whole city.

Modular Progress

Modular Synthesizer
modular layout

My Eurorack modular has been progressing. I’ve added several low-cost modules, a Doepfer A-138b audio mixer module so I can mix the audio outputs of the oscilators, the noise output, and my Doepfer Dark Energy modules. I found this so useful with the Dark Energys that I have ordered another mixer. This I can use to mix audio before sending it to the filter, for example, or mix audio before sending it to a VCA to be amplified. I also added another envelope generator, Doepfer A-140, a sturdy workhorse and also useful for triggering the filter independently of the VCA envelope. Then I added a syncable LFO.. I already have 4 LFOs from the quad-LFO module in the top right, but I wanted a LFO with a reset option that I can use for MIDI syncing. On order is also a A-148 S&H (sample and hold) module which I will use for generating interesting random tones once I have expanded the ‘generative music’ theme of my setup a bit more.

I also added a secondhand Kenton Pro Solo, a small midi-to-cv converter which has a lot of features, including clock sync output as well as CV and gate.

Next purchases may include (all Doepfer) a ring-mod, small essential module that it is. I also want a clock divider and clock sequencer, allowing me to take the midi clock output of my Kenton Pro Solo and link it up to activate timed triggers. I eventually want to get a Make Noise ‘Maths’ module as the highlight of my small modular, but the budget does not permit that right now.

Switching Audio between two Soundcards

headphones_accept

If you have two soundcards – maybe a normal soundcard for your speakers and maybe a headset with its own audio interface – you will want some way of switching all audio between the two. This is an great little open-source tool to do just that. It works on Mac, and Windows 7 up to 10:

https://soundswitch.codeplex.com/

Get rid of the ‘most visited sites’ Grid on Chrome

Not that I particularly look at anything weird, but when I’m showing someone my computer I don’t want to have my ‘most visited sites’ pop up when I fire up Chrome. The following Chrome extension will get rid of the default loading page, and just display a blank page:

https://chrome.google.com/webstore/detail/empty-new-tab-page/dpjamkmjmigaoobjbekmfgabipmfilij

Open Source! Device API and Device API-Android on Github

Two Ruby gems that I contributed to from my days in the BBC’s TITAN (Test Tools and Infrastructure) team, have been open-sourced. So finally I can say that I have made proper open-source contributions. The gems are for making automating of Android phones via Android Calabash easier, and are used in a lot of the mobile testing we do at the BBC. Here they are:

https://github.com/bbc/device_api
https://github.com/bbc/device_api-android

Here is my Github profile, which doesn’t look very active on the surface, but I have been contributing to repositories which remain private at the moment, so my history is not visible.

Instruments That I Use

I have a lot of different instruments, both hardware and software, for making music, but here is what I use the most at the moment:

Piano
I have an actual electric piano but I don’t use the onboard sound engine, preferring to use it as a midi controller for a software piano sound. Recently I bought Ableton Live Full Suite, before I was using the ‘Grand Piano’ sound from the default install. Now there is a whole ‘Piano’ Ableton Live pack, and that seems to offer much more realistic piano sounds.

Drums
Lately I’ve been using the Sonic Charge’s Microtonic for drums, because I have been making more dance-orientated music. I find the drums really good, and they’re already fully processed with effects so you can just slot them into the mix. I also have been using the built-in Ableton 909 kit sound a lot, but might move away from that as I don’t like the sound compared to Microtonic. At some point in the future I will probably get my Nord Drum hardware drum synth out, but for now I can’t find the power supply so it’s not working.

Synth
I have been using my modular and semi-modular synthesizer as a main bassline synth, with some sounds from Ableton over the top. I have used the Access Virus synth quite a bit for synth duty, and it has some great presets for evolving arps.

Modular Progress

Specs

eurorack

I have finished filling the top half of my Eurorack case, see above. Here is a list of modules:

Next Moves:

  • Get a logarithmic mixer module A-138b for mixing the output of the noise + two VCOs into the filter, and to free up some of my ZED-10 mixer channels for other things
  • Got another A-140 ADSR module but no cable, going to get a cable and put it into the bottom left corner of the lower section.

Usage

synths

My (mostly) Doepfer Eurorack is hooked up to my Microbrute, 2x Doepfer Dark Energy MK1s and my ZED-10 recording mixer.

The Microbrute acts as a pitch and gate out keyboard controller for all the synths and a semi-modular synthesiser in its own right with its patchbay.

The Doepfer Dark Energys are complete synth voices with a fair amount of input/outputs for modulation. They are hooked up to the pitch and gate out from the Microbrute via the Buff Mult and the Multiples on the Eurorack.

One configuration that I often use when composing music, is wire the Eurorack, the Dark Energys and the Microbrute into the ZED-10 mixer, tune each so they all play together, and create one massive analogue 5-osc synth mono voice which is great for devastating basslines, and I can modulate with the LFOs and envelopes in the system. I can then program a sequence into the Microbrute and transpose it when I play notes down on the Microbrute keyboard, or control it via the USB IN from Ableton.

Another configuration which I find interesting is patching the output of the Noise Generator/Random through the Quantizer. This results in random musical notes played by the oscilator, and you can create interesting pattern or arpeggios created solely by the Euroack without human input. I like the idea of generative music, and will be buying more modules to create more interesting computer generated randomness and music.

Modular Synthesizers

I am putting together a small modular synthesiser setup. Modular synthesizers are synthesizers composed of small individual modules, which are wired up to create a circuit for producing sound. They were very popular in the 1970s, with big bands such as Emmerson, Lake and Palmer, Kraftwerk and Jean Michael Jarre all owning big modular setups:

Keith Emerson's Modular Synthesiser

Modular synthesisers have had a resurgence in recent years with modern versions becoming available. One producer of modular synthesiser modules is Doepfer, a German company who’s modular synthesizer standard ‘Eurorack’ has become very popular recently. I have decided to build a small Eurorack modular, here it is so far:

IMG_0161

The blank plates are spaces for modules that I haven’t bought yet, I am slowly accumulating them. I have currently been wiring my modular setup to my ‘semi-modular’ synths. They include the Microbrute, and 2x Dark Energy MK1s synths, shown below:

IMG_0162

A semi-modular synth is a similar to a standard synthesizer, where all the synthesizer functions are self-contained in one case e.g. they are not just lots of modules. A semi-modular synth will work in its own right, without any additional wiring required. However, a semi-modular synth also has inputs which allow you to optionally wire up the semi-modular synth to other modules and semi-modular synths. So, it allows you to make one big sound processing circuit with all your synths wired together. Which is what I’ve been doing:

IMG_0160

So, not quite Keith Emerson, but it’s a start! But why would you do this, I hear you ask. What possible reason would you have for wiring up synthesisers in this manner? Well:

  • It expands the creative potential of your synthesizers. Instead of just having a few ways of creating sounds, you now have a lot more. Modular synthesisers have been used heavily in EA Games ‘The Sims 3’ for sound effects. Oscar-winning ‘The Social Network’ soundtrack by Trent Reznor uses modular synthesizers heavily, and more.
  • It allows you to build a synthesizer exactly the way you want to, with all the features you wanted for the type of music you make.
  • You end up learning a LOT about synthesis and how synthesizers are made, which can feed in to better sound design in the future, not to mention if you have an interest in electronics and music technology, this is a great way to learn.
  • If you are inspired musically by the technical side of music technology, (and a lot of producers such as Deadmau5 are) then it gives you another creative workflow to experiment with.
  • It’s fun. Wiring up things experimentally and creating sounds you never could have predicted would happen. The combinations are so exponential that you usually have no idea what will happen, and it’s almost like the machine created sounds just for you.

Goals for the Year 2015

Curves on Hightway 1 Northern California

NOTE: I have an update on my progress as of 9/1/2015 here

Motivated by my good friend CheerUpLove.com‘s reflective style of blogging, and Ian Forrester‘s many interesting posts, I thought it would be interesting to post something a bit more personal and less technical on this blog.

Now that 2015 is upon us, I am going to take some time to publicly outline my goals for the year, so I can hold myself more accountable to them, and so I can look back on them this time next year.

Career Goals

One of my most important goals at the moment is to settle into my new role at the BBC as Test Manager. It is a step up for me, and I want to prove my stripes. I also will be pushing for a place to be opened up with Platform Test to employ someone from the Extend Scheme.
What Success Will Look Like : Growing my team, Extendee placement, good performance reviews.

Creative Goals

I have been improving my music production skills a great deal over the past year, a pastime that I find very rewarding. I have also started piano lessons, which I aim to continue with. I aim to continue getting better, and maybe to look into another evening music course – perhaps the Game Audio course at Futureworks Manchester.
What Success Will Look Like : Improved music posted to Soundcloud, collaborations with other musicians, better ability at piano

Social Goals

Getting married is going to be the main point of the year for me, with the wedding coming in September. Lots of preparing to do. I also want to keep the good friendships that I have at the moment, but perhaps make some new friends, particularly those who are into the same interests as me
What Success Will Look Like : Becoming Mr. Lewin, making friends with more people that are interested in the same things as I am

Financial Goals

I need to be saving more over the course of the year. I also want to join the BBC pension scheme, as I don’t really have a pension yet
What Success Will Look Like : Significant savings at the end of the year, joining the pension scheme

Health Goals

My fitness is something I need to become more serious about. I enjoy long-distance indoor rowing for stamina and fitness. I would like to do more of this, and there is a gym just down my road, so there isn’t much excuse for me not to.
What Success Will Look Like : Adopt a regular form of keeping fit

So.. I will look back on this post through the year and hopefully it will motivate me to achieve these goals. Currently I think these goals are achievable, and I think 2015 will be a great year.

microKORG Original + Novation Impulse 61

I picked up a rather ugly (but very cheap!) customised microKORG, and also the excellent Novation Impulse 61 USB/Midi keyboard controller.

mkplusnovation

The microKORG I like a lot. It was my first synth, and at first I couldn’t make any sense of it. I do agree with the Reddit /r/synthesizers view that it is not the best synth to learn on. Their view is that the best synth to learn on is one with a one-to-one mapping between controls and sound engine parameters. To put another way, the best beginners synth is one which has lots of knobs and buttons on it that you can tweak and hear actual results in the sound. It makes it more difficult if the sound engine is hidden away behind a large menu system with lots of daunting menus, like the microKORG has.

However, now I know the basics of synthesis, I’m finding it much easier to get the most out of the microKORG. You can also map a midi controller to a lot of the parameters, turning it into a poor man’s MS2000. The older MS2000 shares the same engine as the MK.

The Novation Impulse 61 is great, although it does take up a lot of desk space. The keybed is much better than any controller I’ve tried before, and even though it’s not weighted like my digital piano, it is very playable. The aftertouch and the velocity sensitivity are settings I will no doubt appreciate more in the future, for now I just turn them off. The arpegiator with the step sequencer is amazing! It turns the arpegiator into a little groovebox. It is quite similar to the arp sequencer on the microKORG, where you can hit the pads to change the notes on the fly. However the Impulse pads are a lot more sturdy, and responsive.

There is a lot about the Novation Automap functionality that I haven’t explored. I want to wire up my old Remote Zero SL unit as a controller for the microKORG, so I have more of a one-to-one mapping between knobs and the MS2000 parameter functionality exposed via MIDI on the microKORG.

Pioneer DDJ-SR Serato Controller Review

dj controller

I decided to buy the DDJ-SR controller because it was cheaper than even the cheapest pair of Pioneer CDJs. I’m no stranger to using a laptop and controller, before the DDJ-SR I used my trusty Faderfox DJ2 controller, which is a basic no-frills ‘play buttons, 3 EQs, crossfader and volume faders’ unit.

I was considering getting the Native Instruments Traktor S4 DJ controller, which is one of the most popular full-size controllers for Traktor. However, after borrowing one from a friend, I compared the build quality of the DDJ-SR versus the S4, and there was no contest! The Pioneer DDJ-SR has the same buttons and jog wheel as the Pioneer CDJ units, which are rock solid and industry standard. For anyone wanting to use CDJs in the club after using the DDJ-SR at home, you will find the feel very familiar.

I looked at the DDJ-SR’s big brother, the DDJ-SX1. The SX is much bigger in size, and not as portable as the SR. This was a major factor for me, as it’s often difficult enough to find space in the DJ booth, even for a small controller. The DDJ-SX1 (not the newest model which may be out by now) has a pretty similar feature set to the DDJ-SR. There is only one main difference that is significant to me. That being the fact that the SX is a full 4-channel mixer, which can operate without being connected to a computer. But it wasn’t enough to justify the larger footprint and the much increased cost. So I decided to opt for the more portable DDJ-SR.

I tried out the controller at my local music shop, Dawsons (Manchester) . I recommend trying out the controller and also buying locally if you can, because it’s much easier to return a controller to the shop than it is to send it back to an online store, if you are not happy with it. I also believe in supporting your local music stores.

Being used to Traktor, and having used it since 2006, I was initially a bit cautious over switching to Serato. After I played around with it, and for my typical use, there was not a lot in Traktor that I didn’t find equivalents for, in Serato. One thing that was very nice is seeing the waveforms from each deck, and how you can visually ‘sync up’ the starting track with the beats of the one that is already playing. I have been surprised about how useful this is, it really makes beatmatching so easy when you don’t want to use the sync button, which I often don’t.

Pioneer_DDJ-SR

The DDJ-SR comes with 8 pads under each jog wheel. They are very responsive, every bit as responsive as Akai drum pads used for music production. The pad FX definitely expand the creative potential of laptop DJing. The ‘slicer’ is my favourite so far, it cuts the upcoming music into 8 slices. You can choose to play a slice (or beat) out of time with the progression of the track, for example, instead of 1-2-3-4-5-6-7-8 you can opt for 1-2-2-4-5-6-6-8. You can play combination you like, assuming you hit the right pads in time!

The ‘slip’ feature is very nice. When toggled on, the track plays on as you trigger samples and loops. It is as if the track is kept playing in the background while you pick out sections earlier in the track and play samples over the top, and when you have finished, the track snaps back, not to where you left it, but to where it has progressed to. You can use this feature to replace whole loops with other loops in the track and keep the rhythm of the track going. It is really powerful.

There is a four knob ‘FX’ section above each jog wheel. This is used to add FX such as delay, reverb, flanger, and so on. I don’t find myself using this much for my style of DJing. I do wonder how much of the FX and pad hammering you can actually do to a track before you start to annoy your crowd. They are great to use occasionally though.

Overall, I am very happy with my purchase. I had a pair of Pioneer CDJ400s and mixer back in 2009 which had a lot less features and cost over twice the price as this unit, and yet had the same build quality. Even if you ignore the ‘which is better’ argument of digital DJing versus CDJs, if you already have a laptop, this is a great setup for the money.

New Synthesiser Additions: Microbrute, Nord Drum and Access Virus A

I bought some new synths.

Access Virus A

access virus a

This is the original 1998 Access Virus A. It, it was a staple synth for trance and electronic music in general for the early 00s. I am very happy that I managed to get this secondhand for less than a MicroKORG. It cost over £800 when it came out in 1998. Old digital synths seem to be unpopular at the moment, I’ve heard comments along the lines of ‘if it’s digital then I might as well use a plugin in my DAW’. But I think this is ignoring the tactile control surface that you get, and how it gets your head outside the computer and playing an actual physical instrument. The presets are really inspiring, several sounds that you will recognise if you were into electronic music in the 00s. VNV Nation, one of my favourite bands, produced their entire ‘Empires’ album with just the Access Virus A and a couple of samplers.

It has two oscillators which have extra functionality, as you can choose the waveform from a large selection of presampled waveforms, in addition to the usual sawtooth, sine, square. There is also a suboscilator, two filters, each with a ASDTR configurable envelope, the usual ASDTR for the amplifier, and three LFOs. You can choose to map the LFOs to almost anything, allowing a great amount of flexibility. It also has effects – delay and unison, as well as multiple timbers, meaning that you can have up to 12 different patches playing at the same time, each controlled with different MIDI channels. The whole thing is extensively controllable via MIDI also. It is my first polyphonic hardware synthesier, and so has opened up a whole range of new composition possibilities around chords.

Microbrute

microbrute

The Microbrute is fully analogue, and it can produce a good number of sounds through its one oscilator, by allowing you to blend in different quantities of sawtooth, sine and square, along with some extensive extras, such as a metalizer. It has a Steiner Parker filter, a LFO and a step sequencer. You can get more technical details about the Microbrute in Marc Doty’s great series of videos.

It has a hard aggressive character to the sound, especially when used with the ‘brute factor’. I like its sound, but sometimes wish for a little bit more warmth. However you can make all sorts of sounds with it, and I particularly like making chiptune arpeggio with the square wave, such as in my track ‘Blue Sky’.

It also has a mod matrix that I haven’t fully explored yet, but is very powerful, especially if you want to link it up to other CV capable synths.

Nord Drum

Nord-Drum 1

This is an analgoue modelling drum synthesiser. It is the first Nord Drum so it only has four channels, but the presets sound great in the mix. I haven’t even looked at the synthesis options on this yet, as I’ve been really happy with the presets, but there is a whole range of options that you can shape and edit for your own sound.

My synth ‘shelf’

I have swapped out the older synths that I don’t use anymore. Currently I’m using the three synths above. The keyboard at the top is my Alesis Q25 MIDI controller, there is a ZED 10 mixer on the middle shelf which I use as a recording device, as well as a gold EMU Orbit which I don’t have plugged in at the moment.

My Synth Shelf

A* Algorithm implementation in Python

pathfinding

Lately I’ve had the idea of creating a text-based Roguelike in C++. This lead me on to think about the game AI experiments that I worked during my degree in Computer Science and A.I.. Essential to game AI is the notion of pathfinding, or finding a path from ‘A’ to ‘B’, past any obstacles that get in the way. One way to do this is to use the A* algorithm. I decided to implement an A* pathfinding algorithm for possible use in a Roguelike later, and chose the pseudocode from the Wikipedia example to implement.

The program finds a path from the top right hand corner to the top left, avoiding impassable ‘7’ obstacles. The ‘*’ are the steps along the path. The algorithm is guaranteed to find the shortest path between the goal and the start, which means it can optimally solve any solvable maze, given time.

This is a sample board with obstacles setup:

00000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000
00000000000000000000000000000000777000000000000000
00000000000000000000000000000000777000000000000000
00000000000000000000000000000000777000000000000000
00000000000000000000000000000000777000000000000000
00000000000000000000000000000000777000000000000000
00000000000000000000000000000000777000000000000000
00000000000000000000000000000000777000000000000000
00000000000000000000000000000000777000000000000000
00000000000000000000000000000000777000000000000000
00000000000000000000000000000000777000000000000000
00000000000000000000000000000007777000000000000000
00000000000000077777777777777777700000000000000000
00000000077777777777777777777777700000000000000000
00000077777777777700000000000000000000000000000000
77777777777000000000000000000000000000000000000000
77777777000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000
77777777777777777707777777777777777777777777777777
00000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000
70777777777777777777777777777777777777777777777777
00000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000
77777777777777777777700000000000000000000000000000
00000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000
00000000000000000000777777777777777777777707777777
00000000000000000000700000000000000000000000000000
00000000000000000000700000000000000000000000000000
00000000000000000000700000000000000000000000000000
00000000000000000000700000000000000000000000000000
00000000000000000000700000000000000000000000000000
00000000000000000000700000000000000000000000000000
00000000000000000000700000000000000000000000000000
00000000000000000000700000000000000000000000000000

This is the path found (the ‘*’s):

**000000000000000000000000000000000000000000000000
0***********************************00000000000000
00000000000000000000000000000000777*00000000000000
00000000000000000000000000000000777*00000000000000
00000000000000000000000000000000777*00000000000000
00000000000000000000000000000000777*00000000000000
00000000000000000000000000000000777*00000000000000
00000000000000000000000000000000777*00000000000000
00000000000000000000000000000000777*00000000000000
00000000000000000000000000000000777*00000000000000
00000000000000000000000000000000777*00000000000000
00000000000000000000000000000000777*00000000000000
00000000000000000000000000000007777*00000000000000
00000000000000077777777777777777700*00000000000000
00000000077777777777777777777777700*00000000000000
00000077777777777700000000000000000*00000000000000
77777777777000000000000000000000000*00000000000000
77777777000000000000000000000000000*00000000000000
00000000000000000000000000000000000*00000000000000
00000000000000000000000000000000000*00000000000000
00000000000000000000000000000000000*00000000000000
00000000000000000000000000000000000*00000000000000
00000000000000000000000000000000000*00000000000000
000000000000000000******************00000000000000
777777777777777777*7777777777777777777777777777777
000000000000000000*0000000000000000000000000000000
0******************0000000000000000000000000000000
7*777777777777777777777777777777777777777777777777
0*****************************00000000000000000000
00000000000000000000000000000**0000000000000000000
000000000000000000000000000000**000000000000000000
0000000000000000000000000000000*000000000000000000
0000000000000000000000000000000***0000000000000000
000000000000000000000000000000000*0000000000000000
000000000000000000000000000000000**000000000000000
0000000000000000000000000000000000**00000000000000
77777777777777777777700000000000000***000000000000
0000000000000000000000000000000000000**00000000000
00000000000000000000000000000000000000*00000000000
00000000000000000000000000000000000000**0000000000
000000000000000000000000000000000000000****0000000
000000000000000000007777777777777777777777*7777777
000000000000000000007000000000000000000000**000000
0000000000000000000070000000000000000000000*000000
0000000000000000000070000000000000000000000***0000
000000000000000000007000000000000000000000000**000
0000000000000000000070000000000000000000000000*000
0000000000000000000070000000000000000000000000***0
000000000000000000007000000000000000000000000000*0
000000000000000000007000000000000000000000000000**

Here is source code

Amit’s A* pages were incredibly useful in developing this.

(Perhaps one day I will do a flashy JavaScript version!)

Current Music Setup

I like to dabble in making and playing music. Here is the equipment and setup that I use.

Ableton Live Intro

This is the DAW I use. I have been using Ableton Live for several years now, and I know my way around it. I have tried others but they never really felt as comfortable. Live comes in three flavours, ‘Intro’ is the most basic paid-for version. I was surprised how cheap the ‘Intro’ version was, and how little I find myself needing the features of the more expensive versions. I only have one paid-for VST plugin, and that is the KORG Legacy Cell MS-20, which I use on almost all the music I’ve made.

ableton live example

KORG Electribe R-1 MK2 Analog Modelling Drum Synthesiser

This is what serves as my drum machine. I picked it up on the cheap, but I’m really happy with it. I really like the built in step sequencer, and the drum synth itself. The sounds you can make from it are quite varied, and I really like the way you can put together live compositions on the fly. I’d be interested in getting some more KORG boxes, such as the EMX Electribes or the Volcas.

korg-electribe-er1-mk2

Waldorf Rocket Monophonic Analogue Sythnesiser module

This is my analogue synthesiser, which I use mainly for leads. In practice I find it quite annoying not being able to play real chords, and the lack of a sequencer is difficult because it means I can’t put together patterns away from the PC, or even really play it without a keyboard. I do like the sound, and the filter is great. The ‘fake chords’ option is great fun I just wish you could more easily change between the chords on the fly. The arp is pretty cool also. I think this will become a lot more awesome when I get a hardware sequencer, I already have my eye on the cheap BeatStep to pick up when it is released.

WALDORF+ROCKET-1

KORG Monotribe Analogue Sythesiser and Drum Machine

I don’t really use this for anything, unfortunately. It was my first synthesiser and although I liked it at the time, nowadays I find the lack of MIDI and the ribbon keyboard a major problem. I might either sell it or get a MIDI mod and install it. I find it quite noisey when recording anyway, so maybe I’ll just try and sell it. It does has some nice acid style sounds though. A shame.

monotribe

Yamaha P35 Digital Piano

I was looking for a decent MIDI out keyboard that would allow me to put together more complex melodies and learn how to play keyboards for possibly joining a band in the future. The Yamaha NP31, which was my original choice, was out of stock and so it got me looking at others. I thought it would be interesting to learn to play the piano, as we had one growing up but I never really learned before. In the store I really liked the feel of the P35’s hammer action keys, so decided to buy it. I can play some simple tunes with it but want to get piano lessons so I can improve. This will also function as my main MIDI controller for my other hardware.

717aZc6BIwL._SL1500_

Line 6 Mobile Keys 25 USB Keyboard Controller

This is a nice little keyboard controller that I use with Ableton. Unfortunately it does not have MIDI out, only MIDI via USB, but I can run it through the MIDISport to control audio hardware. The keyboard action is very nice, much better than the M-Audio Keystation 49 which I had before and would not recommend.

controller

M-Audio MIDISport Anniversary Edition 2×2 MIDI/USB Interface

This is a fairly standard cheap MIDI to USB interface. I used to use the M-Audio Uno, but that has only one input/output and it has problems with some audio hardware.

midisport

Setting up Kindlefire HDX for Development under Ubuntu 12.04

amazon_kindle_fire_hdx1

I wanted to get a Kindlefire HDX running under Ubuntu 12.04 with adb.

First I needed to setup the udev rules:

1. Edit /etc/udev/rules.d/51-android.rules as root, and add the following line (create this file if it does not exist):

SUBSYSTEM=="usb", ATTRS{idVendor}=="1949", MODE="0666"

2. Change the permission of this file by executing the following command as root:

chmod a+r /etc/udev/rules.d/51-android.rules

3. Reload the rules by executing the following command as root:

udevadm control --reload-rules

4. Run these commands to restart adb:

adb kill-server
adb start-server

5. Now when I run

lsusb

I can see the device listed.

6. Next I needed to enable adb access on the Kindlefire HDX device itself by going to Settings -> Device -> Enable ADB.

7. Finally I could run:

adb devices

within Ubuntu and have it recognise the Kindlefire HDX.

My Computer Build

Updated: Reorganised, replaced Tiamat headset for KAVE.

Picture of my desk with computer on it

Picture of my computer base unit

I use my computer a lot, for work (software development), gaming and music production. I wanted to build a high-end computer setup, as I’ve always lagged behind with upgrades before. So I gradually have been accumulating and swapping bits around to make the setup above.

Internals

Visual

Audio

Peripherals



Internals


Case – Thermaltake Level 10 GT Full Tower

[Link to Amazon]

case

This was an expensive case, but I wanted to spend some money to get a quality case that I could use for future builds. It has many fans, most of which I don’t need, but they are very quiet and they make the CPU temperate a very cool 30-40 degrees, under regular load, even in the current heatwave we’re having. The case has 5 hotswappable hard drive caddies which is very nice and allows me to easily install and remove hard drives without having to take apart the computer. It also has a lock, USB3 ports and enough clearance for graphic cards and space for lots of upgrades.


Motherboard – Gigabyte Z77X-D3H 1155

[Link to Amazon]

mobo

This was bought because it was a cheapish seat for the Ivy Bridge processor and the 16GB RAM. It has some niceish features, such as the fancy 3D BIOS which you can navigate with a mouse, and the onboard graphics which is enough to get into the BIOS when your graphics card isn’t working. The onboard sound is best avoided.


CPU – Intel Core i7 (3770) 3.4GHz Quad Core

[Link to Amazon]

processor

This was the processor that was the top of the mainstream mid-high end CPUs when I was purchasing. It differs from the 3770k as you can’t overclock it, but it has decent support for hardware virtualisation, which I wanted and is not available in the 3770k. I figured I wouldn’t miss the chance to overclock this for a good while, as CPUs of this type already are vastly overpowered for the applications that I use. CPU utilisation for typical use (not including games) rarely rises above 10%.


CPU Cooler – Arctic Cooling Freezer 13 Pro

[Link to Amazon]

cooler

This is a bit overspecced since I am not planning to overclock, but I don’t like stock heatsinks and so bought this. It is a huge heatsink and probably wouldn’t fit in many other types of cases, but as I have a full tower it’s fine.


RAM – 16GB DDR3 RAM Ballistix DDR3 PC3-17000

[Link to Crucial]

ram

This is fast RAM for gaming. 16GB is a bit overspecced for my current needs, but it’s the maximum my board will take, and means I won’t have to upgrade for a long while.


Wireless Card – TP-LINK TL-WDN4800 N900 Wireless Dual Band PCI Express Adapter

[Link to Amazon]

wireless card

This wireless card is good because it has dual-band, meaning faster, interference free 5GHz spectrum access to my dual-band wireless router, and because it has three external ariels which you can replace. I have got a large indoor antenna replacement which allows me to double my wireless range, meaning I can pick up local wifi hotspots if needed.


Optical Drive – Pioneer BDR-207DBK 12x Internal BD-RW Burner

[Link to Amazon]

optical

I didn’t really need a Blu-Ray burner, but it’s useful for backups and I thought I could write some discs to be played in my PS3. It has a very fast read speed for reading Blu-Rays and burning DVDs. To be honest I could have gone for a Blu-ray reader and DVD writer combo and not really noticed the difference.


PSU – 850W EVGA Super NOVA Gold Modular

[Link to Amazon]

psu

850W allows a lot of headroom for graphics cards’ power requirements, and extra components in the future. It is a good quality PSU and is fully modular which is a lot nicer to work with.


3x Hard Drives –

1x Crucial CT256M4SSD2BAA 256GB SSD
1x Unknown model Crucial 120GB SSD
1x Seagate 3TB 3.5 inch 7200RPM 64MB Cache SATA3 Hard Drive

harddisk
harddisk3

The 256GB SSD is my system drive, the older 120GB SSD is for games, and the 3TB HD is for storage: my music collection, video files collection, backup images and virtual machines. Being SSDs, the 256GB and 120GB drives are totally silent, making the 3TB HD sound really loud when it spins up. However, the 3TB drive has enough space to store full Blu-Ray ripped files.. not that I would do that, of course 🙂


Back to Top of Post



Visual


Monitor – BenQ BL3200PT AMVA+ 1440p 32″ Widescreen

[Link to Amazon]

monitor

This is a high-end 1440p 32″ monitor. It has made such a big difference to using the PC, more screen space, more pixels and better clarity. I was considering a 4K monitor, but don’t think the technology is quite cheap enough yet, and the software and games support is severely lacking. It’s 60HZ refresh rate, but that is enough for me. I have heard that the higher refresh rate monitors are better for gaming, but a 144HZ 1440p 32″ monitor would be way out of my budget, not to mention the graphics processing power it would require to run.


Graphics Card – Asus STRIX GTX 980 4GB GDDR5

[Link to Amazon]

gpu

I had to upgrade my old Nvidea GTX 660TI, and just went for the absolute maximum I could afford. The STRIX 980 is an amazing card and comes slightly overclocked compared to the reference model. It plays all current games on maximum settings on 1440p at over 30FPS, which is no a mean feat, on my resolution there is more than a million pixels being drawn to the screen on each frame.


Monitor Backlight – Lightpack

www.lightpack.tv

lightpack

This is a monitor or TV backlighting kit that changes the colour of the light projected behind your screen to match the colours on the edges of your display. This provides a more immersive experience when playing games with the lights down, and you can also set it to become a graphic equaliser where the lights flash in time with the music. I bought this on a whim and I’ve been quite impressed with it so far. It definitely adds to immersion and the graphic equaliser mode is rather trippy when writing or playing music.


Back to Top of Post



Audio


Headphones – Sennheiser HD 25-1 IIs

[Link to Amazon]

headphones

These are what I use when I can’t use my speakers. I bought them for DJing and audio work. They have great sound isolation (these are used by sports commentators you see on TV, because when you’ve got them on, you literally can only hear what’s coming through the headphones) and great sound quality (a favourite for top DJs and sound engineers). They don’t look that great though, and aren’t the most comfortable, but whatever. One nice feature is that they are designed for heavy use and are almost indestructable. If someone steps on the headphone lead, they won’t break, the cables will just pop out of the cans. If the headset breaks, well you can remove the cans and just buy a new headset. They have high ‘sound pressure’ which means the ratio of sound that enters your ear versus the amount of sound that comes out of the cans, is quite high due to their closed nature and sound isolating design. This, combined with high frequency range and a large volume range, means it’s quite easy to cause yourself hearing damage if you have them on too loud usually, or if you have a temporary high volume ‘spike’.


Soundcard – Asus ROG Xonar Phoebus Solo

[Link to Amazon]

soundcard

Good 7.1 surround sound card, with headphone amplifier.


Gaming Headset – ROCCAT Kave XTD 5.1 Analogue

[Link to Amazon]

headset

It is quite difficult to find surround sound headsets with analogue inputs, most headsets are USB only, and contain their own soundcard. This is not ideal when you have a really good soundcard already that you want to use, such as my Xonar Phoebus Solo. Previously I was using the Razer Tiamat, which was terrible. It had a consistant high-pitched electrical whine when you were wearing the headset, and you couldn’t get rid of it. The Kave is much better in this regard, and is more comfortable too. It is ‘only’ 5.1 compared to the Tiamat’s 7.1, but really, 7.1 surround sound in a headset is just a marketing tactic anyway, you are never going to be able to appreciate the extra two channels when the speakers are that close together.


Speakers – KRK Rokit G2 5

[Link to Amazon]

speakers

These are great monitors, which I use for music production, and make for great speakers for general use as well. They are a little large for my desk and have a maximum volume which is far too loud for my flat, but I wouldn’t be without them.


Speaker Stands – IsoAcoustics L8R155 Speaker Stands

[Link to Amazon]

speaker stands
These are sound-isolating speaker stands, which I have setup to raise the speakers to ear height. I have to say, they’ve made the speakers sound so much better, and they look good too.


Mixer – Allen & Heath ZED 10

[Link to Amazon]

mixer

This is a good recording mixer which also doubles as a great USB soundcard. It has 4x mono RCA inputs and 2x stereo RCA inputs, which is enough to wire all my synths up, as well as feed the Rokit 5s.


Desktop Microphone – Pulse 50’s Retro Chrome Style Microphone

[Link to Amazon]

<a href="http://www.davidcraddock.net/wp-content/uploads/2014/mic

This is a 50’s style microphone that I liked the look of. I got it because I wanted a microphone that plugged into my mixing desk, which would allow me to talk hands-free on Skype. Also it is good for streaming games, as I can mix my voice in the microphone with the output the computer game sounds, and send both mixed to skype or Twitch.TV or wherever. It is also moderately useful for recording voices for music production and for routing via my FX pedal for some novelty vocal effects on Skype, such as delay, echo and reverb.


Back to Top of Post



Peripherals


Webcam – Logitech C920 HD Webcam

[Link to Amazon]

webcam

I use a webcam for Skype often, and I want to get more into recording for YouTube, so I bought a good quality HD webcam.


Keyboard – Das Keyboard Ultimate Silent EU

[Link to Amazon]

keyboard

This is the model with the quieter Cherry MX Brown key switches. It is a good mechanical keyboard for all purposes, looks good, and will encourage me to type more accurately. I grew annoyed at missing keys on the blank keycaps, so I added my own coloured keycaps for high visibility (see picture at top).


Gaming Keypad – Razer Orbweaver Stealth

[Link to Razer Site]

keypad

This is the ‘Stealth’ model with the Cherry MX Brown key switches. I was initially doubtful whether it was worth getting a gaming keypad, but so many people have recommended it, that I had to try it out. I actually have found it very useful, much more comfortable and accurate than using a normal keyboard for gaming. It also forces you to get into the habit of remapping keys for your own preference.


Mouse – Logitech G9X

[Link to Amazon]

g9x

I upgraded from my G500 mouse to this, smaller, G9X. I have started to adopt the claw grip for gaming and generally using my mouse. This makes the larger G500 difficult to use, as the larger size means that the mouse buttons don’t click properly when you have your fingers higher up on the mouse. So far, I am very happy with the G9X, the higher DPI scanning, and the easier to grip ‘precicse grip’ material means that it is better for other reasons for me.

I use the Corsair Vengeance mouse matt, it is made of metal unlike my previous Razor Golliathus cloth one, which I didn’t like because the edge of the matt would get stuck in the mouse when you moved it too far.


Back to Top of Post


My Aeron Chair

A good ergonomic chair is a wise investment if you’re going to spend a lot of time at your computer. One of the better known ergonomic models is the Herman Miller Aeron Task Chair.

Picture of Aeron Chair

What Other People Say About the Aeron

Jeff Atwood (from Coding Horror) says:

In fact, after browsing chairs for the last few years of my career, I’ve come to one conclusion: you can’t expect to get a decent chair for less than $500. If you are spending less than that on seating – unless you are getting the deal of the century on dot-bomb bankruptcy auctions – you’re probably making a mistake.

I still believe this to be true, and I urge any programmers reading this to seriously consider the value of what you’re sitting in while you’re on the job. In our profession, seating matters:

Chairs are a primary part of the programming experience. Eight hours a day, every day, for the rest of your working life – you’re sitting in one. Like it or not, whatever you’re sitting in has a measurable impact on your work experience.

Cheap chairs suck. Maybe I’ve become spoiled, but I have yet to sit in a single good, cheap chair. In my experience, the difference between the really great chairs and the cheap stuff is enormous. A quality chair is so comfortable and accommodating it effortlessly melts into the background, so you can focus on your work. A cheesy, cheap chair constantly reminds you how many hours of work you have left.

Chairs last. As I write this, I’m still sitting my original Aeron chair, which I purchased in 1998. I can’t think of any other piece of equipment I use in my job that has lasted me ten full years and beyond. While the initial sticker shock of a quality chair may turn you off, try to mentally amortize that cost across the next ten years or more.

Joel Spolsky (from Joel On Software) says:

Let me, for a moment, talk about the famous Aeron chair, made by Herman Miller. They cost about $900. This is about $800 more than a cheap office chair from OfficeDepot or Staples.

They are much more comfortable than cheap chairs. If you get the right size and adjust it properly, most people can sit in them all day long without feeling uncomfortable. The back and seat are made out of a kind of mesh that lets air flow so you don’t get sweaty. The ergonomics, especially of the newer models with lumbar support, are excellent.

They last longer than cheap chairs. We’ve been in business for six years and every Aeron is literally in mint condition: I challenge anyone to see the difference between the chairs we bought in 2000 and the chairs we bought three months ago. They easily last for ten years. The cheap chairs literally start falling apart after a matter of months. You’ll need at least four $100 chairs to last as long as an Aeron.

There was a post with a large set of comments on Hacker News about chairs and cheap alternatives to Aeron Chairs, with a lot of people saying that there is no cheap alternative to a good chair.

What I Say About the Aeron

I just got a refurbished Aeron chair for Christmas. I am really pleased with it. It comes in three base sizes, being larger than normal I went for the Size C. Once it arrived it was a good fit, but it was easily configurable to make it into an excellent fit. I prefer my chair not to recline, so I can’t comment on whether it is not a good chair for reclining, as Jeff Atwood says, but I will say it felt comfortable and stable reclining.

The real benefit so far has been on my posture; I did not know how much back pain I was having before with my really cheap office chair. Only when I got up from a 4 hour session on my Aeron chair did I notice how much better my back was feeling. It moulds your back into a good position, and I have noticed my back clicking and popping into its proper shape, after using the chair for a couple of days.

I ordered my chair from simplyaeron.co.uk, who I am very happy with, as they provided an MK2 Size C chair with lumbar support for less than £400, which is an absolute bargain compared to the retail price of a new chair. This also included delivery! It seems like new – there are no scuff marks and everything works perfectly.

I highly recommend getting an Aeron chair or an equivalent ergonomic chair recommended in the above resources, as I have really noticed a significant difference.

2013 Career Retrospective

2015 Update: The “Device Hive” project has now been changed to be called ‘Hive CI’ and it is being maintained by a team of developers at the BBC, which I am no longer a part of. It is in the process of being opensourced, see: http://bbc.github.io/hive-ci/

This year has been quite a busy and eventful one for me.

Connected Red Button
At the start of the year, I was working on the Connected Red Button team within the BBC. Connected Red Button is a major ongoing project in the Television and Mobile Platforms department at BBC North. Its aim is to replace the classic Red Button text service (which itself is the successor to Ceefax) with a new updated all-singing all-dancing interactive portal to internet content, available on Smart TVs and modern set top boxes. Currently Connected Red Button is live and accessible by pressing the Red Button on the new Virgin Media TiVo boxes. You can access the latest version of iPlayer, and the BBC News and BBC Sport smart TV apps from within one easy portal.

On CRB, I was working on the Java/Spring services layer, which connects to the various APIs of services like iPlayer that we have at the BBC, and gets all the content ready for the frontend. This data then gets passed to the very nice looking AS2 frontend to display, and that’s how it appears on your TV that is connected to your Virgin TiVo box in your living room.

The next version of CRB is being developed for Smart TVs with HTML browsers (so the frontend is in HTML5/JS instead of AS2). This type of Smart TV includes most of the new smart TVs that have come out recently, and will continue to be released in the future. The BBC (and the wider industry) is really anticipating that most TVs will be smart TVs in 5-10 years, and so the reach of Connected Red Button HTML will increase substantially so that most of the audience can be served by new applications that run on smart TVs.

Smartbridge

Smartbridge is the transitional frontend that is displayed to both 1) users that have smart TVs and internet connected STB (Set Top Boxes) capable of running our latest BBC applications such as Connected Red Button and the latest versions of iPlayer, and also 2) our traditional users that still have normal (un-smart) TVs that can only receive Broadcast Red Button (the service you get by pressing the red button on any BBC channel). Smartbridge is not a branded BBC product, it is the behind the scenes magic that helps ensure that we maintain the availability of traditional Red Button services as we simultaneously launch and develop Connected Red Button.

For several months this year I was working on Smarbridge. On Smartbridge, I was working to get the project released and out the door, which meant Java/Spring/Hibernate work, with MySQL database tinkering and some broadcast work configuring and testing the TVs that worked with Smartbridge. It was successfully released in October.

Device Hive

Device Hive is the working name for an BBC system that is an Android and iOS emulator and physical device testing platform. A server will run the Device Hive software, and mobile developers will be able to plug in their Android mobile or tablet or iPhone or iPad to the server via a USB cable, and choose an application to run on it, such as BBC iPlayer or BBC Radio Player. This application will then automatically be downloaded onto the device, and the automated Cucumber/Calabash test suite will be executed, which will step through every screen of the mobile application, triggering buttons, scrolling up and down and generally exercising every aspect of the mobile application. There will also be an option to run install and run applications on Android or iOS emulators, so we could have 10 emulators running at once, each running different segments of the automated test suite, and uploading the test results to a logging server.

Device Hive will mean, in particular, that we can test BBC mobile applications on the plethora of Android devices available, every make and model that we own of the different OS/hardware combinations can be plugged into a device hive server, and so we can see test runs for BBC iPlayer Android across all the different variations. This will mean we can help target a wider range of Android devices for new BBC iPlayer features, which will help ease the anger that some of our audience members feel because their specific Android iPlayer experience is not as good as the later models.

In October I moved departments from Television and Mobile Platforms to POD Test, and joined the new Device Hive team as lead developer. I am working in Ruby/Rails/Rspec/Cucumber and using Ubuntu Linux VMs and lots of Android and iOS devices to build up the system.

University Engagement

I have been continuing to work with Manchester University’s Ultimate Programming Society to organise and present talks to the students about working practices in software development that the BBC use. We have covered Behaviour Driven Development, Test Driven Development, Editors and IDEs and Agile Development Practices so far.

Generally I feel that I have worked on some pretty challenging projects this year, and I am very happy with being the lead developer on Device Hive, and look forward to making this project as useful and as powerful as I think it can be.

Android Debug Bridge failing to detect emulators under OSX

Android

I’ve been working on a project at the BBC where we are using the Android command-line tools from the Android Developer Tools, to spin up and terminate series of emulators. I noticed a big problem under OSX where ‘adb devices’ was failing to register emulators occasionally when we started them up, without any error message, even though they were loaded and quite clearly running in a window on OSX. This was a real problem for our project because we needed absolute parity between emulator process being launched and subsequently being detected by adb.

We switched to using adb with emulators in an Ubuntu 12.04 VM running under OSX, and we had no further problems with our setup. Emulators will now be programatically launched and torn down by our monitoring application. We now have an array of emulators which we can deploy to at will, which is very useful.

I don’t know what has caused this problem, my only hunch is that the Android toolkit was probably developed in a very Linux-heavy environment, and so adb on Linux was probably their first testing platform. All I can say is that Linux is much more stable than OSX, even as a VM, for Android emulation.

The Haiku Machine

550px-Write-a-Haiku-Poem-Intro

I found this awesome cut-up poetry generator, which takes the text of famous poets and builds structured poetry out of it. The guy that made it even developed the underlying algorithm as a research project. I have put a version of a free Amazon EC2 instance, wrote a little twitter bot in node.js, and wired the poetry generator with the twitter bot, and now I have this: https://twitter.com/haikumachine – a twitter bot that posts a haiku every five minutes, derived from Dylan Thomas’s poetry.

It could be improved, and there are sometimes erroneous tweets where the syllables aren’t counted quite right, or some of the punctuation doesn’t make sense once cut up, but damnit, it’s a bot that writes Haikus.

//platform.twitter.com/widgets.js

256 Color VIM on Crunchbang Waldorf

256 Colours in VIMTo get 256 colors working within terminator in Crunchbang Waldorf, I had to do the following:

  1. Add to ~/.bashrc
    export TERM=xterm-256color
  2. Install a 256 color VIM colorcheme, see desert256 for example.
  3. Add the following to ~/.vimrc:
    set t_Co=256
    set t_AB=^[[48;5;%dm
    set t_AF=^[[38;5;%dm
    

    ‘t_Co’ specifies exactly how many colours VIM can use. The other two lines seem to be Debian-specific color code escape sequences.

  4. If you want 256 color VIM for your root user when you sudo edit, then edit /usr/share/vim/vimrc and copy across your settings from your local ~/.vimrc and ~/.vim to this global environment.

Subversion 1.7 on Crunchbang Waldorf

I use the excellent http://www.smartsvn.com/ client from WANdisco. WANdisco have been releasing new open-source versions of SVN to the public with new improved reliability, and the client uses one of these versions, 1.7, to offer better performance.

Unfortunately if you choose to upgrade your entire repository to 1.7, this breaks compatibility with the default commandline SVN client on Waldorf which I like to use as well as Smart SVN, for quick ‘svn up’s and other commandline magic.

This means I have to download the latest commandline SVN client, the 1.7 version of subversion for Linux, available for free on the WANdisco site.

Unfortunately, you can’t install this version on the version of Debian that Crunchbang Waldorf is based on. There are broken dependencies on an old version of libsvn1, which is a requirement for another package that is part of the Debian base install.

Eventually I found this really helpful page, the instructions which will work 100% on Waldorf:

http://ymartin59.free.fr/wordpress/index.php/2012/11/25/how-to-install-subversion-1-7-from-wandisco-repository-on-debian-wheezy/

iTerm for OSX for a Colourful Terminal Experience

Screen Shot 2013-06-11 at 17.06.36

iTerm is much better than the standard OSX terminal client, not least because it has compatiablity with xterm256-color terminal emulation. xterm256-color emulation will give your terminal access to 256 colours instead of the usual 16. Much better, not just for looking pretty, but for distinguishing between different types of data in an editor like VIM or even in Cucumber output (see picture above). It’s also free.

http://iterm.sourceforge.net

Once installed, you will have to go in to the preferences and set your ‘Report Terminal Type’ to be ‘xterm256-color’. Then things should be more colourful. Then install a 256 color compatible theme in VIM to make use of that extra capacity. You can also edit your prompt and use 256 colour escape sequences, if you wish.

Tailing a log file and Running an Application at the Same Time

logviewing

A quick tip this, but a useful one. You can tail a log file in the background while running a script in the foreground. So for example, I frequently execute the following commands:

1.

tail -f /var/log/httpd.log &
/etc/init.d/apache restart

2. (The log file will spool onto the terminal as Apache is restarted.)

3. Once you are finished viewing the log file, foreground the log file process and kill it:

fg

Then terminate the foregrounded log tail with a control-c.

With this technique you can run as many commands as you want, and see the real-time effects on your log file, without having to open a new terminal. You will also see your program output interspersed with your log file output, which can be helpful when tracing down particular problems.

Monitoring a Slow Internet Connection in OSX

images

I am currently on holiday in Tenerife, and although I really like it here, one thing I do not like is the internet connection we have in our resort. Sometimes networked applications will just hang with no warning and there will be minutes where it’s not clear what is going on. Here are some ways you can find a little bit more about what is happening when an application is slow or seems to hang when you have a poor internet connection. Execute the following commands each in a separate terminal window.

Log Files

tail -f /var/log/*

This will give you an indication of what is happening in OSX. For example, I was installing the XCode Command Line Utils from within XCode. The installation progress information is severely lacking, it just shows a bar which moves from left to right. However I was able to find out what was happening by tailing the log files in /var/log, which provided me with an updated breakdown of the installer progress. You can exit tail by using Control-C which will return you to the shell.

Constant Ping

ping www.google.com

When I have problems with my internet connection, I always keep a ping running in the background in a terminal. The interesting information here is the ICMP RTT time shown as the milliseconds next to the ‘time’ label, and how many packets were dropped shown by the number of ‘request timeout’ messages. Google does not mind you pinging it, just like hundreds of thousands of other people do, and so you can keep this up constantly, monitoring problems with your internet connection. When you get ‘no route to host’ printed, this usually means that your gateway or wireless connection is down, which means you usually have to reestablish a connection manually.

tcpdump

sudo tcpdump en0 -vvv

Do you really want to see what is happening on your computers network connection? Turn the floodgates on then, and use tcpdump. This will output information on each packet that your computer sends out and is received in a slightly Matrix-style torrent of information. If you are downloading something via an application or have a number of active web connections such as AJAX Facebook pages loaded, you would expect to see a lot of traffic. If you don’t have a lot of traffic, and you’re expecting a lot, then something may be wrong. You can use tcpdump to get a general feel of what data is being passed around, and to what IP address, which you can then look up later for more clarity. You can also use grep and some basic TCP/IP networking knowledge to find out what exactly is happening on the network level.

Network Connection Status of Each Application

sudo lsof -i tcp

Want to find out information about applications are using your internet connection, and the connection state of each TCP connection? Use lsof. You will be given the name of the application that is using each TCP connection, the IP address to which it is connected to, and the TCP connection state (established is good, time wait can be a problem sign). Run this regularly to check on the connection state of your programs. This won’t monitor UDP connections, but should cover your web browsers.

Hopefully this information will give you a bit more insight into what is actually happening on your OSX machine when your internet connection is being unreliable and you want more information about what is going on. Once you have this information, you can use it to inform actions such as toggling the wireless off and on again to reestablish a connection, reloading webpages that have hung, restarting application downloads, or possibly finding a new hotel or resort with a better internet connection 🙂