/ Sound Design
// Case study
The Expanse - A Telltale Series
This post aims to illustrate my productional thinking around sound design for interactive media. 

For this case study I have choosen to use a scene from "The Expanse - A Telltale series".
I choose this scene partly because I really like the game, partly because it has a bit of everything (atmosphere, drones, walking, flying, interface, etc.), and mainly because of it's original sound design, which helps me illustrate some points I wich to make around sound design in general.
Original Clip:
​​​​​​​Original audio | you can download the video file here (There is some clipping happening on the voice due to the recording which should not be taken into account)
Scene Analysis:
You are alone in a seemingly abandoned space station, there are unknown dangers lurking at every corner.
Sense of stress.
Hyper aware of all sounds around.
Any mis step could lead to disaster.
Drones carrying lasers are the mail threat.
Are there other dangers I cannot see?
A gunshot happens, abrupt shift, you are no longer alone, atmospheric sounds fade into the background as you try to listen for sounds of other humans.
You cannot hear them.
Where are they? 
Can they hear me?
You become aware of the sounds you make yourself, heartbeat, breath, body sounds get louder.
Focus,
Body is silent.
I cannot hear you but I see you.
Is there anyone else?
No, 
I’m alone.
The dangers here now are of the environment more than other humans, but I best stay attentive, there might be more...
Original Sound Design Analysis:
The sound design here relies heavily on music, this being the main element, while other sounds are secondary.
The overall sound design is well crafted in terms of mood, but is lacking in the following points:
  - There is little to no use of atmospheric sounds, as the environment itself does not make sounds, except through direct collisions such as footsteps.
  - There are only primary sounds from collisions and no reactive sounds from the environment (such as rattles or echoes).
  - Some collisions such as with the floating elements are ignored all together.
  - The use of reverb does not conform to the spaces navigated.
  - Some sound effects (such as the air thrusters) quickly becomes too repetative as they lack in dynamics, and do not conform well to the present animations.
  - Interface sounds are a bit too prescent which takes away from immersion

New Sound Design Concept:
In order to create a more immersive sound design for this scene, I decided to not implement any music.
Not because I do not think that the scene should have music, but rather because I feel like the sound design should be able to carry the scene by itself.
Music could be added later, if this was desired or considered needed.

To do this I choose to focus primarily on The feeling of being in the environment:
The environment is a place of danger, it is seemingly inert, but yet, there are dangers everywhere. I do not know this environment or what it contains, I am an outsider here, an intruder. Hence I do not know how things sound like in here (is it a drone? a vent? is it me? somebody else?).
Every step I take suffers the risk of being overheard.
What sounds I make?


In order to inforce this feeling, the sound design I have made for this clip incorporates a lot of secondary sounds, such as the sounds of previously inert metal rattling once you step on it, and how this carries through the structure.
I have also choosen to merge the sounds of the drones and their lasers into one sound, which carries in it the proximity of the threat.
I have also added various environment sounds as well as dynamic reverb related to the spaces navigated.

Interface sounds have been toned down, and so has the sound of the thrusters which have also been made more dynamic in order to get away from the feeling of "looped sample", which I was experiencing playing the game.
.
The voice dialogue I have ignored all together (maily because I do not have the samples available).
Replaced Audio Clip:
(This clip was made completely with new audio, using no part of the original game audio)
Replaced audio | you can download the video file here
AUDIO DOCUMENTATION (Technical):
This is pretty rough, but is provided here 'as is' to give a general idea of how I imagine the sounds to be implemented in a real development scenario.
(See below for specific Audio file documentation)
Audio events log (Rough mockup)
TIMECODE
00:00:00:00
00:00:00:29
    STATE: WALK
    REVERB: 'amb_post_aux_reverb_largeRoom'  // Large room reverb
    'sfx_plyr_loc_land_PiratesMetalFloor01_colPrim' //collision metal floor (bank), subject to reveb
    'sfx_plyr_loc_land_PiratesMetalFloor01_colKlang' //collision metal floor resonant klang (bank), subject to reveb,
    'sfx_plyr_loc_land_PiratesMetalFloor01_colPost' ///atmospheric rattle/squeak (bank), not subject to reveb,
    'sfx_npc_enemy_pirates_drone_droneBody' // Flying drone sound, 3D emitter (Mobile, Omni), Loop, 2 instances
    'sfx_npc_enemy_pirates_drone_droneLaser'  // Drone Laser sound, 3D emitter (Mobile, Directional), Loop, 2 instances

    DRONE ATMO SOUND (loop)

00:00:02:20
    'sfx_plyr_loc_walk_step_PiratesMetalFloor01_colPrim' //collision metal floor (bank), subject to reveb, REPEATED

00:00:11:42
    REVERB: 'amb_post_aux_reverb_space' // Open Space reverb

00:00:12:09
    'sfx_plyr_loc_land_PiratesMetalFloor01_colPost' ///atmospheric rattle/squeak (bank), not subject to reverb

00:00:17:30
    'sfx_plyr_loc_land_PiratesMetalFloor01_colPost' ///atmospheric rattle/squeak (bank), not subject to reverb

00:00:23:58
    STATE: FLY
    'sfx_plyr_loc_land_PiratesMetalFloor01_colPost' ///atmospheric rattle/squeak (bank), not subject to reveb
    'sfx_plyr_loc_fly_thrust'// Air Thrusters (Bank), subject to reveb, REPEATED

00:00:32:54
    STOP SEND (FADE) REVERB: 'amb_post_aux_reverb_space' // Open Space reverb
    SEND (FADE) REVERB: 'amb_post_aux_reverb_tunnel' // Tunnel / Corridor reverb
    'amb_sfx_env_pirates_ship_mach01' // Machine drone sound, fan, loop, not subject to reveb

00:00:33:36
    'sfx_npc_enemy_pirates_drone_droneBody' // Flying drone sound, 3D emitter (Mobile, omni), Loop, 1 instance
    'sfx_npc_enemy_pirates_drone_droneLaser'  // Drone Laser sound, 3D emitter (Mobile, Directional), Loop, 1 instance

00:00:39:05
    'sfx_npc_enemy_pirates_drone_droneBody' // Flying drone sound, 3D emitter (Mobile, omni), Loop, 1+ instance
    'sfx_npc_enemy_pirates_drone_droneLaser'  // Drone Laser sound, 3D emitter (Mobile, Directional), Loop, 1+ instance

00:00:47:08
    STOP SEND (FADE) REVERB: 'amb_post_aux_reverb_tunnel' // Tunnel / Corridor reverb
    SEND (FADE) REVERB: 'amb_post_aux_reverb_space' // Open Space reverb

00:01:13:20
    STOP SEND (FADE) REVERB: 'amb_post_aux_reverb_space' // Open Space reverb
    SEND (FADE) REVERB: 'amb_post_aux_reverb_tunnel' // Tunnel / Corridor reverb
    'amb_sfx_env_pirates_ship_mach02' //ambient machine hum

00:01:17:19
    'sfx_plyr_col_debris' //collision with floating debris (collision, 2D), subject to reverb

00:01:19:19
    'sfx_npc_enemy_pirates_drone_droneBody' // Flying drone sound, 3D emitter (Mobile, omni), Loop, 1+ instance
    'sfx_npc_enemy_pirates_drone_droneLaser'  // Drone Laser sound, 3D emitter (Mobile, Directional), Loop, 1+ instance

00:01:23:16
    'land magboot heels'
    'land magboot activate'

00:01:24:12
    STATE: LAND
    'sfx_plyr_loc_land_PiratesMetalFloor01_colPrim' //collision metal floor (bank), subject to reveb
    'sfx_plyr_loc_land_PiratesMetalFloor01_colKlang' //collision metal floor resonant klang (bank), subject to reveb,
    'sfx_plyr_loc_land_PiratesMetalFloor01_colPost' ///atmospheric rattle/squeak (bank), not subject to reveb,
    'sfx_plyr_loc_walk_step_PiratesMetalFloor01_colPostAcc' 

00:01:24:52
    STATE: WALK
    'sfx_plyr_loc_walk_step_PiratesMetalFloor01_colPrim' //collision metal floor (bank), subject to reveb, REPEATED

00:01:30:00
    STOP SEND (FADE) REVERB: 'amb_post_aux_reverb_tunnel' // Tunnel / Corridor reverb
    SEND (FADE) REVERB: 'amb_post_aux_reverb_largeRoom' // Open Space reverb
00:01:31:46
    'amb_sfx_env_pirates_ship_mach03' //ambient machine hum

00:01:33:39
    STATE: FLY
    'sfx_plyr_loc_fly_thrust'// Air Thrusters (Bank), subject to reveb, REPEATED

00:01:33:55
    'sfx_plyr_loc_land_PiratesMetalFloor01_colPost' ///atmospheric rattle/squeak (bank), not subject to reveb,

00:01:36:37
    'sfx_npc_enemy_pirates_drone_droneBody' // Flying drone sound, 3D emitter (Mobile, omni), Loop, 1+ instance
    'sfx_npc_enemy_pirates_drone_droneLaser'  // Drone Laser sound, 3D emitter (Mobile, Directional), Loop, 1+ instance

00:01:47:21
    STOP SEND (FADE) REVERB: 'amb_post_aux_reverb_largeRoom' // Tunnel / Corridor reverb
    SEND (FADE) REVERB: 'amb_post_aux_reverb_tunnel' // Open Space reverb
    'amb_sfx_env_pirates_ship_mach04' //ambient machine hum

00:01:49:50
    STOP SEND (FADE) REVERB: 'amb_post_aux_reverb_tunnel' // Tunnel / Corridor reverb
    SEND (FADE) REVERB: 'amb_post_aux_reverb_largeRoom' // Open Space reverb

00:01:51:03
    STATE: LAND
    'land magboot heels'
    'land magboot activate'

00:01:51:25
    'sfx_plyr_loc_land_PiratesMetalFloor01_colPrim' //collision metal floor (bank), subject to reveb
    'sfx_plyr_loc_land_PiratesMetalFloor01_colKlang' //collision metal floor resonant klang (bank), subject to reveb,
    'sfx_plyr_loc_land_PiratesMetalFloor01_colPost' ///atmospheric rattle/squeak (bank), not subject to reveb,
    'sfx_plyr_loc_walk_step_PiratesMetalFloor01_colPostAcc' ?

00:01:51:51
    STATE: QT //non qt related sounds muted
    'gunshot collission' // trigger: collision/animation sync?, 3d, subject to reverb

00:01:52:16
    'gunshot collission' // trigger: collision/animation sync?, 3d, subject to reverb
    'qt drama' // trigger: qt event, 2d, not subject to reverb

00:01:53:25
    'interface click' // trigger: button click (conditional YES/NO), 2d, not subject to reverb, instance
    'interface return NO' // trigger: button click (conditional YES/NO), 2d, not subject to reverb, instance

00:01:54:06
    'gunshot collission' // trigger: collision/animation sync?, 3d, subject to reverb, instance
    
00:01:54:40
    'gunshot collission' // trigger: collision/animation sync?, 3d, subject to reverb, instance

00:01:55:55
    'breathing' // trigger: qt event, 2d, not subject to reverb, instance
    'heartbeat' // trigger: qt event, 2d, not subject to reverb, loop, fade in

00:01:56:21
    'gunshot collission' // trigger: collision/animation sync?, 3d, subject to reverb

00:01:59:26
    'interface click' // trigger: button click (conditional YES/NO), 2d, not subject to reverb, instance
    'interface return YES' // trigger: button click (conditional YES/NO), 2d, not subject to reverb, instance

00:02:01:14
    'interface click' // trigger: button click (conditional YES/NO), 2d, not subject to reverb, instance
    'interface return YES' // trigger: button click (conditional YES/NO), 2d, not subject to reverb, instance

00:02:02:54
    'interface click YES' // trigger: button click (conditional YES/NO), 2d, not subject to reverb, instance

00:02:03:22
    'gunshot player' // trigger: animation sync, 2d, subject to reverb, instance

00:02:03:34
    'gunshot impact' // trigger: animation sync, 3d, subject to reverb, instance
    atmo 1 sounds fade in //slowly

00:02:03:31
    'gunshot collission' // trigger: collision/animation sync?, 3d, subject to reverb, instance

00:02:04:42
    'interface click' // trigger: button click (conditional YES/NO), 2d, not subject to reverb, instance
    'interface return YES' // trigger: button click (conditional YES/NO), 2d, not subject to reverb, instance

00:02:06:38
    'interface click' // trigger: button click (conditional YES/NO), 2d, not subject to reverb, instance
    'interface return YES' // trigger: button click (conditional YES/NO), 2d, not subject to reverb, instance

00:02:08:02
    'interface click' // trigger: button click (conditional YES/NO), 2d, not subject to reverb, instance
    'interface return YES' // trigger: button click (conditional YES/NO), 2d, not subject to reverb, instance

00:02:08:42
    'gunshot player' // trigger: animation sync, 2d, subject to reverb, instance

00:02:08:58
    'gunshot impact' // trigger: animation sync, 3d, subject to reverb, instance

00:02:09:09
    'gunshot collission' // trigger: collision/animation sync?, 3d, subject to reverb, instance

00:02:12:39
    breathing 3 //play to end
    heartbeat fade out
    atmo 1 sounds fade in 100% //drone ambient
        atmo DRONE
    rest atmo sounds fade in //machine hum
        machine

00:02:17:44
    heartbeat 0%

00:02:19:00
    STATE : WALK

00:02:19:21
    footsteps

00:02:20:18
    airthrust

00:02:20:30
    rattle

00:02:23:58
    'interface click' // trigger: button click (conditional YES/NO), 2d, not subject to reverb, instance

00:02:31:57
    machine hum
00:02:32:33
    reverb change Big room>tunnel

00:02:34:39
    drone
    reverb change tunnel>room

00:03:04:06
    reverb change room>room

00:03:05:07
    'interface click' // trigger: button click (conditional YES/NO), 2d, not subject to reverb, instance
    interface hold/scan

00:03:07:02
    interface scan suggess, (/notification: new mission log)

00:03:11:43
    plyr>box collision soft

00:03:12:02
    box>wall collision

00:03:12:31
    plyr>box collision hard

00:03:14:40
    Reverb change room>room

00:03:16:01
    drones in range (2)

00:03:17:19
    machine hum in range

00:03:21:04
    reverb change room>tunnel

00:03:29:01
    collision plyr>wall soft
Naming conventions & description:
​​​​​​​// Master Audio Bus //
    // playerMaster //
        // SFX 
            //Sound effects
            Example: 'sfx_'
            // SFX / PLAYER 
                //Player related sound effects
                Example: 'sfx_plyr_'
                //Has category subclases related to general categorisation:
                    Classifyers:    'loc' //Player Locomotion 
                                    Example: 'sfx_plyr_loc_'
                                    'qt' //Player Quick time event specific sound effects
                                    Example: 'sfx_plyr_qt_'
                
                                    'cine' //Cinematic event specific sound effects
                                    Example: 'sfx_plyr_cine_'

                // SFX / PLAYER / COLLISION 
                    //Player related Locomotion sound effects
                    Example: 'sfx_plyr_col_'
                    Classifyers:    'debris' //Player object collision with floating debris 
                                    Example: 'sfx_plyr_col_debris'
                                    //Type: Sample bank
                                    //2D
                                    //Trigger event: player collision
                                    ! not subject to reverb
                // SFX / PLAYER / LOCOMOTION 
                    //Player related Locomotion sound effects
                    Example: 'sfx_plyr_loc_'
                    //Has category subclases related to types of locomotion:
                    Classifyers:    'walk' //when walking
                                    Example: 'sfx_plyr_loc_walk_'
                                    'run' //running
                                        Example: 'sfx_plyr_loc_run_'
                                    'takeOff' //transitioning from walking to flying
                                        Example: 'sfx_plyr_loc_takeOff_'
                                    'fly' //flying
                                        Example: 'sfx_plyr_loc_fly_'
                                    'land' //transitioning from flying to walking 
                                        Example: 'sfx_plyr_loc_land_'
                    // SFX / PLAYER / LOCOMOTION / WALK / 'ACTION'
                        //Walking related player action sound effects
                        Classifyers:    'step' //footstep
                                        //Type: Sample bank
                                        //2D
                                        Convention: 'sfx_plyr_loc_walk_step_'material'_'event'_'
                                        Example: 'sfx_plyr_loc_walk_step_PiratesMetalFloor01_colPrim'
                                        //Implementation: 
                                            //Trigger event: Animation sequence synchronized playback
                                            ! physical material needed
                                            ! subject to reverb
                        // SFX / PLAYER / LOCOMOTION / WALK / 'ACTION' / 'MATERIAL'
                            //Environment materials 
                            //Naming convention: 'Scene>Material>Object>Nr' 
                                Example: 'sfx_plyr_loc_walk_step_PiratesMetalFloor01_colPrim01'
                            Classifyers:     'PiratesMetalFloor01' //physical material collision sound
                                                //Type: Sample bank
                                                //2D
                                                ! subject to reverb
                                            'PiratesMetalFloor02' //physical material collision sound
                                                //Type: Sample bank
                                                //2D
                                                ! subject to reverb
                                            

                            // SFX / PLAYER / LOCOMOTION / WALK/RUN/LAND / 'ACTION' / 'MATERIAL' / 'EVENT'
                                //types of sound triggering events 
                                Classifyers:     'colPrim' //primary collision sound (eg. foot to metal)    
                                                    //Type: Sample bank
                                                    //2D
                                                    //Implementation: 
                                                        Trigger event: Animation sequence synchronized playback / physical material
                                                        ! subject to reverb
                                                'colKlang' //secondary collision sound added related to material (eg. klangs, rings & resonances)
                                                    //Type: Sample bank
                                                    //2D
                                                    //Implementation: 
                                                    Trigger event: Animation sequence synchronized playback / physical material
                                                    ! subject to reverb
                                                'colPost' //secondary collision follow up sound added for atmosphere/immersion (eg. environment ratteling & squeeking)
                                                    // environment sounds aimed at generating atmospheric immersion as well as sound scape variance, filling a role more similar to soundscape and music than folley type of sounds, having them trigger in relation to action would however aid immersion. 
                                                    // do not always need to play, but can happen "every now and then", following a player collision events such as footsteps, take off or landing. 
                                                    // these sounds are of varying leanght but are genarally longer than other collision triggered sounds, having 2 variations of such sounds sometimes overlapping could help varyance, but as they are generally "big" and "aeree" sounds, they are most effective if allowed to play by themselves (with the exeption of short dynamic sounds such as footsteps etc.) 
                                                    
                                                    //// I imagine these sounds to trigger in relation to player actions, but as these sounds are not directly related to specific player action, a logic could also be implemented to have them trigger randomly without the need of events such as collisions if performance is of issue, in that case a longer audio track could be streamed untimed and separate from any player action.
                                                    
                                                    //Type: Sample bank
                                                    //2D
                                                    //Implementation: 
                                                        Trigger event: Conditional Event trigger / physical material?
                                                        alternatively: streamed audio track //files would need to be recomposed/packaged differently
                                                        ! does not always trigger 
                                                            (logic: chance?)
                                                        ! does not need to play if several other 'col2' sound are already playing
                                                            (logic: statemachine / bool?)
                                                        ! subject to reverb
                                                'colPostAcc' //additional collision sound added for atmosphere & accenting specific events (eg. landing and take off)
                                                    Trigger event: Unique Event trigger / physical material
                                                    ! subject to reverb
                                                    //Type: Sample bank
                                                    //2D
                    // SFX / PLAYER / LOCOMOTION / FLY 
                        //Flying related player action sound effects
                        Classifyers:    'thrust' //air thrusters
                                        //Type: Sample bank
                                        Example: 'sfx_plyr_loc_fly_thrust'
                                        //Implementation: 
                                            //2D
                                            //Trigger event: Animation sequence synchronized playback
                                            ! subject to reverb

    // npcMaster //
        // SFX / NPC / ENEMY / PIRATES / DRONE
            'sfx_npc_enemy_pirates_drone_droneBody' // Flying drone sound
                //Type: Sample bank (loop)
                // Number = Variants
                Example: 'sfx_npc_enemy_drone_droneBody01'
                //Implementation: 
                    //3D emitter (Mobile, Omni)
                    ! not subject to reverb
            'sfx_npc_enemy_pirates_drone_droneLaser' // Drone Laser sound
                //Type: Sample bank (loop)
                // Number = Variants 
                //Implementation: 
                    //3D emitter (Mobile, Directional (plane))
                    ! not subject to reverb
    // SFX / ENVIRONMENT
        // SFX / ENVIRONMENT / ATMOSPHERE

    // ambientMaster //
        // SFX
            // ENVIRONMENT
                'amb_sfx_env_pirates_ship_mach01' // Machine drone sound, fan, loop
                    //Implementation: 
                        //3D emitter (Static, Omni), not subject to reverb
                        ! not subject to reverb
                'amb_sfx_env_pirates_ship_mach02' // Machine drone sound, fan, loop
                    //Implementation: 
                        //3D emitter (Static, Omni), not subject to reverb
                        ! not subject to reverb
                'amb_sfx_env_pirates_ship_mach02' // Machine drone sound, fan, loop
                    //Implementation: 
                        //3D emitter (Static, Omni),
                        ! not subject to reverb
        // POST
            // AUX
                // REVERB
                    'amb_post_aux_reverb_largeRoom' // Large room reverb
                    'amb_post_aux_reverb_space' // Open Space reverb
                    'amb_post_aux_reverb_tunnel' // Tunnel / Corridor reverb


Audio Samples not included in this post.
The files can be made available to select parties upon request.

You may also like

Back to Top