We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Toonloop: animation for live performances

00:00

Formal Metadata

Title
Toonloop: animation for live performances
Title of Series
Part Number
5
Number of Parts
39
Author
License
CC Attribution - ShareAlike 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal and non-commercial purpose as long as the work is attributed to the author in the manner specified by the author or licensor and the work or content is shared also in adapted form only under the conditions of this
Identifiers
Publisher
Release Date
Language
Production PlaceMontreal

Content Metadata

Subject Area
Genre
Abstract
In this technical talk, the main author of Toonloop will describe how this free software works and why it has been designed with simplicity in mind. It displays image loops, and allows to apply GLSL shader effects on them. The use of the Clutter toolkit makes it possible to create rich user interfaces that are well suited for fullscreen video in the context of live performances and artistic installations. Thanks to GStreamer, Toonloop could grow and upport more operating system and video input types. Also, OSC and MIDI controls make the application open to new possibilities for interactive setups.
Keywords
22
Thumbnail
29:24
Convex hullResultantMultiplication signOrder (biology)Process (computing)outputProjective planeRight angleLoop (music)Demo (music)CuboidVideo gameSource code
outputVideoconferencingWebcamMultiplication signSpacetimeVideo gameComputer animationLecture/Conference
Real numberDirection (geometry)InformationBitLoop (music)WordRight angleMedical imagingTouchscreenDifferent (Kate Ryan album)ProgrammschleifeLecture/Conference
Direction (geometry)Computer animationLecture/Conference
Object (grammar)Lecture/ConferenceComputer animation
InformationLoop (music)Lecture/ConferenceComputer animation
First-person shooterInformationBit rateUltraviolet photoelectron spectroscopyMedical imagingFrame problemInformation2 (number)Computer animationLecture/Conference
Online helpInformationKey (cryptography)Medical imagingScripting languageGastropod shellComputer iconMultiplication signoutputBitMultilaterationVideoconferencingRepresentation (politics)Computer virusOpen setFunction (mathematics)Database normalizationCASE <Informatik>Communications protocolComputer animationImage resolutionFrame problemKeyboard shortcutSoftwareMiniDiscMessage passingAdditionComputer configurationSource codeExterior algebraLine (geometry)Right angleConfiguration spaceType theoryOverlay-NetzLoop (music)DigitizingPlanningSoftware testingPresentation of a groupSingle-precision floating-point formatComputer animationLecture/Conference
Graphics tabletMessage passingGame controllerOpen setCommunications protocolDirection (geometry)MathematicsMedical imagingState of matterProjective planeoutputSoftwareImage resolutionInterface (computing)Sound effectMusical ensembleMIDIComputer fileHard disk driveDisk read-and-write headFrame problemKeyboard shortcutCASE <Informatik>Shared memoryRule of inferencePatch (Unix)HypermediaScripting languageUser interfaceRange (statistics)
Real numberMIDIoutputGraph (mathematics)QuicksortComputer animation
FlagSelectivity (electronic)Contrast (vision)AdditionInterface (computing)Personal digital assistantComputer configurationLine (geometry)Configuration space1 (number)NumberSound effectVideoconferencingProper mapIterationScaling (geometry)Electronic visual displayPlanningMedical imagingShader <Informatik>Lecture/Conference
MultiplicationWindowPlug-in (computing)InformationResultantCoefficient of determinationMultiplication signSound effectComputer animation
Transcript: English(auto-generated)
Thanks everyone, my name is Alexander Casey, and I'll present you Toonloop. This is a technical talk, so I'm going to go into details, and later this afternoon I have an artsy talk in which I will more rather present the ideas behind Toonloop
and how it can be used for creative stuff. But now let's get our hands dirty and open the hood of Toonloop. So, Toonloop is a live animation performance tool. I created it to allow artists to make performances in which they show their creation process
as well as the results in order to make live performances, like live shows. So the animation is shown, and also we can see the live input of the camera
at the same time as the results. And the result is a looping clip, so that's why the name Toonloop for looping cartoons. So it's a stop motion tool, and well I guess I'm going to give you a little demo.
Alright, so this is Toonloop. Actually I'm going to switch over to another camera, it's going to be more fun.
Whoa, that was a clip that I saved previously. I've done that clip in France a couple of months ago. I'm going to start a new project.
Okay, there you go, fresh start. So, what you can see on the left is the live video input of my little webcam.
Indeed this is not a very good camera, it's just a webcam, but it also works with DV cameras. So I'm going to press space bar a couple of times so that you guys can raise your hand or do stuff like that. Unfortunately I can't zoom right now.
Okay, now I'm going to rotate this camera so that everyone gets dizzy. Okay, so what we can tell right now is, well the image on the right is looping,
and so it's constantly looping. Yeah, looping is a word. And well, I can make this loop differently. Like this is a random loop, and this is going to be backward.
Or actually if we press I, we're going to have a little bit more information about what's going on. So a little bit more info here. The direction we can see it's yo-yo, so this is going back and forth. You guys are quite funny, isn't it?
And I'm going to make this full screen so that's more fun to look at. So there's other directions, this is backward. So if you check it out, it's going backward, remember?
Anyway. And there's other directions, like drunk. Drunk is like, well you go back and forth and then one step forward, two step backward, and then, you know, randomly, that's inspired from a Pure Data object. And this is, yeah, this is back to forward.
So well, I'm going to continue, give you a little tour. You can use toon loop in a portrait, like if you put your camera like this, like sideways, it works too.
And there's other layouts, there's like, well there's some layouts in which you can put the two images, one on top of each other. So that works also. So this is the info, you can make the image faster of course. This is 60 frames a second.
Okay. And well, there's some help, you can get some info about what key to press. Right now toon loop is only controlled by the keyboard,
mainly controlled by the keyboard, but there's other inputs and outputs, and I'm going to tell you more about this. Yes, question? Yeah, sorry, I might have missed it, but can you see the previous frame that you took as a reference so that you can... Yeah, there's an onion skinning feature.
Okay, I'm going to create a new clip actually, because that one was a little bit crazy. So I'm going to make some close shots of my eye maybe, something like that. So then if I press O, I can see an overlay of the previous frame I took so that I can
position my eye in this case on top of the previous eye. And you can change the opacity of the onion skin. Yeah, this is a lot of fun.
And, okay, I'm going to talk a little bit about the inputs, and then I'm going to talk a little bit about the outputs of toon loop. So for the inputs, there's video inputs, there's video for Linux, this is what I'm using right now with my little webcam,
and it also supports DV cameras. DV cameras are the old cameras with cassette, but they usually give you a pretty decent picture quality, so that you can zoom, you can change the shutter speed and stuff,
or like the opening of the iris. So that's a lot better, that's what I use for performances myself, DV camera. It also supports X11 input, which gives you the live screenshots of your desktop. That can be handy for presentations or screencasts.
I don't know, I never used it myself. It was just easy to implement, so I did it. And there's the Gstreamer test picture, but that's not quite useful. And so that's for the video input, and right now it supports only four to three ratio images,
but I'm planning to support more ratios, more image size ratios soon, such as 16 to 9 and stuff. That should be trivial to implement, really.
And I'm also planning to support HDV, I'm almost there. HDV gives you very large images, 1,400 per 1,080, and also I'm planning to support Gphoto2 input,
but that's for later, that's a little bit of work, so I need help for that if anyone is interested. Yes? I point to you to stop motion before, like this other animation software, I presented in a lightning talk, I think last time here in Montreal,
when it comes to supported input things, they have an interesting capability in that they actually support using just shell scripts to pull in images, so that the user can just configure a command line command, for that it's like capturing from, say, single frame from HDV or digital camera, or some alternate imaging source. It's just kind of an interesting option to have
in addition to hard-coded native capabilities. That's very interesting, thanks for the suggestion. I was actually planning to do this, like at least support some network messages that would allow you to import some image from the disk,
so that's pretty much what you mean. I was planning to do it, but I didn't thought about all those other input types that were open, so thanks for the suggestion. I'll do it today, like tonight. No, no, kidding, it's going to take a few days.
Talking of OSC, or of network protocols and stuff, Toonloop can be controlled using OSC protocol. The OSC protocol is a network protocol. It means open sound control, so that's intended to be used with
musical software, like audio software. It's rather simple. This is the OSC interface of Toonloop. It supports messages such as grab a frame, change the FPS, move the playhead to a given direction.
You can, of course, save the clip. You can also save the project. Toonloop has state saving, so all your images are saved as JPEG images on your hard drive.
You can add, remove frames, change the playback direction. Pretty much everything you can do with the user interface, you can do it with open sound control messages. One thing I didn't mention is the image size for the input
can be variable. You can specify whatever image size. There's actually V4L2 cameras that provide quite large images, so that can be quite useful for large images.
For input, Toonloop also provides MIDI interface. I'm going to show you a little MIDI script. This is an XML file that specifies what each note on a keyboard,
because MIDI stands for Musical Instrument Digital Interface, so it's for pretty much piano or other musical instruments. You can control Toonloop with musical instruments, and that's quite handy for live performances because I created Toonloop to make shows.
These are rules, MIDI rules. Each note is, in this case, hooked to selecting a different clip. On my keyboard, I have 40-something notes, so each note selects a different clip. Also, the controls,
those knobs on the keyboard, can apply effects and change the value of effect given a certain range, like this guy's saturation from 0 to 2, so 2 means 200%. I have a little...
I'll try to show you this quickly. I have a little example of PDPatch. Pure Data is a little software for coding with graphs and things like this.
I just need to select my MIDI input. Here's my clip. I should be able to change the miscellaneous stuff, like saturation. No, it's not working at all. Oh, I need to restart Toonoop, sorry.
I didn't use the proper flags. Right now, the interface is only for setting up your configuration options, you need to do it manually on the common line. That's quite annoying. I'm planning an assistant with launch Toonoop with no
common line option. It should display a little assistant in SVG buttons, in all the interfaces in Clutter. I use Clutter GST to display the video in Clutter.
Let's make another clip. What can I do? No, that's not nice. I'm going to do something like this.
Now I'm going to simulate sending MIDI notes. That should change the saturation of the image, here you can see. This is totally grayscale, this is like 200% saturation. That's in the middle. There's also weird effects like
additive crossfade. That's quite weird. This is all done through either Clutter opacity stuff or GLSL shaders. I'm changing the contrast here.
You can change the live feed opacity. Well, anyway. Select a different clip. I'm choosing clip number two, which is empty.
Now back to clip number one. It's a lot of fun. I'm planning to add plugins so that you can write more effects.
OK, I have no more time. I also have an info window, which is a separate window. There's a lot of paths for the future features, but I have no more time. I guess I'll tell you more about this this afternoon in my other talk. We have one extra talk this morning, so it's getting late. Maybe I'll delete.
Soon, 20 minutes. I think questions, we can keep it for this afternoon. We have one last there is one last talk.