Archive for the ‘Demoscene’ Category

Gasman live at Outline 2011!

Monday, June 13th, 2011

After the triumphant AY Riders gig at the Forever demoparty back in March, I had a hankering for some more Speccy-and-keytar-and-vocoder live performance action, so I jumped at the chance to play my first EVVAR solo set at last weekend’s Outline party in the Netherlands. Outline is by no means one of the largest parties, but there’s something magic about the atmosphere there which has made it one of the most eagerly awaited events in my calendar over the last couple of years. Most demo parties will give you the opportunity to chill outside in the sun with a beer or slave away at a hot CPU to finish off your creations, but it’s rare that the two activities flow together so smoothly as they do at Outline.

And with everyone’s spirits kept high, it means that when the evening activity kicks off, you have the most awesome audience you could possibly hope for. Big ups to TMC for the video, m0d for the other video which should be surfacing soon, Ziphoid for streaming the gig on SceneSat Radio, and of course Havoc, D-Force and the rest of the Outline team for making it all happen…

Setlist

  • 1:51 Gasman – Out Of Neverland
  • 6:18 Gasman – Torch Dragon
  • 8:41 Celine Dion – My Heart Will Go On
  • 10:23 Gasman – Cybernoid’s Revenge
  • 14:23 Madonna (arr. TDM + Factor6) – Hung Up
  • 20:17 Gasman – Oldskool Crusader
  • 23:47 Michael Jackson – Thriller (featuring Okkie)
  • 30:30 Purple Motion (arr. TDM + Factor6) – Satellite One

balls, touching

And after all that, I still had some spare energy to do some casual hacking around with sine waves and come up with an entry for the 128 byte intro compo. As you’ll see from the video, 128 byte intros are one of those peculiarly demoscene-ish things that demand a certain frame of mind to be enjoyed properly, to the point where it gets a tad surreal for outsiders. If nothing else, you can certainly count on the Outline audience to provide a soundtrack to a silent production.

balls, touching on Pouët

(…and before you ask, the title does indeed come from an infantile demoscene in-joke about genitalia. I’d actually only planned for there to be one ball, but then one of those fortuitous coding accidents from adding or removing an odd instruction happened, and I knew I had to run with it.)

jasmid – MIDI synthesis with Javascript and HTML5 audio

Friday, November 19th, 2010

The executive summary: At last weekend’s Barcamp London 8, I presented a talk entitled “Realtime audio generation for the web (because there’s not enough MIDI on webpages these days”. In it, I went over the current options for generating audio within the browser, and presented my latest hack in that direction, jasmid: a Javascript app that can read standard MIDI files, render them to wave audio (with, at present, some very simple waveforms) and play them directly from the browser, completely independently of your OS’s MIDI support.

Read on for the complete notes/transcript of the talk (in hopefully more coherent form than the talk itself – next time I promise to spend less time on the flashy demo and more time figuring out exactly what I’m going to say…)
(more…)

Fake Plastic Cubes

Monday, September 13th, 2010

It was internally nagging me all summer that I ought to release something at Sundown, but apart from some brief excitement around a brainwave I had involving three iPhones, Javascript and some cardboard (which sadly didn’t work out in practice), it didn’t really amount to much. Then Evoke happened, and inspired me to decide that, in the words of Haujobb’s invitation, I should make a demo.

Or, to be precise, a Javascript 64K intro. Unfortunately, there was only one week to Sundown by that point, and in a classic case of demoscene project management fail, I spent most of that week building an audio framework, leaving about 24 hours to write the actual demo. The end result is 9K of rather-flaky-performing code, hastily improvised plinky ambient music, and dreadful coder art (except to the extent that I’ve ripped it off from Fairlight demos).

Still, even if the execution this time didn’t work out, I think it’s been a worthwhile exercise in bringing pieces together. Jacob Seidelin’s PNG compression hack (where JS code is stored in a PNG image to take advantage of the compression, then unpacked on a canvas using getImageData) has created a bit of a buzz in the JS development world, but this is the first time it’s been used in an actual demoscene production (which is surprising, given how the demoscene is the spiritual home of size-coding hacks). Ben Firshman’s JSNES has been dynamically generating audio for some time now, ardently chasing the moving target that is Mozilla’s Audio Data API (with a trusty Flash snippet as a fallback), and Mathieu ‘p01′ Henri was experimenting with softsynths long before then. Not even my own code is safe from this cherry-picking exercise of doom – the 3D routines are a mishmash of Gallions Reach / Canvastastic (for the lighting model) and Antisocial (for the full scene / movable camera handling). Finally, node.js makes a cameo appearance, because having an actual web server on hand makes development go a lot smoother.

Put them all together and you have the ingredients for a delicious 64K Intro cake. This time it came out a bit half-baked, but I’m passing on the recipe in the hope that someone else can make it work:

JSModPlayer – a Javascript .MOD player

Sunday, May 23rd, 2010

The epic Pacman 30th anniversary Google Doodle, along with Ben Firshman’s dynamicaudio.js library for dynamically generating audio, collectively persuaded me that I haven’t done any mad Javascript hacking for far too long. My response to this state of affairs is JSModPlayer, a player for .MOD music files (the mainstay of Amiga and PC sample-based music circa 1990).

So far it only implements a subset of the possible sample effects, and it demands a very fast Javascript engine – luckily all the new breed of browsers are pretty competitive at that now. Even so, unless your CPU is an absolute behemoth, it’ll probably struggle to keep up – the audio output is fixed at 44100Hz, and that’s rather a lot of numbers for Javascript to crunch, especially when the MOD file gets up to 16 or more channels. Which, amusingly enough, is exactly the situation we had back when we were using Gravis Ultrasounds on 386es. Hurrah for progress!

Update 2010-06-08: Oops. In the process of testing how Safari 5 shapes up, I discovered a rather silly oversight: the audio buffering routine was set up to never use more than 10% of CPU. Now that I’ve fixed it, it turns out that Chrome and Safari (at least) have no trouble at all playing Jugi’s Dope theme in its 28-channel glory. (However, taking the brakes off the buffering does mean that we can’t reliably pause the audio any more. A small price to pay, I think you’ll agree.)

DivIDEo v0.2.0 – video converters for the masses

Tuesday, May 18th, 2010

I’ve rewritten the DivIDEo converter app in pure C, and as a result it’s now available in friendly standalone Windows and Mac OS X command line executables (and slightly less crazy and Ruby-ish to compile for other platforms). All the necessary libraries (including a major chunk of ffmpeg) are compiled in, so now there’s nothing standing between you and full-on ZX Spectrum video converting action. Head over to the DivIDEo website for the downloads.

Incidentally, a couple of people have asked about the identity of the singer in the Outline presentation. Apparently, while that clip is what we sneeringly refer to as an “internet phenomenon”, it’s not quite reached 100% saturation, so: it is Edward Anatolevich Hill, with a Russian TV performance of the song “I am very glad, because I’m finally back home”, or as it’s becoming increasingly better known, Trololololo.

DivIDEo – Spectrum streaming video

Monday, May 3rd, 2010

Six years after my first tentative attempts at streaming video from the DivIDE interface were presented at Notcon 2004, I’ve finally come up with a system that I’m happy with. It boasts 25fps playback with audio somewhere above the ‘nails in a vacuum cleaner’ quality of previous attempts (through the use of delta compression on the video data and variable bitrate audio to use up whatever processor time is left), a one-shot conversion utility that handles all the video decoding, rendering and re-packing, and a player routine that more or less respects the ATA spec (so won’t fall apart as soon as someone else tries it on a different CompactFlash card. Hopefully). Here’s how I presented it at the Outline demo party:

The full description, and a whole bunch of downloads, is on the DivIDEo project website.

Spectrumori-on

Monday, September 14th, 2009

This 1K intro for the Spectrum (which received 3rd place in the oldskool demo competition at Sundown 2009) was inspired by Bill Bailey. No, really. His current live show features a spot on the Yamaha Tenori-on, which through the medium of “getting someone in the audience to splurge their hand on it”, he demonstrates that it can’t fail to play something nice.

This makes it a good excuse for some experimentation with generative music. The secret is in the scale – it’s equivalent to playing only the black notes on a piano, and presumably has roots in oriental music (I previously rediscovered it while working on Haiku). To make it into something like a proper demo, rather than just a throwaway routine, I added a bit of subtle progression Cyberpunks Unity style, so it drifts in and out of randomness as the graphical effects change. It even has a proper ending…

In recent months Yerzmyey has been pushing for the revival of the 16K Speccy as a platform, so I’m pleased to announce that this demo is – so we believe – the third ever demo to run on it.

Ode To Claire / Snakebite

Wednesday, June 10th, 2009

A couple of fast-made Spectrum releases for last month’s most excellent Outline demo party. Ode To Claire is a curious little 128 byte intro, using a trick I’ve been wanting to try out for ages. It’s not exactly a fast-paced action extravaganza, but it does fit 150-odd characters of avant-garde poetry, the printing routine, and a demo effect into 128 bytes of code. Working out how is an exercise for the reader (and I’m quite interested to know whether the secret is immediately obvious to anyone who’s at all familiar with the Spectrum…)

On the musical front, Snakebite is a chiptune with a middle-eastern vibe, modelled after every Turkish Eurovision entry ever. It got third place in the competition, and originally they weren’t going to give out a third prize, but they had some spare food left over on the Saturday night, so I won a jar of sausages. Best. Prize. Ever.

Download gasman_-_snakebite.mp3

Antisocial

Thursday, October 9th, 2008

This is it then… my big comeback to the Javascript demo scene after a two year absence, and also the moment when my demo coding muse returned from a long holiday, I guess. Ladies and gentlemen, I give you… Antisocial, a biting satire on social networking phenomena.

Visit the Antisocial microsite…

With my characteristic lack of organisation, I found myself with two weeks to go to the Sundown party, having promised a demo release, and with nothing specific in the pipeline. So, I decided to take a chance and run with an idea that had been sitting on top of my “demos to write when I have more free time than I do right now” pile for the best part of a year. I had it all planned out in my head, right down to the soundtrack: a mysterious track from an unlabelled CD I picked up at a ZX Spectrum Orchestra gig in 2005 (which turned out to be Round, from their Clive Live^3 EP). A quick bit of permission-getting later, and I was at the point of no return.

I knew it would be an ambitious job, and a bit of a leap artistically and technically from my usual stuff. I pencilled in a rough project plan in my diary. I drew up storyboards. I read up on the maths that was too nasty to contemplate on previous projects. And shockingly enough, I actually enjoyed all of the above.

(more…)

50/90 2008: somewhat fewer than 50 songs

Monday, October 6th, 2008

50/90, or 50 Songs In 90 Days, is the less photogenic and slightly more intimidating cousin of February Album Writing Month, running throughout July, August and September. The idea is to write fif- oh, you worked that bit out already. This year FAWM supremo Burr Settles donated the song-posting infrastructure to 50/90 (previous years were run through a Yahoo group) so it became a natural off-season hangout for FAWM veterans. Me, I wasn’t planning on taking part, but since I ended up writing a couple of songs over that time period for one reason or another, it would have been silly not to crash the party late on and participate in a laid-back, not-letting-it-take-over-your-life sort of way. And here are the results.

Everything Is Relative


Download matt_westcott_-_everything_is_relative.mp3
This started out as an instrumental track laid down at Shucon 2008 on TDM’s GarageBand / MIDI setup, which came back to bite me as a nasty bit of vendor lock-in. (I figured that since GarageBand took MIDI input and stored it as MIDI-like note events, I’d be able to export it to a .mid file, right? Silly me.) Luckily I managed to salvage / re-record enough of it to work on it some more and develop it into a proper song. Spurred on by some particularly eclectic music competitions at Assembly, I decided to try my luck at entering it at Evoke, just to see what would happen when it was thrown in against a whole load of D+B and trance tracks. Not surprisingly, it failed to qualify. But having done the rounds of more or less the entire summer demo party season, it found a home at Sundown 2008, where it got 4th place. Score!

The lyrics were actually sparked by the train journey back from Shucon – at the seat in front of me, I saw that someone had drawn some initials in a heart on the window. This made me think “eww, that’s a bit tacky. Oh, hang on – whoever did that drew it on the outside of the window but did it in mirror writing so his girlfriend on the train could read it. Aww, that’s like the most romantic thing ever!”

Edgware Road


Download matt_westcott_-_edgware_road.mp3
A slightly more obviously train-related song, written to immortalise that enigma of the London Underground where time stands still, and add to the repertoire of songs about tube stations. Lyrics were mostly written on the Eurostar (hence the namecheck in the bridge) and the recording was done a-cappella stylee in the cabin of a sleeper train on the way back from International Vodka Party. Naturally, this was a horrible painstaking process of waiting for the moments when the train wasn’t making an absolute racket, but it had to be done for posterity. How many other songs have been written and recorded entirely on public transport, eh?

Cabbage Soup For The Soul


Download matt_westcott_-_cabbage_soup_for_the_soul.mp3
Written for Hoopshank as part of intense negotiations (not really) over contributing to another as yet unannounced musical project. He demanded songs of cabbage… I answered the call. I added a self-imposed constraint that the song had to have a mostly-serious message, so I came up with the idea of cabbage soup for the soul, as being something like Chicken Soup for the Soul but not as pleasant, and better for you. And suitable for vegans. And with that, the song just wrote itself. Or, more accurately, was written on my behalf by my alter ego, fictional Scottish indie band Glencoe Horse.

At The River (slight return)


Download matt_westcott_-_at_the_river_slight_return.mp3
OK, scraping the barrel a bit here. But you can’t really blame me for having a sudden bout of obsessive-compulsive disorder on realising that the lyrics to At The River by Groove Armada consist entirely of a half-sentence that trails off unsettlingly without completing its train of thought. “If you’re fond of sand dunes and salty air, quaint little villages here and there,” – then… what exactly? Clearly, this had to be fixed. So I did.

(All songs downloadable from the not-very-pretty music.matt.west.co.tt – lyrics available from my 50/90 profile)