ewanhemingway2022-09-03T09:35:02+00:00https://ewanhemingway.co.ukwhere is love (hemmar remix)2016-04-08T09:13:00+00:00https://ewanhemingway.co.uk/2016/04/08/where-is-love-remix<iframe width="100%" height="166" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url=https%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F257927401&show_artwork=true"></iframe>
<p>This track is the result of an old project I had been tinkering with for a while. Unfortunately I lost the original Ableton project file so this is a recovered version. The track is a electronic remix of <a href="https://www.youtube.com/watch?v=bBBi2-ZpgnI">Elridge Holmes’ Where is Love</a>.</p>
rust2014-05-11T17:32:00+00:00https://ewanhemingway.co.uk/2014/05/11/rust<iframe width="100%" height="166" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url=https%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F148988163&show_artwork=true"></iframe>
bitbucket + git2014-01-28T17:08:00+00:00https://ewanhemingway.co.uk/2014/01/28/bitbucket-git<p>I had been having issues pushing repositories to bitbucket using
<code>git push -u origin master </code>
which gives the following error:</p>
<p><code>conq: Invalid command syntax
fatal: The remote end hung up unexpectedly
</code></p>
<p>The culprit seems to be the receivepack option which got corrupted. This can be reset to the default value for all repositories (drop the –global for a specific repository) using:</p>
<p><code>git config --global remote.origin.receivepack git-receive-pack</code></p>
<p>Hope this helps, as it took me a while to work out!</p>
Modelling active gels2013-03-31T18:59:00+00:00https://ewanhemingway.co.uk/2013/03/31/modelling-active-gels<p><img src="/legacy/drupal/images/screenshots/active_gel.png" alt="IOP poster" title="IOP poster" width="300" height="425" style="float: left; margin-left: 10px; margin-right: 10px;" />I recently had to design a poster for an IOP conference in Leeds to give a very broad picture of the research I'm doing at the moment.</p>
<p>The poster introduces the biological context for the work and gives a couple of preliminary results. If there are any questions I'd be happy to answer them below!</p>
<p><a href="/legacy/drupal/pdf/active_gel.pdf">Poster download (3MB)</a></p>
m4kd2013-01-27T23:00:00+00:00https://ewanhemingway.co.uk/2013/01/27/m4kd<iframe width="100%" height="120" src="https://www.mixcloud.com/widget/iframe/?hide_cover=1&feed=%2Fhemmar%2Fmk4d%2F" frameborder="0"></iframe>
<p>It's been inappropriately long since I last posted anything here. Here is a fun mix for Kel.</p>
<ol><li><strong>Gold Panda</strong> - India Lately</li><li><strong>Fatboy Slim</strong> - The Joker (ATFC Remix)</li><li><strong>Parov Stelar</strong> - KissKiss</li><li><strong>LCD Soundsystem</strong> - Daft Punk Is Playing At My House (Soulwax Shibuya re-remix)</li><li><strong>Laurent Garnier</strong> - Jacques In The Box</li><li><strong>Four Tet</strong> - Pyramid</li><li><strong>Joy Orbison</strong> - Hyph Mngo</li><li><strong>Gui Borrato </strong>- Gate 7</li><li><strong>Röyksopp</strong> - Poor Leno (Jakatta Radio Mix)</li><li><strong>Daft Punk</strong> - Alive</li><li><strong>Leftism</strong> - Phat Planet</li></ol>
<p></p></p>
motm jan '122012-01-30T23:21:00+00:00https://ewanhemingway.co.uk/2012/01/30/motm-jan-12<iframe width="100%" height="120" src="https://www.mixcloud.com/widget/iframe/?hide_cover=1&feed=%2Fhemmar%2Fmotm-jan-12%2F" frameborder="0"></iframe>
m4k2012-01-22T12:06:00+00:00https://ewanhemingway.co.uk/2012/01/22/m4k<iframe width="100%" height="120" src="https://www.mixcloud.com/widget/iframe/?hide_cover=1&feed=%2Fhemmar%2Fm4k%2F" frameborder="0"></iframe>
<ol><li><strong>Tim Hecker</strong> - Rainbow Blood</li><li><strong>Nicolas Jaar</strong> - Colomb</li><li><strong>Luke Abbot</strong> - Brazil</li><li><strong>LTJ Bukem</strong> - Demon's Theme</li><li><strong>Colin Stetson</strong> - Judges</li><li><strong>TV on the Radio</strong> - Staring at the Sun</li><li><strong>The Field</strong> - Is This Power</li><li><strong>Lucky Pierre</strong> - Angels On Your Body</li><li><strong>Apparat </strong>- Ash/Black Veil</li><li><strong>Bjork </strong>- Hyperballad</li><li><strong>Underworld </strong>- Two Months Off</li><li><strong>Boards of Canada</strong> - Turquoise Hexagon Sun</li></ol>
mlrVST - Project details2011-10-23T17:13:00+00:00https://ewanhemingway.co.uk/2011/10/23/mlrvst-project-details<p>For the last few weeks I have been working away on a fun little project to recreate / expand on a great bit of software for the <a href="/tag/monome">monome</a> called <a href="http://www.youtube.com/watch?v=t_2xgxndgSU">mlr</a>. The original patch was written in <a href="http://cycling74.com/whatismax/">Max/MSP</a> which is great for putting together these sort of sample juggling applications. However Max/MSP remains a proprietary language / coding evironment meaning it's not possible to get in and hack around with the source code without owning a full copy (which unfortunately I don't). So in response, I decided to create a VST plugin in C++ which is fully open-sourced / modifiable. While my project (unoriginally named <strong>mlrVST</strong>) borrows heavily from existing incarnations, I hope to add plenty of my own features and ideas: in particular I've looked at adding several granular synthesis capabilities.</p>
<p><img src="/legacy/drupal/images/screenshots/mlrcrop.png" alt="mlrVST" title="mlrVST" width="601" height="215" /></p>
<p>So what stage is the project at just now? Well I have a basic VST up and running. It has a GUI, it makes sound, it responds to the monome and can play back loops at varying speeds (set internally or by the VST host). Windows builds <em>are </em>available but I've not had access to OSX to try building a Mac version (the project uses the cross-platform JUCE library so it should work!). There is lots still to do: presets, live audio recording, resampling etc, but there should also be enough working to have fun playing around with! For more information (downloads / screenshots / source code), the best place to go is the <a href="http://post.monome.org/comments.php?DiscussionID=12988">monome.org forums</a>, although the <a href="https://github.com/hemmer/mlrVST">github project page</a> should be useful too.</p>
<p>I hope to write some more articles about the technical side of the project (using JUCE etc) in the future so feel free to check back now and then!</p>
Growing crystals in Python2011-08-30T12:08:00+00:00https://ewanhemingway.co.uk/2011/08/30/growing-crystals-python<p><img src="/legacy/drupal/images/n50000.png" alt="Diffusion-Limited Aggregation" title="Diffusion-Limited Aggregation" width="300" height="301" style="float: right; margin-left: 15px; margin-right: 15px; margin-top: 10px; margin-bottom: 10px;" />As part of my preparation for my PhD, I've decided to have a look at other programming languages, partially just out of curiosity, but also partly due to the frustrating length of time it seems to take to get code up and running in Java/C++. Python is often mentioned as suitable scientific programming language so I decided to <a href="http://diveintopython.net">dive straight in</a>. I've only been using it for about a week and already I've been very impressed with the speed with which I can get prototypes up and running. Coding in python seems more eloquent, concise, almost like writing pseudo-code at times. The community encourages writing <a href="http://faassen.n--tree.net/blog/view/weblog/2005/08/06/0">"pythonic"</a> code where the finding simplest, cleanest (and often fastest) method is highly valued.</p>
<p>So to test out the new language I decided to have a go at implementing a basic lattice-based <a href="http://en.wikipedia.org/wiki/Diffusion-limited_aggregation"><strong>Diffusion-Limited Aggregation</strong></a> model. The basic idea is set off a series of <a href="http://en.wikipedia.org/wiki/Random_walk">random walkers</a> around a central "seed" - if they come into contact with the seed they stick to it and a new walker is released. The colors in the above diagram show how new that part of the crystal is (hotter - new, colder - old). The code is available over at <a href="https://github.com/hemmer/pyDLA">github</a>; the curious should also have a look at the <a href="https://github.com/hemmer/pyDLA/tree/numpyFast">faster version</a> rewritten in the NumPy numerical library.</p>
Couple of new Tunes2011-07-24T10:51:00+00:00https://ewanhemingway.co.uk/2011/07/24/couple-new-tunes<p>Over the last couple of weeks I’ve been doing a bit of recording with <a title="Folk It website" href="http://www.folk-it.com">Folk It</a> and friends. First set is a tune (as yet unnamed) that I wrote on the banjo with Mike Starkey on guitar. The second part may need a little bit of tweaking - it sounds a bit too much like a free jam! I’m definitely looking to pick up a four-string banjo at some point, they’re great for writing tunes if nothing else:</p>
<p><strong>Banjo Tune</strong></p>
<audio controls=""><source src="/audio/EwansToon.mp3 " type="audio/mp3" /></audio>
<p><br /></p>
<p>The second set is a couple of Irish tunes that we arranged with Folk It, and although we can’t seem to find the names of the tunes anywhere (please comment if you recognised them!), the set is called the Stingy Midges Set:</p>
<p><strong>The Stingy Midges</strong></p>
<audio controls=""><source src="/audio/StingyMidges.mp3 " type="audio/mp3" /></audio>
<p><br /></p>
Album release "The Grit That Makes The Pearl"2011-04-16T01:14:00+00:00https://ewanhemingway.co.uk/2011/04/16/album-release-grit-makes-pearl<p><img src="/legacy/drupal/images/cd_small.png" alt="CD cover" title="CD cover" width="300" height="300" style="float: right; margin: 5px;" />Eight months after entering the studio for the first time, we finally launched the album "The Grit That Makes The Pearl". It's been a fascinating process from conception to physical product, it really makes you appreciate the amount of work that goes into making a CD.</p>
<p>The majority of tunes and arrangement were done by good friends Hugh Marwick and Stuart Mackintosh, with fiddle from <span style="font-family: Verdana, Arial; color: #000000; line-height: normal; ">Gavin Marwick (of <a style="color: #33201d; text-decoration: underline; " title="Bellevue Rendezvous (Myspace)" href="http://www.myspace.com/bellevuerendezvous">Bellevue Rendezvous</a>), Sean Cousins on drums and myself on piano</span>. We were also joined by the wonderful <span style="font-family: Verdana, Arial; color: #000000; line-height: normal; ">Eilidh Mackenzie on </span><span style="font-family: Verdana, Arial; color: #000000; line-height: normal; ">vocals and Calum MacGillivray on pipes.</span></p>
<p><span style="font-family: Verdana, Arial; color: #000000; line-height: normal;">For sample downloads / CD sales head on over to the official site (designed by myself), <a href="http://marwickandmackintosh.com/">marwickandmackintosh.com</a>. There is a tour to support the CD starting June 21st, starting in the Highlands but hopefully travelling further afield later.</span></p>
Masters Thesis - Modelling Non-linear Behaviour in Valve Amplifiers2011-03-22T12:23:00+00:00https://ewanhemingway.co.uk/2011/03/22/masters-thesis-modelling-non-linear-behaviour-valve-amplifiers<p>I have finally completed my masters thesis on modelling valve distortion in guitar amplifiers. It's been a fascinating project that has introduced me to many interesting modelling techniques. A large portion of the project has been looking at <a href="http://en.wikipedia.org/wiki/Volterra_series">Volterra series</a> representations, and although these have revealed some intruiging behaviour, I have not yet managed to use them to produce acceptable audio output. I had a bit more success using <a title="ANNs" href="http://en.wikipedia.org/wiki/Artificial_neural_network">neural networks</a>, particularly using the <a href="http://www.iau.dtu.dk/research/control/nnsysid.html">nnsysid</a> toolbox. You can download the main report below along with the preparation report (supplement with some more of the theory). </p>
<p style="padding-left: 30px;"><strong>Download:</strong> <a title="Main Report" href="/legacy/drupal/pdf/reverb_report.pdf">Main Project Report [pdf]</a><br /><strong>Download</strong>: <a title="Project Preparation Report" href="/legacy/drupal/pdf/reverb_poster.pdf">Poster [pdf]</a></p>
<p style="text-align: center;"><img src="/legacy/drupal/images/ESSspectralLin.png" alt="exponential sine sweeps" title="exponential sine sweeps" width="450" height="300" /></p>
<p style="text-align: left;">Spectrogram showing the response of a valve amplifier to exponentially swept sine signals.</p>
Boards of Canada news2011-03-11T18:58:00+00:00https://ewanhemingway.co.uk/2011/03/11/boards-canada-news<p><img src="/legacy/drupal/images/BoC.png" alt="BoC" title="BoC" style="float: right; margin-left: 15px; margin-right: 0px;" /></p>
<p>It would be fair to say that I am a bit of a <a title="BoC" href="http://www.last.fm/music/Boards+of+Canada">Boards of Canada</a> nut. I’m sure everyone has at least one band whose releases they collect religiously, and believe me there are plenty to find for BoC including some stupidly rare cassette tape things (<strong>A Few Old Tunes</strong> is definitely worth tracking down online). It has been some years since the band last produced an album and their notorious reticence only makes matters more fustrating for fans. However <a href="http://www.twoism.org/forum/viewtopic.php?t=7862">news of updates to the official website</a> looks encouraging, and we may well be seeing a new album within the next few months, although how their sound will have progressed in the last 5 years, given all that has going on in electronic music is anyone’s guess!</p>
<p>Anyway to celebrate this potentially exciting news, I would like to share a fantastic piano cover of one of my favourite Boards of Canada tracks, <em>Turquoise Hexagon Sun</em> performed by <strong><a title="Goldmund" href="http://www.myspace.com/goldmundmusic">Goldmund</a></strong>.</p>
<iframe width="100%" height="166" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url=https%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F11296079&show_artwork=true"></iframe>
Using astyle with Visual Studio2011-03-03T08:53:00+00:00https://ewanhemingway.co.uk/2011/03/03/using-astyle-visual-studio<p>Just a quick tip about how to set up the code formatting tool <em>astyle </em>as an external tool for Visual Studio 2010. First <a title="astyle download" href="http://sourceforge.net/projects/astyle/files/">download astyle for Windows</a> and extract somewhere sensible (I chose <strong>C:\Program Files\AStyle\</strong>).</p>
<p>Then navigate to <strong>Tools -> External Tools...</strong>, you should see a dialog like the one below. Simply fill out the setting as appropriate, remembering you can set various style options using commandline flags (<a title="astyle doc" href="http://astyle.sourceforge.net/astyle.html">as described on the official site</a>). The variables <em>$(ItemPath)</em> and <em>$(ItemDir)</em> are important - this lets astyle know which file to apply to. Then to use the tool, simply select <strong>astyle </strong>from the <strong>Tools </strong>menu (you will be prompted to reload the file).</p>
<p style="text-align: center;"><img src="/legacy/drupal/images/screenshots/astyle.png" alt="astyle configuration" title="astyle configuration" width="471" height="460" /></p>
Scipy Weave - Compilation Error2011-03-02T09:27:00+00:00https://ewanhemingway.co.uk/2011/03/02/scipy-weave-compilation-error<p>New users of the python library Scipy may be having difficulty using the <a href="http://www.scipy.org/Weave">weave library</a> which allows on the fly C++ compilation of python code. While trying to get this to work on Ubuntu, I was prompted with the following error:</p>
<pre class="systemcmd"><code>scipy.weave.build_tools.CompileError: error: Command "g++ ..." failed with exit status 1</code></pre>
<p>To fix this, I realised that I didn't have the python header files required (specifically Python.h). These can easily be installed on ubuntu by installing the python dev package:</p>
<pre class="systemcmd"><code>sudo apt-get install python-dev</code></pre>
piano run2010-12-08T00:44:00+00:00https://ewanhemingway.co.uk/2010/12/08/piano-run<iframe width="100%" height="166" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url=https%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F7810586&show_artwork=true"></iframe>
<p style="text-align: center;"><img src="/legacy/drupal/images/photos/piano.jpg" alt="piano" title="piano" width="250" height="250" style="float: right; margin: 10px;" /></p>
<p>Had a fun jam on the monome this evening. Experimenting with the inner loop function of <a href="http://docs.monome.org/doku.php?id=mlr:mlrv">mlrV</a>. It ended up slightly longer than hoped, but it does have 3 or 4 distinct sections/movements which I’m happy about. Also using the tweakbench vst <a href="http://www.tweakbench.com/breakdown">breadown</a>, re-sampling live, then using the inner loop function again. You can get some lush minimal techno sounds from just a simple piano loop!</p>
<p>I’m keen to start posting stuff like this a bit more. I know it’s not particularly ground-breaking stuff, but it’s a good way to learn. You/I will hopefully see an improvement over the coming months.</p>
Mystery of the Number Stations2010-11-25T10:03:00+00:00https://ewanhemingway.co.uk/2010/11/25/mystery-number-stations<p><a href="http://en.wikipedia.org/wiki/Numbers_station">http://en.wikipedia.org/wiki/Numbers_station</a></p>
<p><a href="http://www.simonmason.karoo.net/page13.html">http://www.simonmason.karoo.net/page13.html</a></p>
<p><a href="http://en.wikipedia.org/wiki/The_Conet_Project">http://en.wikipedia.org/wiki/The_Conet_Project</a></p>
<p><a href="http://en.wikipedia.org/wiki/Lincolnshire_Poacher_(numbers_station)">http://en.wikipedia.org/wiki/Lincolnshire_Poacher_(numbers_station)</a></p>
<iframe width="100%" height="300" scrolling="no" frameborder="no" allow="autoplay" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/playlists/58405&color=%23ff5500&auto_play=false&hide_related=false&show_comments=true&show_user=true&show_reposts=false&show_teaser=true&visual=true"></iframe>
Caribou & Four Tet & Nathan Fake & James Holden2010-11-22T17:02:00+00:00https://ewanhemingway.co.uk/2010/11/22/caribou-four-tet-nathan-fake-james-holden<p>Last night I witnessed possibly the best gig of the year for me so far. I would have been happy to see any of the four acts in their own right - the combination was unbelievable!</p>
<p style="text-align: center;"><img src="/legacy/drupal/images/photos/fake.png" alt="Nathan Fake" title="Nathan Fake" width="600" height="279" /></p>
<p>First up with a amazing live setup of various bits of electronics is <strong>Nathan Fake</strong>. The set is mostly in a similar vein to his more recent <em>Hard Islands EP</em>, playing synth-heavy, techno grooves though a few samples from his more ambient first album drop in here and there. He manages to make his performance feel pretty "live", with plenty of tweaking and glitching on the fly - not just hiding behind his laptop. Too many electronic acts seem to use the phase "live" a little too liberally, playing essentially glorified DJ sets, but this felt genuinely fresh.</p>
<p>Next on the bill is label-mate <strong>James Holden</strong> with one of his much respected DJ sets. I am normally a little wary of heaping praise on DJs, but you can tell that Holden treats it as an art. At first not much seems to happen, but you start to realise that you are subconsciously starting to dance. It's a slow build, but done to perfection. He has a confidence too, not a Tiësto superstar DJ preening, but the look of someone who knows what they're doing.</p>
<p style="text-align: center;"><img src="/legacy/drupal/images/photos/fourtet.png" alt="Four Tet" title="Four Tet" /></p>
<p>It would have been pretty difficult for Kieran Hebden, aka <strong>Four Tet </strong>to follow two deep techno sets with the glitchy, folky electronics of his first few albums, and he doesn't. Opening with a techno reworked version of live favourite <em>Spirit Fingers </em>works brilliantly though, sending the crowd into a frenzy. This is followed by plenty of tracks from his amazing new album <em>There Is Love In You</em>, which is a much more danceable affair. There's a great moment during <em>Love Cry </em>when Hebden teases the crowd with just the opening snare hit of the main beat. With Pavlovian obediency, the crowd is tricked into a fleeting post-"drop" high. This is clearly an audience that knows his music inside out!</p>
<p>Finishing off the night is Canadian musician <strong>Caribou</strong>, complete with backing band. As with Four Tet, Caribou also sticks mostly to songs from his excellent new dance-orientated album <em>Swim, </em>though early classic <em>Melody Day </em>is much welcomed by fans. The drumming is superb throughout, occasionally with two drummers playing simultaneously. The synth parts are fantastic too, sounding very unique, intriguing and other-worldly. The only let down is the bass guitar which seems to sit far too high in the mix. This is a problem I've found at a few gigs recently, bass guitar so loud it distorts the air making it impossible to discern any sort of pitch, just a low rumble. But overall their set is very tight, and topped off with hypnotic visuals it's the perfect end to the night.</p>
<p>All the acts are supposedly close friends and that definitely comes out in the music. Both Caribou and Four Tet's sets have a similar groove to them, which also borrows from the much more techno driven music Holden and Nathan Fake are currently making. If you get the chance to see <em>any </em>of these guys, jump on it straight away. I cannot recommend them highly enough.</p>
Electribome2010-11-21T18:59:00+00:00https://ewanhemingway.co.uk/2010/11/21/electribome<p style="text-align: center;"><img src="/legacy/drupal/images/screenshots/electribome.png" alt="Electribome" title="Electribome" /></p>
<p>Just another fun little monome emulator type thing. I was getting curious about how much better a <a href="http://monome.org/devices">monome 128</a> would be. Using the MIDI keyboard on the <strong>Korg Electribe</strong> you can get 16 columns horizontally, and 9 rows vertically using the drum parts (<strong>ESX</strong>) or 5 rows from the keyboard parts (<strong>EMX</strong>).</p>
<p><strong>Instructions (Korg ESX)</strong></p>
<p><img src="/legacy/drupal/images/diagrams/electribe.png" alt="Electribe" title="Electribe" width="380" height="226" style="float: right; margin-left: 5px; margin-right: 5px;" /></p>
<ol><li>Select <em>Keyboard Part 1</em> and make sure the octave setting is on the lowest setting:<br /><br /></li><li>Select the MIDI device that the Electribe is connected to.</li><li>Set the row by choosing a drum part. Remember that afterwards you will have to reselect <em>Keyboard Part 1</em>.</li><li>Play!</li></ol>
<div><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; font-weight: inherit; font-style: inherit; font-size: 12px; font-family: inherit; vertical-align: baseline; padding: 0px; border: 0px initial initial;"><strong style="font-weight: bold;">Instructions (Korg EMX)</strong></p></div>
<div><ol><li>Press one of the keyboard parts (1-5) to select a row.</li><li>Make sure it's on the lowest octave setting (see above)</li><li>Play!</li></ol></div>
<div><strong>Note: </strong>You don't need anything else running (monomeserial etc). It also makes sense not to have the volume on!</div>
<div><strong>Download: </strong><a href="/legacy/drupal/code/electribome.zip">Electribome.zip</a></div>
Monome kit completed!2010-11-09T16:05:00+00:00https://ewanhemingway.co.uk/2010/11/09/monome-kit-completed<p>I finally got around to finishing my monome kit (with considerable help from my Dad on the woodworking side). It feels very sturdy, and I'm very happy with how it turned out. It's great to be finally able to play properly with the thing - more monome inspired music to come soon!</p>
<p style="text-align: center;"><img src="/legacy/drupal/images/photos/mk1.png" alt="mk monome kit" title="mk monome kit" width="300" height="300" /><img src="/legacy/drupal/images/photos/mk2.png" alt="finished mk kit" title="finished mk kit" width="300" height="300" /><br /><img src="/legacy/drupal/images/photos/mk3.png" alt="finished mk kit" title="finished mk kit" width="300" /></p>
Androidome Router - PD2010-11-03T20:09:00+00:00https://ewanhemingway.co.uk/2010/11/03/androidome-router-pd<p>I’ve finally got round to making a puredata version of the <a href="http://ewanhemingway.co.uk/programming/androidome">Androidome</a> router. It’s not been completely tested so any feedback greatly appreciated!</p>
<p><strong>Download: </strong>
<a href="http://androidome.googlecode.com/files/AndroidomeRouter.pd">androidome router [pd]</a></p>
<div class="imgwrapper"><img title="androidome for pd" src="/legacy/drupal/images/screenshots/androidomePD.png" alt="androidome for pd" width="450" height="266" />
<div class="caption"><a class="imagelink" href="http://androidome.googlecode.com/files/AndroidomeRouter.pd">download: androidome router [pd]</a></div>
</div>
Tonematrix Source Code2010-11-02T18:44:00+00:00https://ewanhemingway.co.uk/2010/11/02/tonematrix-source-code<p>I've had a couple of requests to release the source for the <a href="/blog/tonematrix-android">Android Tonematrix app</a> I wrote a while ago. It's been a while since I've looked at it and I'm making no promises about the quality, but here it is:</p>
<p><a title="Tonematrix Source" href="/legacy/drupal/code/ToneMatrix.zip">Tonematrix Source Code</a> <br /><strong>Released under GPL3</strong></p>
accord in action (new chiptune app for monome)2010-09-11T09:20:00+00:00https://ewanhemingway.co.uk/2010/09/11/accord-action-new-chiptune-app-monome<p>Just a little demonstration of my new monome app in action. First half demonstrates the “chord mode”, second half shows off the chiptune style arpeggiator.</p>
<iframe width="560" height="420" src="https://www.youtube.com/embed/54iY-OalJwk?color=white&theme=light"></iframe>
Accord for Max2010-09-09T22:33:00+00:00https://ewanhemingway.co.uk/2010/09/09/accord-max<p style="text-align: center;"><img src="/legacy/drupal/images/screenshots/accordformax.png" alt="accord for max" title="accord for max" width="451" height="461" /></p>
<p>I've ported my monome app accord to Max now. Should work just the same, though Windows users might find it more stable, and with better MIDI latency. It's amazing how porting something can open your eyes to a completely new way of looking at a problem. The chord/arpeggio handler is now much neater. Puredata version <a href="http://ewanhemingway.co.uk/programming/puredata-maxmsp/accord">has been updated too</a>.</p>
<h3>download</h3>
<p><a href="/legacy/drupal/code/accord_maxmsp_0.2.zip">accord for max v0.2</a></p>
<h3>instructions</h3>
<p>See the <a style="font-weight: inherit; font-style: inherit; font-size: 12px; font-family: inherit; vertical-align: baseline; color: #601818; outline-style: none; outline-width: initial; outline-color: initial; text-decoration: underline; padding: 0px; margin: 0px; border: 0px initial initial;" href="http://ewanhemingway.co.uk/programming/puredata-maxmsp/accord">accord</a> page for more information.</p>
chiptune monome app "accord"2010-09-09T20:34:00+00:00https://ewanhemingway.co.uk/2010/09/09/chiptune-monome-app-accord<p><img src="/legacy/drupal/images/diagrams/accordinterface.png" alt="accord interface" title="accord" width="555" height="248" /></p>
<p>Partly inspired by <a href="http://post.monome.org/comments.php?DiscussionID=9143">this post</a>, I decided to have a crack at writing my first app for the monome. It is called <strong>accord</strong>, due to its similarity to the left hand bass on a accordion, but that's probably where the similarity ends. The vertical axis of the monome dictates the root of the chord, and the column number specifies the "chord" played. For example, the accordion is roughly set up like:</p>
<p><strong>C</strong><span style="white-space: pre;"> </span>| maj | min | maj7 | min7 | aug | dim | etc |<br /><strong>G</strong><span style="font-weight: inherit; font-style: inherit; font-size: 12px; font-family: inherit; vertical-align: baseline; white-space: pre; padding: 0px; margin: 0px; border: 0px initial initial;"> </span>| maj | min | maj7 | min7 | aug | dim | etc |<br /><strong>D</strong><span style="font-weight: inherit; font-style: inherit; font-size: 12px; font-family: inherit; vertical-align: baseline; white-space: pre; padding: 0px; margin: 0px; border: 0px initial initial;"> </span>| maj | min | maj7 | min7 | aug | dim | etc |<br /><strong>A</strong><span style="font-weight: inherit; font-style: inherit; font-size: 12px; font-family: inherit; vertical-align: baseline; white-space: pre; padding: 0px; margin: 0px; border: 0px initial initial;"> </span>| maj | min | maj7 | min7 | aug | dim | etc |<br />etc</p>
<p>The chords in this app aren't restricted to the set above, rather the notes of the chord are editable - you specify the intervals from the root note in semitones, similar to <a href="http://en.wikipedia.org/wiki/Tracker_(music_software)">tracker notation</a>. The chord itself is played as a very fast arpeggio however, making the app ideal for chiptune type music, i.e. with basic monophonic synths. An MP3 sample of the app in action can be heard below:</p>
<audio controls=""><source src="/audio/chipsample.mp3 " type="audio/mp3" /></audio>
<p><br /></p>
<h3>requirements</h3>
<ul><li>monone 64/40h</li><li><a href="http://puredata.info">puredata</a> or <a href="http://cycling74.com/downloads/">max runtime</a></li><li>any OS</li></ul>
<h3>download</h3>
<p><a href="/legacy/drupal/code/accord_pd_0.3.zip">accord for puredata v0.3</a></p>
<p><a href="/legacy/drupal/code/accord_maxmsp_0.2.zip">accord for max v0.2</a></p>
<div class="imgwrapper"><img src="/legacy/drupal/images/photos/accord.png" alt="accord" title="accord" width="550" height="296" /><div class="caption"><a class="imagelink" href="/legacy/drupal/code/accord_pd_0.3.zip">accord v0.3</a></div></div>
MK Kit Progress2010-08-29T13:45:00+00:00https://ewanhemingway.co.uk/2010/08/29/mk-kit-progress<p>After around six hours of soldering, I finally completed the first stage in building my new <a href="http://monome.org">monome</a>. Having not touched a soldering iron before, I'm very satisfied with how the thing came out. I still need to build an enclosure to house the electronics, but the trickiest part should be behind me.</p>
<p>To test it out, I made a short live jam in Ableton using the app flin, listen below:</p>
<iframe width="100%" height="166" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url=https%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F4924064&show_artwork=true"></iframe>
<div class="imgwrapper"><img src="/legacy/drupal/images/photos/mk.jpg" alt="monome" title="monome" width="550" height="296" /><div class="caption"><a class="imagelink" href="http://monome.org">monome</a></div></div>
Justin Bieber's lesser known ambient electronic work2010-08-20T13:54:00+00:00https://ewanhemingway.co.uk/2010/08/20/justin-biebers-lesser-known-ambient-electronic-work<p>Just come across this amazing version of a Justin Bieber track slowed down by 800%.The detail you can deconstruct when you hear it so much slower is incredible:</p>
<p><code class="language-plaintext highlighter-rouge">http://soundcloud.com/shamantis/j-biebz-u-smile-800-slower</code> (broken)</p>
Howto route MIDI to between Max/MSP and virtual synths2010-08-18T13:53:00+00:00https://ewanhemingway.co.uk/2010/08/18/howto-route-midi-between-maxmsp-and-virtual-synths<h3>Introduction</h3>
<p>Having recently released my <a href="http://ewanhemingway.co.uk/programming/androidome">androidome</a> application, I have recieved a number of queries on how to "get sound working with virtual synths" from Max/MSP, specifically <a href="http://docs.monome.org/doku.php?id=app">monome patches</a>. Although I have no idea on how to achieve this on MacOS (I'm sure guides are available), this tutorial should hopefully shed some light on how to do this on Windows.</p>
<p>The problem here is communication between the different applications. One application (in our case Max/MSP) is generating MIDI note information and a different application, typically a <a href="http://en.wikipedia.org/wiki/Digital_audio_workstation">DAW</a> like Ableton Live, wants to receive this data to pass on to virtual synths etc. If we want to do more advanced things like sync the tempo between Max/MSP and the DAW, this communication must be bidirectional. This can be achieved by using a free MIDI routing application called LoopBe:</p>
<p style="text-align: center;"><img src="/legacy/drupal/images/diagrams/loopbe.png" alt="Routing Setup" width="550" height="87" /></p>
<h3 style="text-align: left;">Setup</h3>
<p style="text-align: left;">The first step therefore is to <a href="http://nerds.de/en/download.html">download and install LoopBe1</a> (note you want the free version at the bottom of the page). During the installation process it may warn you that "<em>Continuing your installation of this software may impair or destabilize the correct operation of your system either immediately or in the future...</em>". This is nothing to worry about, and you are safe to install the app.</p>
<p style="text-align: left;">The next stage is to setup a VST Host or DAW (if you don't already have one). KVR Audio has a <a href="http://www.kvraudio.com/plugin-ranks.php?m=3">great comparison of free VST Hosts</a>. If you have an application like Ableton Live, or Cubuse you need look no further - this will do fine. If you don't, in the meantime I suggest you download and install the <a href="http://www.audiomulch.com/download.htm">free trial of AudioMulch</a>, one of my preferred hosts.</p>
<p style="text-align: left;">Finally we need a synth to load up into the host. Fortunately there are <a href="http://www.kvraudio.com/plugin-ranks.php?m=1&show=50">thousands of good free VST synths out there</a>, so its just a case of trying a few and seeing how they sound, although to get the most from monome patches, you ideally are looking for something polyphonic. I will use a good free VST synth called <a href="http://www.kvraudio.com/get/708.html">Superwave P8</a>, which should be a reasonably good starting point, with plenty of presets. Download and install this, preferably to a sensible place like <strong>C:\VST\Instruments</strong>.</p>
<p style="text-align: left;">Now return to your host and make sure that you have specified the location of the VST, e.g. in AudioMulch goto <strong>Edit -> Settings... -> VST Plugins</strong>. Also the LoopBe MIDI router should be listed as a MIDI Device under <strong>Edit -> Settings... -> MIDI Input and Control</strong>, probably as <strong>MidiIn1</strong>.</p>
<p style="text-align: left;">At the bottom of the left pane, there should be a list of VST Plugins, where the Superwave P8 should be listed. Set up a patch similar to that below, where MidiIn1 is the LoopBe device:</p>
<p style="text-align: center;"><img src="/legacy/drupal/images/diagrams/mulch.png" alt="Audiomulch Patch" width="517" height="256" /></p>
<p style="text-align: left;">Now activate Audio and Midi by making sure the two icons on the top control panel are highlighted:</p>
<p style="text-align: center;"><img src="/legacy/drupal/images/diagrams/mulch2.png" alt="Activate Sound and Midi" width="482" height="39" /></p>
<p style="text-align: left;">AudioMulch is now ready to accept input from Max/MSP. Next, open the patch which you want to use. A good example of a simple, well documented monome app is <a href="http://docs.monome.org/doku.php?id=app:arpshift">ArpShift</a>. Once the patch is open, click on the <strong>Midi Out</strong> dropdown list, choose <strong>LoopBe Internal MIDI</strong>. We should now be sending midi from ArpShift to our synth in AudioMulch, as pictured below:</p>
<p style="text-align: center;"><img src="/legacy/drupal/images/diagrams/arpshift.png" alt="Arpshift MIDI Setup" width="389" height="256" /></p>
<h3 style="text-align: left;">Conclusion</h3>
<p>Hopefully this tutorial should have been of some use to some people. If there is any difficulty in understanding any of it, please leave me a comment and I'll try to help out. Some of the ideas can be tricky to grasp initially but it is worth perserving with as it should allow you to explore new methods of making music that you may not have come across before. </p>
Androidome - Initial Release2010-08-09T17:36:00+00:00https://ewanhemingway.co.uk/2010/08/09/androidome-initial-release<p><img src="/legacy/drupal/images/androidome.png" alt="Androidome" title="Androidome" width="256" height="256" style="float: right; margin: 5px;" />Although the app still needs a little more testing and few more features, I've decided to release my <strong>androidome </strong>application onto the Android Market (<a href="market://search?q=uk.co.ewanhemingway.androidome ">download for mobiles here</a>). Full instructions for installation are available on the <a href="/programming/androidome">Androidome page</a>.</p>
<p>Things the app currently does (or should at least!):</p>
<ul><li>Connect to Max/MSP over WLAN.</li><li>Respond to incoming led messages</li><li>Provide multitouch input from phone to Max/MSP.</li><li>Work with mlrV, polygome, boiingg, (hopefully many more too).</li></ul>
<div><strong>Known Issues</strong></div>
<div><strong><br /></strong></div>
<ul><li><del>Doesn't yet respond to <em>led_col</em>, <em>led_row, </em>or<em> tilt</em> monome messages.</del><strong> Fixed</strong></li><li><del>OSC Packets occasionally drop leaving ghost LEDs still on/off when they shouldn't be.</del><strong> Fixed</strong></li><li>UI could use a little improvement.</li></ul>
<p><strong>Source Code</strong></p>
<p>Full <a href="http://www.gnu.org/licenses/gpl.html">GPL3'd</a> source code available at the <a href="http://code.google.com/p/androidome/">Androidome Google Code page</a>.</p>
<p><strong>QR Code</strong> (<a href="http://en.wikipedia.org/wiki/QR_Code">what's this?</a>)</p>
<p style="text-align: center;"><a href="http://en.wikipedia.org/wiki/QR_Code"><img src="https://chart.apis.google.com/chart?chs=200x200&cht=qr&chl=market://search?q=uk.co.ewanhemingway.androidome&choe=UTF-8.png" alt="QR Code for Androidome" title="QR Code for Androidome" width="200" height="200" /></a></p>
Android Multitouch Tutorial2010-08-05T16:36:00+00:00https://ewanhemingway.co.uk/2010/08/05/android-multitouch-tutorial<p>Having wrestled with the somewhat cryptic documentation for incorporating multitouch in Android applications, I’ve finally managed to get my head around it enough to post a basic tutorial. A possible starting place is to read <a title="Making Sense of Multitouch" href="http://android-developers.blogspot.com/2010/06/making-sense-of-multitouch.html">Making Sense of Multitouch</a> on the Android developer blog. Also worthwhile looking at is a <a title="Understanding Touch Events" href="http://www.zdnet.com/blog/burnette/how-to-use-multi-touch-in-android-2-part-3-understanding-touch-events/1775">detailed log of mouse events</a>. This tutorial is aimed primarily at those already familiar with the basic workings of the Android SDK.</p>
<p>The first thing I would suggest doing is creating a simple class to track mouse movements for a particular touch:</p>
<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="nc">TouchStream</span> <span class="o">{</span>
<span class="kd">private</span> <span class="kt">int</span> <span class="n">x</span><span class="o">,</span> <span class="n">y</span><span class="o">,</span> <span class="n">id</span><span class="o">;</span>
<span class="kd">public</span> <span class="nf">TouchStream</span><span class="o">(</span><span class="kt">int</span> <span class="n">x</span><span class="o">,</span> <span class="kt">int</span> <span class="n">y</span><span class="o">,</span> <span class="kt">int</span> <span class="n">id</span><span class="o">){</span>
<span class="k">this</span><span class="o">.</span><span class="na">x</span> <span class="o">=</span> <span class="n">x</span><span class="o">;</span>
<span class="k">this</span><span class="o">.</span><span class="na">y</span> <span class="o">=</span> <span class="n">y</span><span class="o">;</span>
<span class="k">this</span><span class="o">.</span><span class="na">id</span> <span class="o">=</span> <span class="n">id</span><span class="o">;</span>
<span class="o">}</span>
<span class="c1">// Usual getters and setters after here</span>
<span class="o">}</span>
</code></pre></div></div>
<p>to do is to extend a class of type View (which handles touch events). This way you can override the onTouchEvent(MotionEvent ev) method to process input.</p>
Androidome - Android Monome Emulator Project Begins2010-07-29T19:07:00+00:00https://ewanhemingway.co.uk/2010/07/29/androidome-android-monome-emulator-project-begins<p>I've finally taken the plunge and gone and ordered myself a <a href="http://monome.org/">monome</a> DIY kit. Its the cheapest way of getting your hands on one, that I've seen anyway, and I've been looking for a neat DIY project for the summer. Hopefully it should arrive sometime in August, but while I'm waiting for it to arrive, I have been busying myself trying to write an Android version. This seems like a sensible thing to do, as the phone has:</p>
<ul><li>multi-touch capabilities</li><li>build-in directional sensors</li><li>build-in accelerometers</li></ul>
<p>which all can be accessed simply from within the app. </p>
<p>The project somewhat continues on from my initial <a title="ToneMatrix Clone" href="http://ewanhemingway.co.uk/blog/tonematrix-android">ToneMatrix clone</a>, so the basics are already there. The monome communicates via the <a title="OSC" href="http://en.wikipedia.org/wiki/Open_Sound_Control">OSC protocol</a>, which lucky is <em>fairly</em> simple to get up and running in Java thanks to a neat library called <a title="JavaOSC" href="http://www.illposed.com/software/javaosc.html">JavaOSC</a>. The difficulty is in getting the application to be responsive enough to be of any use. However, the app is currently functional with single button presses being registered correctly (no multi-touch yet). LED feedback is a little buggy/laggy so far, but essentially works. Alpha version should be up by next week.</p>
<p style="text-align: center;"><img src="/legacy/drupal/images/monome.png" alt="Monome" title="Monome" width="550" height="321" /></p>
Granular Synthesis with Korg Electribe ESX2010-07-21T21:22:00+00:00https://ewanhemingway.co.uk/2010/07/21/granular-synthesis-korg-electribe-esx<p>I’ve discovered a really simple way of getting a <a title="Granular Synthesis" href="http://en.wikipedia.org/wiki/Granular_synthesis">granular synthesis</a> type effect going on the KORG <a title="Electribe" href="http://www.korg.co.uk/products/dance_dj/sx1/dj_sx1.asp">Electribe</a> ESX synthesiser. Load up a sample of reasonable length (5 or 10 seconds or so) into on of the one-shot samples. Turn on the <strong>Roll </strong>button and while holding down that part’s button, slowly vary the start point dial. This continuously triggers short snippets of the sample from different points.</p>
<p><strong>Guitar Example</strong></p>
<audio controls=""><source src="/audio/granular.mp3 " type="audio/mp3" /></audio>
<p><br /></p>
motm july '102010-07-09T13:27:00+00:00https://ewanhemingway.co.uk/2010/07/09/motm-july-10<iframe width="100%" height="120" src="https://www.mixcloud.com/widget/iframe/?hide_cover=1&feed=%2Fhemmar%2Fmotm-july-10%2F" frameborder="0"></iframe>
ToneMatrix for Android2010-06-30T13:56:00+00:00https://ewanhemingway.co.uk/2010/06/30/tonematrix-android<p><img src="/legacy/drupal/images/tonematrix.png" alt="ToneMatrix for Android" title="ToneMatrix for Android" width="243" height="402" style="float: left; margin-right: 15px; margin-left: 15px;" />Having recently rediscovered Andre Michelle's fantastic <a title="ToneMatrix" href="http://lab.andre-michelle.com/tonematrix">ToneMatrix synth</a>, I was inspired to create an Android port for my HTC Desire. After a couple of days getting to grips with the <a title="Android SDK" href="http://developer.android.com/index.html">Android SDK</a>, I managed to produce a version that works reasonably well (at least on my Desire).</p>
<p>This is a very early version however, and I expect to add more features in the coming weeks such as different synths (possibly custom-built audio engine), speed control and better support for different screen sizes.</p>
<p>For the curious, the app is available as a download: <a title="Download ToneMatrix for Android" href="/legacy/drupal/code/ToneMatrix.apk">ToneMatrix.apk</a> (Android 2.1 or higher).</p>
<p><strong>Instructions: </strong>It is pretty simple to use: horizontal axis is the time axis, vertical axis is pitch. Press the grid squares to enable that note. Enjoy!</p>
Showing More Entries in Google Chrome's Address Bar2010-04-24T12:06:00+00:00https://ewanhemingway.co.uk/2010/04/24/showing-more-entries-google-chromes-address-bar<p><a href="http://www.zepy.net/archives/10-google-chrome-tips-and-tricks.html">http://www.zepy.net/archives/10-google-chrome-tips-and-tricks.html</a></p>
broch inspectors launch2010-04-06T21:37:00+00:00https://ewanhemingway.co.uk/2010/04/06/broch-inspectors-launch<p><strong><em>Warning: Another Shamless Plug!</em></strong></p>
<p><strong><em></em></strong>At last I've managed to launch the official <a title="The Official Broch Inspectors Site" href="http://thebrochinspectors.com/">Broch Inspectors</a> website. There's a couple of loose ends to tie up (couple more tunes to go up, photos etc), but its essentially finished. They are a (<em>another</em>) ceilidh band that I play for fairly often, and are based in the Inverness area. Very professional band and good fun to play with too!</p>
Pixelville Part 1 - Aims, Planning and Challenges2010-03-24T22:32:00+00:00https://ewanhemingway.co.uk/2010/03/24/pixelville-part-1-aims-planning-and-challenges<h3>Aims</h3>
<p>While in my experience such projects are rarely ever considered finished, I would like to at least get the following done:</p>
<ul><li>Be able to create a randomly generated city within a set of parameters. </li><li>To draw the city from an isometric perspective, at several levels of zoom.</li><li>Be able to create all textures and detail for the buildings and landscape procedurally, that is no external resources (images/sounds etc.) will be imported to the program. </li><li>Finally, to provide a automatic camera panning routine, and possible add a basic amount of animation (long term).</li></ul>
<h3>Planning</h3>
<p>Procedural generation of cities is not a particularly new idea. Models with deep complexities can already <a title="City Gen" href="http://www.vision.ee.ethz.ch/~pmueller/documents/procedural_modeling_of_cities__siggraph2001.pdf">can be found [PDF]</a>, supporting very organic road structures, population densities etc. Very little of that detail transfers particularly well to the pixel art world, for example curves/circles are notoriously difficult to draw realistically by hand, let alone by computer. For that reason, in this project I will be sticking to a very simple <a title="Grid Layout (Roads)" href="http://en.wikipedia.org/wiki/Grid_plan">grid pattern</a>, one that is not wholly unrealistic: many US cities today have a grid-like structure, particularly in the city centres.</p>
<p>Grid layouts are also much friendlier to program. The code will essentially store the city in a two dimensional array of grid squares, typical of many of the <a title="Simulation Games" href="http://en.wikipedia.org/wiki/List_of_Tycoon_games">early simulation games</a> (many of which are a big influence on the project). This lends itself well to an Object Orientated approach, such as that below.</p>
<p style="text-align: center;"><img src="/legacy/drupal/images/oo.png" alt="Object Orientated Plan" title="Object Orientated Plan" width="550" height="296" /></p>
<p>This way, the data describing the cities composition is completely separate from the rendering process, allowing multiple levels of zooming (and possibly rotation?).</p>
<h3>Challenges</h3>
<p>While drawing the basic shapes for the city shouldn't be too challenging, adding detail and textures will be a challenge. Some textures only need to be generated once then used repeatedly, such as road and grass tiles; building textures will vary greatly and will some can be reused, they will generally depend on factors such as height, type of building, and other factors. Also early experiments with Java's TexturePaint object suggest that it will not be flexible enough for the job, meaning a custom isometric texture renderer may have to be implemented. </p>
Towards a realistic, non-realtime reverberation model2010-03-19T16:07:00+00:00https://ewanhemingway.co.uk/2010/03/19/reverb<p>Today marks the end of a 2 month investigation into various techniques of simulating reverberant sound. Using MATLAB, I developed two contrasting models:</p>
<ul><li>Image Source method</li>
<li>Monte Carlo Ray Tracing method</li></ul>
<p>The report in full is available to read <a href="/legacy/drupal/pdf/reverb_report.pdf">here</a>, though for a lighter overview, <a href="/legacy/drupal/pdf/reverb_poster.pdf">this poster</a> is recommended. All sample output, including the odd phasing behaviour described in Section 4.1.2 can be <a href="/legacy/drupal/audio/reverboutput.zip">downloaded here</a>. Any feedback is greatly appreciated!</p>
<div class="imgwrapper"><img src="/legacy/drupal/images/monte.png" alt="Monte Carlo Ray Tracer" title="Monte Carlo Ray Tracer" width="550" height="296" /><div class="caption">Monte Carlo Ray Tracer in Action</div></div>
Summer/Winter Polaroids2010-03-08T00:54:00+00:00https://ewanhemingway.co.uk/2010/03/08/summerwinter-polaroids<p style="text-align: center;"><img src="/legacy/drupal/images/photos/homePolaroid.png" alt="Kiltarlity Polaroid" title="Kiltarlity Polaroid" width="256" height="300" /><img src="/legacy/drupal/images/photos/winterPolaroid.png" alt="Winter Polaroid " title="Winter Polaroid " width="256" height="300" /></p>
Top 5 Dystopian Sci-Fi Films2010-02-26T14:57:00+00:00https://ewanhemingway.co.uk/2010/02/26/top-5-dystopian-sci-fi-films<p>Recently I have been going through a phase of watching (almost exclusively) dystopian science fiction and while this is probably not widening my "cinematic horizons" particularly, it makes for an interesting blog post if nothing else! Here I present my top 5 list:</p>
<div class="imgwrapper"><img src="/legacy/drupal/images/brazil.png" alt="Brazil" title="Brazil" width="550" height="296" /><div class="caption"><a class="imagelink" href="http://www.imdb.com/title/tt0088846/">1. Brazil (1985)</a></div></div>
<p class="clearme">Terry Gilliam's dystopian masterpiece is a tale of mistaken identity in a surreal alternate future. Full of dark humour and with the expected Monty Python silliness, the film is set in a visually stunning, bureaucratic world. The bizzare dream sequences may be too full on for some, but they are just a small part of the whole tapestry. The film is full of subtle visual gags too; it is an actual "bug" (i.e. insect) that causes a bug in the system which leads to the main premise of the film! Definitely one of my favourite films, and essential viewing for sci-fi <em>or</em> Monty Python fans...</p>
<div class="imgwrapper"><img src="/legacy/drupal/images/logans.png" alt="Logans Run" title="Logans Run" width="550" height="296" /><div class="caption"><a class="imagelink" href="http://www.imdb.com/title/tt0074812/">2. Logan's Run (1976)</a></div></div>
<p class="clearme">Logan's Run tells the story of a perfect world where the inhabitants live in a sealed off, domed city following some wonderfully vague apocolyptic event. The catch (there is always a catch) is that very aggressive population control means that no-one is allowed to live past the age of 30. The story focuses on Logan 5, a citizen whos job is to stop "runners" from escaping their fate. </p>
<p>The best part about the film is probably the Oscar-winning special effects (bear in mind the film is over 30 years old). Everything from the now very retro costume and set design to the very English, matter-of-fact style of acting of that era leads you to expect suitably questionable special effects, but in fact the opposite is true: proper laser guns, teleportation, it's got it all... </p>
<div class="imgwrapper"><img src="/legacy/drupal/images/metropolis.png" alt="Metropolis" title="Metropolis" width="550" height="320" /><div class="caption"><a class="imagelink" href="http://www.imdb.com/title/tt0017136/">3. Metropolis (1927)</a></div></div>
<p class="clearme">Watching Metropolis is a very strange experience. Being used to the polished nature of current day cinema, watching a film without sound (save the fantastic orchestral score later added) takes getting used to, especially as the cast "over-act" to convey their character's personalities without speech. However, particularly considering the film is now over 80 years old, the special effects are absolutely stunning and the world portrayed is one that <em>still</em> feels futuristic.</p>
<div class="imgwrapper"><img src="/legacy/drupal/images/blade.png" alt="Blade Runner" title="Blade Runner" width="550" height="320" /><div class="caption"><a class="imagelink" href="http://www.imdb.com/title/tt0083658/">4. Blade Runner (1982)</a></div></div>
<p class="clearme">Ridley Scott's Blade Runner is just so damn atmospheric. The dystopian near-future Los Angeles is so believable that it wouldn't be at all surprising to see cities like it in our lifetimes. Like so much great science fiction, it takes place in a grimey, polluted world; this isn't the future of sleek white and glass panels, its a world that is just trying to survive.</p>
<p>Its hard to ignore the theme running throughout this list that almost all of the films predade the big CGI technologies that basically came about after the Star Wars series. Thats not to say that CGI has had a bad influence on film; only that the charm of earlier films such as these comes from the inventiveness required to create these futuristic societies. Its all to easy now to create a 100 foot robot of unimaginable complexity, but what use is that if the story is just <a href="http://www.imdb.com/title/tt0418279/" title="I'm looking at you Michael Bay">playing off recycled nostalgia</a>... The early masters of film had to rely on tricks of the camera, gripping stories and rich characters. Of course it's not to say that <em>all</em> modern sci-fi is full of blundering CGI. Great examples include <a href="http://www.imdb.com/title/tt1182345/">Moon (2009)</a>, and my last choice Children of Men.</p>
<div class="imgwrapper"><img src="/legacy/drupal/images/children.png" alt="Children of Men" title="Children of Men" width="550" height="320" /><div class="caption"><a class="imagelink" href="http://www.imdb.com/title/tt0206634/">5. Children of Men (2006)</a></div></div>
<p class="clearme">Set in a bleak near-future Britain, Children of Men imagines an infertile world with the remaining population left falling into chaos. The film is disturbingly believable, from the draconian immigration laws to the crumbling society that is portrayed in such detail. Perhaps the most impressive aspect though is the epic action sequences, the notable scene being in the film's climax where we are treated to over six minutes of frantic street warfare, amazingly filmed in a single take!</p>
<p>Honorary mention goes to <a title="Zardos Trailer" href="http://www.youtube.com/watch?v=kbGVIdA3dx0">Zardos</a>, a film which Sean Connery described as "the challenge he needed after the James Bond series"...</p>
Introduction to Isometric Pixel Art2010-02-24T14:04:00+00:00https://ewanhemingway.co.uk/2010/02/24/introduction-isometric-pixel-art<p>The basic idea behind using an isometric view is to give the appearance of a 3D image on a 2D plane (i.e. the screen). The definition is basically that the each axis of projection follows the same scale, i.e. there is no perspective, meaning that the angle between all axes is the same (120°).</p>
<p>However, if we actually apply these angles to pixel art, it is more problematic. We have tan(30) <span style="color: #000000; font-family: arial, sans-serif; line-height: normal; font-size: small;">≈</span> 0.577, which means for every two pixels in the x-direction, we must move 1.155 in the y-direction! These clearly must be integer values if we are dealing with pixels on a screen, so we change the angle slightly so that we get a 1:2 ratio.</p>
<p>While we could in theory draw in a true isometric projection, it would require <a href="http://en.wikipedia.org/wiki/Anti-aliasing">anti-aliasing</a> to avoid looking horrible, and part of the whole pixel art philosophy is the idea of clean and crisp outlines; it is a style of digital art devoid of the smoothed, Photoshop processed feel that is more common today.</p>
<p><img src="/legacy/drupal/images/pixelart/the_isometric_line_examples.gif" alt="Isometric Line Examples" title="Isometric Line Examples" width="158" height="94" style="float: right; margin-left: 15px; margin-right: 15px;" />Of course other types of line can be used in isometric pixel art (to great effect), but it is generally advisable to stick to integer ratios for their gradients. A good example of this may be found in Rhys Davis' authoritative "<a title="Complete Guide to Isometric Pixel Art" href="http://www.rhysd.com/tutorial/">The Complete Guide to Isometric Pixel Art</a>", he describes a family of lines that work particularly well (see right).</p>
Pixelville - The Project Begins2010-02-21T22:13:00+00:00https://ewanhemingway.co.uk/2010/02/21/pixelville-project-begins<p>This historic moment marks the start of Pixeville, my latest programming project. Inspired by <a href="http://www.shamusyoung.com/twentysidedtale/?p=2940">Shamus Young's Pixel City</a>, I have decided to try and create a <a title="Procedural generation" href="http://en.wikipedia.org/wiki/Procedural_generation">procedurally generated</a> city in an <a title="Isometric projection" href="http://en.wikipedia.org/wiki/Isometric_projection">isometric</a> <a title="Pixel art" href="http://en.wikipedia.org/wiki/Pixel_art">pixel art</a> style. </p>
<p>Having grown up loving classic isometric games such as Rollercoaster Tycoon and Transport Tycoon (see below, now available from the open source project <a title="openTTD" href="http://www.openttd.org/">OpenTTD</a>), it seems the perfect challenge. The aims of the project are to have a arbitrarily large city generated at random, along with random textures and detail, and possibly eventually basic animation. As with all such projects, it will probably get turned into a screensaver eventually, but that is a long way off.</p>
<p>I'm writing the app in Java for the time being (as that's what I know best) but I am considering a C++ port eventually for the screensaver etc. You can keep track of developments on my <a href="http://code.google.com/p/pixelville/">Google Code project page</a>.</p>
<div class="imgwrapper"><img src="/legacy/drupal/images/openTTD.png" alt="OpenTTD" title="OpenTTD" width="550" height="200" /><div class="caption"><a class="imagelink" title="openTTD" href="http://www.openttd.org/">OpenTTD</a></div></div>
Chrome Extension - Big Back Button2010-02-20T10:48:00+00:00https://ewanhemingway.co.uk/2010/02/20/chrome-extension-big-back-button<p><img src="/legacy/drupal/images/icon48.png" alt="Big Back Button" title="Big Back Button" width="48" height="48" style="float: left; margin: 10px;" />I finally got around to writing a port of an amazing Firefox extension to the Chrome browser. MileWideBack (available <a href="https://addons.mozilla.org/en-US/firefox/addon/334">on the Mozilla site</a>) turns the left edge of the browser into one large back button, so when the browser is maximised (as it normally is for me at least), you can just slam the mouse onto the screen of the screen and just click to navigate.</p>
<p>By default, its left-click goes back, right click goes forward, and middle click to close. Also using the scroll wheel on the edge of the screen cycles through the tabs. There is an options page so those without middle mouse buttons can set up the extension differently. </p>
<p>Its now available on the Google Chrome extensions site: <a title="Big Back Button Extension" href="https://chrome.google.com/extensions/detail/gjgganlgmnlklbchgdcnlcondflhgajh">get it now</a>!</p>
Web Design2010-01-01T20:55:00+00:00https://ewanhemingway.co.uk/2010/01/01/web-design<p>A (largely outdated) selection of my web design work:</p>
<h3>RoWAN</h3>
<p><a href="http://www.rowan.org.uk"><img style="float: right; margin-left: 5px; margin-right: 5px;" title="RoWAN Finished Thumbnail" alt="RoWAN Finished Thumbnail" src="/legacy/drupal/RoWAN.png" width="259" height="189" /></a></p>
<p>I designed the site pictured for <a href="http://www.rowan.org.uk">RoWAN</a>, a small environmental charity in the Highlands, during the summer of 2009. The work was funded by the <a href="http://www.thebep.org.uk/index.php?page=epp-home">Business Environment Partnership</a>, and took 8 weeks to complete.</p>
<p>The site is fully editable by staff, and features content tagging, site search, user comments as well as dynamic community pages. Its powered by Drupal and has a custom theme built from the ground up.</p>
<h3>Folk It</h3>
<p><a href="http://www.folk-it.com"><img style="float: right; margin-left: 5px; margin-right: 5px;" title="Folk It Website Thumbnail" alt="Folk It Website Thumbnail" src="/legacy/drupal/folk.png" /></a>In Edinburgh, I play in a student ceilidh band called <a href="http://www.folk-it.com">Folk It</a>. We play regularly in the student unions, and required a simple 4 page site to post any upcoming gigs, as well as provide contact information.</p>
<p>The site is designed with PHP and CSS, and features band photography that we took from the roof of my old flat.</p>
<p>Also, I set up a <a href="http://www.myspace.com/folkitmusic">MySpace page </a>to showcase some of the bands recordings. We are currently looking at getting band t-shirts printed with the slogan:</p>
<blockquote>"I've been Folked by Folk It."</blockquote>
<h3>The Broch Inspectors</h3>
<p><a title="The Official Broch Inspectors Site" href="http://www.thebrochinspectors.com"><img style="float: right; margin-left: 5px; margin-right: 5px;" title="Folk It Website Thumbnail" alt="Folk It Website Thumbnail" src="/legacy/drupal/broch.png" /></a><a href="http://thebrochinspectors.com/">The Broch Inspectors</a> are another band that I sometimes play with, based in the Inverness area. The site is also running Drupal 6, and is complete with audio samples, videos etc.</p>
<p>The band also needed a slideshow for both recent pictures and testimonials. Drupal has a great module called <a title="View Slideshow" href="http://drupal.org/project/views_slideshow">view slideshow</a> which makes this very simple.</p>
<p>Hosting is provided by the fantastic <a href="http://www.clook.co.uk/">clook.co.uk</a>, who specialise in Drupal hosting.</p>
Accord2010-01-01T20:55:00+00:00https://ewanhemingway.co.uk/2010/01/01/accord<p style="text-align: center;"><img title="accord max" alt="accord max" src="/legacy/drupal/images/screenshots/accordformax.png" /></p>
<p>Partly inspired by <a href="http://post.monome.org/comments.php?DiscussionID=9143">this post</a>, I decided to have a crack at writing my first app for the monome. It is called <strong>accord</strong>, due to its similarity to the <a href="http://en.wikipedia.org/wiki/Stradella_bass_system">left hand bass on a accordion</a>, but that’s probably where the similarity ends. The vertical axis of the monome dictates the root of the chord, and the column number specifies the “chord” played. For example, the accordion is roughly set up like:</p>
<table>
<tbody>
<tr>
<td><strong>C</strong></td>
<td>maj</td>
<td>min</td>
<td>maj7</td>
<td>min7</td>
<td>aug</td>
<td>dim</td>
<td>etc</td>
</tr>
</tbody>
</table>
<table>
<tbody>
<tr>
<td><strong>G</strong></td>
<td>maj</td>
<td>min</td>
<td>maj7</td>
<td>min7</td>
<td>aug</td>
<td>dim</td>
<td>etc</td>
</tr>
</tbody>
</table>
<table>
<tbody>
<tr>
<td><strong>D</strong></td>
<td>maj</td>
<td>min</td>
<td>maj7</td>
<td>min7</td>
<td>aug</td>
<td>dim</td>
<td>etc</td>
</tr>
</tbody>
</table>
<table>
<tbody>
<tr>
<td><strong>A</strong></td>
<td>maj</td>
<td>min</td>
<td>maj7</td>
<td>min7</td>
<td>aug</td>
<td>dim</td>
<td>etc</td>
</tr>
</tbody>
</table>
<p>etc</p>
<p>The chords in this app aren’t restricted to the set above, rather the notes of the chord are editable - you specify the intervals from the root note in semitones, similar to <a href="http://en.wikipedia.org/wiki/Tracker_(music_software)">tracker notation</a>. There is an internal clock, or you can sync to an external source. Pressing a button either triggers:</p>
<ul>
<li>a very fast arpeggio, making the app ideal for chiptune type music, i.e. with basic monophonic synths.</li>
<li>or a single chord</li>
</ul>
<p>An MP3 sample of the app in action (arpeggio mode) can be heard below:</p>
<p>[swf file=”audio/chipsample.mp3”]</p>
<h3>requirements</h3>
<ul>
<li>monone 64/40h</li>
<li><a href="http://puredata.info">puredata</a> or <a href="http://cycling74.com/downloads/">max runtime</a></li>
<li>any OS</li>
</ul>
<h3>download</h3>
<p><a href="/legacy/drupal/code/accord_pd_0.3.zip">accord for puredata v0.3</a>
<a title="accord for max" href="/legacy/drupal/code/accord_maxmsp_0.2.zip">accord for max/msp v0.2</a></p>
<h3>todo</h3>
<ul>
<li>pattern recorder</li>
<li>option to retrigger arpeggio on press</li>
</ul>
<h3>support</h3>
<p>Any issues, leave a comment here or on the <a href="http://post.monome.org/comments.php?DiscussionID=9251&page=1#Item_10">thread on the monome forums</a>.</p>
<h3>video</h3>
<p style="text-align: center;">[video:http://www.youtube.com/watch?v=54iY-OalJwk]</p>
RoWAN Site Goes Live2009-09-02T14:57:00+00:00https://ewanhemingway.co.uk/2009/09/02/rowan-site-goes-live<p><img src="/legacy/drupal/RoWAN.png" alt="RoWAN Thumbnail" title="RoWAN Thumbnail" style="float: right; margin-left: 10px; margin-right: 10px;" />After 8 weeks of work this summer, I have finally finished my work with the Dingwall charity RoWAN redesigning <a href="http://www.rowan.org.uk/">their new website</a>.</p>
<p>I built it using Drupal, and it is the first large scale project of its kind that I have finished. It supports multiple users, comments, search, a recycling database, along with news, events, polls and much more. Please feel free to leave a comment saying what you think of it. </p>
Drupal Views - Linking to a File Path2009-08-10T17:41:00+00:00https://ewanhemingway.co.uk/2009/08/10/drupal-views-linking-file-path<p>If you are using Drupal, the chances are you probably are using Views/CCK as well. I recently came up against a problem where I couldn't link to the path of an attached file to a Views display. This is where the Relationships feature comes in. This allows us to find additional information linked to the node - in this case, the filepath.</p>
<p>First goto Relationships and add Upload: Attached Files as a new Relationship. Next goto the Field section and add (Files) File: Path as a new field, remembering to choose Exclude from display. This means we can still use the data without displaying the field. Also make sure this field comes first in the ordering.</p>
<p>Finally add the Field with which you want to use the filepath and choose Output this field as a link. Here you will be able to use the replacement pattern [filepath].</p>
First Post2009-08-02T21:16:00+00:00https://ewanhemingway.co.uk/2009/08/02/first-post<p>A usual, I present the obligatory First Post to launch my new site. Hopefully this incarnation will receive more attention than previous attempts, of which most have started with similarly optimistic first posts. On the site I hope to share various nuggets of music, computing, physics and much more. Lets see how this goes…</p>