HTTP/1.1 200 OK
Date: Wed, 15 Feb 2012 19:46:44 GMT
Server: Apache/2.2.8 (Ubuntu) mod_ssl/2.2.8 OpenSSL/0.9.8g
X-Powered-By: PHP/5.2.4-2ubuntu5.17
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Cache-Control: store, no-cache, must-revalidate, post-check=0, pre-check=0
Last-Modified: Wed, 15 Feb 2012 19:46:44 GMT
Vary: Accept-Encoding
Connection: close
Content-Type: text/html; charset=utf-8

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>AVSynthesis: Blending Light and Sound with OpenGL and Csound5 | Linux Journal</title>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="canonical" href="http://www.linuxjournal.com/magazine/avsynthesis-blending-light-and-sound-opengl-and-csound5" />
<meta name="keywords" content="Audio/Video" />
<meta name="description" content="The artistic combination of sound and image is a common enough phenomenon. Movies, television and various Internet channels demonstrate the happy results from the blend of recorded sight and sound. However, these examples typically utilize sound in the role of an accompanist, perhaps greatly significant but still primarily an accompanist." />
<link rel="shortcut icon" href="/files/linuxjournal.com/ufiles/linuxjournal_favicon.png" type="image/x-icon" />
  <link type="text/css" rel="stylesheet" media="all" href="/files/linuxjournal.com/ufiles/css/css_4a8aa5256da99da5eade734b1ec1a7f7.css" />
<link type="text/css" rel="stylesheet" media="print" href="/files/linuxjournal.com/ufiles/css/css_fdf85486e7f023472a6d6f67fa08f249.css" />
<!--[if IE]>
<link type="text/css" rel="stylesheet" media="all" href="/sites/linuxjournal.com/themes/zen/zen/ie.css?P" />
<![endif]-->
  <script type="text/javascript" src="/files/linuxjournal.com/ufiles/js/js_e36b4225ff3140bea628c6064bc51b97.js"></script>
<script type="text/javascript">
<!--//--><![CDATA[//><!--
jQuery.extend(Drupal.settings, { "basePath": "/", "user_relationships_ui": { "loadingimage": "/sites/linuxjournal.com/modules/user_relationships/user_relationships_ui/images/loadingAnimation.gif", "savingimage": "/sites/linuxjournal.com/modules/user_relationships/user_relationships_ui/images/savingimage.gif", "position": { "position": "absolute", "left": "0", "top": "0" } }, "quicktabs": { "qt_1": { "tabs": [ 0, 0, 0 ] } } });
//--><!]]>
</script>
<!-- PUT THIS TAG IN THE head SECTION -->
<script type="text/javascript" src="http://partner.googleadservices.com/gampad/google_service.js">
</script>
<script type="text/javascript">
  GS_googleAddAdSenseService("ca-pub-3600556074671070");
  GS_googleEnableAllServices();
</script>
<script type="text/javascript">
  GA_googleAddSlot("ca-pub-3600556074671070", "Half_Banner336x90");
  GA_googleAddSlot("ca-pub-3600556074671070", "Large_Rectangle336x280");
  GA_googleAddSlot("ca-pub-3600556074671070", "Leaderboard728x90");
GA_googleAddSlot("ca-pub-3600556074671070", "Desktop_LargeRectangle");
GA_googleAddSlot("ca-pub-3600556074671070", "Desktop_Leaderboard");
GA_googleAddSlot("ca-pub-3600556074671070", "Embedded_LargeRectangle");
GA_googleAddSlot("ca-pub-3600556074671070", "Embedded_Leaderboard");
GA_googleAddSlot("ca-pub-3600556074671070", "Mobile_LargeRectangle");
GA_googleAddSlot("ca-pub-3600556074671070", "Mobile_Leaderboard");
GA_googleAddSlot("ca-pub-3600556074671070", "Security_LargeRectangle");
GA_googleAddSlot("ca-pub-3600556074671070", "Security_Leaderboard");
GA_googleAddSlot("ca-pub-3600556074671070", "SysAdmin_LargeRectangle");
GA_googleAddSlot("ca-pub-3600556074671070", "SysAdmin_Leaderboard");
GA_googleAddSlot("ca-pub-3600556074671070", "Virtualization_LargeRectangle");
GA_googleAddSlot("ca-pub-3600556074671070", "Virtualization_Leaderboard");
GA_googleAddSlot("ca-pub-3600556074671070", "HPC_LargeRectangle");
GA_googleAddSlot("ca-pub-3600556074671070", "HPC_Leaderboard");
GA_googleAddSlot("ca-pub-3600556074671070", "WebDevelopment_LargeRectangle");
GA_googleAddSlot("ca-pub-3600556074671070", "WebDevelopment_Leaderboard");
GA_googleAddSlot("ca-pub-3600556074671070", "large_rectangle_test");
GA_googleAddSlot("ca-pub-3600556074671070", "article_footer");
GA_googleAddSlot("ca-pub-3600556074671070", "sidebar_bottom_lr");
GA_googleAddSlot("ca-pub-3600556074671070", "small_footer_square");
GA_googleAddSlot("ca-pub-3600556074671070", "small_footer_square_middle");
GA_googleAddSlot("ca-pub-3600556074671070", "small_footer_square_right");
GA_googleAddSlot("ca-pub-3600556074671070", "subscriptions");

</script>
<script type="text/javascript">
  GA_googleFetchAds();
</script>
<!-- END OF TAG FOR head SECTION -->

 <!-- <script src="http://www.google-analytics.com/urchin.js" type="text/javascript"></script> -->
 <!--<script type="text/javascript">_uacct = "UA-1117794-1"; urchinTracker();</script> -->
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-1117794-1");
pageTracker._setDomainName(".linuxjournal.com");
pageTracker._trackPageview();
} catch(err) {}</script>

<!-- Start Quantcast tag -->
<script type="text/javascript"
src="http://edge.quantserve.com/quant.js"></script>
<script
type="text/javascript">_qacct="p-a3K3N6enFe9wA";quantserve();</script>
<object>
<noscript>
<a href="http://www.quantcast.com/p-a3K3N6enFe9wA"
target="_blank"><img
src="http://pixel.quantserve.com/pixel/p-a3K3N6enFe9wA.gif"
style="display: none;" border="0" height="1" width="1"
alt="Quantcast"/></a>
</noscript>
</object>
<!-- End Quantcast tag -->

</head>
<body class="not-front not-logged-in node-type-xmlnode one-sidebar sidebar-right page-magazine-avsynthesis-blending-light-and-sound-opengl-and-csound5 section-magazine">


  <div id="page"><div id="page-inner">
<div id="header-top">
<div id="login">
<form action="/?q=user&amp;destination=node%2F10036"  method="post" id="user-login">
Username/Email:&nbsp;<input type="text" maxlength="60" name="name" id="edit-name" size="15" value="" class="form-text required" />
Password:&nbsp;<input type="password" maxlength="" name="pass" id="edit-pass" size="15" class="form-text required" />
<input type="submit" name="op" value="Login" class="form-submit" />


<input type="hidden" name="form_id" id="edit-user-login" value="user_login" />

</form>
</div>
<div id="login-links">
<a href="/user/register">Register</a> | <a href="/user/password">Forgot your password?</a>



</div>
<div id="connect">
<a href="http://www.twitter.com/linuxjournal" title="Follow us on Twitter"><img alt="Twitter" src="/files/linuxjournal.com/images/twittericon.jpg" /></a><a href="http://www.facebook.com/linuxjournal" title="Become a Fan on Facebook"><img alt="Facebook" src="/files/linuxjournal.com/images/fbicon.jpg" /></a><a href="http://www.flickr.com/groups/linuxjournal/pool/" title="Contribute to Our Flickr Pool"><img alt="Flickr" src="/files/linuxjournal.com/images/flickricon.jpg" /></a><a href="/rss_feeds" title="Subscribe to Our Feeds"><img alt="RSS" src="/files/linuxjournal.com/images/rssicon.jpg" /></a>
</div>
</div> <!-- /#header-top -->





    <a name="top" id="navigation-top"></a>
          <div id="skip-to-nav"><a href="#navigation">Skip to Navigation</a></div>
    
    <div id="header"><div id="header-inner" class="clear-block">

              <div id="logo-title">

                      <div id="logo"><a href="/" title="Home" rel="home"><img src="/files/linuxjournal.com/ufiles/logo-lj.jpg" alt="Linux Journal" id="logo-image" /></a></div>
          
          
          
	<div id="leaderboard-adblock" class="adblock leaderboard-adblock">
       <div id="block-block-90" class="block block-block region-odd even region-count-1 count-14"><div class="block-inner">

  
  <div class="content">
    <!--paging_filter--><!-- PUT THIS TAG IN DESIRED LOCATION OF SLOT Leaderboard728x90
     -->
<script type="text/javascript">
  GA_googleFillSlot("Leaderboard728x90");
</script>
<!-- END OF TAG FOR SLOT Leaderboard728x90
     -->
  </div>

  
</div></div> <!-- /block-inner, /block -->
	</div>

        </div> <!-- /#logo-title -->
      


      
    </div></div> <!-- /#header-inner, /#header -->

    <div id="main"><div id="main-inner" class="clear-block with-navbar">

      <div id="content"><div id="content-inner">

        
        
                  <div id="content-header">
            <div class="breadcrumb"><a href="/">Home</a> › </div>                          <h1 class="title">AVSynthesis: Blending Light and Sound with OpenGL and Csound5</h1>
                                                          </div> <!-- /#content-header -->
        
        <div id="content-area">
          <div id="node-10036" class="node node-type-xmlnode"><div class="node-inner">



  

  
  
  


  

<div id="facebook-like">
<iframe src="http://www.facebook.com/plugins/like.php?href=www.linuxjournal.com/magazine/avsynthesis-blending-light-and-sound-opengl-and-csound5&amp;layout=standard&amp;show_faces=false&amp;width=250&amp;action=like&amp;font=arial&amp;colorscheme=light&amp;height=55" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:250px; height:55px;" allowTransparency="true"></iframe>
</div>

<div class="issue"> 
	<div class="issue-cover">
	<a href="/issue/169"><img title="Issue 169" alt="Issue 169" src="/files/linuxjournal.com/linuxjournal/issues/169/cover169.small.jpg" /></a>
	</div>
	<p><a href="/issue/169">From Issue #169<br />May 2008</a></p>
</div>

  

  

  
      <div class="meta">
              <div class="submitted">
		May 01, 2008		&nbsp;By&nbsp;<a href="/users/dave-phillips" title="View user profile.">Dave Phillips</a>	</div>
      
              <div class="terms terms-inline">&nbsp;in<ul class="links inline"><li class="taxonomy_term_28 first last"><a href="/taxonomy/term/28" rel="tag" title="">Audio/Video</a></li>
</ul></div>
      
  	 </div>
    <!-- how'd this get in here?</div> -->
  
  
    	<div class="abstract">
	Introducing a unique and powerful program for mixing <emphasis>son et lumière</emphasis> into fascinating experimental videos.	</div>
    



  <div class="content">

    <div class="article" lang="en"><div class="simplesect" lang="en"><div class="titlepage"><a name="N0xa50890.0xb44b70"></a></div>

<p>
The artistic combination of sound and image is a common enough
phenomenon. Movies, television and various Internet channels demonstrate
the happy results from the blend of recorded sight and sound. However,
these examples typically utilize sound in the role of an accompanist,
perhaps greatly significant but still primarily an accompanist.
</p><p>
There is another way to consider the role of music and sound in video
production&mdash;a way in which the sound itself informs the flow of images
and their transformations. Although not a novel concept (see the Wikipedia
entry on John Whitney), the practice has taken on a new richness of
possibilities with the use of computers in the recording and editing of
digital <span class="emphasis"><em>son et lumière</em></span>.
</p>

<p>
Jean-Pierre Lemoine has been exploring these new riches at least since the
late 1990s. I profiled his HPKComposer (coauthored with Didiel Debril)
in my <span class="emphasis"><em>Book of Linux Music &amp; Sound</em></span>, which was written in 1999,
and even then the HPKComposer Web page stated that the program was
“... a 3D art composition tool for Csound”. At that time, the authors
chose to use the Virtual Reality Modeling Language (VRML) for its
graphics engine. I could meet the program's Java requirements and work
with its Csound side, but I was unable to work with VRML under Linux
then. Nevertheless, the Web site's screenshots made quite an impression,
and I hoped that someday such a program would become useful under Linux.
</p><p>
Cut to the work of Csound developer Gabriel Maldonado: his CsoundAV
for Windows is a true fork from the canonical Csound source tree, but
Gabe is a genial fellow who freely offers all his code extensions to the
community. Recent developments in canonical Csound have facilitated the
adoption of some CsoundAV opcodes, though we await the inclusion of the
CsoundAV opcodes for OpenGL, and this situation brings us to the latest
work of Jean-Pierre Lemoine, titled simply AVSynthesis (Figure 1).
</p><div class="mediaobject"><a href="/files/linuxjournal.com/linuxjournal/articles/100/10036/10036f1.jpg"><img src="/files/linuxjournal.com/linuxjournal/articles/100/10036/10036f1.inline.jpg" /></a><div class="caption"><p>
Figure 1. AVSynthesis in Play
</p></div></div><p>
AVSynthesis embraces and extends many of the design concepts behind
HPKComposer. The program blends sound and images to produce abstract
non-representational works of art. It's written in Java, and Csound is still
the audio engine of choice, but the VRML interface has been replaced by
a set of image controls based on the OpenGL shading language (GLSL).
The
program creates radical associations and correspondences between image
and sound, leveraging the powers of Csound and OpenGL for the arbitrary
manipulation of digital audio and digital images.
</p></div><div class="simplesect" lang="en"><div class="titlepage"><a name="N0xa50890.0xb451a0"></a>
Requirements and Installations</div><p>
Like many experimental applications, AVSynthesis is not a perfectly
packaged program, and it is not ready for use right out of the box. It
is a unique program, and as such, it has some unique requirements that
may not be met by your distribution's package repositories. Building the
required dependencies is not especially difficult, as long as you have a
typical Linux development environment installed and properly configured
for your system. I include here the particular instructions for compiling
Csound and configuring AVSynthesis, with some notes on the requirements
for building the application on a 64-bit system.
</p><p>
AVSynthesis demands a specific set of dependencies:
</p><div class="itemizedlist"><ul type="disc"><li><p>
Java (1.5 or higher)
</p></li><li><p>
LWJGL (the Light Weight Java Game Library)
</p></li><li><p>
Csound (5.07 or higher) 
</p></li><li><p>
OpenGL
</p></li></ul></div><p>
Where they are noted, the versions are critical, and each component is
subject to its own build prerequisites. As mentioned, Csound needs some
special attention in order to use it with AVSynthesis.
</p><p>
Csound has its own set of necessary dependencies, but space
restrictions here forbid a complete description of the program and
its requirements. Fortunately, thorough and excellent documentation
is available from <a href="http://www.csounds.com">www.csounds.com</a>, so I focus here only on the
configuration needed to compile the program for use with AVSynthesis.
</p><p>
The following options configure and compile the csound binary for
double-precision floating-point numerics and create lib_jcsound.so, a Java
“wrapper” library for Csound's audio synthesis and processing
services:

<pre class="programlisting">
scons useDouble=1 install=1 buildPythonOpcodes=1 buildInterfaces=1 
 &#8618;buildJavaWrapper=1 dynamicCsoundLibrary=1
</pre>
</p><p>
The Python opcodes are not required by AVSynthesis, but I include the
option for use with Steven Yi's blue, a superb environment for
working with Csound. All other options in this build configuration must
be included for work with AVSynthesis. If the build is successful, the
lib_jcsound.so library will be at the top level of the Csound source
tree. Install Csound (<tt>scons install</tt>), then copy lib_jcsound.so to the
AVSynthesis native directory. That's it; you're finished with setting
up the audio side of AVSynthesis.
</p><p>
The OpenGL and LWJGL libraries provide the interface's visual components
and style. The various parameter control screens resemble the control
panels seen in many OpenGL-based games, with visual effects, such as
animated icons and mobile transparencies&mdash;niceties that liven the
appearance of the program and improve its work flow.
</p><p>
The LWJGL libraries present a minor difficulty. The AVSynthesis package
includes the LWJGL libraries as Windows-format DLLs but not the required
native Linux libraries (that is, in .so format). The package includes these
DLLs:
</p><div class="itemizedlist"><ul type="disc"><li><p>
DevIL.dll 
</p></li><li><p>
ILU.dll
</p></li><li><p>
ILUT.dll
</p></li><li><p>
_jcsound.dll
</p></li><li><p>
lwjgl-devil.dll
</p></li><li><p>
lwjgl.dll
</p></li></ul></div><p>
Those files must be replaced by the following native Linux equivalents:
</p><div class="itemizedlist"><ul type="disc"><li><p>
libIL.so
</p></li><li><p>
libILU.so
</p></li><li><p>
libILUT.so
</p></li><li><p>
lib_jcsound.so
</p></li><li><p>
liblwjgl-devil.so 
</p></li><li><p>
liblwjgl.so
</p></li></ul></div><p>
The lib_jcsound.so library comes from the Csound build described
above; the others come from the LWJGL binary package (downloaded from
<a href="http://lwjgl.org">lwjgl.org</a>). Alas, 64-bit users will need to build and install the LWJGL
and the IL libraries themselves. As far as I could tell, packages for
these libraries are not readily available in 64-bit format, but building
them is trivial and requires no special instructions beyond adding
--with-pic to the configuration step (<tt>./config
--with-pic</tt>). After building
or downloading the libraries, they must be copied to the AVSynthesis
native directory. You then can move or delete the DLL versions.
</p><p>
Neither Java nor OpenGL requires any rebuilding or special runtime
options. These are common packages now, so if you don't have them
installed already, summon your package manager and install the latest
versions (Java must be 1.5 or higher). AVSynthesis itself is launched from
a .jar file that works equally well in a 32-bit or 64-bit environment.
</p><p>
In addition to these software requirements, your computer should have
a fast CPU and a video system capable of accelerated 3-D graphics. I
tested AVSynthesis on two machines: a 32-bit box with an AMD64 3800+
CPU (a 2.4GHz chip) and a 64-bit machine powered by an AMD64 3200+ CPU
(2GHz). Both systems include NVIDIA graphics boards (GeForce 7300GS and
GeForce 7600GS, respectively), with xorg.conf configured for NVIDIA's
proprietary nvidia driver (that is, not the open-source nv
module). The 32-bit iron runs the JAD distribution, based on OpenSUSE
10.2, and my 64-bit box runs 64 Studio, a Debian-based distro. Both
systems are optimized for multimedia and include kernels optimized
for real-time performance. However, programs such as AVSynthesis want
resources, lots of them, and I consider my machines as rather low-end
for AVSynthesis. Your mileage may vary, of course, but for the best
results from this program, I recommend a 3GHz CPU, at least 2GB of RAM,
a fast 3-D graphics card and a large, fast hard disk.
</p><p>
I also recommend a high-quality audio system. Cheaper desktop speaker
arrays may be suitable for watching DVDs, but Csound is capable of
audiophile-quality output, so you'll want a sound system as powerful as
your graphics system. Here at Studio Dave, I have my JAD box connected
to a relatively low-end 5.1 sound system (a combination of Creative
Labs and Peavey hardware), while the 64 Studio machine is hooked up to
a conventional small studio audio system with a Yamaha digital mixer,
a standalone 100-watt power amplifier and a pair of high-quality
monitor speakers.
</p></div></div><div class="links"><div class="item-list"><ul class="pager"><li class="pager-current first">1</li>
<li class="pager-item"><a href="/magazine/avsynthesis-blending-light-and-sound-opengl-and-csound5?page=0,1" title="Go to page 2" class="active">2</a></li>
<li class="pager-item"><a href="/magazine/avsynthesis-blending-light-and-sound-opengl-and-csound5?page=0,2" title="Go to page 3" class="active">3</a></li>
<li class="pager-item"><a href="/magazine/avsynthesis-blending-light-and-sound-opengl-and-csound5?page=0,3" title="Go to page 4" class="active">4</a></li>
<li class="pager-item"><a href="/magazine/avsynthesis-blending-light-and-sound-opengl-and-csound5?page=0,4" title="Go to page 5" class="active">5</a></li>
<li class="pager-next"><a href="/magazine/avsynthesis-blending-light-and-sound-opengl-and-csound5?page=0,1" title="Go to next page" class="active">next ›</a></li>
<li class="pager-last last"><a href="/magazine/avsynthesis-blending-light-and-sound-opengl-and-csound5?page=0,4" title="Go to last page" class="active">last »</a></li>
</ul></div></div>
  </div>
      <div class="user-signature clear-block">
______________________
	<p>
        <!--paging_filter-->Similis sum folio de quo ludunt venti.	</p>
      </div>
   


  <ul class="links inline"><li class="flag-anon first"><a href="/u?destination=node%2F10036">Login to save this as favorite</a></li>
<li class="service-links-delicious"><a href="http://del.icio.us/post?url=http%3A%2F%2Fwww.linuxjournal.com%2Fmagazine%2Favsynthesis-blending-light-and-sound-opengl-and-csound5&amp;title=AVSynthesis%3A+Blending+Light+and+Sound+with+OpenGL+and+Csound5" title="Bookmark this post on del.icio.us." id="service-links-delicious-1" class="service-links-delicious" rel="nofollow"><img src="/sites/linuxjournal.com/modules/service_links/images/delicious.png" alt="del.icio.us" title="" width="16" height="16" /></a></li>
<li class="service-links-digg"><a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.linuxjournal.com%2Fmagazine%2Favsynthesis-blending-light-and-sound-opengl-and-csound5&amp;title=AVSynthesis%3A+Blending+Light+and+Sound+with+OpenGL+and+Csound5" title="Digg this post on digg.com" id="service-links-digg-1" class="service-links-digg" rel="nofollow"><img src="/sites/linuxjournal.com/modules/service_links/images/digg.png" alt="Digg" title="" width="16" height="16" /></a></li>
<li class="service-links-facebook"><a href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fwww.linuxjournal.com%2Fmagazine%2Favsynthesis-blending-light-and-sound-opengl-and-csound5&amp;t=AVSynthesis%3A+Blending+Light+and+Sound+with+OpenGL+and+Csound5" title="Share on Facebook." id="service-links-facebook-1" class="service-links-facebook" rel="nofollow"><img src="/sites/linuxjournal.com/modules/service_links/images/facebook.png" alt="Facebook" title="" width="16" height="16" /></a></li>
<li class="service-links-reddit"><a href="http://reddit.com/submit?url=http%3A%2F%2Fwww.linuxjournal.com%2Fmagazine%2Favsynthesis-blending-light-and-sound-opengl-and-csound5&amp;title=AVSynthesis%3A+Blending+Light+and+Sound+with+OpenGL+and+Csound5" title="Submit this post on reddit.com." id="service-links-reddit-1" class="service-links-reddit" rel="nofollow"><img src="/sites/linuxjournal.com/modules/service_links/images/reddit.png" alt="Reddit" title="" width="16" height="16" /></a></li>
<li class="service-links-slashdot"><a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Fwww.linuxjournal.com%2Fmagazine%2Favsynthesis-blending-light-and-sound-opengl-and-csound5&amp;title=AVSynthesis%3A+Blending+Light+and+Sound+with+OpenGL+and+Csound5" title="Bookmark this post on SlashDot" id="service-links-slashdot-1" class="service-links-slashdot" rel="nofollow"><img src="/sites/linuxjournal.com/modules/service_links/images/slashdot.png" alt="SlashDot" title="" width="16" height="16" /></a></li>
<li class="service-links-stumbleupon"><a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.linuxjournal.com%2Fmagazine%2Favsynthesis-blending-light-and-sound-opengl-and-csound5&amp;title=AVSynthesis%3A+Blending+Light+and+Sound+with+OpenGL+and+Csound5" title="Thumb this up at StumbleUpon" id="service-links-stumbleupon-1" class="service-links-stumbleupon" rel="nofollow"><img src="/sites/linuxjournal.com/modules/service_links/images/stumbleit.png" alt="StumbleUpon" title="" width="16" height="16" /></a></li>
<li class="tweet_Twitter last"><a href="http://twitter.com/home?status=+AVSynthesis%3A+Blending+Light+and+Sound+with+O%E2%80%A6%3A+http%3A/%2Fwww.linuxjournal.com/magazine/avsynthesis-blending-light-and-sound-opengl-and-csound5" class="tweet" rel="nofollow" target="_blank"><img src="/sites/linuxjournal.com/modules/tweet/twitter.png" alt="Post to Twitter" title="Post to Twitter" width="16" height="16" /></a></li>
</ul>
 <!-- <div class="contentad">

  </div>
  -->

<div id="article_footer"><!-- article_footer -->
<script type='text/javascript'>
GA_googleFillSlot("article_footer");
</script>  
</div> <!-- /#article_footer -->




</div></div> <!-- /node-inner, /node -->


  <div id="comments">
          <h2 id="comments-title">Comments</h2>
        <form action="/article/10036"  accept-charset="UTF-8" method="post" id="comment-controls">
<div><div class="box"><div class="box-inner">

      <h2 class="title">Comment viewing options</h2>
  
  <div class="content">
    <div class="container-inline"><input type="hidden" name="form_build_id" id="form-9e49a035447e7f7a434ae8f4f6070cda" value="form-9e49a035447e7f7a434ae8f4f6070cda"  />
<input type="hidden" name="form_id" id="edit-comment-controls" value="comment_controls"  />
<div class="form-item" id="edit-mode-wrapper">
 <select name="mode" class="form-select" id="edit-mode" ><option value="1">Flat list - collapsed</option><option value="2">Flat list - expanded</option><option value="3">Threaded list - collapsed</option><option value="4" selected="selected">Threaded list - expanded</option></select>
</div>
<div class="form-item" id="edit-order-wrapper">
 <select name="order" class="form-select" id="edit-order" ><option value="1" selected="selected">Date - newest first</option><option value="2">Date - oldest first</option></select>
</div>
<div class="form-item" id="edit-comments-per-page-wrapper">
 <select name="comments_per_page" class="form-select" id="edit-comments-per-page" ><option value="10">10 comments per page</option><option value="30">30 comments per page</option><option value="50" selected="selected">50 comments per page</option><option value="70">70 comments per page</option><option value="90">90 comments per page</option><option value="150">150 comments per page</option><option value="200">200 comments per page</option><option value="250">250 comments per page</option><option value="300">300 comments per page</option></select>
</div>
<input type="submit" name="op" id="edit-submit" value="Save settings"  class="form-submit" />
</div><div class="description">Select your preferred way to display the comments and click "Save settings" to activate your changes.</div>  </div>

</div></div> <!-- /box-inner, /box -->

</div></form>
<a id="comment-345505"></a>
<div class="comment comment-published odd first comment-by-anon"><div class="comment-inner clear-block">

      <h3 class="title">
      <a href="/magazine/avsynthesis-blending-light-and-sound-opengl-and-csound5#comment-345505" class="active">thanks</a>          </h3>
  
  
  <div class="picture">
  <img src="/files/linuxjournal.com/images/personicon.jpg" alt="becks77&#039;s picture" title="becks77&#039;s picture"  /></div>

  <div class="submitted">
    Submitted by <a href="http://msound.org" rel="nofollow">becks77</a> (not verified) on Mon, 11/23/2009 - 14:29.  </div>

  <div class="content">
    <p>thanks dave, you save me many hours of work with a clean doc on installation, usage, and rendering... i love avsynthesis</p>
      </div>

  
</div></div> <!-- /comment-inner, /comment -->
<a id="comment-321579"></a>
<div class="comment comment-published even last comment-by-author"><div class="comment-inner clear-block">

      <h3 class="title">
      <a href="/magazine/avsynthesis-blending-light-and-sound-opengl-and-csound5#comment-321579" class="active">update 5/02</a>          </h3>
  
  
  <div class="picture">
  <a href="/users/dave-phillips" title="View user profile."><img src="http://www.linuxjournal.com/files/linuxjournal.com/ufiles/pictures/picture-800764.jpg" alt="Dave Phillips&#039;s picture" title="Dave Phillips&#039;s picture"  /></a></div>

  <div class="submitted">
    Submitted by <a href="/users/dave-phillips" title="View user profile.">Dave Phillips</a> on Fri, 05/02/2008 - 05:48.  </div>

  <div class="content">
    <p>AVS has gone through a series of updates since I wrote this article. Please see the AVS Web page for more information. Significant improvements include randomization controls, a version for JOGL (intended to replace the LWGL dependencies), and better image-size support.</p>
        <div class="user-signature clear-block">
      <p>Similis sum folio de quo ludunt venti.</p>
    </div>
      </div>

  
</div></div> <!-- /comment-inner, /comment -->
  </div>
        </div> <!-- /#content-area -->

        
        
      </div></div> <!-- /#content-inner, /#content -->

              <div id="navbar"><div id="navbar-inner" class="clear-block region region-navbar">

          <a name="navigation" id="navigation"></a>

          
                      <div id="primary">
              <ul class="links"><li class="menu-1783 first"><a href="/video">Video</a></li>
<li class="menu-1800"><a href="/news">News</a></li>
<li class="menu-150"><a href="/blog">Blogs</a></li>
<li class="menu-1802"><a href="/tag/reviews" title="">Reviews</a></li>
<li class="menu-187"><a href="/tag/how-tos">HOWTOs</a></li>
<li class="menu-1803"><a href="/participate" title="">Participate</a></li>
<li class="menu-71"><a href="/tag/tech-tips" title="">Hep &amp; Tips</a></li>
<li class="menu-181"><a href="/getlinux">How to Get Linux</a></li>
<li class="menu-184 last"><a href="/gettinghelp">Getting Help</a></li>
</ul> <div id="searchbox">
 
<div id="cse-search-form" style="width: 100%;">Loading</div>
<script src="//www.google.com/jsapi" type="text/javascript"></script>
<script type="text/javascript"> 
  google.load('search', '1', {language : 'en'});
  google.setOnLoadCallback(function() {
    var customSearchControl = new google.search.CustomSearchControl(
      '000332554451520836487:ikifqzncxvw');

    customSearchControl.setResultSetSize(google.search.Search.FILTERED_CSE_RESULTSET);
    var options = new google.search.DrawOptions();
    options.enableSearchboxOnly("http://linuxjournal.com/googlesearch","s");
    customSearchControl.draw('cse-search-form', options);
  }, true);
</script>
<link rel="stylesheet" href="//www.google.com/cse/style/look/default.css" type="text/css" />
<style type="text/css">
  input.gsc-input {
    border-color: #EEEEEE;
  }
  input.gsc-search-button {
    border-color: #666666;
    background-color: #CECECE;
  }
</style>
</div><!-- /#searchbox -->
            </div> <!-- /#primary -->
          
          
          
        </div></div> <!-- /#navbar-inner, /#navbar -->
      
      
              <div id="sidebar-right"><div id="sidebar-right-inner" class="region region-right">
          <div id="block-block-44" class="block block-block region-odd even region-count-1 count-4"><div class="block-inner">

  
  <div class="content">
    <!--paging_filter--><!-- PUT THIS TAG IN DESIRED LOCATION OF SLOT Large_Rectangle336x280
     -->
<script type="text/javascript">
  GA_googleFillSlot("Large_Rectangle336x280");
</script>
<!-- END OF TAG FOR SLOT Large_Rectangle336x280
     -->  </div>

  
</div></div> <!-- /block-inner, /block -->
<div id="block-block-97" class="block block-block region-even odd region-count-2 count-5"><div class="block-inner">

  
  <div class="content">
    <!--paging_filter--><!-- subscriptions -->
<script type='text/javascript'>
GA_googleFillSlot("subscriptions");
</script>
<br />
<a class="red" href="http://www.linuxjournal.com/subs/customer_service">Already a subscriber? Click here for subscriber services.</a>

  </div>

  
</div></div> <!-- /block-inner, /block -->
<div id="block-menu-menu-channels" class="block block-menu region-odd even region-count-3 count-6"><div class="block-inner">

      <h2 class="title">Trending Topics</h2>
  
  <div class="content">
    <ul class="menu"><li class="leaf first"><a href="/tag/cloud" title="">Cloud</a></li>
<li class="leaf"><a href="/tag/desktop" title="">Desktop</a></li>
<li class="leaf"><a href="/tag/embedded" title="">Embedded</a></li>
<li class="leaf"><a href="/tag/hpc" title="">HPC</a></li>
<li class="leaf"><a href="/tag/security" title="">Security</a></li>
<li class="leaf"><a href="/tag/sysadmin" title="">SysAdmin</a></li>
<li class="leaf"><a href="/tag/virtualization" title="">Virtualization</a></li>
<li class="leaf last"><a href="/tag/web-development" title="">Web Development</a></li>
</ul>  </div>

  
</div></div> <!-- /block-inner, /block -->
<div id="block-block-101" class="block block-block region-even odd region-count-4 count-7"><div class="block-inner">

  
  <div class="content">
    <!--paging_filter--><script type="text/javascript" id="jobthread_8959538">
	(function(){
		function jobthread_load(){
			var s = document.createElement('script'); s.type = 'text/javascript'; s.async = true;
			s.src = 'http://edge.jobthread.com/jobs.linuxjournal.com/feeds/jobroll/?num_jobs=5&num_featured_jobs=1&display_method=default&template_name=module&target_id=jobthread_8959538&version=2.0';
			var x = document.getElementsByTagName('script')[0]; x.parentNode.insertBefore(s, x);
		}

		if (window.addEventListener) {
			window.addEventListener('load', jobthread_load, false);
		} else if (window.attachEvent) {
			window.attachEvent('onload', jobthread_load);
		}
	})();
</script>
  </div>

  
</div></div> <!-- /block-inner, /block -->
<div id="block-quicktabs-1" class="block block-quicktabs region-odd even region-count-5 count-8"><div class="block-inner">

  
  <div class="content">
    <div id="quicktabs-1" class="quicktabs_wrapper quicktabs-style-zen"><ul class="quicktabs_tabs quicktabs-style-zen"><li class="qtab-0 active first"><a href="/magazine/avsynthesis-blending-light-and-sound-opengl-and-csound5?quicktabs_1=0#quicktabs-1" id="quicktabs-tab-1-0" class="qt_tab active">The Latest</a></li><li class="qtab-1"><a href="/magazine/avsynthesis-blending-light-and-sound-opengl-and-csound5?quicktabs_1=1#quicktabs-1" id="quicktabs-tab-1-1" class="qt_tab active">Popular</a></li><li class="qtab-2 last"><a href="/magazine/avsynthesis-blending-light-and-sound-opengl-and-csound5?quicktabs_1=2#quicktabs-1" id="quicktabs-tab-1-2" class="qt_tab active">Recent Comments</a></li></ul><div id="quicktabs_container_1" class="quicktabs_main quicktabs-style-zen"><div id="quicktabs_tabpage_1_0" class="quicktabs_tabpage"><div id="block-views-latest_stories-block_1" class="block block-views region-odd odd region-count-1 count-1"><div class="block-inner">

  
  <div class="content">
    <div class="view view-latest-stories view-id-latest_stories view-display-id-block_1 view-dom-id-1">
    
  
  
      <div class="view-content">
      <table class="views-table cols-6">
    <thead>
    <tr>
              <th class="views-field views-field-title">
                  </th>
              <th class="views-field views-field-created">
                  </th>
          </tr>
  </thead>
  <tbody>
          <tr class="odd views-row-first">
                  <td class="views-field views-field-title">
            <a href="/content/astronomy-desktop">Astronomy on the Desktop</a>          </td>
                  <td class="views-field views-field-created">
            Feb 15, 2012          </td>
              </tr>
          <tr class="even">
                  <td class="views-field views-field-title">
            <a href="/content/dia-diagram-creation-tool-0">Dia - The Diagram Creation Tool</a>          </td>
                  <td class="views-field views-field-created">
            Feb 13, 2012          </td>
              </tr>
          <tr class="odd">
                  <td class="views-field views-field-title">
            <a href="/content/you-need-budget">You Need A Budget</a>          </td>
                  <td class="views-field views-field-created">
            Feb 10, 2012          </td>
              </tr>
          <tr class="even">
                  <td class="views-field views-field-title">
            <a href="/content/linux-powered-lan-gaming-house">The Linux powered LAN Gaming House</a>          </td>
                  <td class="views-field views-field-created">
            Feb 08, 2012          </td>
              </tr>
          <tr class="odd">
                  <td class="views-field views-field-title">
            <a href="/content/creating-vdso-colonels-other-chicken">Creating a vDSO: the Colonel&#039;s Other Chicken</a>          </td>
                  <td class="views-field views-field-created">
            Feb 06, 2012          </td>
              </tr>
          <tr class="even views-row-last">
                  <td class="views-field views-field-title">
            <a href="/content/your-cms-not-your-web-site">Your CMS Is Not Your Web Site</a>          </td>
                  <td class="views-field views-field-created">
            Feb 01, 2012          </td>
              </tr>
      </tbody>
</table>
    </div>
  
  
  
      
<div class="more-link">
  <a href="/latest">
    more  </a>
</div>
  
  
  
</div>   </div>

  
</div></div> <!-- /block-inner, /block -->
</div><div id="quicktabs_tabpage_1_1" class="quicktabs_tabpage quicktabs-hide"><div id="block-views-popular-block_1" class="block block-views region-even even region-count-2 count-2"><div class="block-inner">

  
  <div class="content">
    <div class="view view-popular view-id-popular view-display-id-block_1 view-dom-id-2">
    
  
  
      <div class="view-content">
      <div class="item-list">
    <ul>
          <li class="views-row views-row-1 views-row-odd views-row-first">  
  <span class="views-field-title">
                <span class="field-content"><a href="/content/fun-ethtool">Fun with ethtool</a></span>
  </span>
</li>
          <li class="views-row views-row-2 views-row-even">  
  <span class="views-field-title">
                <span class="field-content"><a href="/content/astronomy-desktop">Astronomy on the Desktop</a></span>
  </span>
</li>
          <li class="views-row views-row-3 views-row-odd">  
  <span class="views-field-title">
                <span class="field-content"><a href="/slideshow/readers-choice-2011">Readers&#039; Choice Awards 2011</a></span>
  </span>
</li>
          <li class="views-row views-row-4 views-row-even">  
  <span class="views-field-title">
                <span class="field-content"><a href="/content/dia-diagram-creation-tool-0">Dia - The Diagram Creation Tool</a></span>
  </span>
</li>
          <li class="views-row views-row-5 views-row-odd">  
  <span class="views-field-title">
                <span class="field-content"><a href="/article/9585">Validate an E-Mail Address with PHP, the Right Way</a></span>
  </span>
</li>
          <li class="views-row views-row-6 views-row-even">  
  <span class="views-field-title">
                <span class="field-content"><a href="/article/10940">Python for Android</a></span>
  </span>
</li>
          <li class="views-row views-row-7 views-row-odd">  
  <span class="views-field-title">
                <span class="field-content"><a href="/article/3882">Why Python?</a></span>
  </span>
</li>
          <li class="views-row views-row-8 views-row-even">  
  <span class="views-field-title">
                <span class="field-content"><a href="/article/4622">Boot with GRUB</a></span>
  </span>
</li>
          <li class="views-row views-row-9 views-row-odd">  
  <span class="views-field-title">
                <span class="field-content"><a href="/content/linux-powered-lan-gaming-house">The Linux powered LAN Gaming House</a></span>
  </span>
</li>
          <li class="views-row views-row-10 views-row-even views-row-last">  
  <span class="views-field-title">
                <span class="field-content"><a href="/article/7353">Writing a Simple USB Driver</a></span>
  </span>
</li>
      </ul>
</div>    </div>
  
  
  
      
<div class="more-link">
  <a href="/popular/today">
    more  </a>
</div>
  
  
  
</div>   </div>

  
</div></div> <!-- /block-inner, /block -->
</div><div id="quicktabs_tabpage_1_2" class="quicktabs_tabpage quicktabs-hide"><div id="block-comment-0" class="block block-comment region-odd odd region-count-3 count-3"><div class="block-inner">

  
  <div class="content">
    <div class="item-list"><ul><li class="first"><a href="/content/enter-win-free-oops-wrong-window-tshirt#comment-371376">Im talking about if i bough a</a><br />6 hours 16 min ago</li>
<li><a href="/content/near-death-blog-search#comment-371375">I want an actual store that</a><br />6 hours 17 min ago</li>
<li><a href="/content/dia-diagram-creation-tool-0#comment-371374">tedia2sql</a><br />7 hours 46 min ago</li>
<li><a href="/content/cyber-monday-10-coupon-brand-new-archive-dvd#comment-371373">Oh shoot I missed it! When is</a><br />8 hours 19 min ago</li>
<li><a href="/content/dia-diagram-creation-tool-0#comment-371372">Mathematics Research</a><br />8 hours 53 min ago</li>
<li><a href="/content/casper-friendly-and-persistent-ghost#comment-371371">Great, This is really amazing</a><br />8 hours 55 min ago</li>
<li><a href="/content/your-cms-not-your-web-site#comment-371370">It’s a really great site you</a><br />8 hours 56 min ago</li>
<li><a href="/content/linux-powered-lan-gaming-house#comment-371369">Hello ,I like this Blog post</a><br />8 hours 57 min ago</li>
<li><a href="/content/you-need-budget#comment-371368">Great post and now I know</a><br />8 hours 59 min ago</li>
<li class="last"><a href="/content/you-need-budget#comment-371366">Computer history is strewn</a><br />9 hours 16 min ago</li>
</ul></div>  </div>

  
</div></div> <!-- /block-inner, /block -->
</div></div></div>  </div>

  
</div></div> <!-- /block-inner, /block -->
<div id="block-block-67" class="block block-block region-even odd region-count-6 count-9"><div class="block-inner">

  
  <div class="content">
    <!--paging_filter--><p><a href="/enewsletters"><img alt=" Linux Newsletter" src="/files/linuxjournal.com/images/NewsletterBanner_T3b.jpg" /></a></p>
<p><a href="/new-issue"><img alt=" Linux Newsletter" src="/files/linuxjournal.com/images/SubscriberButton-Feb2012.png" /></a></p>
  </div>

  
</div></div> <!-- /block-inner, /block -->
<div id="block-views-linux_minute-block_2" class="block block-views region-odd even region-count-7 count-10"><div class="block-inner">

  
  <div class="content">
    <div class="view view-linux-minute view-id-linux_minute view-display-id-block_2 view-dom-id-3">
    
  
  
      <div class="view-content">
        <div class="views-row views-row-1 views-row-odd views-row-first views-row-last">
      
  <div class="views-field-field-embed-video-embed">
                <span class="field-content"><div class="emvideo emvideo-preview emvideo-youtube"><div class="emfield-emvideo emfield-emvideo-youtube">        <div id="emvideo-youtube-flash-wrapper-1"><object type="application/x-shockwave-flash" height="250" width="300" data="http://www.youtube.com/v/POurJxYaJUs&amp;rel=0&amp;enablejsapi=1&amp;playerapiid=ytplayer&amp;fs=1" id="emvideo-youtube-flash-1">
          <param name="movie" value="http://www.youtube.com/v/POurJxYaJUs&amp;rel=0&amp;enablejsapi=1&amp;playerapiid=ytplayer&amp;fs=1" />
          <param name="allowScriptAccess" value="sameDomain"/>
          <param name="quality" value="best"/>
          <param name="allowFullScreen" value="true"/>
          <param name="bgcolor" value="#FFFFFF"/>
          <param name="scale" value="noScale"/>
          <param name="salign" value="TL"/>
          <param name="FlashVars" value="playerMode=embedded" />
          <param name="wmode" value="transparent" />
        </object></div></div></div></span>
  </div>
  
  <div class="views-field-title">
                <span class="field-content"><a href="/video-ssd-editor-note">Return to Solid State</a></span>
  </div>
  </div>
    </div>
  
  
  
  
  
  
</div>   </div>

  
</div></div> <!-- /block-inner, /block -->
<div id="block-views-linux_minute-block_3" class="block block-views region-even odd region-count-8 count-11"><div class="block-inner">

  
  <div class="content">
    <div class="view view-linux-minute view-id-linux_minute view-display-id-block_3 view-dom-id-4">
    
  
  
      <div class="view-content">
      <table class="views-view-grid">
  <tbody>
                <tr class="row-1 row-first row-last">
                  <td class="col-1">
              
  <div class="views-field-field-embed-video-embed">
                <span class="field-content"><a href="/video/get-firefox-menu-button-linux"><img src="http://img.youtube.com/vi/YLRdqrCNwaU/0.jpg" alt="See video" title="See video"  width="300" height="225" /></a></span>
  </div>
  
  <div class="views-field-title">
                <span class="field-content"><a href="/video/get-firefox-menu-button-linux">Get Firefox Menu Button in Linux</a></span>
  </div>
          </td>
                  <td class="col-2">
              
  <div class="views-field-field-embed-video-embed">
                <span class="field-content"><a href="/video/quick-and-dirty-ssh-tunneling"><img src="http://img.youtube.com/vi/EkPzt4_S3cc/0.jpg" alt="See video" title="See video"  width="300" height="225" /></a></span>
  </div>
  
  <div class="views-field-title">
                <span class="field-content"><a href="/video/quick-and-dirty-ssh-tunneling">Quick and Dirty SSH Tunneling</a></span>
  </div>
          </td>
                  <td class="col-3">
                      </td>
              </tr>
      </tbody>
</table>
    </div>
  
  
  
  
      <div class="view-footer">
      <!--paging_filter--><div id="more-vids"><a href="/video">Click here for more videos</a></div>
    </div>
  
  
</div>   </div>

  
</div></div> <!-- /block-inner, /block -->
<div id="block-block-98" class="block block-block region-odd even region-count-9 count-12"><div class="block-inner">

  
  <div class="content">
    <!--paging_filter--><!-- sidebar_bottom_lr -->
<script type='text/javascript'>
GA_googleFillSlot("sidebar_bottom_lr");
</script>  </div>

  
</div></div> <!-- /block-inner, /block -->
<div id="block-poll-0" class="block block-poll region-even odd region-count-10 count-13"><div class="block-inner">

      <h2 class="title">Poll</h2>
  
  <div class="content">
    <form action="/article/10036"  accept-charset="UTF-8" method="post" id="poll-view-voting">
<div><div class="poll">
  <div class="vote-form">
    <div class="choices">
              <div class="title">How do you manage your files? Do you: :</div>
            <div class="form-radios"><div class="form-item" id="edit-choice-0-wrapper">
 <label class="option" for="edit-choice-0"><input type="radio" id="edit-choice-0" name="choice" value="0"   class="form-radio" /> Organize your files into folders, and find them based on your filing structure</label>
</div>
<div class="form-item" id="edit-choice-1-wrapper">
 <label class="option" for="edit-choice-1"><input type="radio" id="edit-choice-1" name="choice" value="1"   class="form-radio" /> Lump all your files together and rely on search to find a specific file</label>
</div>
<div class="form-item" id="edit-choice-2-wrapper">
 <label class="option" for="edit-choice-2"><input type="radio" id="edit-choice-2" name="choice" value="2"   class="form-radio" /> Organize your files into folders, but find them using a search</label>
</div>
</div>    </div>
    <input type="submit" name="op" id="edit-vote" value="Vote"  class="form-submit" />
  </div>
    <input type="hidden" name="form_build_id" id="form-48446a8c1f93bcf41b2ec46fe52c54f2" value="form-48446a8c1f93bcf41b2ec46fe52c54f2"  />
<input type="hidden" name="form_id" id="edit-poll-view-voting" value="poll_view_voting"  />
</div>

</div></form>
  </div>

  
</div></div> <!-- /block-inner, /block -->
        </div></div> <!-- /#sidebar-right-inner, /#sidebar-right -->
      
    </div></div> <!-- /#main-inner, /#main -->

          <div id="footer"><div id="footer-inner" class="region region-footer">

        
        <div id="block-block-62" class="block block-block region-odd odd region-count-1 count-15"><div class="block-inner">

  
  <div class="content">
    <!--paging_filter--><div id="subsform">  
     
        
	<form  method="post" name="form" action= "https://www.pubservice.com/subnew2page.aspx?PC=LJ&amp;PK&amp;FC=" class="subform">
        
        <table border="0" cellpadding="0" cellspacing="0">
          <tr>
            <td valign="top">First Name</td>

            <td valign="top" colspan="2">Last Name</td>
          </tr>

    
          <tr>
            <td valign="top"><input type="text" value="" name="FN" size= "18" maxlength="" class="form1" /></td>

            <td valign="top" colspan="2"><input type="text" name="LN" value="" size= "18" class="form1" /></td>
          </tr>
          <tr>
            <td valign="top" >Address 1</td>

            <td valign="top" colspan="2">Address 2</td>


          </tr>
          <tr>
            <td valign="top"><input type="text" value="" name="A1" size= "18" maxlength="" class="form1" /></td>

            <td valign="top" colspan="2"><input type="text" value="" name="A2" size= "18" class="form1" /></td>

  
          </tr>
          <tr>
            <td valign="top">City</td>

            <td valign="top">State</td>

            <td valign="top">Zip</td>
          </tr>

    
          <tr>
            <td valign="top"><input type="text" value="" name="CT" size= "18" maxlength="" class="form1" /></td>

            <td valign="top"><input type="text" value="" name="ST" size="2" class="form2" /></td>

            <td valign="top"><input type="text" value="" name="ZP" size="5" maxlength="5" class="form3" /></td>
          </tr>
       <tr>
            <td valign="top" colspan="3">Email</td>
       </tr>
       <tr>
<td valign="top" colspan="3"><input type="text" value="" name="EM" size="40" class="form4" /></td>
        </tr>
        </table>
        
        <div align="center">
         <input type="image" src="/files/linuxjournal.com/images/clickhere.jpg" />
        </div>

      </form>
       <div class="subslinks">
          <a href="https://www.pubservice.com/subnew2page.aspx?PC=LJ&amp;PK=MPUB911&amp;FC=CANADA&amp;SA=P">Canadian Residents</a> | <a href="https://www.pubservice.com/Subnew1.aspx?PC=LJ&amp;PK=MPUB911&amp;FC=UNITED%20STATES&amp;ref=1&amp;SA=P">Foreign Residents</a> | <a href="https://www.pubservice.com/subgift.aspx?PC=LJ">Gift Subscriptions</a> | <a href="http://www.linuxjournal.com/subs/customer_service">Customer Service</a> | <a href="/content/privacystatement">Privacy Policy</a>

          </div>
 		</div> 
  </div>

  
</div></div> <!-- /block-inner, /block -->
<div id="block-block-63" class="block block-block region-even even region-count-2 count-16"><div class="block-inner">

  
  <div class="content">
    <!--paging_filter--><div id="footer-left">
<!-- small_footer_square -->
<script type='text/javascript'>
GA_googleFillSlot("small_footer_square");
</script>
 </div>
<div id="footer-middle">
<!-- small_footer_square_middle -->
<script type='text/javascript'>
GA_googleFillSlot("small_footer_square_middle");
</script>
 </div>
<div id="footer-right">
<!-- small_footer_square_right -->
<script type='text/javascript'>
GA_googleFillSlot("small_footer_square_right");
</script>
</div>  </div>

  
</div></div> <!-- /block-inner, /block -->
<div id="block-menu-menu-subscriptions" class="block block-menu region-odd odd region-count-3 count-17"><div class="block-inner">

      <h2 class="title">Digital Edition</h2>
  
  <div class="content">
    <ul class="menu"><li class="leaf first"><a href="https://www.pubservice.com/subnew1.aspx?PC=LJ" title="Subscribe to Linux Journal">Subscribe/Renew</a></li>
<li class="leaf"><a href="https://www.pubservice.com/subinfo.aspx?PC=LJ&amp;DO=P" title="Pay Your Subscription Bill">Pay My Bill</a></li>
<li class="leaf"><a href="/subs/customer_service" title="">Customer Service</a></li>
<li class="leaf"><a href="http://www.linuxjournal.com/digital" title="">Digital Downloads</a></li>
<li class="leaf last"><a href="https://www.pubservice.com/subgift.aspx?PC=LJ" title="Give a Subscription to Linux Journal">Gift Subscriptions</a></li>
</ul>  </div>

  
</div></div> <!-- /block-inner, /block -->
<div id="block-menu-menu-linux-resources" class="block block-menu region-even even region-count-4 count-18"><div class="block-inner">

      <h2 class="title">Magazine Formats</h2>
  
  <div class="content">
    <ul class="menu"><li class="leaf first"><a href="/content/pdf" title="PC/Mac">PC/Mac</a></li>
<li class="leaf"><a href="/content/android" title="Android App">Android</a></li>
<li class="leaf"><a href="/content/ios" title="iPhone/iPad">iPhone/iPad</a></li>
<li class="leaf"><a href="/content/epub" title="EPUB Format">EPUB</a></li>
<li class="leaf last"><a href="/content/kindle" title="Kindle Format">Kindle</a></li>
</ul>  </div>

  
</div></div> <!-- /block-inner, /block -->
<div id="block-menu-menu-store" class="block block-menu region-odd odd region-count-5 count-19"><div class="block-inner">

      <h2 class="title">The Store</h2>
  
  <div class="content">
    <ul class="menu"><li class="leaf first"><a href="http://lj.mybigcommerce.com/categories/Buttons-%26-Stickers/" title="Buttons &amp; Stickers">Stickers</a></li>
<li class="leaf"><a href="http://lj.mybigcommerce.com/categories/T%252dShirts-%26-Apparel/" title="T-shirts and Apparel">T-shirts</a></li>
<li class="leaf"><a href="http://lj.mybigcommerce.com/categories/Posters/" title="Posters">Posters</a></li>
<li class="leaf"><a href="http://lj.mybigcommerce.com/categories/Back-Issues-%252d-Digital-Downloads/" title="Buy Back Issues of Linux Journal">Back Issues</a></li>
<li class="leaf last"><a href="http://linuxjournal.com/archive_cd" title="Archive CD">Archive CD</a></li>
</ul>  </div>

  
</div></div> <!-- /block-inner, /block -->
<div id="block-menu-menu-about" class="block block-menu region-even even region-count-6 count-20"><div class="block-inner">

      <h2 class="title">About Us</h2>
  
  <div class="content">
    <ul class="menu"><li class="leaf first"><a href="/advertising" title="Advertise in Linux Journal">Advertise</a></li>
<li class="leaf"><a href="/author" title="Write for Us">Author Info</a></li>
<li class="leaf"><a href="/contact" title="Write a Letter to the Editor">Write a Letter</a></li>
<li class="leaf"><a href="/aboutus/FAQ" title="Frequently Asked Questions">FAQ</a></li>
<li class="leaf last"><a href="/staff" title="Masthead">Masthead</a></li>
</ul>  </div>

  
</div></div> <!-- /block-inner, /block -->
<div id="block-menu-menu-the-site" class="block block-menu region-odd odd region-count-7 count-21"><div class="block-inner">

      <h2 class="title">The Site</h2>
  
  <div class="content">
    <ul class="menu"><li class="leaf first"><a href="/content/copyright" title="Copyright">Copyright</a></li>
<li class="leaf"><a href="/rss_feeds" title="RSS Feeds">RSS Feeds</a></li>
<li class="leaf"><a href="/content/privacy-statement" title="Privacy Statement">Privacy Policy</a></li>
<li class="leaf"><a href="MAILTO:webmaster@linuxjournal.com" title="Report Problems">Report Problems</a></li>
<li class="leaf last"><a href="/aboutus" title="Contact Us">Contact Us</a></li>
</ul>  </div>

  
</div></div> <!-- /block-inner, /block -->
<div id="block-block-70" class="block block-block region-even even region-count-8 count-22"><div class="block-inner">

  
  <div class="content">
    <!--paging_filter--><div id="copyright">Copyright © 1994 - 2011 <em>Linux Journal</em>. All rights reserved.</div>
  </div>

  
</div></div> <!-- /block-inner, /block -->

      </div></div> <!-- /#footer-inner, /#footer -->
    
  </div></div> <!-- /#page-inner, /#page -->

  
  <div id="user_relationships_popup_form" class="user_relationships_ui_popup_form"></div><script type="text/javascript" src="/files/linuxjournal.com/ufiles/js/js_5ab9125af82e08229d3b8a2d090f996a.js"></script>
<script type="text/javascript" src="http://s3.amazonaws.com/new.cetrk.com/pages/scripts/0010/8219.js"> </script>
<script type="text/javascript">
setTimeout(function(){var a=document.createElement("script");
var b=document.getElementsByTagName('script')[0];
a.src=document.location.protocol+"//dnn506yrbagrg.cloudfront.net/pages/scripts/0010/8219.js?"+Math.floor(new Date().getTime()/3600000);
a.async=true;a.type="text/javascript";b.parentNode.insertBefore(a,b)}, 1);
</script>


</body>
</html>
