Вы находитесь на странице: 1из 3

Coding for sight and sound Coding for sight and sound

In the last of a three part article exploring artistic practices using Free Software, Martin
Howse examines the specific concerns of software artists creating real time visuals

Vision On
semi-interpreted scripting languages such as
Python, Lisp or Scheme are definitely out of the
question in this hard core real time arena, but
such limitations can often produce artistic
workarounds which re-examine computational
methodologies. On the other hand, technical
issues do perhaps stifle the flexibility of some of
the apps we’ll examine, in contrast to the
supremely JACKed or piped pluggability of Free
Software audio. Thankfully, Free Software
initiatives such as the Livido project (see Jacking
Video), launched during last year’s Piksel
conference at Bek in Norway, aim to bring such
flexibility into video work, seriously raising the
game for video software on open platforms.

TOASTED

N
early all the artists whose work we’ve Early artists, such as Woody and Steina Vasulka,
delved into in previous installments, working with video in the 60s and 70s confined
straddle both audio and visual realms, their experiments purely to the analogue realm.
feeling equally at home with both media and And artist-coders working outside budgets
cross-pollinating or feeding through visual as Farmer’s Manual, any audio or visual output which could stretch to buying time on a sweet
sources and structures with the physical and is considered merely as the rather irrelevant by blue fridge-sized SGI box, would have to wait
audible. If, as Randall Packer, artist and theorist, product of systems and processes. until the birth of the Amiga Video Toaster (now
argues, contemporary multimedia work Despite this flattening of fundamentally open sourced) for affordable real-time video
expresses Wagner’s notion of the different materials under the wheels of machinic manipulation. Indeed, the multimedia
Gesamtkunstwerk (or total work of art), then process or watchword of raw data, it’s capabilities of the well designed Amiga, opened
Free Software coder-artists are definitely masters important to assess the specific demands and up the way for a whole new generation of artists
of this form. As we saw last month, Erich concerns of hacking visuals. Video does admit to begin working creatively with visuals. Around
Berger’s Tempest project, making excellent use of a different way of working, and presents both low cost machines such as the Amiga, an
of GEM (a graphical extension to Pd, or Pure artistic concerns and technical demands which underground movement, known as the
Data, the supremely extendible artistic perhaps make video a tougher medium to work Demoscene, emerged, providing a platform and
environment), presents one extremely novel, with successfully. Above all, real time video still
conceptually clean integration of both audio presents quite specific technological challenges
and visual material, using electromagnetic when it comes down to grabbing, processing
Just how do
radiation from the monitor displaying images to
generate live sound. Indeed, in the case of
and throwing out live material. The sheer
volume of data which uncompressed video artists interact
artists such as ap (Martin Howse, Jonathan presents at reasonable resolutions and colour with computers
Kemp), or applications such as Pd, little, if any, depth, coupled with demanding, complex
and what are the
differentiation is made between the two fields,
with sound and video material handled solely as
mathematics performed across such large data
sets, make of video coding a daunting task. The most creatively
data. And in heavily code-based initiatives such 25 frames per second clock is always ticking in fulfilling means?
the developer’s head, and her code quite simply
has to keep up with this frenetic pace. Hardware
can only do so much, and artist-coders need to
be up-to-speed with specifications and
instruction sets, pushing machines to the limit
with tricksy low-level code. More abstracted,

52 LinuxUser & Developer LinuxUser & Developer 53


Coding for sight and sound Coding for sight and sound

but successful nonetheless. Live coders, grouped JOCKEYING FOR POSITION Farmers Manual push Pd extension GEM to the To quickly recap, Pd presents a visual
under the TOPLAP (Live Algorithm If the digital audio sequencer is the rather dull limit, flattening audio and visual data in glitched environment allowing artists to connect math,
virtuosic performance
Programming and a Temporary Organisation for mainstay of every sound studio, then Non control and generator objects in complex
its Promotion) banner, have also explored the Linear Editors (NLE) are the bread and butter of arrangements called patches which represent a
use of the early children’s programming video work; a solid dependable tool which is work in progress. Patches can easily be re-

Artists are always bound language, Logo, devised by Seymour Papert for used by necessity rather than for true artistic edited, re-run, and controlled by a huge range

to some degree by the production of live visuals. Dave Griffiths, a


major player on the SuperCollider scene, uses
exploration. As such, apps such as the ambitious
Cinelerra, coded more or less solely by Andraz
of external and networked sources. A flattened
approach to audio, video and all data is the key The 25 frames per
available technologies Scheme, a relative of Logo via a shared Lisp-like Torri, unfortunately fall outside the remit of our to Pd, providing artists with the essential ability
second clock is always
grammar, to produce somewhat formalist, live investigation. However, as a good many natural to throw stuff together, connect disparate data
coded 3D work within his own Fluxus NLE operations, such as transitions, equally well sources to complex processes, control structures ticking in the developer’s
community for coders to show off skills and environment. Logo’s turtle graphics and apply to live video processing, there does seem Throw nearly 100 mixes, effects and frame and outlets. Pd itself is more or less exclusively head, and her code quite
ideas. The particular aesthetics and concerns of
this scene shine through in the work of
instruction set, designed to command a robot
or screen-based turtle to draw often recursive
to be a growing trend towards crossover of NLE
and live video apps, particularly suites which are
blends into the toolkit, alongside chaining with
EffecTV and VeeJay adds up to a powerful
audio angled, though of course this doesn’t
stop artists projecting their own patches, as
simply has to keep up
contemporary coders such as Jaromil of FreeJ patterns, crop up again in SuperCollider and geared more around the art of VJing; mixing, package which also boasts a decent level of they re-patch live, or even making use of Pd’s with this frenetic pace
fame. Video coding is still very much a skilled, this neat, low tech approach also fits easily with matching and creating visual material as an control, with a handy hotkeyed console and decidedly old school graphing functions.
virtuosic affair. Tom Schouten’s work on Packet Forth, within adjunct to DJs or live electronic audio. Andraz remote access using either its own VIMS Until recently GEM, kicked off by Mark Danks objects into the mix. Objects are logically
Even modern hardware struggles to keep PDP, which he describes as “turtle graphics on Torri is heavily involved in the Piksel initiative, protocol, or OSC (Open Sound Control). and now developed primarily by Gunter Geiger divided into controls, which includes mouse,
pace with the complex data manipulations steroids.” and the LiVES (LiVES is a Video Editing System) FreeJ, from master coder Jaromil of dyne:bolic and IOhannes m zmoelnig, was the choice for keyboard and tablet access. The Gem-window
dreamt up by today’s artist-coders. Artists are application, coded by Gabriel Finch, aka fame, is another such more accessible, VJ real-time graphics under Pd. GEM throws in a object is also here, and this must be used to
always bound to some degree by available HIGH LIVIDO Salsaman, is another case in point. LiVES started oriented app, which does offer a pleasant old full multimedia toolkit, but does impose some provide the rendering context for every patch.
technologies, pushing hard against these Technical constraints can work wonders for life as a simple, small GNU/Linux NLE, and it school approach to the problems of working limitations, dividing the audio and video worlds Gemhead specifies the start of the rendering
barriers and in some instances breaking through artistic creativity, and with an often common does still fulfill this function admirably, offering a live with visuals. The latest FreeJ 0.7 iteration in a slightly unhealthy manner. Sure, users can chain. Manipulator objects provide for such
to find novel ways of working which then feed code base and set of programming concerns decently intuitive GUI with cut and paste presents a range of interfaces to the well written control one medium from the other, but this things as scaling and vector translation and self
back into visualisation or creative industries. shared by Free Software artist-coders, it’s less facilities, and support for a good range of input underlying realtime video manipulation engine. doesn’t add up to a pure data approach. That explanatory Geos offer building blocks such as
Free Software and a shared codebase supports likely that the bigger artistic picture will become and encoded formats. However, to some extent A GTK2 interface is accessible, but not said, artists such as Erich Berger, make good use spheres or polygons. You’ll also find plenty of
this sometimes symbiotic relation, which shares obscured by bits, bytes and low level LiVES has recently morphed into something of a recommended for live use. The Vi style console of GEM in masterfully straddling both media. particle objects, Nongeos for lighting and
much in common with academic research implementations. Collective projects such as well featured VJ tool, with a reasonable range of with well documented hotkeys and completion, GEM, an external or add-on library for Pd, powerful pix objects supporting a huge range of
models. Indeed, many of the computational Livido (Linux Video Dynamic Objects), which extendible effects, easy selection of sets of courtesy of S-Lang, is probably the most integrates a vast array of math, control and operations on pixel data. These include effects,
issues associated with the wide spectrum of aims to create a standard, flexible plugin API for frames, and good pluggability with apps such pleasant interface, with tab completion of basic effect objects with a decent, complex OpenGL composites, filters, and access to sources such
video, have been addressed by academics, with video apps, ensure that the burden of complex as PDP. An NLE environment may not present commands and concise online help. FreeJ can oriented set of objects. You can play with as image or movie files. Abstract vector and
historic papers presented at the annual coding is well shared, with developers beavering the most intuitive interface for VJ work, but also be scripted, using Javascript, accessed polygonal graphics, lighting, texture mapping, maths operations round out this powerful
Siggraph conference, a peculiar marriage of away in their own field of expertise, and sharing Salsaman, a major player in the Livido project, remotely with VJoE (VeeJay over Ethernet) or image processing, and camera motion. GEM external.
commerce and art. new concepts and ways of working. Indeed, does seem more than adept at running live with controlled by MIDI or joysticks. Hotkeys boasts a huge number of mature objects, with As you can imagine GEM can take some
much of the contemporary codework with LiVES. probably provide the fastest path to the VJ recent iterations of the library adding a getting used to, and a knowledge of the
DEEP ASCII video does share a common base, with Kentaro Hardcore VJs should also check out Veejay, action, and FreeJ does present a flexible yet easy complete wrapper around the OpenGL set of OpenGL way of doing things surely helps. As
At the other end of the spectrum many artists Fukuchi of EffecTV fame, swopping code with from a team headed by crack coder Neils to use approach to video, simply breaking down functions which throws more than 250 new with nearly all Pd externals, the main source of
favour a low level approach above the slick Andreas Schiffler, coder of SDL_gfx, back in the Elburg. VeeJay again presents an NLE approach the whole mix into layers and effects, both of
graphics of more demanding applications. The early days when Kentaro was working within to VJing, centring around the cut and paste of which can be easily juggled and manipulated.

Jacking video
ascii aesthetic, images produced by a basic the Japanese entertainment industry, producing clips in edit lists. Clips can be recorded from Layers are pretty much self explanatory and can
character set, is ever popular and ever portable. VJ style tools. As this code-base developed, existing clips, live streams or multiple sources. be drawn from live, pre-recorded (DIVX/AVI),
Originally conceived as a means of outputting Jaromil, producer of FreeJ and the excellent Veejay is particularly provocative when it comes text or generated sources. Blits or blends can be
rough low bitrate graphics on slow hardware, dyne:bolic distro, shared and developed down to switching clips, feeding back frame selected for each layer to allow mixing, and Throwing sound around, feeding it through a host of effects and apps, or even piping it across
and of distributing visuals with supremely low material, and EffecTV code even finds its way selections and changing playback speeds. chains of effects are applied to selected layers. networks, is a trivial affair under GNU/Linux. The toolkit is mature and very much in place,
bandwidth, the ascii approach still finds its way into ap’s work, Yves Degoyon’s PiDiP extensions Effects, which throw in nearly all of Kentaro’s allowing for all manner of playful artistic plumbing with JACK, OSC and simple Unix tools
into all the major Free Software packages for to PDP and the GEM external. Of course, there venerable EffecTV filters, can be positioned and providing a solid infrastructure. Audio is so much easier to deal with. Try piping raw video data
visual work, from PiDiP and gdapp to FreeJ. Full are many such strands of development, and this re-positioned in the chain live, to alter the final across a local network and you’ll see the issues immediately. And the networked transparency
length ascii videos have been produced by the is just one history which is best expressed result. FreeJ is fast, neat and reasonably which audio enjoys is in tatters when it comes to working with video. With no common
Ascii Art Ensemble, based in Slovenia, and the through the Piksel initiative at Bek. The roots of expressive, though the choice of scripting transports (vloopback is now deprecated), protocols or infrastructure, visual data is often
British artistic group ap have also produced an large scale projects stretch far and wide, with language may not suit all tastes. imprisoned within one ringfenced app. Fine, if you’re a lone artist working solely with Pd, PDP
ascii video conferencing tool. Live coding, as numerous packages, from Mplayer, through and PiDiP, but what if you need to jam with others using apps such as Veejay? The problem can
explored in the last issue, also presents a GStreamer to SDL acknowledged as inspirations, A REAL GEM roughly be broken down into the twin issues of interoperability and plugin architecture. Given
supremely raw, low-level approach to visuals. models or code donors. And shared or common As we’ve seen throughout this series, Pd, these, infrastructures can easily be created which provide that much needed transparency for
Flattening data with green screened efficiency, ap’s gdapp
Exposing the interface, or working concerns simply don’t deny the existence of gets nodal with visuals accompanied by a huge raft of externals, really applications. Thankfully, the Piksel video framework, a Free Software initiative which kicked off
methodology, of the artist is a common trope, mavericks, with playful artist-coders such as does present the most flexible artistic at last year’s conference at Bek, is attempting to address these thorny issues, pooling some of
Tom Schouten, providing a completely different environment for constructing standalone apps, the best minds in the video coding scene on intensely active mailing lists and hardcore CVS.
take on cross media chicanery, yet one which prototyping designs or purely for artistic The Piksel aims to implement a library of plugins for dynamically loaded video processing apps
well integrates with a host of other apps and exploration and experimentation with and colourspace transforms. At the same time, a common set of control commands, a video
approaches. structures, concepts and methodologies. version of OSC as it were, is under discussion and a library implementation is being attempted.

54 LinuxUser & Developer LinuxUser & Developer 55


Coding for sight and sound Erich Berger whips up a storm, with image as pure sound
thanks once more to the ever so versatile Pd and GEM
Desktop publishing

documentation is example patches which in this it via Emacs, or, of course, run it from Pd. PF Scribus is the open source desktop publishing tool that comes with many Linux distributions.
instance cover such areas as lighting, video, communicates with Pd using standard Pd
particles, and textures. Help patches are also messages, and now implements all the PDP Martin Althoff takes Scribus out for a trial run
readily accessible for each patch and a number functionality, such as those new data types and
of primers exist. objects, for Pd. PF could be described as just
another take on Pd, and all these issues of
PACKET IN pluggability do open up the fundamental
If GEM doesn’t serve to keep you busy with question of interface; just how do artists interact
multimedia experimentation, PDP (Pure Data symbol. Though currently only a handful of with computers and what are the most
Packet), another huge Pd extension library packet formats exist, for encoded images, creatively fulfilling means? These are questions
which has itself spawned other externals, should textures, render buffers, matrices and even which nearly all these Free Software apps
certainly stretch your imagination. PDP, though cellular automata, there’s no reason that PDP is attempt to answer, through diversity,
grown from the fertile ground of GEM, perhaps restricted purely to the visual realm. community and mutual inspiration.
presents a clearer way of working which is more It’s worth understanding author, Tom
in tune with Pd’s central philosophy. PDP is also Schouten’s intriguing take on data packets, as

Key Links
more ambitious and offers an interesting and this does give a good idea of how versatile PDP
active development model. Though not can be. Sure, you can dive into PDP and play
exclusively dealing with visual material, PDP is with well documented sample patches, but
more oriented towards working with real-time these are just the tip of the conceptual iceberg. Erich Berger:
video, though OpenGL operations are Data packets can store all sorts and types of randomseed.org
supported using 3dp objects in PDP. It’s all data, offering both a raw buffer for bits and an
about aesthetic choice and working philosophy, all important symbol describing how it should Piksel
with GEM seeming perhaps more formal and be interpreted. For example, the symbol image/ www.piksel.no
more suited towards abstract, systems driven P411/16/320/240/3 describes the video frame

Page layout with Scribus


work. PDP inspires a messier, more ad-hoc way packet uses. As we’ll see, the very latest PDP ap
of working. Of course, with Yves Degoyon’s pushes this concept even further, embedding www.1010.co.uk
huge PiDiP extension library for PDP, you can Packet Forth (PF) code in the packet. This 0.13.0
have the best of both worlds, making use of version of PDP implements some radical Ascii Art Ensemble
gem2pd and pdp2gem objects to connect both changes in a brand new libpdp, though PDP www.ljudmila.org/~vuk/ascii/aee.html
PDP and GEM. PiDiP (the deliciously recursive can still can be compiled using the older PDP
PiDiP Is Definitely In Pieces) is all about adding kernel and indeed this is the default. PDP 0.13.0 TOPLAP

C
connectivity, by way of diverse streaming packs in the usual huge array of objects www.toplap.org onventionally, the role of laying out the the publishing process. Text is pasted on the cork message-board to which you attach bits of
objects, to the already powerful PDP platform, providing for all the usual sinks, sources, filters, pages of a magazine or journal is fulfilled page, and presented in different fonts in the paper, notes containing text or photographs,
alongside video manipulation tools (again the transforms, pixel effects you’d expect from a Cinelerra by the graphics designer, working with context of illustrations and graphics. The role of onto which you cannot write directly. For the
full EffecTV roster) and control structures such fully featured multimedia library. PDP offers heroinewarrior.com/cinelerra.php3 the de facto standard tools, QuarkXPress or the layout program is to allow manipulation of sake of convenience Scribus optionally allows
as motion detection and colour tracking. much more though, with optional support for Adobe InDesign. QuarkXPress is relatively the ingredients, text, graphics and fonts, into the auto-creation of a text frame covering the
PDP really maxes out Pd’s already insane embedded Guile, and a new take on data LiVES conservative, and somewhat dated, and has the desired format. The result is saved as a PDF/ whole page when a new document is created.
pluggability, allowing for generalised objects packets with the embeddable Packet Forth www.xs4all.nl/~salsaman/lives been around for many years. Despite its long X file. PDF has become the standard format for While it is possible to write and edit the text
which can be flattened using the PDP type interpreter. Libpdp is highly experimental, but if history and wide adoption, QuarkXPress has not print production. Virtually every magazine is in the frames with the Scribus text editor, the
conversion system. Indeed PDP takes Pd’s data you’re prepared to take risks and work through Veejay evolved to meet the ease-of use criteria delivered to its printer as a high-resolution PDF more usual method would be to import the
flattening philosophy and runs with it, often dense documentation on developer veejay.sourceforge.net expected of modern software tools, and suffers file that contains a mix of vector and raster content from an external file. Scribus supports
providing a brand new Pd atom called a data mailing lists, the resulting artistic explorations from awkward workflow. Over recent years, data. For those without a direct involvement in plain text and CSV files. Graphic files are
packet. What this means is that any data object can be extremely rewarding. PF really does push FreeJ: Adobe InDesign has gained favour, benefitting desktop publishing, such software holds little of similarly imported into graphic frames. Scribus
now exists on the same footing as a float or Pd’s extendibility to the limit. Indeed, PF leaves freej.dyne.org interest. People that do work with layout supports a variety of standard graphic formats
Pd behind, in that it can easily be used as an programs such as Scribus on Linux, whether out such as PNG, JPEG and TIF. To edit images,
There are plenty of
An underground embedded scripting language in your own C
apps, in the same manner as Guile for example.
Pd
pure-data.iem.at features to make
of sheer interest or to earn a living, treasure a
clear workflow and precision in all aspects of the
Scribus accesses The Gimp. The graphic frames
allow the scaling of the images without the
movement, known as the As Tom Schouten puts it, PF turns PDP into a
Scribus a good document design. Both of these criteria are met need to actually modifiy the image. But for
Demoscene, emerged, tool for writing PDP. GEM
workhorse application
by Scribus, currently at version 1.2, the quality reasons, large modifications should be

providing a platform and PF is a tough nut to crack, combining a non-


standard Forth, a highly minimal stack-based
gem.iem.at aKademy Edition. left to a complementary graphics package such
as The Gimp.
community for coders to language, with some Lisp list operators and PDP from a fresh approach to workflow and access THE MESSAGE BOARD The frames on a page can be visually placed,
show off skills and ideas actions on pure data packets. What’s more zwizwa.fartit.com/pd/pdp/overview.html to a vast range of features. The open source So what does Scribus have to offer? Like other possibly aided by the adjustable snap-to-grid
important to understand is the beauty of the PF alternative to these packages, Scribus, stands up DTP programs, Scribus is frame orientated. function, or measured exactly to the horizontal
concept. It throws code into the data soup and PiDiP well to direct comparison. Scribus has the Unlike a word processor, all document content X and vertical Y coordinates needed.
enhances the supreme pluggability of Pd. ydegoyon.free.fr/pidip.html additional attraction of being Free Software, such as text, tables and graphics are held in Measurements can be given in points,
Within data packets, meta-data acts as PF code. and is available on a more economic platform, frames. The page is a container onto which millimeters, inches and pica. The precise
PF can be accessed as interpreter from the EffecTV which should appeal to many publishing firms. these frames are placed, but cannot hold text placement of objects, up to an accuracy of 1
command line, or you can easily shoot code to effectv.sourceforge.net Page layout programs are a vital element of by itself. You can visualise this by imagining a micrometer (0.001 mm), is one of the

56 LinuxUser & Developer LinuxUser & Developer 57

Вам также может понравиться