Loading...
Loading...
Expert in spatial audio, procedural sound design, game audio middleware, and app UX sound design. Specializes in HRTF/Ambisonics, Wwise/FMOD integration, UI sound design, and adaptive music systems. Activate on 'spatial audio', 'HRTF', 'binaural', 'Wwise', 'FMOD', 'procedural sound', 'footstep system', 'adaptive music', 'UI sounds', 'notification audio', 'sonic branding'. NOT for music composition/production (use DAW), audio post-production for film (linear media), voice cloning/TTS (use voice-audio-engineer), podcast editing (use standard audio editors), or hardware design.
npx skill4agent add erichowens/some_claude_skills sound-engineer| MCP | Purpose |
|---|---|
| ElevenLabs | |
| Firecrawl | Research Wwise/FMOD docs, DSP algorithms, platform guidelines |
| WebFetch | Fetch Apple/Android audio session documentation |
| Topic | Novice | Expert |
|---|---|---|
| Spatial audio | "Just pan left/right" | Uses HRTF convolution for true 3D; knows Ambisonics for VR head tracking |
| Footsteps | "Use 10-20 samples" | Procedural synthesis: infinite variation, tiny memory, parameter-driven |
| Middleware | "Just play sounds" | Uses RTPC for continuous params, Switches for materials, States for music |
| Adaptive music | "Crossfade tracks" | Horizontal re-orchestration (layers) + vertical remixing (stems) |
| UI sounds | "Any click sound works" | Designs for brand consistency, accessibility, haptic coordination |
| iOS audio | "AVAudioPlayer works" | Knows AVAudioSession categories, interruption handling, route changes |
| Distance rolloff | Linear attenuation | Inverse square with reference distance; logarithmic for realism |
| CPU budget | "Audio is cheap" | Knows 5-10% budget; HRTF convolution is expensive (2ms/source) |
AVAudioSessionAudioFocusPlaySound("footstep_concrete_01.wav")| Approach | CPU Cost | Quality | Use Case |
|---|---|---|---|
| Stereo panning | ~0.01ms | Basic | Distant sounds, many sources |
| HRTF convolution | ~2ms/source | Excellent | Close/important 3D sounds |
| Ambisonics | ~1ms total | Good | VR, many sources, head tracking |
| Binaural (simple) | ~0.1ms/source | Decent | Budget/mobile spatial |
// Key insight: encode once, rotate cheaply
AmbisonicSignal encode(mono_input, direction) {
return {
mono * 0.707f, // W (omnidirectional)
mono * direction.x, // X (front-back)
mono * direction.y, // Y (left-right)
mono * direction.z // Z (up-down)
};
}// Surface resonance frequencies (expert knowledge)
float get_resonance(Surface s) {
switch(s) {
case Concrete: return 150.0f; // Low, dull
case Wood: return 250.0f; // Mid, warm
case Metal: return 500.0f; // High, ringing
case Gravel: return 300.0f; // Crunchy mid
default: return 200.0f;
}
}// Material-aware footsteps via Wwise
void OnFootDown(FHitResult& hit) {
FString surface = DetectSurface(hit.PhysMaterial);
float speed = GetVelocity().Size();
SetSwitch("Surface", surface, this); // Concrete/Wood/Metal
SetRTPCValue("Impact_Force", speed/600.0f); // 0-1 normalized
PostEvent(FootstepEvent, this);
}| Category | Examples | Duration | Character |
|---|---|---|---|
| Tap feedback | Button, toggle | 30-80ms | Soft, high-frequency click |
| Success | Save, send, complete | 150-300ms | Rising, positive tone |
| Error | Invalid, failed | 200-400ms | Descending, minor tone |
| Notification | Alert, reminder | 300-800ms | Distinctive, attention-getting |
| Transition | Screen change, modal | 100-250ms | Whoosh, subtle movement |
.ambient.playback.playAndRecord.soloAmbient// Proper iOS audio session setup
func configureAudioSession() {
let session = AVAudioSession.sharedInstance()
try? session.setCategory(.playback, mode: .default, options: [.mixWithOthers])
try? session.setActive(true)
NotificationCenter.default.addObserver(
self,
selector: #selector(handleInterruption),
name: AVAudioSession.interruptionNotification,
object: nil
)
}| Operation | CPU Time | Notes |
|---|---|---|
| HRTF convolution (512-tap) | ~2ms/source | Use FFT overlap-add |
| Ambisonic encode | ~0.1ms/source | Very efficient |
| Ambisonic decode (binaural) | ~1ms total | Supports many sources |
| Procedural footstep | ~1-2ms | vs 500KB per sample |
| Wind synthesis | ~0.5ms/frame | Real-time streaming |
| Wwise event post | <0.1ms | Negligible |
| iOS audio callback | 5-10ms budget | At 48kHz/512 samples |
.ambientmixWithOthers.playback.playAndRecord.playback/references/implementations.md