Skip to content
DEV505 / Sound ManagerDOCUMENTATION

DEV505 / SOUND LAB / 10

A little liftoff.

Conditions, countdowns, aborts, and a flying finale.

The rocket is just above the pad with its thrusters active. The flight event follows the moving rocket.
Launch in Unity: the rocket lifts off. The real scene controls and status readouts are visible.

The rocket is just above the pad with its thrusters active. The flight event follows the moving rocket.

In Unity’s Project window, open Assets/DEV505/SoundManager/Samples/10-Launch/Demo.unity. The supplied scene already has its Sound Manager, event registrations, generated keys, camera, and Audio Listener. Press Play, wait for the demo to be ready, and click the Game view before using the keyboard. If you are setting up a separate scene, follow Your first sound first.

Control Action
Space Begin launch preparation.
M Switch Auto / Manual while the demo allows it.
Up / Down, power slider Adjust power in Manual.
C Open or close the clamps during Manual preparation.
V Vent pressure when available.
X Abort.
P Pause or resume the interaction.
R Reset for another launch.

Try Auto first. Start preparation, watch power rise and clamps open, then listen to three countdown ticks and ignition. Flight begins after the sequence sound finishes. Pause in flight and resume; rocket motion and its audio continue together.

Reset and try Manual. Increase power with the clamps still closed. As pressure rises, the warning repeats faster. Vent, open the clamps, and supply enough power to satisfy clearance. Abort during preparation or countdown to hear shutdown without launching.

The listener stays near Mission Control. Pad machinery remains on the island while the flight sound follows the rocket exhaust away from it.

The pad is stopped with Auto selected. No voices are playing yet.
Launch in Unity: ready at Mission Control. The real scene controls and status readouts are visible.

The pad is stopped with Auto selected. No voices are playing yet.

Power is at 100% with the clamps still closed. The PRESSURE WARNING status is active; the large Ready for the sky line is the demo's normal preparing-phase readout.
Launch in Unity: too much pressure in Manual. The real scene controls and status readouts are visible.

Power is at 100% with the clamps still closed. The PRESSURE WARNING status is active; the large Ready for the sky line is the demo's normal preparing-phase readout.

Auto has supplied enough power, reduced pressure, and opened the clamps. The graph can now begin its three-count sequence.
Launch in Unity: three seconds to liftoff. The real scene controls and status readouts are visible.

Auto has supplied enough power, reduced pressure, and opened the clamps. The graph can now begin its three-count sequence.

The manual launch has been aborted. The scene reports a safe shutdown while the ending audio finishes.
Launch in Unity: abort the launch. The real scene controls and status readouts are visible.

The manual launch has been aborted. The scene reports a safe shutdown while the ending audio finishes.

The rocket is held at the same altitude and the HUD reports LAUNCH PAUSED. The demo pauses its motion and retained audio plays together.
Launch in Unity: pause during flight. The real scene controls and status readouts are visible.

The rocket is held at the same altitude and the HUD reports LAUNCH PAUSED. The demo pauses its motion and retained audio plays together.

Key Job
Sounds.LaunchPad Layered machinery, pressure warning, and shutdown.
Sounds.LaunchSequence Wait for clearance, count, and ignite.
Sounds.LaunchFlight Rocket thrust that follows the exhaust.
Sounds.LaunchClamp Short mechanical cue when clamps change.
Sounds.LaunchVent Short vent response.
Sounds.LaunchUI 2D control-room click that can ignore game pause.
Three running layers respond to Power. A pressure alarm and a separate release path handle warnings and shutdown.
Launch in Unity: launchPad: power, pressure, and shutdown. The graph nodes and their connections are visible.

Three running layers respond to Power. A pressure alarm and a separate release path handle warnings and shutdown.

LaunchPad stays alive while waiting for control. Power shapes its layered machinery; Pressure shapes the warning. The demo changes targets, then uses the smoothed current Power to simulate pressure building or draining. The graph does not simulate a real pressure vessel.

Float Compare tests whether Pressure is greater than 0.72. Track Condition starts or stops the repeating alarm as that test changes.
Launch in Unity: keep checking the pressure. The graph nodes and their connections are visible.

Float Compare tests whether Pressure is greater than 0.72. Track Condition starts or stops the repeating alarm as that test changes.

Track Condition keeps checking whether Pressure is above 0.72. Its active branch runs a Repeat, with the warning interval mapped from 0.95 to 0.22 seconds as pressure rises from 0.72 to 1. The warning accelerates because the interval changes; the controller is not starting a new pad event for every beep.

The graph waits for the launch conditions, runs the countdown, and plays ignition. Its completion is observed by the demo controller.
Launch in Unity: launchSequence: wait, count, ignite. The graph nodes and their connections are visible.

The graph waits for the launch conditions, runs the countdown, and plays ignition. Its completion is observed by the demo controller.

The launch requires Power of at least 0.72, Pressure below 0.85, and ClampsOpen. And nodes combine the tests before Wait For Condition continues.
Launch in Unity: wait until launch is allowed. The graph nodes and their connections are visible.

The launch requires Power of at least 0.72, Pressure below 0.85, and ClampsOpen. And nodes combine the tests before Wait For Condition continues.

LaunchSequence starts with Wait For Condition. All three conditions must be true: Power at least 0.72, Pressure below 0.85, and ClampsOpen true. These parameters are supplied at start and updated as the controls change.

Once clearance is satisfied, a Sequence orders three commands: reset the Counter, start a one-second Repeat, then send the first count immediately. Counter’s limit is three. Its count also maps the tick playback speed from 0.85 to 1.15, lifting the pitch as the count advances.

Sequence orders setup and Repeat sends timed pulses into Counter. Counter tracks three ticks; the graph also changes their playback speed as the count advances.
Launch in Unity: count three ticks. The graph nodes and their connections are visible.

Sequence orders setup and Repeat sends timed pulses into Counter. Counter tracks three ticks; the graph also changes their playback speed as the count advances.

A final one-second Delay leads to the ignition clip. When that clip finishes, the sequence can complete and the controller can begin flight.
Launch in Unity: pause briefly, then ignite. The graph nodes and their connections are visible.

A final one-second Delay leads to the ignition clip. When that clip finishes, the sequence can complete and the controller can begin flight.

At the limit, the graph stops the Repeat, waits one more second, then plays the two-second ignition. When that recording finishes and the graph has no remaining work, the play finishes naturally.

Wait For Condition is the initial gate, not a permanent safety monitor. After clearance, LaunchDemo separately aborts if power drops below 0.65, pressure exceeds 0.96, or the clamps close. A game that needs ongoing safety must also keep checking it.

The controller subscribes to sound notifications and matches the sequence’s handle. Only its natural Finished notification requests liftoff:

React to this sequence only · excerpt
if (message.Handle.Equals(sequence) &&
message.Kind == SoundNotificationKind.Finished)
{
launchPending = true;
}

Here message is the notification delivered to the callback. The controller performs the next action in Update, respecting pause and abort state. Cancelled or Failed is not successful completion. The visual 3–2–1 countdown is a presentation estimate; it is not the timer that launches the rocket.

A continuous flight sound changes with its parameter and follows the rocket through the context created by the demo.
Launch in Unity: launchFlight: follow the rocket. The graph nodes and their connections are visible.

A continuous flight sound changes with its parameter and follows the rocket through the context created by the demo.

The new flight context follows the rocket exhaust with a rocket owner, separate from the pad owner. Thrust controls the moving sound. The graph has a 12-second event length; the demo’s shorter flight sequence can stop it earlier. Following updates position as the controller animates the rocket.

A short mechanical cue marks the clamp action and ends after playback.
Launch in Unity: launchClamp: release the hardware. The graph nodes and their connections are visible.

A short mechanical cue marks the clamp action and ends after playback.

A short vent cue uses random playback speed for variation. The demo triggers it when venting pressure.
Launch in Unity: launchVent: release pressure. The graph nodes and their connections are visible.

A short vent cue uses random playback speed for variation. The demo triggers it when venting pressure.

Clamp and Vent are short spatial responses. Their graph cooldowns are 0.5 and 0.7 seconds. The controller also limits its vent interaction, reduces simulated pressure, and animates the hardware.

On Stop checks Release before playing the shutdown cue. The Abort signal also has a path to Stop Instance.
Launch in Unity: choose the shutdown ending. The graph nodes and their connections are visible.

On Stop checks Release before playing the shutdown cue. The Abort signal also has a path to Stop Instance.

Abort stops the countdown and sends "Abort" to LaunchPad. That signal reaches Stop Instance, which enters the pad’s stopping flow. Its Release Bool decides whether to play the shutdown ending; ReleaseGain sets that ending’s level. Reset suppresses Release before cleanup to avoid an unwanted shutdown cue while rebuilding the starting state.

A short UI event chooses a click variation for a control action. This event ignores pause, so control clicks can still play while the launch is paused.
Launch in Unity: launchUI: a control-room cue. The graph nodes and their connections are visible.

A short UI event chooses a click variation for a control action. This event ignores pause, so control clicks can still play while the launch is paused.

Pause sets the sound service’s global Paused state and pauses the demo’s visual motion. LaunchUI is configured to ignore that game pause, allowing control clicks to remain audible. The controller restores the prior pause state when leaving the interaction. A per-play Resume alone would not override a paused service.

Power input, pressure simulation, auto venting, safety checks, clamps, HUD timing, rocket motion, voxel fire, and lens flare are C# and scene effects. The graph supplies audio layers, conditions, scheduled pulses, signals, shutdown, and completion. Auto mode targets Power 0.86 and opens clamps after about 2.2 seconds; those choices are demo logic, not universal audio behavior.

  • The countdown waits silently. Check all three clearance conditions and their types, especially the Bool clamps value.
  • An abort accidentally launches. React only to Finished for the matching sequence handle, and clear pending work before cancelling.
  • The rocket lifts on a guessed timer. Use the actual sound completion notification; the visual timer can drift.
  • Closing clamps after clearance does nothing in a small integration. The graph’s initial gate has already passed. Add ongoing safety checks as the full controller does.
  • Resume does not unpause a sound. Check both the handle’s own pause and the service’s global pause.

These are the saved graph settings. A play can supply different initial parameter values. Float smoothing is measured in units per second; a rate of 0 applies changes immediately.

Sounds.LaunchClamp

Position
3D · 3–18 units (minimum–maximum distance)
Overlapping plays
2 · ReplaceOldest
Cooldown
0.5 seconds between accepted requests
Owner loss
Stop
Keep Alive
Off — ends when its work is finished

No exposed parameters.

Signals: None authored.

Sounds.LaunchFlight

Position
3D · 4–28 units (minimum–maximum distance)
Overlapping plays
1 · ReplaceOldest
Cooldown
None
Owner loss
Stop
Keep Alive
Off — ends when its work is finished
ParameterTypeDefaultRangeRise / fall rate
ThrustFloat10–11 / 2

Signals: None authored.

Sounds.LaunchPad

Position
3D · 4–22 units (minimum–maximum distance)
Overlapping plays
2 · ReplaceOldest
Cooldown
None
Owner loss
Stop
Keep Alive
On — can wait silently for signals
ParameterTypeDefaultRangeRise / fall rate
PowerFloat00–10.24 / 0.6
PressureFloat00–13 / 4
ReleaseBooltruefalse / trueNot smoothed
ReleaseGainFloat0.70–10 / 0
SignalResponse in this graph
AbortEnter the stopping flow and optional shutdown ending.

Sounds.LaunchSequence

Position
3D · 4–22 units (minimum–maximum distance)
Overlapping plays
1 · RejectNew
Cooldown
None
Owner loss
Stop
Keep Alive
Off — ends when its work is finished
ParameterTypeDefaultRangeRise / fall rate
PowerFloat00–10 / 0
PressureFloat00–10 / 0
ClampsOpenBoolfalsefalse / trueNot smoothed

Signals: None authored.

Sounds.LaunchUI

Position
2D
Overlapping plays
3 · ReplaceOldest
Cooldown
None
Owner loss
Stop
Keep Alive
Off — ends when its work is finished
Game pause
Ignored — this UI cue can play while the service is paused

No exposed parameters.

Signals: None authored.

Sounds.LaunchVent

Position
3D · 3–18 units (minimum–maximum distance)
Overlapping plays
2 · ReplaceOldest
Cooldown
0.7 seconds between accepted requests
Owner loss
Stop
Keep Alive
Off — ends when its work is finished

No exposed parameters.

Signals: None authored.

For the meaning of these settings, see Playback settings. The default numbers above come from the Unity graph audit stored with this documentation.

Open the complete integration recipe for the script, Inspector setup, a short test, and cleanup. Use Play context for initial values and placement, and SoundBus for playback controls.

All Launch Unity captures includes further states and readable graph details, with steps to reproduce each view.