Blog

  • I come to bury Reading School, not to praise it

    Depending on when you start to count, it’s Reading School‘s 900th anniversary this year. On Saturday, there’s a grand reunion of all the willing alumni and staff they can find. While nobody will recall the first staff meeting on a fresh autumn morning of 1125, there’s one venerable teacher in attendance whose life stretches back more than a tenth of that time.

    It’s no secret that I had a miserable school career. Not every minute of it, but enough to have cast a pall of gloom. I made a few friends; a handful of teachers saw something worth cultivating in me and they worked a minor miracle. I can write; I became something of a musician; I knocked some really rough edges off myself before they became a big problem. Should I meet these people on Saturday, I’ll tell them as much. But such spots of light are lifebuoys bobbing on a vast, dead ocean.

    There is a lesson to be given about shutting up and knuckling down; I was absent when it was taught. A boy in 1989 was not calmly given feedback about the way that he comes across, given a theatrical workshop in which to rehearse something more suitable, and invited to try again with fresh material and a clean slate.

    I was quickly marked out as an unlikely boy. Every institution collects a set of moulds that you are encouraged to choose between and crawl into. Some people never fit, or are never invited to try. Apart from the intellectual snobbery, there was a minor material one about the neighbourhood you came from, the primary school you went to, and what your parents did for a living. (Nurse and art teacher. What’re you going to do about it?)

    One misunderstanding sets the scene: I was once expelled from the School Chapel mid-lesson. I was delivering from my pew a sotto voce but rather disrespectful anticipation of Reverend Otto’s reading that day, all of five yards from him (I was an idiot). He clicked his fingers at me twice and intoned the words ‘Supper! Go and wait in the vestry.’

    The lesson that day was 1 Peter 5, as I cannot now forget. (At 8:35am! Hardly my fault he was in a bad mood.) After the chapel had emptied, in strode the Rev with the Deputy Head, the latter already poised to administer the appropriate bollocking. His gown flapped with demonic resolve. Your adversary the devil prowls as a roaring lion, seeking whom he may devour. His eyes and forehead, of which I made a careful study, bulged with a furious incredulity that must have required a decent warm-up.

    Leaning towards me, he began his address slowly, relishing the effect of every word.

    I have never (he began, letting the words fall as splashes of water onto thirsty soil)

    In twenty years (he continued, with the pompous ritardando of a man who can casually invoke a period of his career that dwarfs a schoolboy’s pitiful little life)

    Seen such disgraceful (O, delicious! Four hisses of disapproval, framing that middle syllable of ‘disgraceful’, to arch his upper lip into a sneer of cold command. You’re witnessing poetry, boy, and you’re in big trouble)

    Behaviour.

    For a reason I cannot fathom to this day, he then added the line: ‘You are the only boy ever to have been ejected from the Chapel, and the only Supper to have attended this school. You are the first Supper, as well as the last!’

    At the age of twelve, I had already endured every pun that my unfortunate surname can elicit. To my ears, he was retreading a classic. In the oaken surroundings of the Alfred Waterhouse-designed chapel vestry, after a New Testament lesson, he was riffing smartly upon The Last Supper. Thinking as any child might, I chose the surest way I knew to flatter him out of his anger. I looked squarely into his eyes and laughed.

    Watching the breath pop out of him made it startlingly apparent that this wasn’t the effect he was going for. It was one of many events that marked my card until the card was just one big mark. What’s a boy to do? He and I witnessed worse behaviour at that school in every hour of every day, and we both knew it. I still regard this performance as an anthropologist would a human sacrifice: the highest level of danger plainly evident, but worthless without the context of the logic behind it or the purpose it supposedly served.

    Reverend Otto and the deputy headmaster are no longer alive. As the sole surviving cast member, I might have invented anything about the vestry. The truth is weird enough — as though it’d take a Deputy Head dreaming of his Bafta to sour me on religion — but I can’t remember anything else ever coming of it. Reverend Otto had previously given me a detention about an unrelated matter (chuck it on the pile, dickhead), and we weren’t ever going to get along.

    I stuck the school out for seven years, and won a music prize in the Upper Sixth. It was a fairly valuable one, and the field of contenders small enough that I can say it was my turn. I wrote to thank Lady Beecham for endowing it in my direction: that was a test of character I could understand.

    I eked out the prize money over my undergraduate career. Most of it went on sheet music which I then learned and performed. My playing at Reading School tended to disintegrate on stage, so the modest talent I possessed as an accompanist had to wait until university to take me by surprise. My playing there won approbation and a couple more prizes. But receiving one at school was my ticket to Speech Day. An Old Redingensian, some captain of industry, was wheeled out to address us. I remember nothing that he said: he might have beamed in from Mars for all his success at connecting.

    … But in one way, he did. It has been a singular and peculiar fantasy of mine — more a recurring anxiety dream — to find myself in his place, at some podium with the expectation that a sift of my life experience might leave some tiny grain of value that I can hammer out and pass on. Other unhappy introverts must be troubled by similar thoughts. The comfort is that it’s never going to happen.

    A grammar school does not confer status on misfits (the clue’s in the name), but saves it for the sportsmen, the debaters, and the nerds who exhibit brilliance in ways that run parallel to its curriculum. I would have had a very different time had I stood a chance in those domains, but a dyspraxic, asthmatic teenager with a lisp, monoscopic vision that turned ball games entirely into guesswork, academic but never precocious, and as green as they come? I was doomed.

    My strategy towards sport was to wager that I would lose status whether I made a special effort or not. One of those options was clearly a path of least resistance, and it left me in full control of the ridicule I received. Skulking on the back line of a pitch for five years, fleeing from any ball that dared come my way, did not endear me to the institution. Instead, it afforded me extra time to dream about the subjects I wanted to do, while setting the tone for a lifetime of avoidant behaviour. If this sounds like a sin, you have no idea how badly suited for this cruelly compulsory subject some people can be, or what an ordeal it is to find yourself regularly exposed, naked of ability and experience, with only the jeers of your fellows to accompany you.

    A mathematics teacher who also happened to direct hockey practice remained unable to reconcile the ready and keen boy in a school uniform with the incorrigible one he observed from a distance in a PE kit. Yet it was a proudly hard school: those of us who weren’t all-rounders were going to have to prune. To this day, I marvel that my response surprised anybody.

    The other thing that wouldn’t win me friends was my attempt in 1996, on the nascent Internet, to devote a page of my first-year university website to settling the score. The precise contents are lost even to the Wayback Machine, but I remember receiving a cease-and-desist at my home address. It was signed by the teacher in charge of the Sixth Form, who knew me little and liked me less. Naturally, I sent a response at the earliest opportunity with the delighted defiance of a young man who has just seen his first punch land perfectly on the nose of a bigger opponent. (I still have that letter somewhere, and a follow-up from the Headmaster including the words ‘I found your response unhelpful.’ Where does one exhume such people?)

    Hard copies of a few pages of my site were then printed by an unfortunate factotum in the school office. Photocopies were made of the reply I’d sent. Three covering letters were then signed by the headmaster, to be circulated variously to my father, to the IT facility at the University of Surrey, and the head of my department there.

    My father mentioned his laconically on the phone: ‘Well, son, you made your bed and I think you can lie in it.’ As a schoolteacher himself, his refusal to stand beside his peers, preferring to let his adult son fight his own battle, still stands as a great bit of parenting and a testament to his contempt for them. He had, of course, lived the seven years that I had been through vicariously: a son coming home in varying shades of permanent distress, and years of letters and meetings and parents’ evenings making it clear that stopping it was presumed to be my job.

    Surrey’s IT facility, of course, summarily shut down my website without a word being exchanged. They weren’t going to test legal boundaries for the sake of a moody fresher, and I didn’t expect them to.

    I’m aware of the letter to my head of department only because, partway through my PhD some six years later, we were having a social evening after a research seminar. The Head of Research, one of my supervisors, asked me: ‘Are you still publishing subversive websites about your old school?’ Half a minute or so into the conversation, the Head of Department chipped in: ‘A letter came from your school that demanded some action. I hope you haven’t forgotten the action I took.’

    The grown-ups in my life rolled each letter into a ball, chose a nice parabola, and launched it into the bin. In the right place, you find the right people.

    Every ten years or so, the words I deliver from my anxiety podium change. They can never be fond but, by way of resignation, they have become kinder and more conciliatory. The teenage Ben Supper is now guided by a collage of people and ideas he’s assembled around him, realises how much of himself he owes to others, and continually wonders how much more work he can bear to do.

    I am not, and have never been, anything remarkable in a history of resounding achievers from the school. It would take a big minibus crash to make me the right man for Speech Day. But here we go anyway: In my twenties, I’d have given a fusillade of fury to the institution, and spared words of comfort for those cast adrift by it. This is why you don’t give young people important speeches. While cognizant of those who helped me, I expected better (why?) and might not have been able to see through this to find gratitude.

    In my thirties, I would have been more palliative. The message would have been: it takes time to get over this place, but every step you take is immensely valuable. Murder the senseless and monotone critic that clueless adults set up in your head. Seek the real-life critics who recognise something in you, and are curious to see what you’ll do with it.

    To be stern is fair play, but a decent adult will treat a child poorly as a test of character only when the child is in a work of fiction and the adult is Willy Wonka (or Mr. Miyagi: the most abjectly drawn character in a terrible film). But don’t confuse bad people with those who don’t help because they can’t see how. Frustration should not harden into anger: it’s a waste of energy, and it clouds your vision. And, for those of you whose profession is already mapped out, my pockets are unfortunately empty. Godspeed, you lucky bastards.

    Having plunged into self-employment at 40, I conclude that being adrift becomes a blessing. You never lose touch with who you are if it’s a daily concern, and there’s nobody around to demand that you be anybody else. The downside is that sometimes it’s healthy to try.

    I’m lucky still to meet young and talented misfits: a confluence of untempered ability, drive, and desires that the world cannot suppress, but cannot put to immediate use either. It’s always beautiful and terrifying. Forging a path of your own is playing in hard mode: by definition, no one person can guide you. And yet, there are still great teachers and plenty of lucky people who’ve make it work.

    The rejection and alienation I remember as feelings more than specific memories: a tightness in the diaphragm and a sickness in the stomach. The bullying was largely psychological, but real enough. If I learned anything there, it’s not to tell a child that they’re making it up, or they’re bringing it upon themselves. Or, as somebody associated with the school told me years later, that it doesn’t happen there, it wouldn’t ever have happened there, and if it did happen it’s because you deserved it.

    (I was old enough by then, of course, to hear the admission of guilt and the personality disorder pouncing like two tigers from a pomegranate, so I simply agreed and completely forgot who she was. Experience saves a lot of time.)

    But do whatever you can to straighten a charge’s path in the hope that they’ll find their way out, because it’s a hard enough walk as it is. If you’re the one getting out, don’t beat yourself up when you misstep or waste effort. Careful experimentation isn’t truly wasted, even if the project doesn’t turn out. Elvis was dead at 42, and spent most of his last decade making shit films. Efficiency is for activities that you already know how to do, and is not an explorer’s concern. There’s time enough to prove yourself in more than one discipline.

    Treat defeat, whether commercial or social, with the grace of the divine lesson that it is. Learn everything you can about yourself from it, but no more. Remember how it feels to be striking out, and treat your future subordinates as you need to be treated today.

    These days, my schoolteachers are peers: some have made videos for the day that betray an abundance of kindness and generosity of spirit. In the main, these were good people doing what they could, working as I did and do in spite of a disrupted home life, a foreground of personal limitations, and an institution that will always have a life and character of its own. It just didn’t have room for some of us.

    I’m going back on Saturday for two reasons. Because Reading School isn’t what it used to be. And neither am I.

  • My ADC 2024 talk

    This blog has mostly become a way of posting the annual ADC talk in a corner of the Internet that I get to own. But this, by design, tends to be about the most interesting thing I can think of saying every year that:

    1. Has a scope of about an hour;
    2. I’m actually allowed to talk about.

    Here’s the video: it’s taken seven and a half months to make an appearance, but the ADC team gets nothing but appreciation from me. My director’s note for next year: make the slides do the pointing for me and walk around less in case they keep this format of video. Thanks and sympathies to the post-production camera-tracking team.

  • Not my ADC 2024 talk

    I went back to delivering two talks this year. I’m not posting my open mic transcript this year because I made fun of a shady company with a thin-skinned founder. Not that one this time: a law of nature mandates that emotionally underdeveloped founders and shonky companies always come in pairs.

    I’m not foolhardy enough to make my words that evening a matter of permanent record. Everything I riffed around is self-evidently true; anybody who’s been making audio toys for long enough, including me, has had at least one of their products cloned by them. But it’s a convention of our society that even a meretricious legal letter must be taken seriously. Being a solo engineer, I prefer, to use Rory Sutherland’s formulation, solving problems to winning arguments. Shallow pockets can be an advantage: it’s only worth suing the wealthy. Nevertheless, there are fights I don’t need to pick.

    That said, I really did get some stickers made.

    Stick them over somebody else’s swag to add a secondary level of sarcasm. Or clone them yourself for a tertiary level. Either way, second-class post is cheaper than defending a defamation lawsuit and pleasingly deniable. If you want some, let me know.

    ☙ ❧

    My main talk this year was about taking over the Mantis synth from Chris Huggett. The product is out, people seem to like it, and it’s getting better bug fix by bug fix. (And what a lot of bugs creep into a project of that complexity: I’m grateful for testers even if the process can be maddening.) The video of that talk will officially be online at some point halfway through next year. The most immediately representative parts of my experience were, of course, the ones I chose to talk about. What I have here is some crumbs and gravy: diversions, corrections and so on that would still be jumping-off points for talks themselves.

    Hey, if you don’t want a technical article, what are you even doing here?

    Don’ts

    Well, there aren’t any don’ts really: it’s your life. But at one point during this project I wasn’t much fun to be around. Being the only engineer on a polyphonic hybrid hardware synthesiser and up against a tight deadline, even if you’re pretty much born for the job, is just a bit too much.

    Chris Huggett, industry luminary that he was, never seemed to have this problem when I knew him. He had at least one technical co-pilot within Novation, and usually more than one. For Mininova, it was me and a testing team.

    Those were the days (back in 2011) when Chris was still using the processing platform he used throughout most of his Novation career: the Motorola 56000 family. At one point in the early 90s, everybody used this. I call it the Motorola, but they got bought by Freescale, who were bought by NXP, who were bought by Qualcomm … Today, the DSP56F series (as it’s now called) is a forgotten corner of their Galactic Empire and ‘not recommended for new designs’. There are cheaper and easier ways of getting the same horsepower these days. But it was a cool and quirky chip, and he owned the software on it.

    The hardware platform

    I did the user-facing part of Mininova: MIDI, control surface, menu tree, and parameter management stuff. This was on a separate ARM chip, so the synth engine from my perspective was a big lump of 24-bit memory to which I occasionally poked a parameter or two at Chris’s direction when something salient changed. The other thing I did was make up for a blind-spot of Chris’s which was electromagnetic compatibility [EMC]. Like anybody who has invented their own industry, Chris learned this trade by practice more than formal tuition. He developed his habits in a world where these regulations didn’t yet exist and, by the time they did, he was senior enough to let somebody else look after them.

    I missed out the analogue revival part of his story at Novation. Chris moved from the Mininova (his last DSP56F project) to the Bass Station II, which is digitally-controlled analogue, and then the Peak, which apparently has an FPGA to run the oscillators. It seems strange to imagine Chris tackling a complex VHDL or Verilog project in the later part of his career, but that’s what engineers do.

    I think I’m fairly safe in asserting that Mantis was the only project that Chris designed with the synth engine running on an ARM. But again, Circuit and Peak came after my time at Novation.

    The code

    As Chris was a tabs person and I’m a spaces person, I’d reformat his code as I assimilated it, but the changes run deeper than typography. To summarise, while all of Chris’s intentions endure, very little remains of his original code. There are a lot of reasons for this. As I mentioned in the talk, I had other ideas about how to use the chips he’d specified. The Cortex-M4 that runs the sound engine is the most expensive chip in the circuit. We bought it for sound, and it’s a rule of these products that the moment one frees up processor capacity, one finds a new use for it. So it seemed sensible to decouple it from the process of scanning a control surface, which requires mostly donkey-work that a far less capable chip can do instead.

    It wasn’t that easy to wrench the synth engine away from the controls in practice. I was doing it against the deadline of Superbooth 2023. That felt like changing the tyres on a car while driving it. I just about made the deadline without breaking what was already there, but at the expense of not having the time to get the new audio converter running properly. The Superbooth prototype made a noise of sorts, but a very peculiar noise that was slightly out of tune owing to Chris’s eccentric choices of sampling frequencies and his habit of hand-baking these choices into derived constants. Paul had to style out my incomplete work during Superbooth and you can see this for yourself. After the new prototype made some really quite interesting sounds, the new chassis was used as a controller for Chris’s original proof-of-concept PCB.

    At this point, let us celebrate having a boss who’s been around long enough and listens enough to understand how the development process works in practice. I’ve had managers who would hoik me into an office and call me names for what was effectively the fruit of multiple 80-hour weeks of progress. They were too self-absorbed to acknowledge somebody else’s sacrifice; too ignorant to regard an imperfectly-reached milestone as anything but a miss … Anyway, if I ever took a founder like Paul for granted, I certainly don’t now.

    Some of my other changes were for reasons of efficiency: shaving off a few microseconds in places and opening the scope for extra versatility. Some was a result of migrating to a more modern development environment. When I started this project, we took the decision to spend about £1000 on a licence for the same environment that Chris used, which seemed like the cost of continuing his legacy, but it uses a C compiler that dates from about 2010.

    New C compilers are magic and older ones are quite dumb. This would optimise by just unrolling every loop it could until I ran out of memory. But drawback of migrating to a more modern, less kludgy version of GCC was breaking changes. I couldn’t take the hacky USB drivers with me because they were sprawling and oddly compiler-specific, and I had to start again. It took a week, post-release, to write a new USB device driver. (You could do a lot worse than the excellent libusb_stm32, because ST’s own documentation for the device takes no prisoners. I rolled my own for the sake of compatibility with my existing protocol-layer stuff, but I found myself getting to know this library very well as a ‘what’ve I done wrong’ crib.)

    The rest of the codebase ported in less than an hour, and I went from using all 128 kilobytes of program FLASH to using about 88 kilobytes with no loss of performance.

    Here are the .c files I inherited:

    I shared this source code with a friend who’d volunteered some evenings to help me with the first stages of taking it over: mostly finding which parts of the code were actually part of the project. He’s no small force in this industry, and I guard him jealously. But, after looking through the files for more than a quarter of an hour he asked, ‘Where’s the synth?’

    25% of Chris’s code, and most of the salient parts, resided in two files called panel.c and synth.c, the functions of which were nothing like as clearly delineated as their filenames promise.

    As you can see, main.c was accompanied by mainUN.c when I took over. Ultranova … There was other third-party code that Chris would have been allowed to re-use, and occasional comments referring to FPGAs in code that didn’t get used betray its pedigree (fpgadelaytime.c, anybody?) It’s a hack of past work that, I assume, would have been cleaned up later had Chris enjoyed better health. (test_cph.c uses Chris’s initials; test_nb.c, I’d assume, is a test routine for an unnamed synth by the inestimable Nick Bookman of Novation. Heaven knows what it was doing here.)

    But much of the code was Novation’s: Chris had a licence to use it as a consultant, but we don’t. One reason for a massive refactor was to rebuild our way comprehensively out of any IP issues, while creating our own value in reusable modules. Stubs of code I inherited like menu.c and alpha_cat_gen.c were designed for synthesisers with text handling, imported wholesale for the sake of a few dependencies, so that patch names and other strings sprouted off our screenless synth like phantom limbs. They eventually disappeared without trace.

    Refactoring when you’re not precious

    Best practices for inheriting code from an absent person or team are well established because it happens all the time. There is a legion of respected books available (search Amazon for ‘legacy code’). But they all assume that you’re inheriting a codebase that has test coverage and that works. It’s bad practice, we all agree, to throw out working, tested code. That’s your company’s competitive advantage. If your code hasn’t yet been deployed, very few rules apply aside from your own taste and judgement.

    There were areas where Chesterton’s Fence was actually appropriate: the most careful strategy. Remove nothing until we understand what it does, what its side effects might be, and why it’s written that way. Parse by eye, line by line. Manually eliminate unused variables and branches and check that the thing still compiles and makes a noise. Rename and comment in multiple passes as you go.

    A large part of assimilating somebody else’s work is to train yourself to appreciate what’s there. The reverb was exactly like that, and I’ve written reverbs before. It was the only part of the code I printed out and annotated by hand. In hindsight it would have been better to do a first pass through it with my cursor, but I confess I needed a few hours with a pencil and a hard copy.

    Some code was compartmentalised carefully so it could be addressed in isolation at my leisure: the usual middle way, and often a precursor to bringing something under unit-test discipline. Chris’s envelope implementation started out as very clear code. Most of my work on it simply modernised the C, clarified the maths, and gave it its own file.

    Aside from the control surface, perhaps a third of the code was chuck-away-and-start-again: much of this is because I knew a better way, or already had some hardened library code that would do the same job. The oscillators were rewritten for commercial reasons. I talked at ADC about why I made this decision: we wanted a better palette of timbres and more control than the prototype allowed us.

    The 99,665 bytes of synth.c became expressed as a number of single-purpose, self-contained, stateless-as-possible source files in a folder called synth/, which is the closest the C language gets to modularity.

    The device-specific stuff ended up in a hardware/ folder, and the things I reuse for every project were, as always, in their own included library.

    Abstractions are never perfect. Things like the joystick, the FLASH load-levelling for loading and saving synthesiser presets, the obligatory multipurpose buffers, all occupy a liminal space between the hardware and the synth engine. But they’re more properly abstracted than they were.

    Incidentally, Chris had decided to generate the wave tables in run-time. This was the only part of his code that used floating point arithmetic (for the sine and cosine operations). I assume he did this either as a temporary measure so he could prototype different waveforms easily, or as a force of habit because the other synths he’d written had very little ROM and ran startup routines that built exactly 100 kilobytes of look-up tables. That used to be a lot. Whatever the reason, I built them ahead of compile-time with a Python script so they could be plucked straight from ROM.

    Steal and borrow

    The voice management code was the worst part I took over: a mess of side-effectful code that had been imported hurriedly from elsewhere, didn’t properly work, wasn’t the right shape for the synth, and would have taken ages to debug.

    Voice assignment remains the biggest, messiest part of this firmware and the hardest to work on because routing notes to voices, and stealing and returning them when you have complicated polyphony rules and two MIDI inputs, an arpeggiator, and local off mode all stealing your attention, is always going to pinch a little.

    The voice allocator was 300 lines long with 16 state variables and GOTOs: not bad per se, especially given its clear origins in a multitimbral synth, but hard to maintain. Here’s a representative part of it from about 2400 lines into synth.c, complete with loads of state variables and some references to where it’s been used before:

    Jules’s first ever keynote, Obsessive Coding Disorder, sprang to mind. My fingers itched to put this right but one approaches code like this with some trepidation: every time you try to tidy it, you’ll add bugs.

    During my time at ROLI, I evolved my style about as close as I dared to a C version of the JUCE coding standard because that’s what we followed when we wrote C++. Changes are cosmetic to begin with — that’s the point, they’re for people — but I was able to stop swearing at it and start fixing it once I got the voice allocator to look like this:

    I’m still not sure about it: it’d be more efficient written in descending order of priority, but there’s probably a reason why I decided to run every path. This routine gets called only once per note, so there are bigger gains to be had elsewhere.

    On a project this size (about 700 kilobytes of source code depending on how it’s counted), you can conduct your own code reviews. Several weeks after writing something, you have no recollection of having written it, no prior assumptions about how it works, and an outsider’s perspective on what you’re like to work with. Good code is written for humans first because a compiler doesn’t spend long enough in the code to care, and these days it’ll blithely optimise away abstractions that aid readability like dividing a long routine into standalone functions so that its structure and intent pops right out of the screen (as above). You get a very stark impression of the limits of your powers.

    The voice management code was something I needed two or three good days to tackle. The original work was removed gradually from much of the codebase so it didn’t distract me, which meant that Mantis went from being a duophonic synth in Chris’s prototype to a monosynth until the last three months, when eventually I could face the work. It was not too hard once my fatigue had subsided enough to take it on: the writer’s block came in part from the quality of what I’d inherited. The very final features I made work were the ‘duo’ and ‘quad’ buttons.

    Finally, polishing and maintenance aren’t sexy, but they make the difference between a mediocre business and a great one. A potentiometer usually needs a better law than the first guess so the synth responds more musically. Attacks and releases are particularly troublesome because they need meaningful control that spans three or more orders of magnitude of time: 10 milliseconds to 10 seconds, with the same subtlety of control at either end of the scale, is the goal. All this has to be ready before the sound designers can start writing presets, or their work is going to sound different every time they upgrade their firmware.

    Fixing bugs can be a two-days-per-week job in the year after shipping but it doesn’t generate money: the advantage it confers is the long-term social capital of reputation. If you’re lucky and careful, many bugs you catch will result in library improvements that fix other projects, and do your future self a favour.

    Finesse and fixing is much of the second half of any project. It helps to be a musician yourself because it’s really hard to specify precisely when something feels right.

    PS. There’s a glaring bug in the code I flashed up in page 31 of the talk, fortunately with rather minor consequences. No prizes offered for seeing it, but it’s now fixed.

    The OSC Advanced Sound Generator

    At the end of my talk, I called the ASG prototype that we rediscovered in Chris’s loft the British Fairlight. Although it never saw commercial release, it was demonstrated several times in the mid-80s and there are a couple of published mentions of it that survive online. Here’s a ‘family photo’ of Chris’s early works (with an early Chris). It’s right in the middle of the shot, bulky and glowering with an EDP Gnat balanced on top of it.

    The reverse image search doesn’t tell me where this was scanned from so I cannot attribute it. [Update: EDP co-founder Paul Wiffen attributes the picture to Matthew Vosburgh of Keyboard Magazine.] But this picture from my talk, taken by Paul last month, deserves re-posting:

    I said during the talk that that this would not be worth resurrecting in anything like its final form. Of course it isn’t. There’d be little hunger in today’s music tech environment for a British answer to Fairlight, even as an app. What’s attractive isn’t the technology or workflow but the principle that gave rise to it. It’s a radical contribution to the ongoing conversation about what a musician’s creative process should look like in five years’ time. You’d have to hit ‘undo’ a few hundred times to create a customer base for 1985’s version of that conversation.

    When I propose that the ASG lives on in Chris’s later projects, it’s no mere metaphor. I’d bet that the floppy drive from the front panel ended up in an Akai S1000 prototype. All the more reason for acknowledging the family tree of Chris’s creations that are spiritual successors to the ASG: the Akai samplers; the Supernova digital polysynth and its offspring; the impOSCar software instrument that was very sensitively informed by both OSCar and the ASG.

    At some point, it’ll be a leisure project to get that box into a working state, if we can, and to see what vestiges remain of the world’s rarest workstation synth/sampler. I suspect its source code is lost, but Chris did keep some floppy disks from that era, so there’s a fighting chance we’ll find something even if the tools to build it have to be recreated.

    If I ever get round to it, of course I’ll be blogging about it.