Total Newbie

nalayevlum's picture

Hi all! I'm a total newbie. Could someone show me where I can find really basic example movie compositions; stuff that'll show me good basic techniques, typical building blocks and common patch arrangements? What I'm attempting right now is to play a movie and replace it with another movie on user input (good design here being that the first movie is turned off (not leaking) and that the load time on the second movie is minimal (using a buffer of some kind?). Thanks in advance!

cybero's picture
Re: Total Newbie

If you are running Leopard then take a look within the Developer/Examples/Quartz Composer folder.

If you are running Snow Leopard, then take a look within the /Developer/Library/Quartz Composer folder.

There are literally hundreds of examples posted to this site, many old, but upgradable examples upon quartzcompositions.com and literally hundreds to be found elsewhere upon the web.

Try cybero's site's resources page and not only the section explicitly labelled Examples & Samples, links thereupon to toneburst, futurisimo & many others besides.

Try QCTwit

Try just putting the search term .qtz into Google, you'll be amazed at just how many results you'll end up getting that aren't even mentioned as yet upon that Resources page link above.

Start with the Developer examples is my best advice , I think.

They really do cover the bases pretty well, without even drawing upon any 3rd Party plugins.

nalayevlum's picture
Re: Total Newbie

Will do - Thanks very much. BTW, could you aid me on leaking and buffering?

cybero's picture
Re: Total Newbie

http://kineme.net/files/12movieMultiplexer.qtz by franz might be a pretty good place to start in regards of swapping movies around in the same render window.

Attached is a much simplified version of that original .

IME the length of the movie makes a lot of difference upon loading time between movies. Local paths do work a whole lot faster, the two I've placed into the multiplexer are web paths . I've also included a path in the notes to a movie that works but does not load quickly at all , just so you can compare.

You might also find http://kineme.net/composition/smokris/VCR by smokris to be a very useful study, not least for the extra controls.

From which monitoring application are you getting your leaking / buffering feedback from? Are you running Leopard?

PreviewAttachmentSize
A_2movieMultiplexer_Web.qtz7.56 KB

nalayevlum's picture
Re: Total Newbie

Thanks man! I'm just getting to your links now. Will let you know how it goes for me!!

nalayevlum's picture
Re: Total Newbie

BTW, yes, I'm running Leopard. I'm not using any monitoring app. Is there one? In fact, in my study patch, I only understood two movies were playing (one in the background) on hearing the sound of both when movieloader is set to asynchronous mode!

sbn..'s picture
Re: Total Newbie

I wouldn't worry too much about leaking / buffering unless it becomes a specific problem.

I've played several dozens of shows with my custom QC patch, which is quite messy and lives in a Cocoa app. Under Leopard, too. This patch has, I think, four standard movie players, whose paths I swap out on the fly. Several hundred times a show, back and forth. Sometimes for 8-9 hours straight. Between clips in different formats (generally Photo-JPEG), durations between 5 seconds and 15 minutes. It keeps running smoothly, and the transitions are fast enough to be in rhythm, mostly.

Chances are QC will manage memory just fine for you.

In your case, I'd use a single movie player with a published path, then a string multiplexer to swap that path on input.

nalayevlum's picture
Re: Total Newbie

Ok, I've got a 4 movie multiplexer working. Can I ask a few more basic questions? I'm spending a lot of time looking for answers to no avail. Not very productive.

How do I make keyboard keys 1,2,3,4 trigger 4 movies. Or, even more useful, use Arduino Analogue inputs to do same?

How do I detect the end of video playback? If I'm using a movieloader in Asynchronous mode, the Patchtime Input disappears. (I'd like the movie to play only once and not loop).

Can you give me an example of a plug-in installation procedure. Not just where the plug-in goes on the comp, but how to call it from the Patch Creator.

cybero's picture
Re: Total Newbie

nalayevlum wrote:

How do I make keyboard keys 1,2,3,4 trigger 4 movies.

keyboard patch to source index input splitter to string multiplexer source index input, set keys to 1,2,3 & 4 for each of your movies.

string multiplexer gets source path for movies , send input / choice made to movie location input on movie importer[s], movie importer[s] send image to image multiplexer sends image to billboard.

cybero's picture
Re: Total Newbie

nalayevlum wrote:

How do I detect the end of video playback? If I'm using a movieloader in Asynchronous mode, the Patchtime Input disappears. (I'd like the movie to play only once and not loop).

Asynchronous doesn't mean you have to loop, probably just the way I left my posted example.

Get the movie duration time from the movie player patch, read that as string, set up a conditional to reset or switch off after the requisite amount of time for full playback.

nalayevlum's picture
Re: Total Newbie

cybero wrote:

keyboard patch to source index input splitter to string multiplexer source index input, set keys to 1,2,3 & 4 for each of your movies.

There's my problem: taking the 4 outputs of a keyboard patch into the one input of a Source Index. These things must be simple - but essential - tricks of patch usage (but I haven't found this one on any threads).

nalayevlum's picture
Re: Total Newbie

cybero wrote:

Get the movie duration time from the movie player patch, read that as string, set up a conditional to reset or switch off after the requisite amount of time for full playback.

How is a Movie Player patch switched off/on? From your advice, in examples I've seen of this conditional patching, the result stops the movie loader patch through it's Patch Time input - hence the issue: 'Asynchronous mode removes the Patch Time input'.

cybero's picture
Re: Total Newbie

When in Asynchronous mode, you can still get movie duration and position information, you can then set up a conditional based upon those two factors, position equals duration equals end of movie. You can also select when the movie start point is within the movie file and select and set a specific duration. Patch time is not therefore needed. Switch on a Movie player patch, well you can't really , that's why you put it's path through the string multiplexer, so you choose by index number of how ever many movies you have. Set no movie to actually loop. Script or conditional bank to effect of if index = 0 then duration = x if position = x then change index to 1, etc, etc. Whatever source index is chosen will then play until its end

Hope that helps :-)

Actually I'm not sure which parts you're getting and which parts you're not to be honest :-(

cybero's picture
Re: Total Newbie

Come to think of it, you could always employ v002 Movie Player, that has start and stop built in, again you could just condition up on the duration position, plus you get a free waveform structure to boot :-)

nalayevlum's picture
Re: Total Newbie

That was on my list of things to ask you: that V002 player, and plug-in's ingeneral, how do I get them to load from the Patch Creator? (I've placed them in the right folder)

re conditioning, I'm following what you're saying, but can't implement at all. Maybe, could you show me where this is done in a .qtz example.

In the meantime, I've got a way around things that suits me quite well...could you take a look?

PreviewAttachmentSize
4movieMultiplexer playOnKeystroke.qtz7.21 KB

cybero's picture
Re: Total Newbie

vade's and other 3rd party plugins built upon the standard Custom Patch API should be installed to ~/Library?Graphics?Quartz Composer Plug ins.

when you search the library list you should find it with the term v00 or movie.

double click or drag and drop onto the editor stage.

if the plug in is not showing up in the library list, then check you've installed correctly.

that example you posted does not currently allow to have movies paused fully on changing the source index. of course, a lot depends upon what was in the movies, is screensaver a stopgap of next to nothing , blank empty space. all the bill boards are on top of one another - you could simply 4 square them. that'd shows more of a reason for having 4 separate movie importers

seems disadvantageous, but maybe it does exactly what you want it to do.

cybero's picture
Re: Total Newbie

BTW - Can't bench test vade's v002 patch past Build & Run stage in XCode on SL, which is like pretty much totally off topic, but I have managed to get the reset button working upon that, it would probably make for an ideal solution, for when I do boot up my desktop leafblower Leopard machine it does work AOK there too.

nalayevlum's picture
Re: Total Newbie

Thanks so much. I could get the v002 loaded - don't ask me how: I compiled it from the source (as another thread of yours indicated) but, just as I was stumped about what to do then, or where to save it, I found it available in the QC patchcreator; I've searched my system, it's not installed anywhere, definately not in /quartzcomposer plug ins. What's that all about?

Anyway back to the main point: I can't follow your descriptions so I need a demo. The idea, for the purpose of learning, is to have a triggered movie play to it's end before another movie is allowed to be triggered. Sounds simple :)

sbn..'s picture
Re: Total Newbie

The XCode project should have the .plugin as a target, meaning it would copy the result of a succesful build to the right folder.

Try looking in your /Users/[username]/Library/Graphics folder. It may be there, and if that's the case it's technically installed for you only; any other accounts on the machine won't be able to use it. You can just move it to /Library if you wish.

cybero's picture
Re: Total Newbie

The source index is on a multiplexer, you can add additional inputs as required

cybero's picture
Re: Total Newbie

Apologies for a very late response. you could try adjusting the playlist from folder example that steve holmes posted up some time ago. Save that into a folder that contains movies and never have to consider setting up any further conditionals. Until, that is, QC changes :-). Hope that helps.

nalayevlum's picture
Re: Total Newbie

Thank for suggestions thus far (yes, sbn, the V002 player was at that path). The composition attached is where I'm at this week. If you look at it, the arduino part is only nominal at this stage (long story, I don't have one, a friend needs things this way, he has one), but the thing he will set up is: 4 contact-mic's, of which the arduino would send an argument in a string for the one that was triggered. What I need to do with that in QC is to (i) play a related movie), (ii) While that movie is playing back, no other arguments are accepted (iii) when the movie is finished, all arguments are again accepted and another movie is played. The trick is that when in (iii) the old value from (i) is not continued. There must be a simpler way to do all this, so please feel free to tear this composition a new one :) What I'd like to learn in particular is how to handle better what's coming from the output of the string scanner: at the moment the composition is weakest there. To make the composition work, you have to run a zero before each argument you send through the string scanner, which is because the conditional downstream needs the 'true" to return to a 'false' ("ready") state.

PreviewAttachmentSize
08-11-09.qtz6.64 KB