September 26, 2007

Flashforward Boston: Designing with Sound

Rough draft of notes

Dave Schroeder, pilotvibe.

Sound is a powerful communicator
Sometimes more powerful than visual and can be misused

Design is about seeing what isn't there as much about as what is there. Design is inventive and reductive. Sound design can be dangerous.

Sound design: Voice over, sound effects, navigation sounds, ambiance, music.
Visual story-telling: on screen, off screen, non-digetic (out of story space).
Sound relationship: sympathetic, contrasting, abstract/emotive. Bad day movie clip shown with 3 different sound tracks. showing each relationship.

How plan audio in interactive. Goal of audio, time & budget, mission statement + asset list, reference points hard to talk about sound (almost like a foreign language).

  1. music
  2. voice over
  3. ambience
  4. navSounds
  5. sound effects

Working with sound.
Music: focus on mood versus genre, creates singular/linear space, it can convey abstract things. Tempo and complexity. May focus your attention.

Voice overs: pro talent, one file = one thought, location recording (consistent background noise), inflection. Record some quick / fast and make sure it works before doing it all.

Ambiance: complete the picture, hard to find the perfect loop (build with layers instead), only need essential sonic cues. Non routine sounds can't loop. Speaking, accidents, etc.

Navigation Sounds: help user navigate and explore, focus attention on visuals, meaning derived from relationship with sound, reinforces communication goal.

Same sonic space (wet & dry sound). Reverb (delay) does a lot, helps to locate and place objects. EQ helps with that. Easier to make a dry sound wet.

Spatial sound: x: balance/pan, rising less low end, moving away less high end

Audio editing: Likes Pro Tools, important to input/export .wav, .aiff, .mp3, record to wav, high quality master files, import movies to work against

Tracks: 4 tracks of playback, separate tracks fof VOs/effects, layer sounds to ceate sounds, mock up a sound scheme.

MP3: compression is hard. Use EQ to shave off the top freqs. length is important, trim tight, respect tails. 80kpbs or higher is great, but be consistent.

Pro Tools example. Cut in middle drag end to beginning and overlap in middle with cross fade. Easier way to make a good loop.

Voice overs: Find highest peak across all files and make it louder. Normalize across all takes.

Tags: flash flashforward2007boston sound

September 26, 2007

Flashforward Boston: Sound Visualization Using Flash

Rough Draft Notes

Jared Ficklin, frog design

Want to flatten learning curve, inspire with examples, remove barriers to entry, expose enabling technologies.

Sounds visualization: it is fun, enhance experience, increase usability

What is sound visualization. Standard visualization partial effects, are cool but you can do so much more. vectors and drawing, time line, interaction, sound engine, cell animation, rich media.

Sound is vibration. Author of flame sound visualization (Ruben Tube). Net result is what we consider digital music.

Sound terminology: wave length, period, amplitude, pitch, tone.

To visual: need sound and data. Sounds is easy, data has been hard. imported data: picture of the future. Marmalade FlashAmp.

frogDB WMP sound visual

native data: microphone object, SoundChannel.leftPeak & SoundChannel.rightPeak, SoundMixer.computerSpectrum(). In client and can be called dynamically.

active_mic.activityLevel (version 6 and above) between 1- 100.
SoundChannel: version 9, value between 0-1. current amplitude.
SoundMixer: version 9. 512 value byte array. waveform or FFT frequency and sampling rate. -1 to 1 waveform or 0 to 2 for frequency. 256 left next 256 right.

Be concerned about security. Security.allowDomain("*");

With the frequency output, there will be holes. bass 50-80Hz. vocals 200Hz-1000Khz. Snare. 10000 KHz to 30000KHz.

Need to think about frequency to make good sound visualization.
Multipliers, segmenting, and averaging to make the data useful.
50Hz per array value

Data stacked to the low end since that is what we hear most. Need to average samples on the high end and stretch out the lower end data to see real data.

Tactics:
direct interpolation: manipulate property, frame manipulation,
threshold spawning: values measured against a threshold
algorithmic spawning: funnest one: values processed and measured against rules
interaction: have user setup basis for visualization

self assembling music video

Tags: flash flashforward2007boston sound

May 19, 2007

Stopping Flash 4 SWF with Sound in Flex 2

I recently had an issue where in Flex 2 I had to load and play a Flash 4 SWF that had embedded sound in it. I'm not a Flash developer so I'm not 100% sure if the sound was encoded as an event or what have you. In any case as soon as the SWF was loaded it would start playing and it would loop. Since Flex 2 uses Flash 9 the Flash 4 SWF shows up as an AVM1Movie when loaded which means you can't do much of anything to the movie once it's loaded. Most annoyingly the sound keeps playing and playing.

Problem 1: How to stop the sound?
The only fix I found was to call SoundMixer.stopAll();. Drastic, but it worked.

Problem 2: How to stop the sound looping?
Great the sound stopped, temporarily, only problem was when the SWF looped the sound started up again. The fix requires using a Loader and a call to unload() when you are done using it:

// create a loader and load the file
var loader:Loader = new Loader();
loader.load(new URLRequest("sound.swf"));

// later when you want to stop it
SoundMixer.stopAll();
loader.unload();

Problem 3: Security issues?
This works if you are requesting the SWF from your own server, but if you are using another site to store the sound files (say a CDN), you'll run into security sandbox issues. To get around this the remote site will need to have an appropriate crossdomain.xml file and you'll need to use a custom loader context:

// create the loader context
var loaderContext:LoaderContext = new LoaderContext();
loaderContext.securityDomain = SecurityDomain.currentDomain;
loaderContext.applicationDomain = ApplicationDomain.currentDomain;
loaderContext.checkPolicyFile = true;

// use it when loading the file
loader.load(new URLRequest("sound.swf"), loaderContext);

Other notes:
You should also setup a listener on loader.contentLoaderInfo to register when the SWF has loaded as unload() only works when the loader has completed, prior to that you need to use close().

Tags: flash flex sound