<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE document PUBLIC "-//CNX//DTD CNXML 0.5 plus MathML//EN" "http://cnx.rice.edu/cnxml/0.5/DTD/cnxml_mathml.dtd">
<document xmlns="http://cnx.rice.edu/cnxml" xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="id7230078">
  <name>iTunes Control Interface</name>
  <metadata>
  <md:version>1.2</md:version>
  <md:created>2007/12/18 02:29:02 US/Central</md:created>
  <md:revised>2008/01/23 08:36:16.747 US/Central</md:revised>
  <md:authorlist>
      <md:author id="blakebrogdon">
      <md:firstname>Blake</md:firstname>
      
      <md:surname>Brogdon</md:surname>
      <md:email>bbrogdon@rice.edu</md:email>
    </md:author>
      <md:author id="tdeitch">
      <md:firstname>Thomas</md:firstname>
      <md:othername>James</md:othername>
      <md:surname>Deitch</md:surname>
      <md:email>tdeitch@rice.edu</md:email>
    </md:author>
      <md:author id="barnhart">
      <md:firstname>Kyle</md:firstname>
      
      <md:surname>Barnhart</md:surname>
      <md:email>barnhart@rice.edu</md:email>
    </md:author>
      <md:author id="bantley">
      <md:firstname>Britt</md:firstname>
      
      <md:surname>Antley</md:surname>
      <md:email>antley@rice.edu</md:email>
    </md:author>
  </md:authorlist>

  <md:maintainerlist>
    <md:maintainer id="blakebrogdon">
      <md:firstname>Blake</md:firstname>
      
      <md:surname>Brogdon</md:surname>
      <md:email>bbrogdon@rice.edu</md:email>
    </md:maintainer>
    <md:maintainer id="tdeitch">
      <md:firstname>Thomas</md:firstname>
      <md:othername>James</md:othername>
      <md:surname>Deitch</md:surname>
      <md:email>tdeitch@rice.edu</md:email>
    </md:maintainer>
    <md:maintainer id="barnhart">
      <md:firstname>Kyle</md:firstname>
      
      <md:surname>Barnhart</md:surname>
      <md:email>barnhart@rice.edu</md:email>
    </md:maintainer>
    <md:maintainer id="bantley">
      <md:firstname>Britt</md:firstname>
      
      <md:surname>Antley</md:surname>
      <md:email>antley@rice.edu</md:email>
    </md:maintainer>
    <md:maintainer id="mdavenport">
      <md:firstname>Mark</md:firstname>
      
      <md:surname>Davenport</md:surname>
      <md:email>md@rice.edu</md:email>
    </md:maintainer>
  </md:maintainerlist>
  
  

  <md:abstract/>
</metadata>
  <content>
    <section id="id-215803800073">
      <name>iTunes Control Interface</name>
      <para id="id9194223">To accomplish anything useful with our signal processing, we need to drive an application. We chose iTunes, a popular multiplatform program for playing digital music files, as our example application for several reasons. First, the ability to control iTunes through external means is well documented and fairly simple to achieve. More important, however, is the aspect of music or audio playback in a room while simultaneously listening for whistles. </para>
      <section id="id-001602335251">
        <name>Java-COM</name>
        <para id="id3731647">iTunes is both the system to control as well as the dominant source of noise to combat. Based on the profile of the whistle detected, whether it be increasing or decreasing in frequency, we will skip to the next or previous track in iTunes. To accomplish this, LabVIEW makes a call to a Java program that interacts with iTunes by accessing the Component Object Model (COM) interface of Windows. The <link src="http://danadler.com/jacob/">JACOB</link> library serves as an intermediary to complete this task. <link src="http://danadler.com/jacob/">JACOB</link> is a native Java-COM bridge, allowing Java programs to simultaneously run and interact with system applications. Once the COM interface receives instructions from LabVIEW, it then interacts with iTunes and changes tracks appropriately. </para>
      </section>
    </section>
  </content>
</document>
