<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>Creative Workflow Hacks</title>
	<atom:link href="http://www.creative-workflow-hacks.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.creative-workflow-hacks.com</link>
	<description>Sharing tips, scripts and hacks for your creative workflow.</description>
	<pubDate>Thu, 17 Apr 2008 16:32:21 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>Motion XML File Format documented</title>
		<link>http://www.creative-workflow-hacks.com/2008/04/17/motion-xml-file-format-documented/</link>
		<comments>http://www.creative-workflow-hacks.com/2008/04/17/motion-xml-file-format-documented/#comments</comments>
		<pubDate>Thu, 17 Apr 2008 16:32:21 +0000</pubDate>
		<dc:creator>Dale</dc:creator>
		
		<category><![CDATA[About]]></category>

		<guid isPermaLink="false">http://www.creative-workflow-hacks.com/?p=81</guid>
		<description><![CDATA[This one has taken a while, but it looks like Apple has finally documented the Motion XML format. It&#8217;s been fairly easy to reverse-engineer, but now if you&#8217;ve got questions or gotchas you know where to look to find out what the deal should be.
The section on Modifying Text is especially useful for day to day [...]]]></description>
			<content:encoded><![CDATA[<p>This one has taken a while, but it looks like Apple has finally documented the <a href="http://developer.apple.com/documentation/AppleApplications/Conceptual/motion_XML_guide/About/chapter_1_section_1.html#//apple_ref/doc/uid/TP40007455-CH3-SW1">Motion XML format</a>. It&#8217;s been fairly easy to reverse-engineer, but now if you&#8217;ve got questions or gotchas you know where to look to find out what the deal should be.</p>
<p>The section on <a href="http://developer.apple.com/documentation/AppleApplications/Conceptual/motion_XML_guide/Examples/chapter_8_section_2.html#//apple_ref/doc/uid/TP40007455-CH10-SW2">Modifying Text</a> is especially useful for day to day hacking.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.creative-workflow-hacks.com/2008/04/17/motion-xml-file-format-documented/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Hacked!</title>
		<link>http://www.creative-workflow-hacks.com/2008/03/28/hacked/</link>
		<comments>http://www.creative-workflow-hacks.com/2008/03/28/hacked/#comments</comments>
		<pubDate>Fri, 28 Mar 2008 15:11:33 +0000</pubDate>
		<dc:creator>Dale</dc:creator>
		
		<category><![CDATA[Commentary]]></category>

		<guid isPermaLink="false">http://www.creative-workflow-hacks.com/2008/03/28/hacked/</guid>
		<description><![CDATA[Hey Everybody, My blog was hacked and not in a Creative Workflow way, so things are in a little disarray after restoring and not being sure what files were compromised. It may take a while to sort things out so thanks for your patience. Dale 
]]></description>
			<content:encoded><![CDATA[<p>Hey Everybody, My blog was hacked and not in a Creative Workflow way, so things are in a little disarray after restoring and not being sure what files were compromised. It may take a while to sort things out so thanks for your patience. Dale </p>
]]></content:encoded>
			<wfw:commentRss>http://www.creative-workflow-hacks.com/2008/03/28/hacked/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Lost your Quicktime export options?</title>
		<link>http://www.creative-workflow-hacks.com/2008/03/04/lost-your-quicktime-export-options/</link>
		<comments>http://www.creative-workflow-hacks.com/2008/03/04/lost-your-quicktime-export-options/#comments</comments>
		<pubDate>Tue, 04 Mar 2008 17:06:12 +0000</pubDate>
		<dc:creator>Dale</dc:creator>
		
		<category><![CDATA[Quicktime]]></category>

		<guid isPermaLink="false">http://www.creative-workflow-hacks.com/2008/03/04/lost-your-quicktime-export-options/</guid>
		<description><![CDATA[If you updated to the latest version of Quicktime you lost some of your export options like Sorenson (You take the good with the bad with the beneficent dictatorship that is Apple UI design). To get it back&#8230;

Go to System Preferences on the Mac or Control Panel on Windows
Click on Quicktime
Click the Advanced Tab
Check Show Legacy Encoders 

Thanks Brandon
]]></description>
			<content:encoded><![CDATA[<p>If you updated to the latest version of <span style="font-weight: bold" class="Apple-style-span">Quicktime</span> you lost some of your export options like <span class="Apple-style-span" style="font-weight: bold">Sorenson</span> (You take the good with the bad with the <span class="Apple-style-span" style="font-weight: bold">beneficent dictatorship</span> that is <span class="Apple-style-span" style="font-weight: bold">Apple UI design</span>). To get it back&#8230;
<ol>
<li>Go to <span class="Apple-style-span" style="font-weight: bold">System Preferences </span>on the <span class="Apple-style-span" style="font-weight: bold">Mac</span> or <span class="Apple-style-span" style="font-weight: bold">Control Pane</span>l on <span class="Apple-style-span" style="font-weight: bold">Windows</span></li>
<li>Click on <span class="Apple-style-span" style="font-weight: bold">Quicktime</span></li>
<li>Click the <span class="Apple-style-span" style="font-weight: bold">Advanced</span> Tab</li>
<li>Check <span class="Apple-style-span" style="font-weight: bold">Show Legacy Encoders</span> </li>
</ol>
<p>Thanks <a href="http://deeperintomovies.net" title="Brandon">Brandon</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.creative-workflow-hacks.com/2008/03/04/lost-your-quicktime-export-options/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Oustanding geekery at omino.com</title>
		<link>http://www.creative-workflow-hacks.com/2007/11/20/oustanding-geekery-at-ominocom/</link>
		<comments>http://www.creative-workflow-hacks.com/2007/11/20/oustanding-geekery-at-ominocom/#comments</comments>
		<pubDate>Tue, 20 Nov 2007 17:45:45 +0000</pubDate>
		<dc:creator>Dale</dc:creator>
		
		<category><![CDATA[After Effects ]]></category>

		<category><![CDATA[Scripting]]></category>

		<guid isPermaLink="false">http://www.creative-workflow-hacks.com/2007/11/20/oustanding-geekery-at-ominocom/</guid>
		<description><![CDATA[Looks like I&#8217;m a little late to the party, but I&#8217;m catching up with some great posts at omino.com. I&#8217;ve always admired David Van Brink&#8217;s qt_tools project, A great open source command-line set of tools for dealing with Quicktime, and it looks like he&#8217;s now sharing more quick hits of his pixel, motion and scripting explorations. Very fun David.
]]></description>
			<content:encoded><![CDATA[<p>Looks like I&#8217;m a little late to the party, but I&#8217;m catching up with some great posts at <a href="http://omino.com/pixelblog" title="omino.com">omino.com</a>. I&#8217;ve always admired David Van Brink&#8217;s <a href="http://omino.com/sw/qt_tools/" title="qt_tools">qt_tools</a> project, A <span class="Apple-style-span" style="font-weight: bold">great open source command-line set of tools</span> for dealing with <span class="Apple-style-span" style="font-weight: bold">Quicktime</span>, and it looks like he&#8217;s now sharing more quick hits of his <span class="Apple-style-span" style="font-weight: bold">pixel, motion and scripting explorations</span>. Very fun David.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.creative-workflow-hacks.com/2007/11/20/oustanding-geekery-at-ominocom/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Doing something interesting with our Socket Object and XML; A slightly flawed Flickr reader for AE CS3 on the Mac</title>
		<link>http://www.creative-workflow-hacks.com/2007/11/07/doing-something-interesting-with-our-socket-object-and-xml-a-slightly-flawed-flickr-reader-for-ae-cs3-on-the-mac/</link>
		<comments>http://www.creative-workflow-hacks.com/2007/11/07/doing-something-interesting-with-our-socket-object-and-xml-a-slightly-flawed-flickr-reader-for-ae-cs3-on-the-mac/#comments</comments>
		<pubDate>Wed, 07 Nov 2007 23:22:00 +0000</pubDate>
		<dc:creator>Dale</dc:creator>
		
		<category><![CDATA[After Effects ]]></category>

		<category><![CDATA[Scripting]]></category>

		<guid isPermaLink="false">http://www.creative-workflow-hacks.com/2007/11/07/doing-something-interesting-with-our-socket-object-and-xml-a-slightly-flawed-flickr-reader-for-ae-cs3-on-the-mac/</guid>
		<description><![CDATA[Last time, we talked about using a Socket Object in After Effects CS3 to parse a data feed with E4X XML parsing. There are a lot of useful workflow operations I can think of that could make use of data feeds, but After Effects is a visual medium, so let&#8217;s do something visual, let&#8217;s import [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.creative-workflow-hacks.com/2007/11/03/using-the-socket-object-to-fetch-xml-for-parsing-in-after-effects-cs3/">Last time</a>, we talked about using a <strong>Socket Object</strong> in <strong>After Effects CS3</strong> to parse a data feed with<strong> E4X XML</strong> parsing. There are a lot of useful workflow operations I can think of that could make use of data feeds, but <strong>After Effects</strong> is a visual medium, so let&#8217;s do something visual, let&#8217;s import a set of <strong>flickr photos</strong> matching a tag. This is a proof of concept script, and before you plunge into experimenting you should check the terms of service of the web feed provider and respect the use of images you download. That said, let&#8217;s take a look at some code.<br />
<span id="more-77"></span></p>
<p>First of all, we create a <strong>Socket Object</strong>, and connect to our web feed. In this case we are looking for all photos tagged red referenced by this line</p>
<pre>
<code>
webConnect.write (' GET /services/feeds/photos_public.gne?tags=red HTTP/1.0\n\n');
</code>
</pre>
<p>We then fetch and parse the XML, and loop through looking for a link element with an enclosure attribute like so</p>
<pre>
<code>
for(entry in elements)
{

	if(elements[entry].localName() == &#8220;entry&#8221;)
	{
		var entryNodes = elements[entry].elements();
		for(x = 0; x < entryNodes.length(); x++){
				if(entryNodes[x].localName() == 'link')
				{
					if(entryNodes[x].@rel.toString() == "enclosure")
					{
						pictureArray.push(entryNodes[x].@href.toString());
					}
				}
		}

	}
}
</code>
</pre>
<p>Once we&#8217;ve gathered up an array of links, we download the photos using <strong>system.callSystem() </strong>and a command line app called <strong>curl</strong>. There is probably a Windows version of curl, but it probably won&#8217;t be installed on your machine which makes this a mostly <strong>Mac script</strong>. This code handles the download and import. Note, my version of <strong>Wordpress</strong> is really upset about using the keyword <strong>system</strong> in code listing, thus there is extra whitespace around the <strong>system.callSystem()</strong> call in the code listing below. </p>
<pre>
<code>
for(y =0; y < pictureArray.length; y++)
{

	var picNameSet = pictureArray[y].split("/");
	var picName = "/" +  picNameSet[picNameSet.length -1];

	var curlString  = "curl -O " + pictureArray[y];
	var retVal = sys  tem.callSyste  m(curlString);

	var fileToImport = new File(picName);
	var myProject = app.project;

	if(fileToImport.exists)
	{

			var my_io = new ImportOptions(fileToImport);

			if(my_io.canImportAs(ImportAsType.FOOTAGE)){
				try{
					myItem = myProject.importFile(my_io);

				}catch(e){
					alert('couldn\'t import flickr item with error: \r' + e.toString())
				}

			}
	}

}
</code>
</pre>
<p>I mentioned this code was slightly flawed. Network activities are by their nature <strong>asynchronous</strong>, our tasks go out into the ether and we don&#8217;t now when or how they return. In this case I start the download and quickly check to see if the file is available. If it&#8217;s not, I just skip it. In the real world of network activities this will never do. AE scripting by it&#8217;s nature is a pretty<strong> synchronous</strong> activity, we do one thing and then another. As I explore this style of scripting I&#8217;m investigating work arounds on how to mesh the two styles of programming a bit better. For now, I just ignore it. grin.  If you&#8217;ve got ideas about <strong>smart ways to handle asynch network scripting in After Effects</strong>, I&#8217;d love to hear about it.</p>
<p>Anyway, I run the script and import 20 or so photos matching the tag red. In this case I&#8217;m just discarding all the  metadata and context information that make the photos really interesting, but it&#8217;s a fun experiment and I get to see a bunch of cool photos. As I continue to explore, hopefully I&#8217;ll come up with more robust network programming and more concrete tools for using web feeds in an interesting way.</p>
<p><a href="http://www.creative-workflow-hacks.com/downloads/db_flickrExperiment.zip">zip download of db_flickrExperiment</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.creative-workflow-hacks.com/2007/11/07/doing-something-interesting-with-our-socket-object-and-xml-a-slightly-flawed-flickr-reader-for-ae-cs3-on-the-mac/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Using the Socket Object to fetch XML for parsing in After Effects CS3</title>
		<link>http://www.creative-workflow-hacks.com/2007/11/03/using-the-socket-object-to-fetch-xml-for-parsing-in-after-effects-cs3/</link>
		<comments>http://www.creative-workflow-hacks.com/2007/11/03/using-the-socket-object-to-fetch-xml-for-parsing-in-after-effects-cs3/#comments</comments>
		<pubDate>Sat, 03 Nov 2007 20:23:46 +0000</pubDate>
		<dc:creator>Dale</dc:creator>
		
		<category><![CDATA[After Effects ]]></category>

		<category><![CDATA[Scripting]]></category>

		<guid isPermaLink="false">http://www.creative-workflow-hacks.com/2007/11/03/using-the-socket-object-to-fetch-xml-for-parsing-in-after-effects-cs3/</guid>
		<description><![CDATA[I had an email conversation with Matt, who wanted to fetch some xml to play with the new E4X XML parsing in AE CS3. We&#8217;re still waiting for the ExtendScript HttpConnection Object to show up in After Effects, but we do have access to the Socket Object. The Socket Object is a little low level, [...]]]></description>
			<content:encoded><![CDATA[<p>I had an email conversation with <a href="http://mographwiki.net" target="_blank">Matt</a>, who wanted to fetch some xml to play with the new <strong>E4X XML</strong> parsing in <strong>AE CS3</strong>. We&#8217;re still waiting for the ExtendScript <strong>HttpConnection</strong> Object to show up in After Effects, but we do have access to the<strong> Socket</strong> Object. The <strong>Socket</strong> Object is a little low level, but if you are using web feeds and don&#8217;t need authentication it&#8217;s actually pretty easy.</p>
<p>This code segment outlines the basics.</p>
<pre>
<code>
webConnect = new Socket;
response = new String;

if(webConnect.open("feeds.feedburner.com:80","UTF-8")) {

webConnect.write('GET /current/currentpicks?format=xml HTTP/1.0nn');

response    =  webConnect.read(100000);

response = response.toString();

var xmlStart = response.indexOf("&lt;?xml");
var xmlString = response.substring(xmlStart, response.length);

alert(xmlString)

webConnect.close();

} else {

alert (""unable to open webConnect via Socket"")

}</code></pre>
<p>We open a <strong>Socket</strong> and connect to, in this case, a feedburner feed. We use the <strong>read()</strong> method to read in the XML, and since the<strong> Socket </strong>object includes the header we use <strong>indexOf </strong>to find the beginning of the <strong>XML</strong> and <strong>substring </strong>to read to the end of the line.</p>
<p>A couple of gotchas in the code. In this case the header tells us the document encoding is <strong>utf-8 </strong>so we explicity set it with</p>
<pre><code>webConnect.open("feeds.feedburner.com:80","UTF-8")</code></pre>
<p>Also, when Matt and I were initially exploring this we were just getting the header. It looks like a <strong>GET </strong>request with</p>
<pre>response    =  webConnect.read()</pre>
<p>allows a block response, and the later content was going off into the ether, If we used</p>
<pre>response    =  webConnect.read(100000);</pre>
<p>with a sufficiently large number to include all of the <strong>XML</strong> we got all of the contents of the <strong>XML</strong> file. This seems like a really bad idea, since we&#8217;ll never know the size of the <strong>XML</strong> file unless we munge some headers and setting it arbitrarily high also seems like a bad idea. Can someone who&#8217;s spent more time with the <strong>Socket </strong>object leave a comment or email me on how to handle the block response or alternatives to setting a big count for the <strong>read()</strong> method? I&#8217;d appreciate it.</p>
<p>Anyway, that&#8217;s the basic idea. You&#8217;d then parse the xmlString variable and do fun stuff with it. One heads up, the sample above includes <strong>namespaces,</strong> so be sure to read the section on <strong>namespaces</strong> in the Scripting Guide.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.creative-workflow-hacks.com/2007/11/03/using-the-socket-object-to-fetch-xml-for-parsing-in-after-effects-cs3/feed/</wfw:commentRss>
		</item>
		<item>
		<title>FCPToAE going (mostly) CS3 Only</title>
		<link>http://www.creative-workflow-hacks.com/2007/09/20/fcptoae-going-mostly-cs3-only/</link>
		<comments>http://www.creative-workflow-hacks.com/2007/09/20/fcptoae-going-mostly-cs3-only/#comments</comments>
		<pubDate>Thu, 20 Sep 2007 20:15:38 +0000</pubDate>
		<dc:creator>Dale</dc:creator>
		
		<category><![CDATA[After Effects ]]></category>

		<category><![CDATA[Final Cut Pro]]></category>

		<category><![CDATA[Scripting]]></category>

		<guid isPermaLink="false">http://www.creative-workflow-hacks.com/2007/09/20/fcptoae-going-mostly-cs3-only/</guid>
		<description><![CDATA[Just a quick heads up that I&#8217;ve decided to focus my efforts on FCPToAE and related tools to the CS3 Suite only. With a strong subset of  ECMA-357 (E4X) (pdf link) parsing in  Extendscript 2, it doesn&#8217;t make a lot of sense to keep inventing workarounds to FCP-XML parsing. I do plan on [...]]]></description>
			<content:encoded><![CDATA[<p>Just a quick heads up that I&#8217;ve decided to focus my efforts on <a href="http://www.creative-workflow-hacks.com/2007/04/15/final-cut-pro-to-after-effects-scripting-without-the-hassle/">FCPToAE</a> and related tools to the <strong>CS3 Suite</strong> only. With a strong subset of <a href="http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-357.pdf"> ECMA-357 (E4X)</a> (pdf link) parsing in <strong> Extendscript 2</strong>, it doesn&#8217;t make a lot of sense to keep inventing workarounds to <strong>FCP-XML</strong> parsing. I do plan on incorporating bug fixes to the scripting side of the equation to the <strong>AE 7</strong> app, so it&#8217;ll stay feature compliant to the current state, but I won&#8217;t be updating new features. </p>
<p>This will definitely make things a lot easier to develop tools, and it opens up a whole new slew of possibilites for <strong>Web 2.0 mashup tools and explorations</strong> when combined with <strong>After Effects</strong> Socket or new HttpConnection support. <a href="http://kuler.adobe.com">kuler explorer</a> anyone? If you&#8217;re a scripter, you owe it to yourself to check out the <a href="http://www.adobe.com/devnet/bridge/">ExtendScript Toolkit (ESTK) 2.0</a> there are a lot of features that sort of &#8220;hide&#8221; in Extendscript that aren&#8217;t obvious in the <a href="http://www.adobe.com/products/aftereffects/pdfs/aftereffectscs3_scripting_guide.pdf">After Effects CS3 scripting guide</a>(pdf link).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.creative-workflow-hacks.com/2007/09/20/fcptoae-going-mostly-cs3-only/feed/</wfw:commentRss>
		</item>
		<item>
		<title>More fun with sampleImage(): Ascii animation in After Effects</title>
		<link>http://www.creative-workflow-hacks.com/2007/08/27/more-fun-with-sampleimage-ascii-animation-in-after-effects/</link>
		<comments>http://www.creative-workflow-hacks.com/2007/08/27/more-fun-with-sampleimage-ascii-animation-in-after-effects/#comments</comments>
		<pubDate>Mon, 27 Aug 2007 21:44:52 +0000</pubDate>
		<dc:creator>Dale</dc:creator>
		
		<category><![CDATA[After Effects ]]></category>

		<category><![CDATA[Scripting]]></category>

		<guid isPermaLink="false">http://www.creative-workflow-hacks.com/2007/08/27/more-fun-with-sampleimage-ascii-animation-in-after-effects/</guid>
		<description><![CDATA[


More experimentation with sampleImage(). This one relies on this expression.


target = thisComp.layer("layerToSample.mov");
samples = new Array();

var spacing = 10;
var w = target.width / spacing ;
var layerOrder = 1;
var h = 10 * layerOrder;

letters = "   .,:!-+=;iot76x0s&#038;8%#@$";

for(x= 0; x < w; x++){
	samples[x] = target.sampleImage([x* spacing ,h],[spacing , spacing], false, time);
}

var string = '';

for(z = 0; [...]]]></description>
			<content:encoded><![CDATA[<div style="height: 270px">
<object width="360" height="260" codebase="http://www.apple.com/qtactivex/qtplugin.cab" classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B"><param name="src" value="http://www.creative-workflow-hacks.com/sampleImage/ascii-click.mov"  /><param name="target" value="myself"  /><param  name="href" value="http://www.creative-workflow-hacks.com/sampleImage/ascii.mov" /><param value="http://www.apple.com/quicktime/download/" name="pluginspage" /><embed width="360" height="260"  target = "myself" href="http://www.creative-workflow-hacks.com/sampleImage/ascii.mov" src="http://www.creative-workflow-hacks.com/sampleImage/ascii-click.mov" pluginspage="http://www.apple.com/quicktime/download/indext.html"></embed></object>
</div>
<p>More experimentation with <strong>sampleImage()</strong>. This one relies on this expression.</p>
<pre>
<code>
target = thisComp.layer("layerToSample.mov");
samples = new Array();

var spacing = 10;
var w = target.width / spacing ;
var layerOrder = 1;
var h = 10 * layerOrder;

letters = "   .,:!-+=;iot76x0s&#038;8%#@$";

for(x= 0; x < w; x++){
	samples[x] = target.sampleImage([x* spacing ,h],[spacing , spacing], false, time);
}

var string = '';

for(z = 0; z < samples.length; z++){
	var y = Math.round((0.299 * samples[z][0] + 0.587 * samples[z][1] + 0.114* samples[z][2]) * 100)/ 4;
	string = string + letters.substring(y,y + 1);

}
</pre>
<p></code></p>
<p>We loop through the row of pixels and place the <strong>sampled RGB pixels</strong> in the <strong>samples array</strong>, convert the <strong>RGB samples to YUV</strong> and grab the <strong>Y or brightness value</strong> for comparison against a <strong>rough gradient of ASCII values</strong>. For best results, use a <strong>monospace</strong> font to retain proper spacing. A more complete script/expression and breakdown to come.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.creative-workflow-hacks.com/2007/08/27/more-fun-with-sampleimage-ascii-animation-in-after-effects/feed/</wfw:commentRss>
<enclosure url="http://www.creative-workflow-hacks.com/sampleImage/ascii-click.mov" length="45350" type="video/quicktime" />
<enclosure url="http://www.creative-workflow-hacks.com/sampleImage/ascii.mov" length="1004540" type="video/quicktime" />
		</item>
		<item>
		<title>sampleImage() is fun</title>
		<link>http://www.creative-workflow-hacks.com/2007/08/17/sampleimage-is-fun/</link>
		<comments>http://www.creative-workflow-hacks.com/2007/08/17/sampleimage-is-fun/#comments</comments>
		<pubDate>Fri, 17 Aug 2007 13:03:40 +0000</pubDate>
		<dc:creator>Dale</dc:creator>
		
		<category><![CDATA[After Effects ]]></category>

		<category><![CDATA[Scripting]]></category>

		<guid isPermaLink="false">http://www.creative-workflow-hacks.com/2007/08/17/sampleimage-is-fun/</guid>
		<description><![CDATA[



sampleImage() is a new layer method expression introduced in After Effects CS3 that allows you to access a layer&#8217;s color pixel data.  Combined with sophisticated particle systems like Particular, I think we&#8217;re likely to see some really interesting designer driven explorations a la Processing, but with more of a tinkering, let&#8217;s try things out [...]]]></description>
			<content:encoded><![CDATA[<div style="height: 270px">
<object width="360" height="260" codebase="http://www.apple.com/qtactivex/qtplugin.cab" classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B"><param name="src" value="http://www.creative-workflow-hacks.com/sampleImage/sampleImageClick.mov"  /><param name="target" value="myself"  /><param  name="href" value="http://www.creative-workflow-hacks.com/sampleImage/sampleImage.mov" /><param value="http://www.apple.com/quicktime/download/" name="pluginspage" /><embed width="360" height="260"  target = "myself" href="http://www.creative-workflow-hacks.com/sampleImage/sampleImage.mov" src="http://www.creative-workflow-hacks.com/sampleImage/sampleImageClick.mov" pluginspage="http://www.apple.com/quicktime/download/indext.html"></embed></object>
</div>
<p>
<span class="Apple-style-span" style="font-weight: bold">sampleImage()</span> is a new<span class="Apple-style-span" style="font-weight: bold"> layer method expression</span> introduced in <span class="Apple-style-span" style="font-weight: bold">After Effects CS3</span> that allows you to access a layer&#8217;s <span class="Apple-style-span" style="font-weight: bold">color pixel data</span>.  Combined with sophisticated particle systems like <a href="http://www.trapcode.com/products_particular.html">Particular</a>, I think we&#8217;re likely to see some really interesting designer driven explorations a la <a href="http://www.processing.org">Processing</a>, but with more of a tinkering, let&#8217;s try things out approach.
</p>
<p>
I&#8217;ll have more scripts, and automated stuff as I explore further, but until then you might want to take a look at the <a href="http://www.motionscript.com/design-guide/sample-image.html">reference</a> and <a href="http://www.motionscript.com/design-guide/obscuration.html">examples</a> that <span class="Apple-style-span" style="font-weight: bold">Dan Ebberts</span> is posting at the <a href="http://www.motionscript.com/design-guide/collision.html">brilliant</a> <a href="http://www.motionscript.com">MotionScript.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.creative-workflow-hacks.com/2007/08/17/sampleimage-is-fun/feed/</wfw:commentRss>
<enclosure url="http://www.creative-workflow-hacks.com/sampleImage/sampleImage.mov" length="399217" type="video/quicktime" />
<enclosure url="http://www.creative-workflow-hacks.com/sampleImage/sampleImageClick.mov" length="48561" type="video/quicktime" />
		</item>
		<item>
		<title>Automator Action: Final Cut Pro XML to Tape Log via Markers</title>
		<link>http://www.creative-workflow-hacks.com/2007/08/11/automator-action-final-cut-pro-xml-to-tape-log-via-markers/</link>
		<comments>http://www.creative-workflow-hacks.com/2007/08/11/automator-action-final-cut-pro-xml-to-tape-log-via-markers/#comments</comments>
		<pubDate>Sun, 12 Aug 2007 03:03:08 +0000</pubDate>
		<dc:creator>Dale</dc:creator>
		
		<category><![CDATA[Final Cut Pro]]></category>

		<category><![CDATA[System Administration]]></category>

		<guid isPermaLink="false">http://www.creative-workflow-hacks.com/2007/08/11/automator-action-final-cut-pro-xml-to-tape-log-via-markers/</guid>
		<description><![CDATA[I&#8217;ve never spent much time with Apple&#8217;s Automator technology. Which is a little strange, considering how interested I am in automation and workflow technologies. I think some of it is a sense that it seems inaccessible, it doesn&#8217;t seem clear how to make things generalizable enough to be useful, and at least part of it [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve never spent much time with <a href="http://www.apple.com/macosx/features/automator/">Apple&#8217;s Automator technology</a>. Which is a little strange, considering how interested I am in <strong>automation</strong> and <strong>workflow technologies</strong>. I think some of it is a sense that it seems inaccessible, it doesn&#8217;t seem clear how to make things generalizable enough to be useful, and at least part of it is my aversion to <strong>Applescript</strong> as a scripting language That said, it&#8217;s clear that there is a lot of power available with <strong>Automator</strong> and I&#8217;ve started to dip my toe in the water and seeing If I can learn a few things and maybe create something useful.</p>
<p>This is the first fruit of my experimentation. I often need to make a <strong>tape log </strong>of a <strong>sequence</strong> in <strong>Final Cut Pro</strong>, and a quick way to get the sequence details into a text file could be useful. The most approachable way to address the problem seems to be with markers. You can store all of the values I need for a tape log in a marker - <strong>item number, name, description, length and the starting timecode</strong>. So, that&#8217;s how we&#8217;ll approach it.</p>
<p><span id="more-71"></span></p>
<p>1. First, we&#8217;ll need to add a marker at the time in the sequence we&#8217;d like to add an item. A quick way to add a marker is to hit the <span style="font-weight: bold" class="Apple-style-span">m </span>key twice, or go to the menu item <span style="font-weight: bold" class="Apple-style-span">Mark:Markers:Add </span>. When we do that we&#8217;ll get something that looks like</p>
<p style="height: 325px"> <img src="http://www.creative-workflow-hacks.com/images/markerEdit.jpg" title="Editing an FCP Marker" alt="Editing an FCP Marker" align="left" border="0" height="307" hspace="0" vspace="0" width="320" /></p>
<p>2. We&#8217;ll want to rinse and repeat for each item we want in the log.</p>
<p>3. Export an <strong>FCP-XML </strong>file of just the single sequence of interest. A possible upgrade for this action would be to do a version where we pick the sequence, but for now the <strong>Action</strong> is just set to work with a single sequence. Any version of the <strong>Final Cut XML </strong>spec should work just fine</p>
<p>4. Launch the workflow, <strong>markerToLogWorkflow.workflow </strong>which should look like this.</p>
<p><img src="http://www.creative-workflow-hacks.com/images/markerToLogWorkflow.jpg" title="Marker To Log Workflow" alt="Marker To Log Workflow" align="left" border="0" height="485" hspace="0" vspace="0" width="533" /></p>
<p>5. Run the workflow by pressing the run button. You can set options by selecting or deselecting the checkbox for items. When I run the workflow I get a text file looking something like&#8230;</p>
<p><img src="http://www.creative-workflow-hacks.com/images/tapeLog.jpg" title="Tape Log Screenshot" alt="Tape Log Screenshot" align="left" border="0" height="148" hspace="0" vspace="0" width="448" /></p>
<p>That&#8217;s about it. Next up will probably be digging into <strong>Indesign Automator Actions</strong> so that we could flow our log into a <strong>nicely formatted document</strong>. Another interesting <strong>Action </strong>might be to do this in reverse adding <strong>Markers</strong> from a producers<strong> Excel, Word Doc, or XML File</strong>,  but I&#8217;m happy with this as a start.</p>
<p>So, what do I think about <strong>Automator</strong>? It definitely takes a little getting used to, but if <strong>Apple</strong> continues to improve features, I&#8217;ve heard rumors of cool <strong>Leopard </strong>upgrades, then I think it will be a good application to add to the mix.</p>
<p><a href="http://www.creative-workflow-hacks.com/downloads/markerToLog.zip">Zip Archive of  Action and Workflow</a></p>
<p>You&#8217;ll need to move the <strong>markerToLog.action </strong>file to your<strong> Library/Automator </strong>folder for the <strong>Workflow </strong>to work.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.creative-workflow-hacks.com/2007/08/11/automator-action-final-cut-pro-xml-to-tape-log-via-markers/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
