|
|
(7 intermediate revisions by 2 users not shown) |
Line 1: |
Line 1: |
| ===Basic Examples===
| | #REDIRECT [[Use_Cases_and_Requirements]] |
| | |
| What can web developers do with the Web Audio API?
| |
| | |
| *Looping sounds without gaps: [[#Looping Sounds Without Gaps|Code Example]]
| |
| *Creating seamless playlists
| |
| *FadeIns / FadeOuts / Crossfades
| |
| *Add filters to the audio such as: Bass/Treble EQ Control
| |
| *Changing parameters such as volume, pan, speed/pitch over time
| |
| *Cross-fading between two sounds.
| |
| *Synchronizing sounds to begin playing at the same time, or at specific times.
| |
| *Playing sounds with rhythm: EG: Drum beats
| |
| *Sound level meter to monitor the volume of audio
| |
| *Create audio visualizations
| |
| *Low-Latency Sound Playback eg:
| |
| **In response to user-input from keyboard/mouse etc
| |
| **Collisions of objects in games
| |
| *JavaScript access to audio data
| |
| **Create custom audio processing effects
| |
| **Music synthesis
| |
| | |
| =Use Cases=
| |
| | |
| Use Cases from Audio Incubator Group
| |
| http://www.w3.org/2005/Incubator/audio/wiki/Audio_API_Use_Cases
| |
| | |
| Scenarios from MediaStream Processing API
| |
| http://hg.mozilla.org/users/rocallahan_mozilla.com/specs/raw-file/tip/StreamProcessing/StreamProcessing.html#scenarios
| |
| | |
| | |
| | |
| | |
| =Requirements=
| |
| | |
| | |
| ===OpenAL/EAX Style Effects for Games===
| |
| | |
| *Doppler Shift
| |
| *Distance attenuation
| |
| *Obstruction
| |
| *Room simulation
| |
| *3D Positioning
| |
| | |
| | |
| === Features Realting to Accessibility ===
| |
| | |
| *Changing pitch of voices without effect the speed
| |
| *Change speed of voices without effecting the pitch
| |
| *Smooth changes over time of audio parameters like volume, pan etc
| |
| | |
| | |
| === Resource Management ===
| |
| | |
| *Playing Short Sound now with minimal latency
| |
| *Loading and managing short-medium length audio assets
| |
| *Load audio assets faster than real-time
| |
| | |
| | |
| ===DAW Applications===
| |
| | |
| *Creating an multi-track mixer
| |
| **Insert effects
| |
| **sends
| |
| **sub-mixes
| |
| **mute
| |
| **solo
| |
| | |
| Modular routing,
| |
| | |
| Dynamics Compressor
| |
| | |
| Faster than real time mix-down (such as exporting a track to a file)
| |
| | |
| Scheduling of many overlapping audio clips on multiple tracks
| |
| Automation curves for volume, panning, other effect params
| |
| Analysis and metering (Temporal frequency domain)
| |
| | |
| | |
| ===Synthesizer Playback===
| |
| *Basic sample-based synthesizer playback - ADSR envelopes, waveforms etc
| |
| | |
| | |
| ===Effects===
| |
| | |
| | |
| =Basic Example Code=
| |
| | |
| ===Loop Sounds Without Gaps===
| |
| <nowiki>
| |
| var context = new webkitAudioContext()
| |
| , source = context.createBufferSource()
| |
| ;
| |
| | |
| // Request & decode audio
| |
| ... source.buffer = decoded_data; ...
| |
| | |
| source.connect( context.destination );
| |
| source.loop = true;
| |
| source.noteOn( 0 );
| |
| </nowiki>
| |