WEBVTT

00:00.000 --> 00:05.000
[Automatic captions by Autotekst using OpenAI Whisper V3. May contain recognition errors.]

00:08.076 --> 00:16.243
The workshop that I'm organizing today and the materials that I have 
provided, also kind of like a parting gift to the C2HO community, please

00:16.323 --> 00:22.368
feel free to use it. They have been developed together with other 
members of the Ouroboros Collective, which is an art and design

00:22.408 --> 00:33.197
collective that also runs a festival. We run a festival every year in 
Prague with topics that cover arts, technology, design, ecology, very

00:33.257 --> 00:41.008
much research-driven and in a very participatory sense, so creating 
occasions for people from different disciplines to meet and see what

00:41.088 --> 00:53.221
comes out of it. Now, also the files could not have been designed and 
developed without the support of, of course, Ajo, but also the people

00:53.281 --> 01:02.105
involved in the course Design for Digital Products, in which I taught a 
little module that was called Latent Interfaces, where we already use

01:02.125 --> 01:11.491
TouchDesigner in many creative ways. And the students that you see 
here, They are over here. So of course, I need to start creating them too.

01:12.031 --> 01:20.020
And then also other collaborators, Oliver Frimo-Amundsen and Lenka 
Hamosubat. So that for the credit where the credit is due. Welcome to

01:20.060 --> 01:20.861
TouchDesigner.

01:23.701 --> 01:32.449
Welcome, you just made it. You cross the portal, and now this thing opens 
up. From an interaction design perspective, if some of you have

01:32.610 --> 01:40.477
practiced with it, you will see that it already gives you a lot of clues in 
terms of how it's gonna work. You have a timeline in the bottom. So all the

01:40.557 --> 01:47.003
final cut and stuff, programs like that that are very time dependent. 
You see some of the affordances here.

01:50.203 --> 01:53.544
And then it has mega column here on the left,

01:56.686 --> 02:10.973
some panel here on the right, and then a mesh over here. Yeah? Good. So 
timeline to control time stuff. If you stop it, you see the timer stops.

02:11.494 --> 02:21.648
And also a bunch of other things that should be moving around are not 
moving anymore. Yeah? So click, and we see this green thing, whatever

02:21.688 --> 02:33.564
that is, shaking, shaking, shaking. This we have. The moment you stop 
it, then it doesn't move, right? So when we say TouchDesigner is a

02:33.984 --> 02:41.709
node-based visual coding language, it's because we are going to be 
basically connecting nodes that we drop here in this Miro

02:41.729 --> 02:52.696
board-looking place. It doesn't work that different from Miro, in 
fact. But let's not go there today. Then... What other things can we see?

02:53.136 --> 03:01.380
Every time we click on one of the different nodes that are not really 
called nodes, they are called operators. If you want to use the vocabs of

03:01.420 --> 03:12.546
TouchDesigner, but we can call them whatever. If you click them, you see 
that this panel on the right changes. Because this panel on the right is

03:12.566 --> 03:24.363
the properties. that each one of those operators has. So TouchDesigner 
is a game of throwing operators, connecting operators, and then acting

03:24.604 --> 03:33.967
on each one of these of these parameters. Because that's what 
TouchDesigner has that for other programs is not that easy, is that yes,

03:34.027 --> 03:40.670
you can control the modules or the nodes where you store information or 
manipulate information. But the interesting thing is that you can

03:40.730 --> 03:49.092
really control each of the individual parameters with any other 
individual parameter through a drag and drop approach that I'm going to

03:49.132 --> 03:57.376
show you in a second. That's, I think, what differentiates 
TouchDesigner in terms of flexibility. So anyways. Here we have

03:57.416 --> 04:10.164
something called palette that, ah, well, before we go, let's go full on 
UI. Up here, wiki forum tutorials. Yeah, super good, actually, that

04:10.184 --> 04:20.528
they have them there. And it already gives you a clue. And then we have 
here the frames per second and real time. This is what, for those of you

04:20.548 --> 04:27.612
that are not super technical with the stuff, the frames per second is 
what is going to tell you if you are overdoing it with your program.

04:28.292 --> 04:35.216
Either if you have too many operators, or the operators are using too 
much compute power, frames per seconds go down. The moment you notice,

04:35.236 --> 04:45.291
you go back and you say, OK, what did I do that this is going so slow? And 
then here you have the cooking on and off. That's like a hard stop. You can

04:45.371 --> 04:59.667
pause the sketch, or you can pause the mesh from running, but then you can 
also just completely turn it off in here. Yeah? Good, good, good. Then

04:59.767 --> 05:06.613
something that sends some signals. And then something about layouts. 
We are not going to be going into layouts because we are going to stay with

05:06.653 --> 05:22.541
this one today. And then a path to the project. And this is quite 
interesting because Here, the way I usually explain it is, and this is

05:22.601 --> 05:33.309
also interesting, what we are seeing here is a layer of the network in 
TouchDesigner, right? But that doesn't mean that you cannot have

05:33.409 --> 05:48.665
multiple layers on top or before each other. So if you now go back, you 
zoom out, you reach this point, yeah? And now I cannot go out anymore. And

05:48.705 --> 05:59.013
then I go into this one, and I have this network with the different 
operators. So just so you get a very quick idea that in touch designer,

05:59.033 --> 06:11.461
you can also move in the vertical, in the set. If this is xy, well, there is 
also a set dimension that you can navigate. Now, with this, we have

06:11.502 --> 06:21.078
concluded the explanation of the interface. We are going to close the 
palette because we don't need it for now. And the way you close it is with

06:21.118 --> 06:32.744
this little zip. So now we have more space. Yeah? Now is when we go into 
which operators do we have in TouchDesigner. Because it's all super

06:32.784 --> 06:41.143
simple. OK, we have this mesh. I throw operators. I connect them. Well, 
it can get super complicated because when you click twice, Here we have

06:41.883 --> 06:56.647
the op create dialogue, which is the operator create dialogue. Right? 
And here we have different colors. We have top, chop, sop, mat, dat, and

06:56.687 --> 07:12.009
then custom to make your own. Right? Each one by its own color. Yeah? And 
then at the very beginning, we have the comps. Yeah? Now. Today, we are

07:12.029 --> 07:21.313
going to be working with these three, the comp, the top, and the chop. 
Okay? The way... Well, also, TouchDesigner is interesting because of

07:21.353 --> 07:31.518
the incredible cocktail of metaphors they use to describe what is going 
on. So let's try to make it a little bit simple. Today, we are going to be

07:31.558 --> 07:43.495
working with tops that mean texture operators, So whenever you need 
pixels, you do this. And we're also going to be working with chops, which

07:43.575 --> 07:52.483
is channel operators, so signals. One, the channel operators is 
usually what we're going to have for audio. The texture operators is

07:52.523 --> 08:04.265
what we're going to use for image. Yeah? And then surface operators is 
3D. Materials is to put materials like textures and stuff. Well, not

08:04.285 --> 08:14.212
textures, but yeah, 3D experts out there, you know what I mean. With 
surface operators, you have the scaffolding or the grid or the web

08:14.573 --> 08:20.500
thingy, and then you put the material that is more shiny or less shiny. 
Yeah, we are not gonna be doing that. And then you have the data

08:20.540 --> 08:27.825
operators, which is for data. And that's the other interesting thing 
about TouchDesigner is that with that, then you have full Python and you

08:27.845 --> 08:36.755
can do whatever you want. So whatever you cannot do already in 
TouchDesigner, if you know Python or ChatGPT is very good friends with

08:36.795 --> 08:47.261
you, you can actually manage to do really complicated stuff too. And 
then we have the comps so also remember the color the color coding is is

08:47.301 --> 08:56.688
the is the thing here like it already tells you but then this is how you get 
out of it is with these comps and the comps are great and the comps are

08:58.209 --> 09:10.993
Containers of a bunch of operators Okay, so an example and they are gray. 
So basically you follow colors. This one is purple, this one is purple,

09:11.033 --> 09:23.439
so we know we are talking about textures. Then this one is noise, so we 
know it's producing some noise. And then here we have one that is gray,

09:24.339 --> 09:38.228
but has purple inputs and outputs. The moment they are gray means you can 
get into them. and they have other operators inside. Now, more

09:38.288 --> 09:51.432
conventions. Each one of the operators have... You can interact with 
them in two ways. One more level of complication. So, as you can see now,

09:51.732 --> 10:04.816
if I click this operator, the gray operator, the comp, I can manipulate 
it. I can click or activate or deactivate these flags. There is also

10:04.856 --> 10:12.121
flags here, but then we have this flag that is very important that is 
called viewer active. If you click that flag, then you can modify the

10:12.201 --> 10:23.408
content inside of the operator. So, without clicked, modify the 
operator. When you click the viewer active, modify the content. Just so

10:23.428 --> 10:31.816
you remember, when you're trying to connect things, because when you 
have this one active and you try to move it around, you can't. So if you

10:31.856 --> 10:42.405
realize you're trying to move an operator to connect it to something 
else and it doesn't work, it's because the flag is active. Good. And the

10:42.445 --> 11:01.471
same one. The same thing happens here. Okay. Now, let's do something 
super simple. And it's to analyze a little bit what is going on. So, we

11:01.511 --> 11:15.315
have one operator that is called movie filing. And that operator... So, 
if you... If you take a... Video or an image and you drop it in touch

11:15.355 --> 11:31.326
designer For example the screenshot that I just took of the stuff it will 
appear as an operator that is called movie file in Yeah Right, that's how

11:31.606 --> 11:44.681
these files were created so you can also drag and drop directly files for 
example also What you can do? is let me find ah here you are so i have

11:44.721 --> 12:03.201
another one that is called pizza vibe i have where are the files from the 
yeah So and then on the files that you have today you have one Folder there

12:03.361 --> 12:12.529
that is called the grand packs and that is the house music that my father 
at his 65 years old decided to start making which I will be using today for

12:12.589 --> 12:27.770
illustrative purposes after he gave me consent so for example you take a 
one file. Let's take Exaltation, the first hit of his album Jump. So, as

12:27.790 --> 12:39.757
you can see, we drop You can also drop the files and they already, in terms 
of media, so photos, videos, et cetera, et cetera, you can drop them in

12:39.797 --> 12:48.981
there directly. But that doesn't mean that they work straight away. 
We're going to be working with images and sound mostly. So in this case,

12:49.581 --> 13:03.817
you have your own image and the way you connect one node to another node is 
you just drag and connect. Yeah?

13:08.822 --> 13:20.503
Now Now, the whole structure of connections, there is links, there is 
references, there is the cables. We are not going to go straight through

13:20.523 --> 13:33.750
that because we're going to be playing with this directly. But in a very 
basic level, if you click on this one, if you click on the output of one and

13:33.790 --> 13:40.682
connect it to the input of another, you drag and connect. To disconnect, 
you click once and

13:43.805 --> 13:53.154
then click again, and then it disconnects. Or you just connect 
something else. But if you see what is happening here, it's very much a

13:53.654 --> 14:05.528
left-to-right flow of information. On the left, I have a file. This file 
And if you even look closely to the cables, you can see that some of the

14:05.568 --> 14:14.735
cables are vibrating while some of the cables remain steady. That means 
that there is a constant transfer of info in between one and the other. So

14:15.756 --> 14:26.765
I have an operator that is called Displace. And the operator Displace, 
if you hover on top of the input, it tells you input 0, source image. Input

14:27.365 --> 14:28.226
1, Displace image.

14:31.329 --> 14:43.929
Yeah? So the way this is working is this image goes in here. And then in 
this other input, I have another operator that is displacing the image.

14:45.969 --> 14:54.993
Now, reverse engineering here again. I click the image. I look at the 
properties. And it says, I'm a movie file in. I'm called this. And then it

14:55.033 --> 14:56.814
gives you all these parameters.

14:59.415 --> 15:09.337
Usually, many of these parameters are kind of self-explanatory. If you 
know that it's a file image, then you know, oh, well, the movie filing

15:09.597 --> 15:15.480
also works with video, so it tells you, am I playing, am I not playing, 
what is the speed, da, da, da.

15:18.582 --> 15:31.103
Other qualities about, yeah. Then. In the displays, for example, you 
also have all the different parameters.

15:36.846 --> 15:46.512
And then in this one, we are doing something different, which is we are 
bridging from one texture operator, we are getting one texture

15:46.552 --> 15:53.877
operator to be operated by a noise operator. Yeah? So we are going from 
channel to texture.

15:56.919 --> 16:08.487
And the way it works is you are specifying here which is the chop that is 
influencing this texture.

16:10.689 --> 16:16.573
If I take the name of this operator and instead I put it here,

16:21.537 --> 16:23.478
then I have it reacting to music.

16:27.352 --> 16:36.514
Yeah? Because at the end, what we're going to be seeing today is that 
TouchDesigner separates the kind of flows of the information that it's

16:36.534 --> 16:45.916
dealing with, right? So we have, on one side, all the pixel information. 
On another side, all the channel or signal information. So if we have one

16:45.976 --> 16:49.837
operator that transfers signal to pixels,

16:52.837 --> 17:00.918
then it doesn't matter which signal you are using. Okay, very quickly 
about the

17:02.919 --> 17:17.349
audio processing here in TouchDesigner is that here now we go to the 
channel operators and we have, if you click on the mp3 file that I dropped

17:17.409 --> 17:31.393
here, you can see that it's called audio file in. Right? And it has one 
output. That means if you want to play it, you need to add another one that

17:31.433 --> 17:43.121
is called audio file out. And if I connect it, no, audio file out, no. 
Audio device out. Audio device out.

17:46.624 --> 17:48.665
And there you have it. Right?

18:03.788 --> 18:13.499
My father is going to be so happy. It is also in this audio device out. It is 
also where you can choose the characteristics of your driver and how you

18:13.539 --> 18:30.648
are playing with it, etc. Yeah. So the one thing that we are missing is how 
to show on the screen what is going on. and for that what we do is so if you if

18:30.688 --> 18:41.335
we actually want to in touch design is called perform but it's to show the 
end of your network on the screen there is an operator for that and that

18:41.995 --> 18:52.802
one is in the comp and it's called window so when you have a window 
operator here it asks you which one is the window operator you want to

18:53.462 --> 18:59.384
show and we do the same thing that we were doing before and it says out

19:03.107 --> 19:17.622
okay and if you go down here you can see open as a separate window or open as 
a perform window if you open as a separate window you can just run it in a

19:17.642 --> 19:30.386
window. If you run it in perform, it's going to close TouchDesigner, not 
close, but put TouchDesigner in a latent state only to use all the

19:30.406 --> 19:40.309
resources for what you are showing. The important thing here is that to 
come back from the moment of the performative moment, you need to press

19:40.469 --> 19:49.029
escape and that is how you come back. If you close the window, you have 
closed TouchDesigner. Now, without closing this one...

19:53.971 --> 20:01.114
Without closing this one, let's go ahead and open the other, the file 
workshop that I mentioned before.

20:03.915 --> 20:05.996
That you should also have within...

20:13.319 --> 20:26.465
Let's open this file. But please keep this one open. Okay, because now 
the idea with the workshop is that I have assembled a bunch of different

20:26.665 --> 20:34.711
operators, but also a bunch of different networks that the idea is that 
you copy them from here, you move them to the other file where you have

20:34.751 --> 20:46.810
some basic, basic things going on. In this file, you will see that you 
have the window, you have the out, And then whatever it is that you put in

20:46.870 --> 20:59.913
the middle from whatever input, if you connect it to the out, then you can 
perform it outward. Yeah. So let's go very quickly into the workshop.

21:01.913 --> 21:14.173
And I will show you what I have added here. So first, what I have added is a 
more detailed explanation with examples already taken from the

21:15.634 --> 21:24.836
TouchDesigner tutorials and stuff like that of what we just talked 
about, but I ran too fast. So in case you get a little bit too lost, you can

21:24.876 --> 21:36.226
just check here and follow for a minute and it will tell you in detail. And 
then I have created One, remember, the color of the operator

21:39.267 --> 21:49.211
determines the function of the operator. When they are gray means you 
can go zoom in into them and see what's inside. So I have made one mega

21:49.231 --> 22:01.551
network of examples only for pixels. So, for example, this operator, 
the movie operator, that is the movie filing we were talking about

22:01.591 --> 22:13.055
before, when you connect it to a level, in the level you can connect the 
RGB values. I have... I'm putting an example of how do you mask things.

22:13.975 --> 22:30.439
Examples of... Examples of... How do you composite different things? 
Et cetera, et cetera. And then in the signals one, I have done the same,

22:30.759 --> 22:42.866
but for signals. So how do you make a timer? How do you have a button that 
triggers something else? Et cetera, et cetera, et cetera. Now, I'm not

22:42.886 --> 22:55.480
gonna leave you here with all this complexity, but we can do something 
together which is that you connect, you copy, let's select. And by

22:55.540 --> 23:05.087
selecting, you can, when you click on top of them, you select them in 
green. But if you hit shift, they start selecting in yellow. Yeah? So

23:05.127 --> 23:15.755
let's select the audio set, the audio analysis, the audio media player, 
and the bloom here. And then we copy them.

23:21.403 --> 23:22.304
Let me show you the bloom again

23:25.766 --> 23:40.596
Yeah, the bloom is here now if you see all those xxx here is because I have 
deactivated them for the in order to be more economic with the resources

23:42.497 --> 23:49.081
So if you want to see what they do so for example You have this one that is 
called 3p

23:52.638 --> 24:00.492
And it does that. And you have this one that is also giving you this kind of 
visuals.

24:04.175 --> 24:14.339
But so I am choosing the auto media player for now, but you can, for 
everything that I'm going to show you in a minute, you can do the same with

24:14.519 --> 24:23.362
each one of these instead of the auto media player. I'm using it as a 
placeholder for a texture operator. But all the ones that you see here is

24:23.442 --> 24:39.794
up to you to explore and connect there. But anyways, we were here. What we 
have here, if you notice when I talk, this is an operator to capture the

24:39.854 --> 24:45.935
audio from your microphone, but it's also an operator that you can plug 
in

24:49.495 --> 25:02.235
music directly. So if I catch this one and I put it here, then I'm 
connecting this one to this. So this operator is for both having sound,

25:02.275 --> 25:11.983
but also from the microphone, but also grabbing the audio signal from 
this stuff. And then if we connect this operator to this other operator,

25:15.806 --> 25:28.896
and we click on the viewer active, you can choose. This is how you do the 
audio analysis for the operator. So suddenly,

25:32.347 --> 25:45.338
Suddenly, in this operator that you see here, we are detecting the lows, 
the mids, the highs, Now, if we want to start controlling, because now

25:45.358 --> 25:53.562
what we are going to do is, we have done all the work of taking our signal, 
either from a song or from the microphone. We are putting it through an

25:53.622 --> 26:03.847
operator that gives us all the information about low, mid, size, et 
cetera, et cetera. And now we want to start to control some

26:03.907 --> 26:15.616
textures or something with what is coming from here. What we do is, We 
choose a chop that is called trail. A bit, a bit, a bit, a bit. Trail.

26:23.263 --> 26:24.865
And then we connect the trail.

26:29.850 --> 26:41.170
Yeah. And the trail what it's doing is giving you this oscilloscope look 
into what each one of the signals are doing. We have another operator in

26:41.210 --> 26:52.964
this case that is called AutoMediaPlayer and what it does is it takes a 
media folder and it plays one video after the other. one video after the

26:53.004 --> 27:04.273
other, one video after the other. And if you look into the parameters, 
you can see randomized playback. So this is the files that come standard

27:04.974 --> 27:17.778
with the operator itself. But if you hit on the media folder, And if you go 
to the files that I provided into the assets, I have made four different

27:17.818 --> 27:29.530
folders that have a lot of files inside of them. So if you click, suddenly 
it will open randomly each one of the files that are in that folder. And

27:29.570 --> 27:43.632
now we have all these videos. the turbine plate, I have this bloom 
operator that I'm going to activate, that what it does is it creates a

27:43.672 --> 27:46.815
bloom effect to whatever the input of what it's having.

27:50.879 --> 28:06.781
Yeah? Now, I'm going to use another operator to compose the image of the 
two that is called composite. And I'm going

28:06.801 --> 28:13.186
to connect the output of the bloom and the output of the media player.

28:23.307 --> 28:33.975
And in the composite you can see that the two inputs that we have 
connected appear here directly. And you can change their order. But

28:34.296 --> 28:43.683
what we are after... What we are after... Ah! And here you can see the 
operation that we are using to connect them. In this case it says

28:43.743 --> 28:47.786
multiply. But I'm gonna say add.

28:51.829 --> 28:52.230
And then...

28:55.093 --> 29:06.200
and then and then and then I'm gonna bring my output here and I'm gonna 
connect this one to the output

29:10.883 --> 29:11.704
and to the window

29:16.843 --> 29:26.966
and, and, and. As you can see, all I'm doing is just navigating in between 
each one of the operators and modifying parameters here and there. Once

29:26.986 --> 29:38.388
they are connected. So in this case, I'm connecting these two. I can see 
that it's too wide, like the effect is too strong. So I'm gonna reduce a

29:38.408 --> 29:40.809
little bit the bloom effect. But now...

29:46.434 --> 29:58.942
Now, what I would like to show you is how do we actually bridge again and we 
get from our music or our microphone to the audio analysis part that we

29:58.962 --> 30:08.908
have done to the operator in which we are seeing each one of these values. 
How do I bridge and I use one of these values to control another one of

30:08.948 --> 30:19.933
these values here? Yeah? And that is relatively simple. I'm going to 
change the color. Here, how it glows. So I have this operator selected, I

30:20.593 --> 30:31.157
have this glow, these parameters here that are the color, and then I have 
all these parameters here that are coming from the audio. How we go about

30:31.217 --> 30:41.160
it is, because I don't want to move it, but because I want to manipulate 
the parameters that are in here, I choose the viewer, I activate the

30:41.200 --> 30:56.328
viewer, And then I drop, I select the parameter that I want, and I bring it 
to the parameter that I want to modify. Yeah? And I drop it. And I say

30:56.708 --> 30:57.108
reference.

31:00.630 --> 31:11.875
So, I have put the lows to control that one. Let's try this one, or this 
one. And let's try the highs, R, G, P.

31:18.973 --> 31:19.153
Yeah?

31:22.475 --> 31:37.504
So, again, you have here the workshop. I have used one part for audio, one 
part for video. But if, for example, there is this one. My frames per

31:37.545 --> 31:46.190
second are going super low the moment I activated this one. So maybe that 
one is not a good idea. But...

31:48.922 --> 32:04.529
If instead of this texture operator that is the media player, I want to 
play with this image, I would just bring it here, paste it, and,

32:07.510 --> 32:16.534
and, and, or even bring it to the composite. Shoo, shoo.

32:21.403 --> 32:28.165
And then once again, if you want to see it on the screen, you go to the 
window, find the parameter that it says perform,

32:33.247 --> 32:34.428
and then escape to go back.

32:39.329 --> 32:52.670
So again, at the end, We are going to be playing with signals in audio and 
then texture operators. You find the signal that you would like to use as

32:52.830 --> 33:03.935
a controller for something else. Choose the viewer active. Find the 
parameter that you would like to control with and just drag and drop.

33:08.324 --> 33:18.192
Yeah, and then for today, these are the basic parameters. They come 
where you can put a bunch of texture operators or images, and it combines

33:18.232 --> 33:30.583
them into one, and the window operator to display them outside of the 
screen. Flow one, without the MIDI. You have a MIDI too. Let's try

33:30.643 --> 33:42.720
without the MIDI first. Very quickly, what is happening here is that I 
have connected the same operator that I had before, the one with the

33:42.801 --> 33:55.626
microphone. Again, to this operator, you can connect an external file. 
now i have it connected like this because the way this file was used by

33:55.706 --> 34:04.550
some of the students was during a live performance so it was just picking 
up the sound that the dj was producing to to react to that but if you

34:04.570 --> 34:20.554
connect a file it will react to the file and the way you go about it is you 
choose in the chops the audio device in chip and then you connect the

34:20.614 --> 34:30.046
audio device in to the entrance of this and suddenly it works on the file 
that we have. Yeah? Does that make sense? Okay, this is for the

34:30.086 --> 34:47.586
beginning. Then, we have the whole audio analysis part. And then I did 
the same. I did a trail of all the elements, of all the different channels

34:47.626 --> 35:00.015
that we are processing before. And I added a different operator here 
that is called analyze. And analyze is doing exactly the same as the

35:00.055 --> 35:09.044
trail, but it's giving you just the moment the momentary value of each 
one of them in the trail you can see the the trail of the values like the

35:09.064 --> 35:20.636
history of them but here we are only getting those and then what i'm doing 
is separating each one of them so i take the low that is here and i move it

35:20.656 --> 35:26.521
here the mid the high the kick the snare the rhythm and then the

35:31.481 --> 35:41.843
the spectral analysis of the scene. We take from the audio analysis, 
then we selected each one of the channels, and then is where you can

35:41.903 --> 35:56.267
follow to see what each of the channels are doing. In here, I have one 
container with inputs that are movies, four inputs as movies, one, two,

35:56.327 --> 36:06.289
three, four. that are controlled by some of the signals that are coming 
from the audio analysis.

36:08.971 --> 36:19.378
And then I'm doing some processing of those images. But the audio media 
player you saw from before is basically like a folder that auto plays a

36:19.398 --> 36:32.039
bunch of images. And here we have one operator that switches between one 
or the other, depending on this signal. So if you follow this signal

36:32.079 --> 36:46.469
back, back, back, you will see that is the high. So based on the high 
frequency levels, we are switching between one image or the other. then

36:46.649 --> 37:03.433
we are compositing the two images, the output of this with the output of 
this and this is something that I might leave you to figure in a second if

37:03.473 --> 37:14.423
you're up for it, but it's basically some processing and some effects 
that you can figure out or not depending on the interest, but then We also

37:14.463 --> 37:23.030
have another comp. So again, bringing the output of this image and 
combine it with all this stuff. And here we have an interesting one that

37:23.090 --> 37:38.021
is called VideoDeviceIn. This VideoDeviceIn is here in the top. 
VideoDeviceIn. And what it does is it turns on your camera. So your

37:38.061 --> 37:49.652
camera comes here. It's also Well, this one, we actually don't need to do 
anything. And then at the end, we have the out just like we had before and

37:49.672 --> 37:50.152
the window,

37:52.994 --> 38:02.301
et cetera, et cetera. So very much like an evolution of the example that I 
showed before, but a little bit more complicated in terms of what we are

38:02.362 --> 38:02.762
controlling.

