<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>Recent Examples (audio)</title><link>http://creativecoding.org/snippets/domain/audio</link><description>The latest Examples from the Creative Coding collection.</description><language>en</language><pubDate>Mon, 06 Feb 2012 21:55:21 +0000</pubDate><lastBuildDate>Mon, 06 Feb 2012 21:55:21 +0000</lastBuildDate><docs>http://blogs.law.harvard.edu/tech/rss</docs><sy:updatePeriod>hourly</sy:updatePeriod><sy:updateFrequency>1</sy:updateFrequency><generator>Studio NAND's feed monster, while having lots of cake!</generator><managingEditor>Studio NAND</managingEditor><webMaster>Studio NAND</webMaster><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/cc-recentexamples-audio-rss2" /><feedburner:info uri="cc-recentexamples-audio-rss2" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item><title>Frequenz Gruppen ermitteln (audio)</title><link>http://feedproxy.google.com/~r/cc-recentexamples-audio-rss2/~3/Um6iQjSreu4/audio:frequenz-gruppen-ermitteln</link><comments>http://creativecoding.org/example/audio:frequenz-gruppen-ermitteln#comments</comments><pubDate>Mon, 06 Feb 2012 21:55:21 +0000</pubDate><dc:creator>Jonas Loh (@ranzen)</dc:creator><category><![CDATA[ audio ]]></category><category><![CDATA[ average ]]></category><category><![CDATA[ processing.org ]]></category><category><![CDATA[ sound ]]></category><category><![CDATA[ spectrum ]]></category><guid isPermalink="true" isPermaLink="false">http://creativecoding.org/example/audio:frequenz-gruppen-ermitteln</guid><description><![CDATA[ <div class="image"><a class="fancybox" href="/files/documents/b17_05_audioinput_fft.png"><img src="http://creativecoding.org//files/documents/b17_05_audioinput_fft.png" style="float:right;" /></a></div>
Die minim Bibliothek bietet neben dem Laden/Abspielen von Dokumenten, dem Nutzen von Audiohardware ein Paket von Werkzeugen um Klange zu erzeugen bzw. bestehendes Material auszuwerten. Eine bekannte Mehthode ist die sog. <span class="constant-name">FFT</span> (<a href="http://de.wikipedia.org/wiki/Schnelle_Fourier-Transformation" class="extern http" target="_blank">Fast Fourier Transform</a>), bei der das Frequenzspektrum in eine feste Anzahl von FrequnzbÃ¤ndern unterteilt wird. Durch das Auslesen dieser BÃ¤nder erhÃ¤lt man Aufschluss Ã¼ber die Verteilung von HÃ¶hen, Mitten und Tiefen in der Audiodatei.<br />
<br />
Da es bei hohen AuflÃ¶sungen in den Bereichen von <span class="constant-name">1024</span>, <span class="constant-name">512</span> oder <span class="constant-name">256</span> BÃ¤ndern (wie in diesem Fall) nicht zu einer Abfrage jedes Frequenzbandes kommen muss, werden diese in den meisten FÃ¤llen zu Gruppen zusammengefasst. Im folgenden Beispiel liefert die Funktion <span class="function-name">getGroup</span><span class="function-params">()</span> diese verkÃ¼rzte Fassung mit einer AuflÃ¶sung von <span class="constant-name">16</span>... ]]></description><content:encoded><![CDATA[ <div class="image"><a class="fancybox" href="/files/documents/b17_05_audioinput_fft.png"><img src="http://creativecoding.org//files/documents/b17_05_audioinput_fft.png" style="float:right;" /></a></div>
Die minim Bibliothek bietet neben dem Laden/Abspielen von Dokumenten, dem Nutzen von Audiohardware ein Paket von Werkzeugen um Klange zu erzeugen bzw. bestehendes Material auszuwerten. Eine bekannte Mehthode ist die sog. <span class="constant-name">FFT</span> (<a href="http://de.wikipedia.org/wiki/Schnelle_Fourier-Transformation" class="extern http" target="_blank">Fast Fourier Transform</a>), bei der das Frequenzspektrum in eine feste Anzahl von FrequnzbÃ¤ndern unterteilt wird. Durch das Auslesen dieser BÃ¤nder erhÃ¤lt man Aufschluss Ã¼ber die Verteilung von HÃ¶hen, Mitten und Tiefen in der Audiodatei.<br />
<br />
Da es bei hohen AuflÃ¶sungen in den Bereichen von <span class="constant-name">1024</span>, <span class="constant-name">512</span> oder <span class="constant-name">256</span> BÃ¤ndern (wie in diesem Fall) nicht zu einer Abfrage jedes Frequenzbandes kommen muss, werden diese in den meisten FÃ¤llen zu Gruppen zusammengefasst. Im folgenden Beispiel liefert die Funktion <span class="function-name">getGroup</span><span class="function-params">()</span> diese verkÃ¼rzte Fassung mit einer AuflÃ¶sung von <span class="constant-name">16</span> Bereichen, welche als Parameter angegeben wird. Die Anzahl der Bereich muss dabei immer ein Vielfaches von 2 sein (2, 4, 8, <span class="constant-name">16</span>, <span class="constant-name">32</span>, <span class="constant-name">64</span>, <span class="constant-name">128</span>, â&euro;¦). Innerhalb der Funktion wird ein <a href="/lesson/basics/processing/arrays#arrays" class="intern lesson">Array</a> angelegt und der Mittelwert einer jeden Frequenzgruppe berechnet, final in einem der Arrayfelder abgelegt. Nach dem Aufruf im <a href="/lesson/basics/processing/mausinteraktion#vorbereitung_fortlaufende_programme" class="intern lesson">draw()</a>, kommt es zu einer simplen Abbildung der Audiodaten um die Funktionsweise zu verdeutlichen.<h4>Example code</h4><pre class="brush: processing" dir="ltr">import ddf.minim.*;
import ddf.minim.analysis.*;
 
Minim minim;
AudioInput input;
FFT fft;

float maxSpec = 0;

void setup () {
  size(320, 240);
  noStroke ();
  
  // Audiotool-Box und Mikrofoneingang erstellen 
  // und einrichten. Die '256' bestimmen dabei die 
  // sp&Atilde;&curren;tere Aufl&Atilde;&para;sung des Spektrums.
  minim = new Minim (this);
  input = minim.getLineIn (Minim.STEREO, 256);
  // FFT-Instanz f&Atilde;&frac14;r die Spektrumsanalyse
  fft = new FFT (input.bufferSize (), 
                 input.sampleRate ());
}
 
void draw () {
  background (0);
  
  float g = 0;    // Gr&Atilde;&frac14;nwert der F&Atilde;&frac14;llfarbe
  float h = 0;    // H&Atilde;&para;he von Rechteck und Linie
  float specStep; // Breite einer horiz. Linie
  float specScale = (float) width / (fft.specSize () - 1);
  
  // Erzeugen der 'Frequenz-Gruppen' (16 Bereich)
  // m&Atilde;&para;gliche Schritte: 2-4-8-16-32-64-128
  float[] group = getGroup (16);
  
  // Zeichnen des detailierten Frequenzspektrums
  noStroke ();
  for (int i = 0; i &lt; fft.specSize (); i++) {
    g = map (fft.getBand (i), 0, maxSpec, 50, 255);
    h = map (fft.getBand (i), 0, maxSpec, 2, height);
    fill (0, g, 0);
    rect (i * specScale, height - h, specScale, h);
  }
  
  // Zeichnen der Gruppen (Linien)
  stroke (255, 255, 0, 200);
  specStep = width / group.length;
  for (int i=0; i &lt; group.length; i++) {
    h = height - map (group[i], 0, maxSpec, 0, height);
    line (i * specStep, h, (i+1) * specStep, h);
  }
}

/** 
 * Funktion fasst das vorliegende FFT-Spektrum
 * in eine durch den Parameter 'theGroupNum' 
 * festgelegte Anzahl von gleichgro&Atilde;&Yuml;en Bereichen
 * zusammen &acirc;&euro;&ldquo; und gibt deren Mittelwert zur&Atilde;&frac14;ck.
 */
float[] getGroup (int theGroupNum) {
  fft.forward (input.mix);
  
  // Leeres Array f&Atilde;&frac14;r die Gruppen erstellen
  float[] group  = new float[theGroupNum];
  // Das FFT-Spekturm hat eine Stelle mehr 
  // als beim Input definiert. (256-&gt;257).
  // Diese wird ignoriert.
  int specLimit  = fft.specSize () - 1;
  // Anzahl der Frequenzb&Atilde;&curren;nder pro Gruppe
  int groupSize = specLimit / theGroupNum;
  
  // Alle Gruppen mit einem Startwert f&Atilde;&frac14;llen
  for (int i=0; i &lt; group.length; i++) {
    group[i] = 0;
  }
  
  // F&Atilde;&frac14;r jedes FFT-Frequenz-Band
  for (int i=0; i &lt; specLimit; i++) {
    // Maximum?
    if (fft.getBand (i) &gt; maxSpec) {
      maxSpec = fft.getBand (i);
    }
    // Jedes Band einer Gruppe zuweisen
    int index = (int) Math.floor (i / groupSize);
    group[index] += fft.getBand (i);
  }
  
  // Der Wert jeder Gruppe durch die Anzahl
  // der enthaltenen B&Atilde;&curren;nder Teilen - &gt;Mittelwert
  for (int i=0; i &lt; group.length; i++) {
    group[i] /= groupSize;
  }
  // Gruppe zur&Atilde;&frac14;ck geben.
  return group;
}</pre> <img src="http://feeds.feedburner.com/~r/cc-recentexamples-audio-rss2/~4/Um6iQjSreu4" height="1" width="1"/>]]></content:encoded><feedburner:origLink>http://creativecoding.org/example/audio:frequenz-gruppen-ermitteln</feedburner:origLink></item><item><title>Simples Spektrum (Wellenform) (audio)</title><link>http://feedproxy.google.com/~r/cc-recentexamples-audio-rss2/~3/Qwb1PNtecDs/audio:simples-spektrum-wellenform</link><comments>http://creativecoding.org/example/audio:simples-spektrum-wellenform#comments</comments><pubDate>Mon, 06 Feb 2012 21:55:17 +0000</pubDate><dc:creator>Jonas Loh (@ranzen)</dc:creator><category><![CDATA[ audio ]]></category><category><![CDATA[ processing.org ]]></category><category><![CDATA[ sound ]]></category><category><![CDATA[ spectrum ]]></category><category><![CDATA[ wave ]]></category><guid isPermalink="true" isPermaLink="false">http://creativecoding.org/example/audio:simples-spektrum-wellenform</guid><description><![CDATA[ <div class="image"><a class="fancybox" href="/files/documents/b17_04_audioinput_specturm.png"><img src="http://creativecoding.org//files/documents/b17_04_audioinput_specturm.png" style="float:right;" /></a></div>
Eine der bekanntesten Darstellungen von Ton und Klang ist das klassische Spekturm. In minim als <a href="http://code.compartmental.net/minim/javadoc/ddf/minim/AudioBuffer.html" class="extern http" target="_blank">AudioBuffer</a> bezeichnet, beinhaltet es ein <em>float</em> <a href="/lesson/basics/processing/arrays#arrays" class="intern lesson">Array</a> mit einem Wert pro Kanal. Die Anzal der KanÃ¤le wird bei dem Erzeugen des <a href="http://code.compartmental.net/minim/javadoc/ddf/minim/AudioInput.html" class="extern http" target="_blank">AudioInputs</a> festgelegt. In diesem Fall unterteilen wir das Spektrum zu Beginn im <a href="/lesson/basics/processing/mausinteraktion#vorbereitung_fortlaufende_programme" class="intern lesson">setup</a>-Blocks in <span class="constant-name">96</span> Bereiche.<br />
Mit jedem Einzelbild wird eine Kopie des Buffers (toArray()) erzeugt um beim Durchlaufen des Arrays alle EintrÃ¤ge im Spektrum abzubilden. In der dafÃ¼r benutzen <a href="/lesson/basics/processing/variablen-schleifen#for_schleife" class="intern lesson">for-Schleife</a> verbindet die Oberseite eines <a href="/lesson/basics/processing/einstieg-in-processing#rechteck" class="intern lesson">Rechtecks</a> jeweils zwei Teile des Spektrums. Neben der <tt>y</tt>-Position gibt der Mittelwert beider KanÃ¤le die <span class="constant-name">HSB</span>-FÃ¼llfarbe an.<h4>Example code</h4><pre class="brush: processing" dir="ltr">import ddf.minim.*;

Minim minim;
AudioInput input;

float yStart = 100;
float yScale = 140;

void setup () {
 ...</pre> ]]></description><content:encoded><![CDATA[ <div class="image"><a class="fancybox" href="/files/documents/b17_04_audioinput_specturm.png"><img src="http://creativecoding.org//files/documents/b17_04_audioinput_specturm.png" style="float:right;" /></a></div>
Eine der bekanntesten Darstellungen von Ton und Klang ist das klassische Spekturm. In minim als <a href="http://code.compartmental.net/minim/javadoc/ddf/minim/AudioBuffer.html" class="extern http" target="_blank">AudioBuffer</a> bezeichnet, beinhaltet es ein <em>float</em> <a href="/lesson/basics/processing/arrays#arrays" class="intern lesson">Array</a> mit einem Wert pro Kanal. Die Anzal der KanÃ¤le wird bei dem Erzeugen des <a href="http://code.compartmental.net/minim/javadoc/ddf/minim/AudioInput.html" class="extern http" target="_blank">AudioInputs</a> festgelegt. In diesem Fall unterteilen wir das Spektrum zu Beginn im <a href="/lesson/basics/processing/mausinteraktion#vorbereitung_fortlaufende_programme" class="intern lesson">setup</a>-Blocks in <span class="constant-name">96</span> Bereiche.<br />
Mit jedem Einzelbild wird eine Kopie des Buffers (toArray()) erzeugt um beim Durchlaufen des Arrays alle EintrÃ¤ge im Spektrum abzubilden. In der dafÃ¼r benutzen <a href="/lesson/basics/processing/variablen-schleifen#for_schleife" class="intern lesson">for-Schleife</a> verbindet die Oberseite eines <a href="/lesson/basics/processing/einstieg-in-processing#rechteck" class="intern lesson">Rechtecks</a> jeweils zwei Teile des Spektrums. Neben der <tt>y</tt>-Position gibt der Mittelwert beider KanÃ¤le die <span class="constant-name">HSB</span>-FÃ¼llfarbe an.<h4>Example code</h4><pre class="brush: processing" dir="ltr">import ddf.minim.*;

Minim minim;
AudioInput input;

float yStart = 100;
float yScale = 140;

void setup () {
  // Sketch einstellen
  size (320, 240);
  smooth();
  noStroke ();
  colorMode (HSB);
  
  // Audiotoolkit anlegen
  minim = new Minim (this);
  input = minim.getLineIn (Minim.STEREO, 96);
}

void draw () {
  background (0);
  
  // Auslesen und speichern des Spektrums
  float[] buffer = input.mix.toArray ();
  // Breite der Rechtecke berechnen
  float step = ceil ((float) width / buffer.length);
  
  // F&Atilde;&frac14;r jeden einzelnen Eintrag im Buffer wird ein 
  // Rechteck gezeichnet. Es entsteht durch das verbinden
  // zweier Buffer-Eintr&Atilde;&curren;ge. Die Schleife beginnt bei 1, 
  // jeder Eintrag wird mit seinem Vorg&Atilde;&curren;nger verbunden.
  for (int i=1; i &lt; buffer.length; i++) {
    
    // Positionen f&Atilde;&frac14;r alle 4 Punkt bestimmen
    float x1 = (i-1) * step;
    float x2 = i * step;
    float y1 = yStart + buffer[i-1] * yScale;
    float y2 = yStart + buffer[i] * yScale;
    
    // F&Atilde;&frac14;llfarbe definieren
    float h = (buffer[i-1] + buffer[i]) / 2;
    fill (h * 255, 255, 255);
    
    // Rechteck zeichnen
    beginShape (QUADS);
    vertex (x1, y1);
    vertex (x2, y2);
    vertex (x2, height);
    vertex (x1, height);
    endShape ();
  }
}</pre> <img src="http://feeds.feedburner.com/~r/cc-recentexamples-audio-rss2/~4/Qwb1PNtecDs" height="1" width="1"/>]]></content:encoded><feedburner:origLink>http://creativecoding.org/example/audio:simples-spektrum-wellenform</feedburner:origLink></item><item><title>Mikrofoneingang nutzen (audio)</title><link>http://feedproxy.google.com/~r/cc-recentexamples-audio-rss2/~3/hOMaBK-zdiQ/audio:mikrofoneingang-nutzen</link><comments>http://creativecoding.org/example/audio:mikrofoneingang-nutzen#comments</comments><pubDate>Mon, 06 Feb 2012 21:55:12 +0000</pubDate><dc:creator>Jonas Loh (@ranzen)</dc:creator><category><![CDATA[ audio ]]></category><category><![CDATA[ input ]]></category><category><![CDATA[ microphone ]]></category><category><![CDATA[ processing ]]></category><category><![CDATA[ sound ]]></category><guid isPermalink="true" isPermaLink="false">http://creativecoding.org/example/audio:mikrofoneingang-nutzen</guid><description><![CDATA[ <div class="image"><a class="fancybox" href="/files/documents/b17_03_audioinput_volume.jpg"><img src="http://creativecoding.org//files/documents/b17_03_audioinput_volume.jpg" style="float:right;" /></a></div>
Angewendet auf ein Mikrofon-Input visualisiert der folgende Sketch die chronologische Entwicklung der UmgebungsgerÃ¤usche. Je lauter, desto grÃ¶ÃŸer und separierter wird ein Kreis auf der ZeichenflÃ¤che abgebildet. Dabei verschiebt sich die Position auf der x-Achse von links nach rechts, bis es zu einem Umbruch in die nÃ¤chste Zeile kommt. Mittels der globalen Variablen <tt>x</tt> und <tt>y</tt> wird die aktuelle Position gespeichert und durch die <em>if</em>-Bedingung am Ende des <a href="/lesson/basics/processing/mausinteraktion#vorbereitung_fortlaufende_programme" class="intern lesson">draw()</a>-Blocks kontrolliert.<h4>Example code</h4><pre class="brush: processing" dir="ltr">import ddf.minim.*;

float x;
float y;
Minim minim;
AudioInput input;

void setup () {
  // Sketch einstellen
  size (320, 240);
  smooth();
  stroke (255, 25);
  noFill ();
  
  // Startposition festlegen
  x = 0;
  y = 20;
  
  // Audiotoolkit anlegen
  minim = new Minim...</pre> ]]></description><content:encoded><![CDATA[ <div class="image"><a class="fancybox" href="/files/documents/b17_03_audioinput_volume.jpg"><img src="http://creativecoding.org//files/documents/b17_03_audioinput_volume.jpg" style="float:right;" /></a></div>
Angewendet auf ein Mikrofon-Input visualisiert der folgende Sketch die chronologische Entwicklung der UmgebungsgerÃ¤usche. Je lauter, desto grÃ¶ÃŸer und separierter wird ein Kreis auf der ZeichenflÃ¤che abgebildet. Dabei verschiebt sich die Position auf der x-Achse von links nach rechts, bis es zu einem Umbruch in die nÃ¤chste Zeile kommt. Mittels der globalen Variablen <tt>x</tt> und <tt>y</tt> wird die aktuelle Position gespeichert und durch die <em>if</em>-Bedingung am Ende des <a href="/lesson/basics/processing/mausinteraktion#vorbereitung_fortlaufende_programme" class="intern lesson">draw()</a>-Blocks kontrolliert.<h4>Example code</h4><pre class="brush: processing" dir="ltr">import ddf.minim.*;

float x;
float y;
Minim minim;
AudioInput input;

void setup () {
  // Sketch einstellen
  size (320, 240);
  smooth();
  stroke (255, 25);
  noFill ();
  
  // Startposition festlegen
  x = 0;
  y = 20;
  
  // Audiotoolkit anlegen
  minim = new Minim (this);
  input = minim.getLineIn (Minim.STEREO, 512);
  background (0);
}

void draw () {
  // Kreisgr&Atilde;&para;&Atilde;&Yuml;e Abh&Atilde;&curren;ngig von Lautst&Atilde;&curren;rke
  float dim = input.mix.level () * width;
  // Kreis x-Position verschieben
  x += input.mix.level () * 20;
  // Kreis zeichnen
  ellipse (x, y, dim, dim);
  
  if (x &gt; width) {
    x = 0;
    y += 20;
  }
}</pre> <img src="http://feeds.feedburner.com/~r/cc-recentexamples-audio-rss2/~4/hOMaBK-zdiQ" height="1" width="1"/>]]></content:encoded><feedburner:origLink>http://creativecoding.org/example/audio:mikrofoneingang-nutzen</feedburner:origLink></item><item><title>LautstÃ¤rke ermittlen (audio)</title><link>http://feedproxy.google.com/~r/cc-recentexamples-audio-rss2/~3/N0FMG8qyc4Q/audio:lautsta-rke-ermittlen</link><comments>http://creativecoding.org/example/audio:lautsta-rke-ermittlen#comments</comments><pubDate>Mon, 06 Feb 2012 21:55:08 +0000</pubDate><dc:creator>Jonas Loh (@ranzen)</dc:creator><category><![CDATA[ audio ]]></category><category><![CDATA[ processing.org ]]></category><category><![CDATA[ sound ]]></category><category><![CDATA[ volume ]]></category><guid isPermalink="true" isPermaLink="false">http://creativecoding.org/example/audio:lautsta-rke-ermittlen</guid><description><![CDATA[ <div class="image"><a class="fancybox" href="/files/documents/b17_02_audioplayer_volume.jpg"><img src="http://creativecoding.org//files/documents/b17_02_audioplayer_volume.jpg" style="float:right;" /></a></div>
Neben der Position im Audiodokument und dessen Steuerung, erlaubt die minim Bibliothek das Auslesen von Eigenschaften. Eine bezeichnendes Kriterium ist die wiedergegebene LautstrÃ¤ke zu einem bestimmten Zeitpunkt. WÃ¤hrend des Abspielens durch den <a href="/lesson/topics/audio/sound-in-processing#audioplayer" class="intern lesson">play()</a> Aufruf, kann im <a href="/lesson/basics/processing/mausinteraktion#vorbereitung_fortlaufende_programme" class="intern lesson">draw()</a> das sogenannte 'level' fÃ¼r jedes Einzelbild erfragt werden. Die mix.level()-Funktion beschreibt die Auslastung dieses Merkmals in einem Wertebereich von 0 und 1.<br />
Das Objekt <a href="http://code.compartmental.net/minim/javadoc/ddf/minim/AudioSource.html#mix" class="extern http" target="_blank">mix</a> reprÃ¤sentiert das Sterosignal, welches sich aus dem linken (<a href="http://code.compartmental.net/minim/javadoc/ddf/minim/AudioSource.html#left" class="extern http" target="_blank">left</a>) und dem rechten (<a href="http://code.compartmental.net/minim/javadoc/ddf/minim/AudioSource.html#right" class="extern http" target="_blank">right</a>) Kanal zusammen setzt.<h4>Example code</h4><pre class="brush: processing" dir="ltr">import ddf.minim.*;

Minim minim;
AudioPlayer player;

void setup () {
  // Sketch einrichten
  size (320, 240);
  noStroke ();
  
  // Audiodatei laden und abspielen
  minim = new Minim (this);
 ...</pre> ]]></description><content:encoded><![CDATA[ <div class="image"><a class="fancybox" href="/files/documents/b17_02_audioplayer_volume.jpg"><img src="http://creativecoding.org//files/documents/b17_02_audioplayer_volume.jpg" style="float:right;" /></a></div>
Neben der Position im Audiodokument und dessen Steuerung, erlaubt die minim Bibliothek das Auslesen von Eigenschaften. Eine bezeichnendes Kriterium ist die wiedergegebene LautstrÃ¤ke zu einem bestimmten Zeitpunkt. WÃ¤hrend des Abspielens durch den <a href="/lesson/topics/audio/sound-in-processing#audioplayer" class="intern lesson">play()</a> Aufruf, kann im <a href="/lesson/basics/processing/mausinteraktion#vorbereitung_fortlaufende_programme" class="intern lesson">draw()</a> das sogenannte 'level' fÃ¼r jedes Einzelbild erfragt werden. Die mix.level()-Funktion beschreibt die Auslastung dieses Merkmals in einem Wertebereich von 0 und 1.<br />
Das Objekt <a href="http://code.compartmental.net/minim/javadoc/ddf/minim/AudioSource.html#mix" class="extern http" target="_blank">mix</a> reprÃ¤sentiert das Sterosignal, welches sich aus dem linken (<a href="http://code.compartmental.net/minim/javadoc/ddf/minim/AudioSource.html#left" class="extern http" target="_blank">left</a>) und dem rechten (<a href="http://code.compartmental.net/minim/javadoc/ddf/minim/AudioSource.html#right" class="extern http" target="_blank">right</a>) Kanal zusammen setzt.<h4>Example code</h4><pre class="brush: processing" dir="ltr">import ddf.minim.*;

Minim minim;
AudioPlayer player;

void setup () {
  // Sketch einrichten
  size (320, 240);
  noStroke ();
  
  // Audiodatei laden und abspielen
  minim = new Minim (this);
  player = minim.loadFile (&quot;track.aif&quot;);
  player.play ();
}

void draw () {
  // Schwarzes semitransparentes Recht 
  // &Atilde;&frac14;ber die gesamte B&Atilde;&frac14;hne zeichnen
  fill (0,30);
  rectMode (CORNER);
  rect (0, 0, width, height);
  
  // Gr&Atilde;&para;&Atilde;&Yuml;e des Quadrats in Abh&Atilde;&curren;nigkeit von
  // der Lautst&Atilde;&curren;rke berechnen
  float dimension = player.mix.level () * 250;
  
  // Rechteck zeichnen
  fill (255);
  rectMode (CENTER);
  rect (width/2, height/2, dimension, dimension);
}</pre> <img src="http://feeds.feedburner.com/~r/cc-recentexamples-audio-rss2/~4/N0FMG8qyc4Q" height="1" width="1"/>]]></content:encoded><feedburner:origLink>http://creativecoding.org/example/audio:lautsta-rke-ermittlen</feedburner:origLink></item></channel></rss>
