<?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 Concepts</name>
  <metadata>
  <md:version>1.2</md:version>
  <md:created>2007/08/31 10:39:09 GMT-5</md:created>
  <md:revised>2008/03/17 21:42:17.502 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>instantaneous frequency</md:keyword>
    <md:keyword>partial</md:keyword>
    <md:keyword>timbre</md:keyword>
  </md:keywordlist>

  <md:abstract>Additive synthesis creates complex sounds by adding together individual sinusoidal signals called partials. A partial's frequency and amplitude are each time-varying functions, so a partial is a more flexible version of the harmonic associated with a Fourier series decomposition of a periodic waveform. In this module you will learn about partials, how to model the timbre of natural instruments, various sources of control information for partials, and how to make a sinusoidal oscillator with an instantaneous frequency that varies with time.</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>. A partial's frequency and amplitude are each time-varying functions, so a partial is a more flexible version of the <term>harmonic</term> associated with a Fourier series decomposition of a periodic waveform.</para>

<para id="par3">In this module you will learn about partials, how to model the timbre of natural instruments, various sources of control information for partials, and how to make a sinusoidal oscillator
with an instantaneous frequency that varies with time.
</para>

</section>

<section id="sec4">
<name>Partials</name>

<para id="par5">
A <term>partial</term> is a generalization of the <term>harmonic</term> associated with a Fourier series representation of a periodic waveform. The screencast video of <cnxn target="video-partials"/> introduces important concepts associated with partials.
</para>

<figure id="video-partials">
<media type="image/png" src="add_concepts-partials.html">
   <param name="thumbnail" value="add_concepts-partials.png"/>
   </media>
<caption>
   [video] Important concepts associated with <term>partials</term>
</caption>
</figure>

</section>

<section id="sec7">
<name>Modeling Timbre of Natural Instruments</name>

<para id="par8">
Perception of an instrument's <term>timbre</term> relies heavily on the attack transient of a note. Since partials can effectively enter and leave the signal at any time, additive synthesis is a good way to model physical instruments. The screencast video of <cnxn target="video-timbre"/> discusses three important design requirements for partials necessary to successfully model a physical instrument.
</para>

<figure id="video-timbre">
<media type="image/png" src="add_concepts-timbre.html">
   <param name="thumbnail" value="add_concepts-timbre.png"/>
   </media>
<caption>
   [video] Three design requirements for partials to model physical instruments
</caption>
</figure>

</section>

<section id="sec10">
<name>Sources of Control Information</name>

<para id="par11">
		The time-varying frequency of a partial is called its <term>frequency trajectory</term>, and is best visualized as a track or path on a spectrogram display. Similarly, the time-varying amplitude of a partial is called its <term>amplitude trajectory</term>. Control information for these trajectories can be derived from a number of sources. Perhaps the most obvious source is a spectral analysis of a physical instrument to be modeled. The screencast video of <cnxn target="video-trumpet"/> discusses this concept and demonstrates how a trumpet can be well-modeled by adding suitable partials. 
</para>

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

<figure id="video-trumpet">
<media type="image/png" src="add_concepts-trumpet.html">
   <param name="thumbnail" value="add_concepts-trumpet.png"/>
   </media>
<caption>
   [video] Modeling a trumpet tone by adding together increasing numbers of partials
</caption>
</figure>

<para id="par14">
Control information can also be derived from other domains not necessarily related to music. The screencast video of <cnxn target="video-houston"/> provides some examples of non-music control information, and illustrates how an edge boundary from an image can be "auralized" by translating the edge into a partial's frequency trajectory.
</para>

<figure id="video-houston">
<media type="image/png" src="add_concepts-houston.html">
   <param name="thumbnail" value="add_concepts-houston.png"/>
   </media>
<caption>
   [video] Skyline of Houston translated into a frequency trajectory
</caption>
</figure>

</section>

<section id="sec16">
<name>Instantaneous Frequency</name>

<para id="par17">
The frequency trajectory of a partial is defined as a time-varying frequency
<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>. 
Since a constant-frequency and constant-amplitude sinusoid is mathematically described as
<m:math>
 <m:semantics>
  <m:mrow>
   <m:mi>y</m:mi><m:mo stretchy="false">(</m:mo><m:mi>t</m:mi><m:mo stretchy="false">)</m:mo><m:mo>=</m:mo><m:mi>A</m:mi><m:mi>sin</m:mi><m:mo>⁡</m:mo><m:mo stretchy="false">(</m:mo><m:mn>2</m:mn><m:mi>π</m:mi><m:msub>
    <m:mi>f</m:mi>
    <m:mn>0</m:mn>
   </m:msub>
   <m:mi>t</m:mi><m:mo stretchy="false">)</m:mo>
  </m:mrow>
 <m:annotation encoding="MathType-MTEF">
 </m:annotation>
 </m:semantics>
</m:math>
, intuition perhaps suggests that the partial should be expressed as
<m:math>
 <m:semantics>
  <m:mrow>
   <m:mi>y</m:mi><m:mo stretchy="false">(</m:mo><m:mi>t</m:mi><m:mo stretchy="false">)</m:mo><m:mo>=</m:mo><m:mi>a</m:mi><m:mo stretchy="false">(</m:mo><m:mi>t</m:mi><m:mo stretchy="false">)</m:mo><m:mi>sin</m:mi><m:mo>⁡</m:mo><m:mo stretchy="false">(</m:mo><m:mn>2</m:mn><m:mi>π</m:mi><m:mi>f</m:mi><m:mo stretchy="false">(</m:mo><m:mi>t</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>
, where
<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 the amplitude trajectory. However, as shown in the screencast video of 
<cnxn target="video-instant"/> this intuitive result is incorrect; the video derives the correct equation to describe a partial in terms of its trajectories
<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>
and
<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>
.
</para>

<figure id="video-instant">
<media type="image/png" src="add_concepts-instant.html">
   <param name="thumbnail" value="add_concepts-instant.png"/>
   </media>
<caption>
   [video] Derivation of the equation of a partial given its frequency and amplitude trajectories
</caption>
</figure>

</section>

</content>
</document>
