N.Léveillé (b. 1977, France) programs real-time audiovisual and business software, manages projects, coaches programmers, plays and composes electronic music, and occasionally writes about his experiences.


nicolas @ uucidl

Sebastian Oschatz on VVVV

August 14, 2009 by nicolas, tagged programming and art_and_code, filed under commentary

Another talk about a MAX related project, this time we have VVVV from Meso. The talk goes into more details about the inner workings and the advantages of such a visual language.

http://vvvv.org/tiki-index.php ― more information.

Vvvv is an application and visual programming language published by MESO, a company cofounded by Sebastian Oschatz. Its creation is justified by Sebastian Oschatz as a reaction to the bland and numerous visualization projects which were thriving at the time in the media art community.

MESO’s business model — since it is a company — requires vvvv’s source code to be proprietary. Although the program is free to download and play with, it must be licensed once set up in a commercial context.

MESO’s three developers choose to make vvvv run solely on windows and directx, ensuring the best and most efficient support for such a small team.

Historical roots: MAX/MSP & Pure Data

The user interacts with a constantly running "patch" of nodes connected together with wires. Each wire define the flow of data between operations (nodes) which have inputs (inlets) and outputs (outlets.)

Programs are defined spatially, and syntax errors are never encountered. A program is reinterpreted as soon as it is changed, and runs constantly, always producing content.

VVVV's specifics

The heart of vvvv is a single processing loop, designed to service realtime video processing. Each nodes stands for a particular state — a complex value — in contrast to the original model used by MAX of nodes as message transformation devices. Mentally, the computation model is not that of "pushing messages to children", rather it is about "querying ascendant nodes about their current state".

Networked patches are also supported from scratch (does MAX do it nowadays?)

Sebastian Oschwatz’ presentation style is didactic and slightly detached, and I clearly dozed off in the middle of his presentation, especially as he plod through the following list of topics he covered:

  1. (5:25) program while the program is running — instant feedback is provided. It makes program building enjoyable and almost playful, and very immediate.
  2. (12:00) inputs at the top, outputs at the bottom — a general downward flow. The types of layout based rules are common in the MAX family yet sometimes a bit hidden. Pure Data for example has horizontal layout rules.
  3. (16:37) naming is optional — naming things scares non-programmers. We would rather say that naming values and operations is hard, not scary.
  4. (17:55) states and not events — states can be queried and are mutable, enabling optimizations such as not recomputing any descendants if state has not changed.
  5. (20:06) spreads — only one data type is moved between nodes, the 1d array. Meso show its tendency to rename/rebrand concepts.
  6. (22:45) no errors — no syntax errors in particular. All nodes are made resilient to input data: numbers or array are not constrained to any domain or size and operations are made then via wrapping (modulo arithmetics)
  7. (29:06) boygrouping — synchronization of multiple computers and screens. What a strange name again.
  8. (36:30) directx / shading languages — modern 3d hardware is supported, and well.

In a very striking part at the end he presents integration with shading languages, which are interpreted by the graphic card. It is striking because we could not feel but slightly uncomfortable as he proceeded to praise a textual language, manipulated with a plain old decrepit text editor. Especially after having praised a visual language for about 30 minutes.

Why doesn’t vvvv provide a graphical manipulation of HLSL shaders? Why lose the — no error, no syntax to learn — benefits he presented earlier? At least
the sense of immediacy is preserved: a shading program is edited and in an instant automatically uploaded to the graphic card.

At this point we are reminded of Field (OpenEndedGroup) a runtime environment which embraces the textual representation of programs and merges it in a rich graphical environment. It seems that vvvv could logically bridge the two, starting from the other direction.

Luke Dubois: software for live performances

August 12, 2009 by nicolas, tagged programming and art_and_code, filed under commentary

A MAX/MSP/Jitter showcase by Luke Dubois.

Luke Dubois first tells us how he started using laptops and MAX/MSP in the context of a band – Freight Elevator Quartet, – replacing unreliable analog synthesizers with the cold digital precision of software audio synthesis.

This in itself however raised a question, a challenge that any live laptop performer faces: watching someone play on a laptop is not very exciting and pleasurable.

He qualifies live performances as transparent or opaque: transparency denotes how manifest the source and action of a performance are. A transparent performance clearly links actions and their results. And very often, the performance of operators behind their laptop suffers from a high level of opacity¹.

A laptop – unlike a musical instrument such as a violin – is a profane object. Audience members use it daily to communicate, listen to music, watch movies, compute their taxes or play video games. Its operation in itself raises the doubt that the performance really exists and what it consists of. After all, the performer could very well be checking their mails while an audio file is playing.

In summary, Luke Dubois characterizes a live performances according to:

  1. its opacity / transparency
  2. how profane / sacred is is perceived

I would add an additional axis to this list. Audio/visual/physical manifestations used throughout a performance have to be in harmony: how "physically consistent" the actions are with their results ; for instance, a great motion should result or respond to an equally powerful sound, and harsch visuals to distorted audio.

To increase transparency of the performance MAX/Jitter enables the laptop performer to manifest himself within other channels (controlling lights, video, even actual objects on stage) than audio only.

Regarding how profane a laptop is perceived:

Unfortunately adding a fruit on the cover of the laptop is not sufficient to make it sacred! In contrast, a violin is from the start made to be used during the "ceremony" and for its enjoyment. And as the doubt is raised that a performance is taking place, it needs to be dealt with with a proof: for example, interactivity with the audience such as letting it alter the visuals used in the performance.

Then as an introduction in the world of MAX, Luke Dubois shows live the typical "Hello, World" of MAX/MSP, a simple automata emitting a sequence of random notes².

At this point we drift off a little bit and his talk is starting to feel aimless, although he does a good job of introducing the basics and advantages (simplicity, enable musicians to program) of MAX and its various applications³.

¹ easily the most interesting topic he covered, in a too short and very superficial way. The problems of building enjoyable and meaningful performances. The problems caused and solved by the introduction of computers and videos in such performances. Those are very important topics to cover when you are interested in the use of code (and thus computers) in these contexts.

² at this point in his talk we were reminded by how our own attempt at generating musical structure from automatas. One big problem with automatas is that they never know when to stop. They always have enough energy to proceed to the next step and will never on their own stop producing whatever it is they were producing. Would introducing the concept of an energy source solve this problem? We doubt this would be sufficient. It seems however necessary, for no process in the world goes on continously and feel natural. (There are counter examples however.. What about the sun? What about rivers?)

³ we liked: his project with a performance artist who was instructed to do a 72 hours performance, in which she was playing the role of a woman preparing off before a date. The 72 hour performance was in the end to be accelerated down to a 72 minutes video. The performance itself thus had to be done as slowly as humanly possible — 60x slower? — The result would be at a realistic speed for the performer, and as a blurry show of colour for the background, as the piece is done outside.

ART+Code: Golan Levin ― Introduction

August 9, 2009 by nicolas, tagged programming, litteracy and art_and_code, filed under commentary

on software literacy

I’m kicking off a series of summaries and commentaries of the ART+Code conference talks. The conference was organized in Pittsburgh in March 2009. It presented many programming environments, with a focus on how programming tools might help more people, and in particular children learn programming.

ART+Code’s conference-founder Golan Levin is starting up by asking why¹ we should all be programming.

It starts with an observation: we interact with software more and more regularly; be it in appliances, on the internet, or even within administrations or work. As a consequence, software in general has taken an increasingly important place. Computer and software literacy has however not developed as much: while using software is a common activity, writing software is much less so.

In contrast with writing, most people don’t program for self-expression. The population has not made writing software part of everybody’s toolset. Meanwhile, with the exception of Free Software/Opensource, software has become more opaque and challenging than ever: you can’t pick it apart, like you can do with a hardware device.

Software litteracy is generally sought after in order to get a job, and in general for economical reasons.

And despite the pioneers who started writing artistic software in the early days of computer science in 1960 and beyond, software engineers and companies themselves do not acknowledge the existence of such programs.

For example, there is no category for "Artistic" software in Apple’s Application Store. Non-utilitarian or purely artistic software are largely ignored².

Demosceners know this problem too, as there’s no place for demos in the application store either, nor is the population in general aware of them.

This also shows a problem with distribution of such software. The demoscene has historically been a way to answer this: A set of — originally peer to peer, nowadays centralized — traditions and technical mechanisms to distribute purely artistic software.

In the context of the ART+Code conference each talk will show that one programming environments is not often separable from its community.

Programming for one’s own self expression is different from the more traditional view of solving computer science problems, or the "filing" type of applications prevalent nowadays in most companies.

For this reason and since they show no willingness to touch the general public, teaching programming should not be a monopoly of computer science departments³.

¹ talking about literacy, when we say of someone he is literate we do not simply mean he is able to read and write a few administrative letters. There is a certain expectation on the resulting works. The quality of the software we write should remain important even if programming becomes popular.

² save ifart or screensavers. Note that we group most games here amongst utilitarian software, although the boundary with artistic software is not so straightforward to define.

³ the early home computer demoscene played that role in the 80s and 90s in europe. Kids learned programming, motivated by the energy they saw in demos encountered in their use of computers: as they shared programs with one another, they would invariably encounter a demo amongst the pirated game disks. Today’s sanitized, heavily categorized software environment, the advent of the internet and the advent of online gated communities distanced end users from such serendipitous encounters.

game concept: addiction to information

July 1, 2009 by nicolas, tagged videogames and hedonism, filed under works

Learning vs Creating. A delicate balance.

Supergame Bakedown 2008

As 2008 started, I decided to participate in a month-long game creation competition. While it was not a high-profile competition with promises of prizes and fame, I saw it as an opportunity to commit myself to make a game.

Making a game.

It came to me as I wondered how to develop one of those ideas I can’t quite express with precision.

In particular, one which has obsessed me a great deal these past two years is our relationship with the acquisition of new information (knowledge) and especially its conflict with the act of creation.

A demo did not appear to be the best medium for it. Interactivity would help to convey the emotions I was familiar with. Or so I hoped!

The idea of the game very shortly put is to tell the story of the relationship between mankind and information.

It’s about translating the pleasure of learning new facts, new beliefs. These could be truthful or not, important or trivial. The matter is not about truth but about the emotion of learning.

Another idea I wanted to convey is the addiction we sometimes develop towards this acquisition of knowledge, especially as civilization evolves and let us grasp an ever expanding world of information.

And finally, central to the concept was the idea that creation serves as a counterpart to the acquisition of knowledge. The painful, yet necessary behaviour of translating knowledge into new forms.

Continue reading...

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.