8bit live visuals: Looking For The Perfect Hit

March 1, 2009 by nicolas, tagged live visuals, pce and tpolm, filed under works

A mesure que l’heure avancait, le bar devenait paradoxalement moins bruyant, ses fauteuils plus comfortables. Une très légère lumière blanche provenait du sol. Elle était immédiatement absorbée par l’épais tissus pourpre des murs. A l’extrémité du bar les sourcils fins d’une créature suivaient l’horizontale: un dieu égyptien fait cuisinier d’un bar à tapas. Salade de rat, confiture de pates, buddha anglais. Et Lee “Scratch” Perry mixant aux platines avec Shiva en guise de M.C.

Attablés, cinq philosophes allemands longilignes, vêtus de cols roulés et discutant la dialectique du contact des corps.

Somewhat irregularly, TPOLM organizes an internet event called Lazy Sunday Radio.

What started in 2000 from a commune in downtown Helsinki with Moomins mixing vinyls and live tracks over the net, has become more and more fierceful with each issue. We now feature mixes, live performances, visuals and even occasionally an actual event in a “real” location in addition to the internet radio.

A Lazy Sunday Radio usually gets organized within a short period: a wake up call is sufficient to bring in all the musical talents in the TPOLM roster (and beyond) .. each very intent to provide music for their own one hour long slot.

So in this early 2006 I caught myself promising to do live visuals for the next Lazy Sunday RadioVideo.

For this issue was going to be different: we were going to broadcast visuals for the first time in addition to live music.

I had nothing. Nothing ready at all. We needed to produce a video signal, mix it with the live audio then re-encode it back to the internet radio.

Within two weeks, I thought, what could I use to perform visuals on and that could be captured as video? Well, my PC-Engine DUO-R could do. And with a multitap + 2 pads, I should have more than enough combinations to play with. Plus 2D does not actually require having costy 3d models or textures.

At the time, I was inspired for designing the controls by the one-man 8-bit remix orchestra named Duracell. I took from him the idea of using a series of button presses to advance in a pre-recorded sequence. A great way to produce complex output from a very simple input. And I still envy his energy on stage.

So I got myself a few .html and .txt files describing the PC-Engine’s CPU, Video controller and joypad I/O, fired a compiler and started writing a C++ program which, in lieu of an assembler or compiler, would create a sort of visual instrument as a ready-to-burn rom.

In the end I managed to produce one hour of visuals, recorded in full glory here as an .nsv file.

It was a challenging, tiring experience.. but I was hooked!

Later on (in the above video) I decided to capture another performance as video, entering it in the Breakpoint’06 wild demo competition. It did not go as I expected, as it wasn’t shown in the end in the competition, but nonetheless it’s a good, compact example of the sort of visuals I would achieve.

The soundtrack is a remix of Pushing Buttons, a track I made in 2005 in an attempt to interpret the platform videogame genre.. I still don’t know if I hate or like this genre, however it got a peculiar rhythm to it.

I liked especially the combination of joypad-controlled scrolling and a glitchy tile-copying effect that together would spread a stream of tiles like a spray can would. Two individually simple effects which surprised me when they started interacting. Likewise, deactivating the display synchronization produces very sharp visuals.

After a while, and a couple other live visual instruments behind
me, I decided share the instrument itself as a PCE rom

A visual instrument one could play on. A visual toy controlled with its two joypads. Auto-fire capable joypads, which require a cable twiddling ritual before use!

Joypads are inviting; their buttons like to be mashed and pushed.

Links

PHPException (2)

count(): Parameter must be an array or an object that implements Countable

in /home/neq/nicolas.uucidl.com/gitblog/themes/uucidl/post.php:24

  </div>
  <!-- =========================== comments =========================== -->
  <? if ($post->commentsOpen || count($post->comments)): ?>
  <div id="comments">
    <hr/>
::require(1) called in gitblog/themes/uucidl/index.php:101
    }
    elseif (gb::$is_post || gb::$is_page) {
      require gb::$theme_dir.'/post.php';
    }
    elseif (gb::$is_posts || gb::$is_tags || gb::$is_categories) {