Lee Goddard .net — another boring personal homepage
Homepages are boring ...
...but as my work has been programming internet applications
since 1999, it would be hard to survive without one.
I work remotely or in the UK, and live
in Gödöllő, Hungary, with my wife
(who made this background image),
my children, eight-year old Ilona (in this photograph)
and four-year old Jacob.
Anyway, this my homepage and not my CV,
and as such here I define myself by more
than my work — nothing is more boring than
a computer programmer who only programs computers,
and nothing is less effective in programming computers.
Interests outside of work include Zen,
flamenco, modern jazz, Gong, Hillage, Hawkwind,
Cézanne, Klee, Kandinsky, Japanese gardens, mountains,
forests, lakes, mushrooms, wild grasses, and Indian food.
Generative Sound With L-Systems
Computer-generated music has been an interest of mine since dissing it
whilst at university in 1999, where I took a course called AI a
and Creativity with the lovely and inspiring
Maggie Boden OBE.
However, despite the clever psuedo-music and clichés of Garage Band and
Baysian networks, I find the attempt at human-sounding music to be
depressingly emotionless, their lack of lyrics and lyricism
removing them far even from the song machines of Orwell's 1984.
But I have always been fascinated by the idea (shared by
to name three of my faviourites)
that paintings and images
could be rendered as music, so when I cam across the extremely simple
the music application was obvious and irresistible, and the first prototype
created within a day.
The appeal of the equation, generally used to model plant growth,
is its simplicity, as this
rough graphing demo illustrates.
Without simulating varying soil, light, and weather conditions,
growth is unnaturally regular, but the instantly familiar shapes
produced by equations of as few as four bits encourages me
to think Lindenmayer and co were closer to discovering some
secrets of creation than anyone. But that's another subject.
My current system is a mixture of HTML5, MooTools (for ease of OO),
with the binary midi files being encoded by old-fashioned Perl with Moose (using MIDI-Perl
kindly dontated to the world by Sean M Burke). The resluting MIDI file
is the imported into Logic Pro, and mastered through a Yamaha 01X and a variety
of synths and samplers.
However, my work has been moving towards landscapes of
Lsystem 'plants,' which would push my current paradigm to the limit,
so a rewrite in Java is planned for next year.
This would also allow live alteration of a loop, which could
be interesting for performance.
and the art of ....
Some of my work
All the work on these sites is mine,
apart from the BBC Wildlife site, where
I did everything apart from the
graphic design and PHP. Most of my work tends to
involve GUI but hides behind authentication
or on intranets.
I am looking for three- to twleve-month contract,
anywhere a British citizen can work — I frequently
work in my native London (freeloading on my kind family),
but would welcome the change to work anywhere else at all.
I am happy to work with Perl in any form, or Java (though
I have yet to take a Sun/Oracle certification),
preferably using Angular, any MVC/P framework like Backbone,
with or without jQuery/MooTools/Underscore,
and real-time work with HTML5 audio, Web Audio API,
SVG and canvas manipulation. My ideal role would be making
use of Node.js — I've lots of non-commercial experience, but
am still finding few contract opportunities that make use
of such interesting tech, let alone in an Agile environment
with dev/CI/stage VMs managed through Jira.
In the past year or so, I have been focusing my free time
on using and improving the Node/HTML5 L-systems audio, described above.
Personal projects include
an SPWA to create video subtitle files in real-time (Angular),
Plonk, a (Web Sockets/Audio) rip-off of
a collaborative music doodling tool, a bit like the silly
brush toy which you can see in the Zen section above.
From the server's point of view, it's just a chat server,
for the client is a kind of musical etchasketch. It does
demonstrate the power of WebSockets and weaknesses of
the HTML5 canvas element. Perhaps I'll write an article.
I'd let you see it, but what ISP supports WebSockets?
When Mozilla eventually completely fixe their
HTML5 audio looping bug, I hope to continue development
of a simple HTML5 multitrack that allows the mixing and
looping, cutting and pasting, of SoundCloud and other
online audio files, in the style of Logic/Cubase.
A coupe of years ago, whilst working away from home, I started writing a sound mixer in MooTools. All went went, until I hit looping bug in Firefox and then my l-system project caught my eye again… Now I’m looking for something to work on with Angular, shortly after being handed a bunch of mp3 […]