RECENT WORKS

Selected recent soundtrack work:

Zurich (BBC Radio 3 play)
Info/credits on BBC website

 

DEV PROJECTS

Selected open source dev projects:

Tunealiser HTML5 structural analysis and sketchup tool.
Chipdisco Dual deck MOD/XM DJ app.
PortaMod Processing (Java) lib for MOD/XM replay and interactivity.
Minertron HTML5 Manic Miner logo generator.
Chipslapper FastTracker style Reaktor instrument (with ST-01 samples).
Virus Ctrlr VST plugin for Access Virus synth control.

ABOUT ECHOLEVEL

 

My name is Brendan Ratliff. I provide original, high quality soundtracks and scores for all types of new and conventional media – video games, film, TV, radio and interactive AV. As a life-long musician and experienced composer/producer, I take particular pride in my ability to employ authentic techniques and instrumentation thanks to my ground-level involvement in some of today’s most cutting-edge subcultural art scenes. These skills, combined with more traditional expertise, allow me to work with clients and collaborators in such a way that their requirements are met and their projects are lent a unique and evocative bearing.

 

 

 



  • I compose music for games, film and radio as Echolevel, and in the demoscene/8bit/chipmusic underground as Syphus.
  • I do software/hardware hacking and teaching – interactive digital art, web development, creative apps and AV installations. I work with (in no particular order): Java, Processing, Javascript, jQuery, PHP, HTML, CSS, BASH, OSC, MIDI, Windows/MacOS/UNIX/Linux/AmigaOS, Arduino, PureData, Max/MSP, Renoise, Ableton Live, Pro Tools, Logic, Cubase, Sonar, Sony Sound Forge and Adobe Creative Suite. See some examples here.
  • I’ve performed live chipmusic, electronic music and traditional Irish music around the world and occasionally, when there’s time, I still do! I play fiddle, piano, guitar, bass, flute, tin whistles, mandolin, bodhrán and various other instruments – live and as a recording artist. You can often catch me playing in Irish/Scottish trad sessions or for céilís in and around Newcastle, or playing synths in industrial synthpop band Outsight. Formative experiences playing in blues, metal and punk bands of varying quality lurk in my past – no regrets, though!

Also: father, husband, food eater/cooker, music listener, pen+paper roleplay gamer, synth twiddler, obsolete computer meddler, gardening avoider, energy drink abuser and car upholstery despoiler.

 

Syphus

After my family bought a Commodore Amiga when I was 9, I began to devour the amazing audio/visual material produced by the Amiga Demoscene and started making my own music using tracker software. As underground art scenes go, the Demoscene was (and still is!) THE one. Music, graphics and code – all art for art’s sake – was shared freely, long before Creative Commons or mp3 netlabels and usually by floppy disk in the schoolyard. By the time I hit my twenties, so-called ’8bit’ music was having another renaissance and kids were suddenly going mad for retro, videogame-influenced chipmusic – the sort I’d been listening to and making all my life! Well for a fun few years, I saddled up my Amiga, slung a vintage keytar around my neck and blasted out my chiptunes live to audiences all over the UK, parts of Europe and New York’s awesome Blip Festival as Syphus. Most of my Syphus material is available online for free, just like in the old days :)

 

(Second and third photos by Marjorie Becker)

MUSIC/VIDEO/PRESS

Extended Demoreel Playlist

Live Performance as Syphus


Some footage of a Syphus gig, filmed and edited by Cerebral Scars (thanks man!)


 

Press

Interviews with me and articles about my work have appeared in publications such as Games™, Computer Music Magazine, .Net Magazine and various others, but I need to find some time to hunt through my boxes of magazines in the loft and scan them. I'll also try to stick up some old flyers and posters from performances around the world; the sorts of things you intend to keep as mementos, but which mysteriously evaporate with every house-move...

 

SYPHUS

LISTEN

WATCH

FREE MUSIC

I maintain a repository of my Amiga & PC modules, as well as mp3 recordings of many of them. These are freely available from syphus.untergrund.net - big thanks to Scamp who provides free hosting for demosceners at untergrund.net! Please note that the server is sometimes offline for maintenance on Sundays, in which case files might not be available for a few hours.

Syphus is a chiptune and demoscene musician who has been composing and performing for most of his life. He is commander-in-chief of heart wrenching melodies and, when he's not creating with Up Rough or BDSE or making music for games, takes his Amiga around the world to shove 8-bit beats up your face. BOOM!

Syphus (Brendan Ratliff) started playing piano, violin and Commodore Amiga in 1989, at the age of 6. After growing up with the demoscene, trackers and chipmusic, he eventually started to release his tracked music in chipdisks and demos with the likes of CoolPhat, BDSE and Swedish megastars Up Rough.

Along with composing and performing professionally in various disciplines, I've performed live as Syphus regularly over the past few years - in Europe and North America as well as touring the UK twice with Sabrepulse and the Chiptune Alliance. Recent activities include lecturing on chipmusic-related subjects at Newcastle University, giving public workshops on Amiga tracking, releasing open-source chiptune performance software, performing at the likes of Blip Festival (NYC), Game City (UK) and the first European Maker Faire and being an inebriated fixture at various European demoparties.

COMMS

Follow or contact Syphus on Twitter and Facebook.

SHARE


NEWS/UPDATES

- Mon, 06 May 2013 02:28:00



Knobber - USB MIDI single knob/button controller by Echolevel

(UPDATED - see below!)



image



Well, here it is: the Echolevel Knobber! A tiny, class-compliant, USB MIDI controller with precisely ONE knob and ONE button. I always wanted something like this and could never find one on the market; fortunately, once the Teensy USB Development Board came of age, making my own became very straightforward. The Teensy is an Arduino-like dev board with two major advantages (for me) over Arduino: it’s extremely small while still having a USB (micro) connector, plus it natively acts as a class-compliant USB MIDI device allowing plug’n’play use on modern versions of OS X, Windows, iOS and - to a certain extent - Linux. Why? Well sometimes you’re working in a coffee shop or playing live on a very tiny amount of table space, and you don’t *need* the 8+ knobs that your favourite controller offers. In something like Ableton Live, where the Remote feature ‘captures’ your controller per track or device, being able to map one single knob to a parameter for the purposes of a carefully-controlled automation edit or a live performance tweak is handy. It is to me, anyway, and I primarly built this to cater for my own need :) The button is just there because a) there was enough space for it in the box and b) it’s handy for toggling that device (or another device) on/off; great for automation stutter edits with a glitchy effect, for example.



See it in use controlling an Ableton Live Auto Filter cutoff in the video above, while the push-button toggles the device on/off, and check out the pics, schematic and code to see how you can build your own. 



Dev Process - Short Version 



The first problems I ran into were in stabilising the value from the potentiometer (knob). For MIDI CC automation, you want the value to stay still and for the device to stop sending MIDI data when the knob isn’t being turned. Fortunately, my old friend and chipmusic compatriot Philip Cunningham (aka Firebrand Boy, aka unsymbol) had made a slightly more complex MIDI controller a few years ago so I was able to use some of his code (availalbe on his Github) to take a running average of the input values and smooth them out. That wasn’t quite enough, though, and a bit more digging led me to the concept of power decoupling and the fact that a small capacitor would - for reasons I don’t quite understand because I’m an electronics noob - smooth everything out nicely. Phil’s code also clued me in on the Bounce stuff, which makes it much easier to get useful data from button presses. Cheers Phil! 



I prototyped the whole thing on a breadboard (see below), testing the input with MIDI Monitor for OS X (MIDI-OX is best on Windows), and then packed it all into the smallest Hammond project box I could find in Maplin. The pot is a 100K linear (you can logarithmise the values in your code if you want to), the switch is the smallest I could find in Maplin (though Farnell/RS/etc probably have better ones; this one isn’t great, to be honest) and I used a Dremel to carve out the micro-USB slot and the knob/button holes. The £16 Teensy board sits on the case cover so that the screws are face-down when the device is in use, and I glued that down with a hot glue gun - bracing it at the back with a Dremelled-down piece of veroboard (also glued) so it can withstand having the USB cable jammed into it without moving. Hopefully the glue will keep it nicely in place, though a more hardwearing option might be to break out the micro-USB to a B-type connector mounted to the chassis. Easily done in a bigger case, but there is almost NO free space in this one once the components and wires are packed in. Finally I soldered everything in, tested it and was met with success! 



If you make one of these yourself, bear in mind that loading an update of your code onto the Teensy (which you might need to do if you want to change CC mappings, for instance) requires you to press the reset button on the Teensy itself. I can do this quite easily by unscrewing the bottom of the box, opening it slightly, then poking a finger in to hit the button. Not ideal, but then you shouldn’t have to make changes very frequently. If you did, you could break out the rest switch to another physical switch mounted on the case. In the long term, I want to implement some SysEx control whereby you can send new mapping values direct from SysEx Librarian or something, or maybe a Max/MSP patch, which are stored in the Teensy’s tiny amount of non-volatile EPROM. Just a thought. 



I’ll add other details as I think of them.



UPDATE

I’ve now got a SysEx configuration system in place, described in the code below. Basically, while some commercial controllers supply graphical config programs so you can choose which channel/CC number/button type each control should have, I’m offering a far more ghetto solution: hack the default .syx file in a hex editor (very easy) and then transmit it to the device using software like Sysex Librarian (OS X), MIDI-OX (Windows) or various DAWs. Few people will feel the need to do this, but I’ve included it in case you have a really awkward clash with some other controller in your setup. You should only need to make a change once, as the Knobber has non-volatile storage built in that should hold those values for, ooh, eternity or thereabouts.



image

image

image

image

image

image

image

image

image



Note - you’ll need to install Arduino and the Teensy stuff for it (which is all part of Teensy setup, explained on its website), and before you send any MIDI-related code to the board you should go to Tools -> USB Type and select ‘MIDI’. Once the board is running in MIDI mode, you won’t be able to see any useful output in Arduino’s built-in serial monitor, but that’s no problem - just use MIDI Monitor or MIDI-OX instead. You can also change the self-declared USB MIDI device name in a header somewhere, but I can’t remember right now…I’ll add it when I do.



CODE:

/*
'Knobber' - one knob/one button USB MIDI controller by Echolevel - 
http://echolevel.tumblr.com/post/49737964614/knobber-usb-midi-controller-by-echolevel
Feedback: http://twitter.com/echolevel

Special thanks to Philip Cunningham (aka unsymbol, aka 
Firebrand Boy - http://philipcunningham.org )

SysEx Config Message Structure:
0xF0 # SysEx message start byte
0x14 # Manufacturer ID; 0x14 is actually Fairlight, but I don't forsee too many conflicts here... 
0x01 # Knobber knob channel number
0x01 # Knobber button channel number
0x0E # Knobber knob CC number
0x0F # Knobber button CC number
0x01 # Knobber button behaviour (0 = momentary, 1 = toggle)
0xF7 # SysEx message end byte

On first run, your Teensy's EEPROM might contain values left over from a previous sketch so you 
should use Sysex Librarian, MIDI-OX or similar to transmit the default .syx file (available from
wherever you got this code). Thereafter, you can copy that default .syx and use a hex editor to 
adjust the values according to the structure above.
*/

#include <Bounce.h>
#include <EEPROM.h>

// Default settings - will be overwritten if EEPROM values are present.
int knobChan = 1; int buttonChan = 1; int knobCC = 14; int buttonCC = 15; 
int kPin = 0; int bPin = 0; int behaviour = 1;
int inputAnalog, ccValue, iAlag;
boolean toggled = false;
Bounce button0 = Bounce(0,5);

void setup() {
  //MIDI rate
  Serial.begin(31250);
  pinMode(bPin, INPUT_PULLUP);
  delay(5);
  knobChan =  EEPROM.read(1); 
  usbMIDI.sendControlChange(44, knobChan, 2);
  delay(5);
  buttonChan = EEPROM.read(2); 
  delay(5);
  knobCC = EEPROM.read(3);    
  delay(5);
  buttonCC = EEPROM.read(4);
  delay(5);
  behaviour = EEPROM.read(5);
}

void loop() {
  // Check for SysEx config message
  if(usbMIDI.read() && usbMIDI.getType() == 7) {                
     if (usbMIDI.getData1() > 1 && usbMIDI.getData1() < 9) {
        // unpack SysEx
        byte * sysbytes = usbMIDI.getSysExArray();
        if (sysbytes[0] == 0xf0 && sysbytes[7] == 0xf7) { // Good length; legit sysex.
          if(sysbytes[1] == 0x14) {  // It's either Knobber or a Fairlight CMI...
              // 2, 3, 4, 5 and 6 can now be written to EEPROM and to global vars
              EEPROM.write(1, sysbytes[2]);
              knobChan = sysbytes[2];
              EEPROM.write(2, sysbytes[3]);
              buttonChan = sysbytes[3];
              EEPROM.write(3, sysbytes[4]);
              knobCC = sysbytes[4];
              EEPROM.write(4, sysbytes[5]);
              buttonCC = sysbytes[5];
              EEPROM.write(5, sysbytes[6]);
              behaviour = sysbytes[6];

          }          
        }
     } 
  }
  
  
  if(behaviour > 0) {
      // Pushbutton - MOMENTARY behaviour
      button0.update();
      if (button0.fallingEdge()) {
          usbMIDI.sendControlChange(buttonCC, 127, buttonChan);
      }
      if (button0.risingEdge()) {
          usbMIDI.sendControlChange(buttonCC, 0, buttonChan);
      } 
  } else {      
      // Pushbutton - TOGGLE behaviour
      button0.update();
      if(button0.fallingEdge()) {
         if (toggled) {
             usbMIDI.sendControlChange(buttonCC, 0, buttonChan);
             toggled = false;
         } else {
             usbMIDI.sendControlChange(buttonCC, 127, buttonChan);
            toggled = true;
         } 
      }
  }
    
  inputAnalog = analogRead(kPin);  
  if(abs(inputAnalog - iAlag) > 7) {  
    // calc the CC value based on the raw value
    ccValue = inputAnalog/8;                                
    // Invert the pot value (because I soldered it backwards...)
    int inverted = map(ccValue, 127, 0, 0, 127);            
    // send the MIDI
    usbMIDI.sendControlChange(knobCC, inverted, knobChan);                                  
    iAlag = inputAnalog;
  }

  delay(5); // limits message frequency
}


- Mon, 30 Jul 2012 19:28:57

A demoreel of some atmospheric textures I made today; a few of them quasi-rhythmic, all with lots of multi-layering and movement. Created from percussive sounds, vocal samples, keyboard melodies/pads and field recordings - all recorded by me and dug from my disorganised samples drive :) I used the wonderful S-Layer by Twisted Tools for these: it allows very low-level control, but really speeds up the process - prevents the usual laborious workflow from getting in the way of inspiration.


read more on Tumblr

CONTACT INFO

Want to chat about a project? Please get in touch!

In this stifling age of unmanageably multitudinous social networks, Twitter is my weapon of choice – quick, dirty and to the point. Follow me for all the latest! You’ll also find some links to other fashionable social media time-sinks below.