<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://sound.bai-hua.org/index.php?action=history&amp;feed=atom&amp;title=Stereo_Splitting_%26_Panning</id>
		<title>Stereo Splitting &amp; Panning - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://sound.bai-hua.org/index.php?action=history&amp;feed=atom&amp;title=Stereo_Splitting_%26_Panning"/>
		<link rel="alternate" type="text/html" href="https://sound.bai-hua.org/index.php?title=Stereo_Splitting_%26_Panning&amp;action=history"/>
		<updated>2026-11-10T22:30:19Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.29.0</generator>

	<entry>
		<id>https://sound.bai-hua.org/index.php?title=Stereo_Splitting_%26_Panning&amp;diff=210&amp;oldid=prev</id>
		<title>Admin at 10:47, 23 February 2011</title>
		<link rel="alternate" type="text/html" href="https://sound.bai-hua.org/index.php?title=Stereo_Splitting_%26_Panning&amp;diff=210&amp;oldid=prev"/>
				<updated>2011-02-23T10:47:11Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&#039;diff-marker&#039; /&gt;
				&lt;col class=&#039;diff-content&#039; /&gt;
				&lt;col class=&#039;diff-marker&#039; /&gt;
				&lt;col class=&#039;diff-content&#039; /&gt;
				&lt;tr style=&#039;vertical-align: top;&#039; lang=&#039;en&#039;&gt;
				&lt;td colspan=&#039;2&#039; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&#039;2&#039; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 10:47, 23 February 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;pre&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;/*&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;/*&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; Stereo Splitting &amp;amp; Panning&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; Stereo Splitting &amp;amp; Panning&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l66&quot; &gt;Line 66:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 67:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;// Call ready event when DOM is loaded&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;// Call ready event when DOM is loaded&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;addEventListener(&amp;#039;DOMContentLoaded&amp;#039;, function(){ init(); }, false);&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;addEventListener(&amp;#039;DOMContentLoaded&amp;#039;, function(){ init(); }, false);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/pre&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>https://sound.bai-hua.org/index.php?title=Stereo_Splitting_%26_Panning&amp;diff=209&amp;oldid=prev</id>
		<title>Admin: Created page with &quot;/*   Stereo Splitting &amp; Panning   Using the Mozilla Audio Data API   by F1LT3R @ http://Bocoup.com */  // This example is illustrative and not enhanced for performance  // Create...&quot;</title>
		<link rel="alternate" type="text/html" href="https://sound.bai-hua.org/index.php?title=Stereo_Splitting_%26_Panning&amp;diff=209&amp;oldid=prev"/>
				<updated>2011-02-23T10:46:52Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Stereo Splitting &amp;amp; Panning   Using the Mozilla Audio Data API   by F1LT3R @ http://Bocoup.com: &lt;/span&gt;  // This example is illustrative and not enhanced for performance  // Create...&amp;quot;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;/*&lt;br /&gt;
  Stereo Splitting &amp;amp; Panning&lt;br /&gt;
  Using the Mozilla Audio Data API&lt;br /&gt;
  by F1LT3R @ http://Bocoup.com&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
// This example is illustrative and not enhanced for performance&lt;br /&gt;
&lt;br /&gt;
// Create a Global pan variable visible to Processing.js Dial Element&lt;br /&gt;
var pan = 0;&lt;br /&gt;
&lt;br /&gt;
// Define event in global/&amp;quot;window&amp;quot; scope&lt;br /&gt;
var mozAudioAvailable = function(){};&lt;br /&gt;
&lt;br /&gt;
// When the DOM has loaded...&lt;br /&gt;
function init(){&lt;br /&gt;
  &lt;br /&gt;
  // Variable declarations&lt;br /&gt;
  var inputSamples, outputSamples, i, len,&lt;br /&gt;
      debug = document.getElementById(&amp;#039;debug&amp;#039;),&lt;br /&gt;
      output = document.createElement(&amp;#039;audio&amp;#039;),&lt;br /&gt;
      panElem = document.getElementById(&amp;#039;panFormInput&amp;#039;);&lt;br /&gt;
  &lt;br /&gt;
  // Pull the input signal from the mix&lt;br /&gt;
  document.getElementById(&amp;#039;input&amp;#039;).volume = 0;&lt;br /&gt;
    &lt;br /&gt;
  // Initiate the &lt;br /&gt;
  output.mozSetup(2, 44100, 1);&lt;br /&gt;
  &lt;br /&gt;
  // WHEN SOUND HAPPENS.........&amp;gt;&lt;br /&gt;
  mozAudioAvailable = function mozAudioAvailable(event){&lt;br /&gt;
  &lt;br /&gt;
    // Alias buffer samples to a more conveinient name&lt;br /&gt;
    inputSamples = event.frameBuffer;&lt;br /&gt;
        &lt;br /&gt;
    // Set new length and clear channel data&lt;br /&gt;
    len = inputSamples.length, outputSamples = [];&lt;br /&gt;
     &lt;br /&gt;
    // Loop thougt the stereo input data...&lt;br /&gt;
    for(i=0;i &amp;lt; len; i+=2){&lt;br /&gt;
      &lt;br /&gt;
      // Copy left channel down via pan value&lt;br /&gt;
      outputSamples[i] = inputSamples[i] * (1-pan);&lt;br /&gt;
      &lt;br /&gt;
      // Copy right channel down via pan value&lt;br /&gt;
      outputSamples[i+1] = inputSamples[i+1] * (1- -pan);&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
    // Display 5 samples from each buffer-written-(event at C level)&lt;br /&gt;
    debug.innerHTML = &amp;quot;&amp;quot;;&lt;br /&gt;
    for(i=0;i&amp;lt;5;i++){&lt;br /&gt;
      debug.innerHTML += &amp;quot;&amp;lt;b&amp;gt;&amp;quot;+event.time.toFixed(2) + &amp;quot;:&amp;lt;/b&amp;gt; &amp;amp;nbsp;&amp;quot;+ outputSamples[i]+&amp;quot;&amp;lt;br&amp;gt;&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    // Output mixed samples to &amp;lt;audio&amp;gt; element&lt;br /&gt;
    output.mozWriteAudio(outputSamples);&lt;br /&gt;
   &lt;br /&gt;
  };    &lt;br /&gt;
&lt;br /&gt;
  var input = document.getElementById(&amp;#039;input&amp;#039;);&lt;br /&gt;
  //input.volume = 0;&lt;br /&gt;
  input.addEventListener(&amp;quot;MozAudioAvailable&amp;quot;, mozAudioAvailable, false);&lt;br /&gt;
      &lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
// Call ready event when DOM is loaded&lt;br /&gt;
addEventListener(&amp;#039;DOMContentLoaded&amp;#039;, function(){ init(); }, false);&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>