<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE document PUBLIC "-//CNX//DTD CNXML 0.5 plus MathML//EN" "http://cnx.rice.edu/technology/cnxml/schema/dtd/0.5/cnxml_mathml.dtd">
<document xmlns="http://cnx.rice.edu/cnxml" xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:bib="http://bibtexml.sf.net/" xmlns:m="http://www.w3.org/1998/Math/MathML" id="new">
  <name>Additive Synthesis Techniques</name>
  <metadata>
  <md:version>1.2</md:version>
  <md:created>2007/08/31 10:41:26 GMT-5</md:created>
  <md:revised>2008/03/17 21:40:09.599 GMT-5</md:revised>
  <md:authorlist>
      <md:author id="doering">
      <md:firstname>Ed</md:firstname>
      
      <md:surname>Doering</md:surname>
      <md:email>doering@rose-hulman.edu</md:email>
    </md:author>
  </md:authorlist>

  <md:maintainerlist>
    <md:maintainer id="doering">
      <md:firstname>Ed</md:firstname>
      
      <md:surname>Doering</md:surname>
      <md:email>doering@rose-hulman.edu</md:email>
    </md:maintainer>
    <md:maintainer id="eluther">
      <md:firstname>Erik</md:firstname>
      <md:othername>B</md:othername>
      <md:surname>Luther</md:surname>
      <md:email>erik.luther@ni.com</md:email>
    </md:maintainer>
    <md:maintainer id="SShearman">
      <md:firstname>Sam</md:firstname>
      <md:othername>D.</md:othername>
      <md:surname>Shearman</md:surname>
      <md:email>sam.shearman@ni.com</md:email>
    </md:maintainer>
  </md:maintainerlist>
  
  <md:keywordlist>
    <md:keyword>additive synthesis</md:keyword>
    <md:keyword>amplitude trajectory</md:keyword>
    <md:keyword>frequency trajectory</md:keyword>
    <md:keyword>LabVIEW</md:keyword>
    <md:keyword>octave space</md:keyword>
    <md:keyword>partial</md:keyword>
  </md:keywordlist>

  <md:abstract>Additive synthesis creates complex sounds by adding together individual sinusoidal signals called "partials." In this module you will learn how to synthesize audio waveforms by designing the frequency and amplitude trajectories of the partials. LabVIEW programming techniques for additive synthesis will also be introduced in two examples.</md:abstract>
</metadata>

<content>

<table id="labview_banner" frame="none"><tgroup cols="2">
<colspec rowsep="0" colsep="0"/> <colspec colwidth="6in" rowsep="0" colsep="0"/>
<tbody>
  <row>
    <entry morerows="3"><media type="image/png" src="LabVIEWq.png"/></entry>
    <entry> This module refers to LabVIEW, a software development environment that features a graphical programming language.
       Please see the <cnxn document="m15428">LabVIEW QuickStart Guide</cnxn> module for tutorials and documentation that will help you:</entry>
  </row>
  <row> <entry>• Apply LabVIEW to Audio Signal Processing </entry> </row>
  <row> <entry>• Get started with LabVIEW</entry> </row>
  <row> <entry>• Obtain a fully-functional evaluation edition of LabVIEW</entry> </row>
</tbody>
</tgroup>
</table>


<section id="sec1">
<name>Overview</name>

<para id="par2">
<term>Additive synthesis</term> creates complex sounds by adding together individual sinusoidal signals called <term>partials</term>. The prerequisite module <cnxn document="m15444">Additive Synthesis Concepts</cnxn> reviews the main concepts of additive synthesis.
In this module you will learn how to synthesize audio waveforms by designing the frequency and amplitude trajectories of the partials. Also, LabVIEW programming techniques for additive
synthesis will be introduced in two examples.
</para>

</section>

<section id="sec3">
<name>Frequency and Amplitude Trajectory Design</name>

<para id="par4">
A <term>partial</term> is the fundamental building block of additive synthesis. A partial is a single sinusoidal component whose amplitude and frequency are each time-varying.
The time-varying amplitude denoted
<m:math>
 <m:semantics>
  <m:mrow>
   <m:mi>a</m:mi><m:mo stretchy="false">(</m:mo><m:mi>t</m:mi><m:mo stretchy="false">)</m:mo>
  </m:mrow>
 <m:annotation encoding="MathType-MTEF">
 </m:annotation>
 </m:semantics>
</m:math>
is called the <term>amplitude trajectory</term> and the time-varying frequency denoted 
<m:math>
 <m:semantics>
  <m:mrow>
   <m:mi>f</m:mi><m:mo stretchy="false">(</m:mo><m:mi>t</m:mi><m:mo stretchy="false">)</m:mo>
  </m:mrow>
 <m:annotation encoding="MathType-MTEF">
 </m:annotation>
 </m:semantics>
</m:math>
is called the <term>frequency trajectory</term>. Additive synthesis requires the design of both trajectories for each partial; the partials are then summed together to
create the sound.</para>

<para id="par5">The screencast video of <cnxn target="video-design"/> shows how to begin the design of a sound as a spectrogram plot, how to design the 
amplitude trajectory first as an intensity (loudness) trajectory in "log space" using decibels, and how to design the frequency trajectory in 
"log space" using octaves. Designing the partials in log space accounts for hearing perception which is logarithmic in both intensity and in frequency;
refer to <cnxn document="m15439">Perception of Sound</cnxn> for a detailed treatment of this subject.
</para>

<figure id="video-design">
<media type="image/png" src="add_techniques-design.html">
   <param name="thumbnail" value="add_techniques-design.png"/>
   </media>
<caption>
   [video] Design of frequency and amplitude trajectories
</caption>
</figure>

</section>

<section id="sec7">
<name>Example 1: Fractal Partials</name>

<para id="par8">
		In this first example, partials are created during a fixed time interval and then concatenated to create the overall sound. 
		During the first 
		time interval a single partial is created at a reference frequency. During the second time interval the partial's 
		frequency linearly increases in "octave space" from the reference frequency to a frequency two octaves above 
		the reference frequency. In the third interval the partial bifurcates into two partials, where one increases by an octave
		and the other decreases by an octave. In the fourth interval, each of the two partials bifurcates again to make a total of 
		four partials, each increasing or decreasing by half an octave. This behavior repeats in each subsequent time interval, doubling the 
		number of partials, and halving the amount of frequency increase or decrease.</para>

<para id="par9">The screencast video of <cnxn target="video-genfnc"/> shows how the frequency trajectories are designed in "octave space", and then reviews the key LabVIEW
programming techniques needed to implement this design. The video also includes an audio demonstration so you can hear the design of this "audible fractal."</para>

<para id="par10"><media type="image/png" src="LabVIEW.png"/> The LabVIEW VI demonstrated within the video is available here: <link src="genfnc.zip">genfnc.zip</link>.
This VI requires installation of the <cnxn document="m15430">TripleDisplay</cnxn> front-panel indicator.
</para>

<figure id="video-genfnc">
<media type="image/png" src="add_techniques-genfnc.html">
   <param name="thumbnail" value="add_techniques-genfnc.png"/>
   </media>
<caption>
   [video] Design of the "audible fractal," LabVIEW implementation, and audio demonstration
</caption>
</figure>

</section>

<section id="sec12">
<name>Example 2: Spectrogram Art</name>

<para id="par13">
The design of a sound using additive synthesis typically begins with a spectrogram representation of the desired sound. In this second example, straight line segments
define the frequency trajectories of nine distinct partials that create a spectrum of a recognizable object, specifically, a cartoon drawing of
an individual who is happy to be wearing a French beret.</para>

<para id="par14">The screencast video of <cnxn target="video-face"/> shows how the frequency trajectories are designed in "octave space" and specified according
to the coordinates of the line segment endpoints. The design of the corresponding amplitude trajectories necessary to make the partials start and stop at the correct times
is likewise discussed. Key LabVIEW programming techniques needed to implement this design and an audio demonstration are also presented.</para>

<para id="par15"><media type="image/png" src="LabVIEW.png"/> The LabVIEW VI demonstrated within the video is available here: <link src="face.zip">face.zip</link>.
This VI requires installation of the <cnxn document="m15430">TripleDisplay</cnxn> front-panel indicator.
</para>

<figure id="video-face">
<media type="image/png" src="add_techniques-face.html">
   <param name="thumbnail" value="add_techniques-face.png"/>
   </media>
<caption>
   [video] Design of the cartoon face, LabVIEW implementation, and audio demonstration
</caption>
</figure>

</section>

</content>
</document>
