merging DJ and viz Use Cases into single scenario, adding diagram to explain need for two audiodestinationnodes
authorOlivier Thereaux <Olivier.Thereaux@bbc.co.uk>
Mon, 13 Aug 2012 15:10:04 +0100
changeset 116 af0f448cd8b3
parent 115 d7fa9333e334
child 117 66505af998a0
merging DJ and viz Use Cases into single scenario, adding diagram to explain need for two audiodestinationnodes
reqs/DJ.png
reqs/Overview.html
Binary file reqs/DJ.png has changed
--- a/reqs/Overview.html	Sun Aug 12 18:16:58 2012 +0300
+++ b/reqs/Overview.html	Mon Aug 13 15:10:04 2012 +0100
@@ -110,8 +110,6 @@
 <li>extract technical and architectural requirements for the Web Audio APIs or libraries built upon it.</li>
 </ul>
 
-    
-    
     </section>  
     <section>
       <h2>Web Audio Scenarios</h2>
@@ -271,23 +269,28 @@
     </section>
 
     <section>
-      <h3>Audio / Music Visualization</h3>
-      <p>A user is playing back audio or video media from the webpage of their favorite artist or a popular online music streaming service. The visualization responds to the audio in real-time and can be enjoyed by the user(s) in a leisurely setting such as: at home, a bar/restaurant/lobby, or traveling with an HTML5 capable mobile device. The visualization layers can be written using complimentary web technologies such as the WebGL Canvas, where 3D objects are synchronized with the audio and mixed with Video and other web content using JavaScript.
-      </p><p>The webpage can presents a graphic visualization layers such as:
-      </p>
-      <ul><li> Wave-form view of the audio data - such as on SoundCloud: <a href="http://soundcloud.com/skrillex" class="external free" title="http://soundcloud.com/skrillex">http://soundcloud.com/skrillex</a>
-      </li><li> Spectrum analysis or level-meter view - like in iTunes: <a href="http://apptree.net/ledsa.htm" class="external free" title="http://apptree.net/ledsa.htm">http://apptree.net/ledsa.htm</a>
-      </li><li> Abstract music visualizer - example, R4 for Winamp: <a href="http://www.youtube.com/watch?v=en3g-BiTZT0" class="external free" title="http://www.youtube.com/watch?v=en3g-BiTZT0">http://www.youtube.com/watch?v=en3g-BiTZT0</a>
-      </li><li> An HTML5 Music Video - such as WebGL Music Video production: Ro.me: <a href="http://www.ro.me/" class="external free" title="http://www.ro.me/">http://www.ro.me/</a>
-      </li><li> iTunes LP extras interactive content - <a href="http://www.apple.com/itunes/lp-and-extras/" class="external free" title="http://www.apple.com/itunes/lp-and-extras/">http://www.apple.com/itunes/lp-and-extras/</a> (As seen in Deadmau5's 4x4=12 LP: <a href="http://itunes.apple.com/us/album/4x4-12/id406482788" class="external free" title="http://itunes.apple.com/us/album/4x4-12/id406482788">http://itunes.apple.com/us/album/4x4-12/id406482788</a> )
-      </li></ul>
-      <p><br />
-      The user can control elements of the visualization using an interface provided by the webpage developer. The user can change the colors, shapes and tweak other visualization settings to their taste. The user may switch to a new visualization modes: changing from a spectrum-analysis view, to an abstract 2D or 3D visual view, a video overlay, or a mash-up of web-content that could include all of the above.
-      </p>
-      </section>
+      <h3>Connected <abbr title="Disc Jockey">DJ</abbr> booth</h3>
+      
+      <p>A popular DJ is playing a live set, using a popular web-based DJ software. The web application allows her to perform both in the club where she is mixing, as well as online, with tens of thousands joining live to enjoy the set.</p>
+    
+      <p>The DJ-deck web interface offers the typical features of decks and turntables. While a first track is playing and its sound sent to both the sound system in the club and streamed to the web browsers of fans around the world, the DJ would be able to quickly select several other track, play them through headphones without affecting the main audio output of the application, and match them to the track currently playing through a mix of pausing, skipping forward or back and pitch/speed change. The application helps automate a lot of this work: by measuring the beat of the current track at 125BPM and the one of the chosen next track at 140 BPM, it can automatically slow down the second track, and even position it to match the beats of the one currently playing. </p>
+
+      <p>Once the correct match is reached, The DJ would be able to start playing the track in the main audio output, either immediately or by slowly changing the volume controls for each track. She uses a cross fader to let the new song blend into the old one, and eventually goes completely across so only the new song is playing. This gives the illusion that the song never ended.</p>
+
+      <p>At the other end, fans listening to the set would be able to watch a video of the DJ mixing, accompanied by a graphic visualization of the music, picked from a variety of choices: spectrum analysis, level-meter view or a number of 2D or 3D abstract visualisations displayed either next to or overlaid on the DJ video.</p>
+
+      <h4>Notes and Implementation Considerations</h4>
+      <ol>
+        <li>As in many other scenarios in this document, it is expected that APIs such as the <a href="http://www.w3.org/TR/webrtc/" title="WebRTC 1.0: Real-time Communication Between Browsers">Web Real-Time Communication API</a> will be used for the streaming of audio and video across a number of clients.</li>
+        <li>
+          <p>One of the specific requirements illustrated by this scenario is the ability to seamlessly switch audio destinations (in this case: switching from listening on headphones to streaming sound output to a variety of local and connected clients) while retaining the exact state of playback and processing of a source. in a modular, graph-based architecture like the Web Audio API, this can be achieved if sub-graphs in a given <code>AudioContext</code> can use several <code>AudioDestinationNode</code> and switch from one to the other by simultaneously modifying the gain in <code>AudioGainNode</code>s, as illustrated:</p>
+          <p><img src="DJ.png" alt="example graph showing the mixing of two tracks to two different AudioDestinationNodes" /></p> 
+        </li>
+        <li>This scenario makes heavy usage of audio analysis capabilities, both for automation purposes (beat detection and beat matching) and visualization (spectrum, level and other abstract visualization modes)</li>
+      </ol>
+    </section>
       
     <section>
-      
       <h3>Playful sonification of user interfaces</h3>
 
       <p>A child is visiting a social website designed for kids. The playful, colorful HTML interface is accompanied by sound effects played as the child hovers or clicks on some of the elements of the page. For example, when filling in a form the sound of a typewriter can be heard as the child types in the form field. Some of the sounds are spatialized and have a different volume depending on where and how the child interacts with the page. When an action triggers a download visualised with a progress bar, a gradually rising pitch sound accompanies the download and another sound (ping!) is played when the download is complete.</p>
@@ -327,40 +330,7 @@
         <li><p>The "Noisy Environment" setting could be accomplished through equalization features in the Web Audio API such as <code>BiquadFilterNode</code> or <code>ConvolverNode</code>.</p></li>
       </ol>
     </section>
-    
-    <section>
-
-
-      <h3>DJ music at 125 BPM</h3>
-      <p>A disc jockey (DJ) selects and plays recorded music for a discotheque 
-      audience. The DJ uses a radio broadcasting streaming service to play the 
-      music live.
-      The DJ is selecting songs from a playlist available on the web-page of 
-      the streaming service and wants to beatmix and cross fade songs for 
-      smooth dance transitions.
-      He brings the beat of the next song into phase with the current one 
-      playing and fades across.
-      For example, if the song the audience is hearing is 125 Beats Per Minute 
-      (bpm), and the next song he wants to play is 128 bpm, the DJ will slow 
-      the second song down to 125 bpm using pitch control, and cue it up to 
-      the beat. When he is ready to bring the second song into play, he throws 
-      the recording so the beats stay aligned and listen to it in his 
-      headphones. The DJ makes sure both are in sync. Then he uses a  cross 
-      fader to let the new song blend into the old one, and eventually goes 
-      completely across so only the new song is playing. This gives the 
-      illusion that the song never ended.
-      </p><p><br />
-      The web-page presents a graphic visualization of the audio songs 
-      selected and played. It displays the Beats Per Minute (bpm).
-      The web-page also associates an audio interface with pitch control to 
-      change the tempo of a song, very useful for  beat matching.
-      </p><p>For further audio effect, the interface may also integrate a pitch-wheel 
-      allowing to change the pitch of a sound without changing it's length.
-      </p><p>These would be valuable features for DJs who want to beat-sync music on 
-      line, like they are used to do with decks and turntables.
-      </p>
-    </section>
-    
+        
     <section>
       <h3>Soundtrack and sound effects in a video editing tool </h3>
       <p>A person is using an online video editing tool to modify the soundtrack of a video.  The editor extracts the existing recorded vocals from the video stream, modifies the levels and performs other modifications of the audio stream.  She also adds several songs, including a orchestral background and pop songs, at different parts of the soundtrack.  She also adds several Foley effects (footsteps, doors opening and closing, etc.).  While editing, the audio and video playback are synced to allow the editor to insert audio samples at the right time. As the length of one of the songs is slightly different from the video segment she is matching it with, she can synchronize the two by slightly speeding up or slowing down the audio track. The final soundtrack is mixed down into the final soundtrack, added to the video as a replacement for the original audio track, and synced with the video track.