Learning Goals 3 min
By the end of this lesson you will be able to:
- Open the Sounds tab and import clips from the built-in library, browsing the six categories (animals, effects, foley, music, percussion, voice).
- Tell the difference between play sound (Wind v) until done and start sound (Wind v), and choose the right one for ambient loops vs short reactions.
- Layer two sounds in one scene — one ambient bed (like wind) and one specific trigger (like footsteps on a broadcast) — and balance them with set volume to (50) %.
Warm-Up — the silent storyboard 7 min
Imagine the opening of your favourite movie with the sound completely turned off. The image is the same — but the feeling is gone. Sound is half the experience and you almost never notice it until it's missing.
Predict puzzle. A Scratch animator drops this stack on her cutout-style detective sprite, who is meant to push open a creaky office door as the scene begins:
when flag clicked
start sound (Door Creak v)
glide (2) secs to x: (0) y: (0)
say [Anyone home?] for (2) seconds
The door-creak clip is 3 seconds long. The detective's whole walk-in takes 4 seconds. Click the flag mentally — does the audience hear the creak finish?
Reveal the answer
Yes. start sound launches the sound and immediately moves on to the next block, so the glide and the say run while the creak is still playing in the background. The creak finishes around the 3-second mark, halfway through the detective's first sentence. That overlap is exactly what we want — sound and action layered.
If she'd used play sound (Door Creak v) until done instead, the detective would have stood frozen for 3 seconds before starting to glide. Wrong block for the job.
Today's lesson is about picking the right sound block for the moment.
New Concept — the Sounds tab and the four sound blocks 15 min
You've used sound a little — a coin pickup in L04-18, a victory cheer in L04-23. Today we open the whole library.
Where the library lives
Click any sprite. At the top-left of the Scratch editor, you'll see three tabs: Code, Costumes, Sounds. Click Sounds. At the bottom-left of that panel, hover the blue speaker icon and four options pop up:
- Choose a Sound — opens the built-in library.
- Record — captures audio from your microphone.
- Surprise — adds a random library clip.
- Upload — bring in a sound file from your computer.
Click Choose a Sound. The library opens with six category tabs across the top:
// Animals Effects Foley Music Percussion Voice
// (cat, (boom, (door, (loops, (kit, (cheer,
// dog, bell, shoe, beats, snare, laugh,
// cricket, laser) clap) intro) cymbal) scream)
// bird)
Click a clip's tiny play arrow to preview it without adding. Click the clip's name to import it into your sprite. The clip now appears in the sprite's Sounds list and is selectable from any sound dropdown in the Code tab.
The four sound blocks you actually use
Open the magenta Sound palette. There are about a dozen blocks but only four really matter:
play sound (Wind v) until done
start sound (Wind v)
set volume to (50) %
change volume by (-10)
play-sound-until-done vs start-sound
These two look almost identical but behave very differently:
- play sound (X v) until done — Scratch waits for the clip to finish before running the next block. Use this when the sound is the action — dialogue, a single drum hit you want to time precisely, an announcement.
- start sound (X v) — Scratch fires the clip and immediately moves on. Use this when the sound is layered under something else — a footstep while walking, wind blowing during a glide, a door creak while the door swings open.
Wrong-block choice is the #1 sound bug in Scratch projects.
Volume — keep levels consistent
Library clips ship at wildly different volumes. Cymbal Crash is recorded loud. Bird Whistle is recorded quiet. If you mix them at the default volume of 100%, the cymbal will blow out the speakers and the bird will be inaudible.
when flag clicked
set volume to (40) %
start sound (Cymbal Crash v)
wait (1) seconds
set volume to (90) %
start sound (Bird Whistle v)
Layering — ambient + specific
A scene feels real when you have two layers of sound: an ambient bed (wind, crickets, café chatter, rain) running quietly the whole time, and specific sounds (a footstep, a door, a yell) firing on top. Use a dedicated sprite or the Stage to play the ambient loop forever, and put specific sounds on the sprites that cause them.
Worked Example — a mamak stall at night in eight steps 12 min
We'll build a tiny scene: a customer walks up to a mamak stall, the kitchen clatters in the background, the customer orders teh tarik, an applause sound effect fires for fun. Two sprites, two ambient sounds, two specific sounds.
Step 1 — Start fresh and import a backdrop
New project. Stage → Backdrops tab → Choose a Backdrop → pick something city-like (e.g. Night City or Boardwalk). This stands in for the mamak stall background.
Step 2 — Import two sprites
Delete the default cat. Add two sprites from the library: a person (e.g. Avery) as the customer, and any second sprite (e.g. Abby) as the stall worker. Position the customer at x: −150, y: −60 and the worker at x: 100, y: −20.
Step 3 — Import the ambient sound onto the Stage
Click the Stage (bottom-right). Sounds tab. Choose a Sound. Effects category → pick Chatter if available, otherwise Boing stand-in is fine — we'll pretend. Also grab Drum Kit from Percussion for that clattering-kitchen feeling.
Step 4 — Loop the ambient bed forever on the Stage
Stage → Code tab. Build:
when flag clicked
set volume to (30) %
forever
play sound (Chatter v) until done
end
Step 5 — Footsteps on the customer as it walks in
Customer sprite (Avery). Import Footsteps from Foley. Build:
when flag clicked
go to x: (-200) y: (-60)
set volume to (80) %
start sound (Footsteps v)
glide (2) secs to x: (-50) y: (-60)
Step 6 — Dialogue using broadcasts
After the glide, broadcast a message so the worker knows to respond.
when flag clicked
go to x: (-200) y: (-60)
set volume to (80) %
start sound (Footsteps v)
glide (2) secs to x: (-50) y: (-60)
say [Bos, teh tarik satu!] for (2) seconds
broadcast (order-placed v)
order-placed.Step 7 — Worker replies using play-until-done for the dialogue beat
Worker sprite (Abby). No sound import needed yet — we'll use a voice clip.
when I receive (order-placed v)
say [Sekejap ya, abang!] for (2) seconds
play sound (Drum Kit v) until done
Step 8 — Applause when the teh tarik is delivered
Add a final beat: after the clatter, the worker says "Ready!" and an applause clip fires (because Malaysian teh tarik served right deserves applause). Import Clapping from Effects.
Click the flag. The chatter loops the whole time. The customer walks in with footsteps under the chatter. They order. The worker chats back, then clatters in the kitchen. Then claps. Four overlapping layers — and we used the right block (start vs play-until-done) for each.
The full assembled stack — Worker sprite
when flag clicked
go to x: (100) y: (-20)
set volume to (70) %
when I receive (order-placed v)
say [Sekejap ya, abang!] for (2) seconds
play sound (Drum Kit v) until done
say [Tehnya siap!] for (1) seconds
start sound (Clapping v)
What you just built: a 6-second scene that feels like a place. Same sprites, no sound = boring. Same sprites, ambient + footsteps + clatter + clap = a moment. This is the difference between Scratch projects that get one star and Scratch projects that get one hundred.
Try It Yourself — three sound drills 15 min
Goal: Open a new project. Import Bird Whistle from Animals and Cricket from Animals. Loop the cricket sound on the Stage at 25% volume forever. On the default cat sprite, fire a bird whistle whenever the space key is pressed — but don't pause the cat's movements (use the right block!).
when flag clicked
forever
if <key [space v] pressed?> then
start sound (Bird Whistle v)
wait (1) seconds
end
end
Think: Why start-sound and not play-until-done? Because if you used play-until-done, the cat couldn't do anything else (move, animate, react) during the bird call. start-sound layers under everything.
Goal: Make a "door open" reaction. Import Door Creak from Effects. Build a door sprite (rectangle painted in the costume editor). When the user clicks it, broadcast door-open. A second sprite (anyone — pick from the library) listens for the broadcast and plays the door creak until done while saying "Welcome!" After the creak finishes, broadcast guest-enters.
when I receive (door-open v)
play sound (Door Creak v) until done
say [Welcome!] for (1) seconds
broadcast (guest-enters v)
Think: Notice the broadcast chain: click → door-open → creak → welcome → guest-enters. Each step waits for the previous one. This is how cinematic timing works in Scratch.
Goal: A rain scene. Import Rain (or any continuous-sounding loop) from Effects, plus Thunder from Effects. On the Stage: loop rain forever at 40% volume. Also on the Stage: every 5 to 10 seconds at random, fire a thunder clip at 80% volume on top of the rain. Use pick random (5) to (10) inside a wait.
when flag clicked
set volume to (40) %
forever
play sound (Rain v) until done
end
when flag clicked
forever
wait (pick random (5) to (10)) seconds
set volume to (80) %
start sound (Thunder v)
set volume to (40) %
end
Think: Two forever loops on the same sprite (the Stage) run in parallel — Scratch is happy to multitask. One bed of rain, one random thunder. Five blocks of variation makes a scene feel infinite.
Mini-Challenge — the dialogue that won't shut up 5 min
"Siti's narrator that talks over itself"
Siti is building an opening narration for her short film. She wants a calm voice clip Story Intro to play once at the start, then have the scene begin. She writes:
when flag clicked
forever
start sound (Story Intro v)
wait (1) seconds
end
She clicks the flag. The narrator's voice starts over and over, layering on top of itself like a haunted choir. What did she pick wrong, and what's the smallest fix?
Reveal one valid solution
Two bugs and they're related.
Bug 1. start sound fires-and-forgets, so every time the forever loop comes around (every 1 second), a new copy of the 6-second clip starts on top of the previous one. By second 5, six narrators are talking simultaneously.
Bug 2. Siti wanted the narration to play once, not loop. The forever is wrong from the start.
Smallest fix: drop the forever entirely, and switch to play-until-done so the clip finishes before the next block (the scene) starts.
when flag clicked
play sound (Story Intro v) until done
broadcast (scene-1-begin v)
Three blocks. The narration plays once, then the broadcast fires the rest of the scene. This is the canonical "intro voiceover" pattern for any Scratch story.
Recap 3 min
You met Scratch's Sound library — six categories, hundreds of clips — and the four blocks you actually need. play sound (X v) until done waits for the clip to finish; start sound (X v) fires it and moves on. Use start-sound for layered or ambient moments, play-until-done for timed dialogue and beats. Keep volumes balanced with set volume to (N) % — every sprite has its own volume. Ambient bed plus specific trigger sounds turn a flat scene into a place.
- Sounds tab
- The third tab at the top of any sprite's editor (after Code and Costumes). The home of import, record, and trim controls. Each sprite carries its own list of imported sounds.
- play-until-done
- play sound (X v) until done — Scratch waits for the clip to finish playing before running the next block. Use for dialogue and timed beats.
- start-sound
- start sound (X v) — Scratch fires the clip and immediately runs the next block. Use for layered, ambient, or background-of-action sounds.
- Ambient bed
- A continuous, low-volume sound that runs under a whole scene (wind, rain, crickets, café chatter). Usually played by the Stage in a forever loop with play-until-done so it seamlessly restarts.
- Per-sprite volume
- Each sprite carries its own volume value (set by set volume to (N) %). Changing one sprite's volume does not change another's. The Stage also has its own volume.
Homework 2 min
The Three-Layer Scene. Build a 10-to-15 second scene with three layers of sound running together. Theme is your choice — a pasar malam at sunset, a school field at recess, a kampung morning with chickens.
- One ambient bed on the Stage, looping forever at low volume (20–35%). Examples:
Cave,Crickets,Chatter. - One specific repeating sound tied to a sprite's action — footsteps as someone walks, a vendor calling, a chicken every few seconds. Use start-sound so the action doesn't pause.
- One cinematic beat sound that fires once at a specific moment, using play-until-done. A bell, a yell, a door, a thunderclap — your call.
Save as HW-L4-28-Three-Layer-Scene.sb3. Click the flag and listen with headphones — the three layers should feel like one place.
Bring back next class:
- The
.sb3file. - Your answer to: "Which sound did you set the lowest, and which did you set the highest? Why? What happens if you flip them?"
Heads up for next class: SCR-L04-29 steps away from the editor entirely. We'll plan a 60-second animated short on paper — a 6-panel storyboard, beat by beat — before touching a single block. The lesson after that (SCR-L04-30) is the cluster E capstone Build where you assemble that storyboard into a finished short with sprites, backdrops, and the sounds you learned today.