<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Cognitive Zest &#187; Programming</title>
	<atom:link href="http://jedypod.com/tag/programming/feed" rel="self" type="application/rss+xml" />
	<link>http://jedypod.com</link>
	<description>cerebular exocarp</description>
	<lastBuildDate>Tue, 14 Feb 2012 07:59:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>Suppress Control and All Cocks Plaster</title>
		<link>http://jedypod.com/suppress-control-and-all-cocks-plaster</link>
		<comments>http://jedypod.com/suppress-control-and-all-cocks-plaster#comments</comments>
		<pubDate>Fri, 23 Mar 2007 12:28:03 +0000</pubDate>
		<dc:creator>jedypod</dc:creator>
				<category><![CDATA[Evergreen]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[After Effects]]></category>
		<category><![CDATA[Expressions]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Projects and Thoughts]]></category>
		<category><![CDATA[Scripting]]></category>
		<category><![CDATA[SOS: Media]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://grace.evergreen.edu/~smijed07/blog/?p=64</guid>
		<description><![CDATA[These are two short videos that I created for Safe Harbor. The process that was used to create them is an interesting and likely somewhat unique one, so I thought I would write a bit of an explanation here. First, here are the videos for you to experience firsthand. Suppress Control All Cocks Plaster These [...]]]></description>
			<content:encoded><![CDATA[<p>These are two short videos that I created for <a href="http://groups.google.com/group/VideoOfTheMonth">Safe Harbor</a>. The process that was used to create them is an interesting and likely somewhat unique one, so I thought I would write a bit of an explanation here. First, here are the videos for you to experience firsthand.</p>
<p><strong>Suppress Control</strong><br />
<object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/FF22JvOKCzs&#038;rel=1"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/FF22JvOKCzs&#038;rel=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></p>
<p><strong> All Cocks Plaster</strong><br />
<object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/egNFUeZrFSc&#038;rel=1"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/egNFUeZrFSc&#038;rel=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></p>
<p>These videos were created in Adobe After Effects 7.0 utilizing the <a href="http://www.motionscript.com/">Expressions</a>, which are just a way to control keyframed parameters in After Effects with a script in Javascript. You can create little &#8216;expressions&#8217; by using a collection of custom &#8216;variables&#8217; based on elements of the after effects environment, such as timecode, layer values, etc. Often expressions are used as a way of linking values of parameters together, to make something animate in defined relationship with something else. However there are a myriad of creative possibilities for using expressions in After Effects. Here is what I did to bring about &#8220;Suppress Control&#8221;.<span id="more-69"></span></p>
<p>timeToFrames(t = time, fps = 23.976);<br />
t = random(t,thisComp.duration);</p>
<p>This expression is on the Time Remap property of my main video layer. Time remapping is just a parameter that lets you alter the playback rate and direction of a layer dynamically with keyframes or expressions. All this script is saying is</p>
<p>1). convert the <a href="http://en.wikipedia.org/wiki/SMPTE_time_code">timecode</a> of the current position into its frame-number, based on the given frames per second, and store this value in the variable &#8216;t&#8217;.<br />
2). let &#8216;t&#8217; then equal a random number between the current value of &#8216;t&#8217;, and the length of the current layer.<br />
This effectively makes each frame in the layer a random frame between the beginning and the end. This has a very chaotic direct-animation type aesthetic to it, because it is a frame-based manipulation, and has no slow changes. In &#8220;Suppress Control&#8221; I did this for 3 different stacked layers, and then created another expression on the top two that turned the transparency on or off every x frames. Each of these 3 layers was then combined with the layer below it using blending modes. This created an additional chaotic abstraction to the image, because each image is now not only a random frame of the entire video, and not only one of 3 random layers, but each frame is an aleatoric combination of each of the 3 layers (or just 1 or 2, depending on if all the layers are turned on or not), blended into each other to create a strange abstract image. Here is the expression that blinks a layer on and off every X frames.<br />
fr = 23.976;<br />
FrameNum = 2;<br />
Scale = 50<br />
trig = Math.cos(time*Math.PI*fr*(1/FrameNum));<br />
if ( trig &gt; trig/2 ) { trig = Math.ceil(trig) } else { trig = Math.floor(trig) };<br />
trig = Math.round(trig);<br />
trig = trig*Scale + Scale;</p>
<p>1). What is the framerate? (or, how many times per second should this happen)<br />
2). How many frames should each alternation last?<br />
3). How large should the variation in value be?<br />
4). A trigonometry function to alternate between +1 and -1 every x amount of time defined by the framerate and FrameNum.<br />
5). If the result of this function is greater than half of it, round up; else, round down.<br />
6). Scales the value to +Scale, -Scale, and then shifts it up to be between 0 and 2*ScaleI</p>
<p>If applied to a transparency parameter, it effectively makes a layer flash on or off every x amount of frames.</p>
<p>Another cool expression, which is used on the train layer in All Cocks Plaster is as follows:</p>
<p>layTime = time &#8211; (inPoint-framesToTime(112));<br />
random(layTime, layTime + framesToTime(10));</p>
<p>This is a very simple expression also applied to the time-remapping attribute of a layer.  All it does is, for each frame, choose a new frame between the current and 10 frames ahead of it. So the motion continues on its path, but is randomly jumpy, because it is jumping around randomly in a little box of 10 frames that is moving forwards.</p>
]]></content:encoded>
			<wfw:commentRss>http://jedypod.com/suppress-control-and-all-cocks-plaster/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

