Run a participant
Each sequence of digits is shown for s, then the participant types it back in s. Background talking plays through the AirPods at dB(A), plus a quiet control.
1 · Participant
2 · Headphone check
Websites can't change your device volume, so set it by hand and don't touch it for the whole experiment.
Recent sessions on this device
Calibrate & settings
Physics job: make "60 dB" really mean 60 dB(A) in the ear. Calibrate once on the device and volume you'll test with. Calibration is saved on each device separately.
Device volume
Quiet control
Measure the room at the participant's seat with nothing playing. With noise cancellation on, the level in the ear is even lower — mention this in your write-up.
Experiment settings
These settings are saved on this device. Everyone gets the same defaults, so only change them if your whole class agrees.
Sequence bank (print as a paper backup)
Every participant sees the same bank. The sets rotate between noise levels by order group, so each set is heard at every level across the group.
Results
Everyone's results, combined. Updates automatically after every trial.
Data
CSV opens in Google Sheets, Excel or Numbers. Export saves what's shown above (everyone or this device). Import adds trials from a CSV and uploads them. Deleting a trial from the shared database needs the admin passcode.
All trials (raw data)
How to run the experiment
Question: does the sound level (dB) of continuous background noise affect the ability to recall a sequence of digits in the correct order?
Before test day — one time setup
- Pick the device. Use the same laptop (or iPad) and the same AirPods Pro for everyone in your group.
- AirPods settings (iPhone: Settings → your AirPods; Mac: System Settings → your AirPods):
- Noise Control: Noise Cancellation — blocks room noise so the quiet condition is really quiet.
- Conversation Awareness: off — otherwise the volume drops whenever someone talks.
- Personalized Volume: off — otherwise the volume changes by itself.
- Spatial Audio / head tracking: off.
- iPhone/iPad only: Settings → Sounds & Haptics → Headphone Safety → Reduce Loud Audio: off (it would cap the 90 dB level).
- Set a fixed volume and write it on the Calibrate tab. Never change it afterwards. If you have to, calibrate again.
- Calibrate (Calibrate tab), see below.
- Pilot test (optional): Run tab → Run pilot with someone who is not a participant. It tries lengths around the current setting in quiet and suggests one that is hard but not impossible (about 75% correct).
Calibration — for the physics student
A website can't know how loud your headphones are, so we measure it once.
Option A — best: iPhone or iPad Hearing meter
If this site is opened on an iPhone/iPad with the AirPods connected, add the Hearing control to Control Center. While sound plays, it shows the live headphone level in dB. Apple knows the AirPods' output, so this is fairly accurate. Press Play, open Control Center, read the level, type it in, and press Save.
Option B — laptop + sound meter app
Use a decibel meter app set to A-weighting (dB(A)), in LAeq/average mode. Hold one AirPod's speaker right against the phone's microphone and cup your hand around both to seal it. Let it average for about 15 seconds, then type in the reading.
Limitation to mention: a phone app is only accurate to about ±3 dB, and measuring a bud outside the ear isn't the same as inside it. The steps between our levels are still exact because the computer sets them mathematically.
Physics: why dB is logarithmic
Decibels compare sound intensity on a logarithmic scale: L = 10·log₁₀(I / I₀). Every +10 dB means 10× the intensity, and sounds roughly twice as loud. So 90 dB has 100 000× the intensity of 40 dB, not 2.25×. In code, a gain of G dB multiplies the sound wave's amplitude by 10^(G/20).
Safety: the loudest level, 90 dB(A), is played for only a few minutes. Hearing-safety guidance (NIOSH) allows about 2.5 hours a day at 90 dB(A), so this is safe, but it is loud: remind participants they can stop at any time. The site never plays above 90 dB(A).
Test day — per participant (~35 minutes)
- Get written consent. Give the participant a code (P1, P2…). Never type names.
- Run tab: enter your group name (same spelling every time) and the code, keep the order on Auto (the site gives each new person in your group the next order A, B, C…), tick consent, and go through the headphone check.
- Press Start test and give the laptop to the participant. They press Start for each block.
- Each trial: noise fades in → digits show for s → digits hide → type the digits in order within s. If you don't remember a digit, skip it with Space or → so the others stay in the right place.
- After each noise level there is a -second break (AirPods stay in).
- Every result is saved on the device and uploaded to the shared database straight away. If the Wi-Fi drops, it uploads later by itself — just don't clear the browser data before it says all results are saved.
- The participant can stop at any time with Stop (or Esc). Trials already done are kept.
- Wipe the AirPod tips between participants.
What the design controls
- Independent variable: noise level — Quiet, dB(A).
- Dependent variable: serial recall score = digits in the correct position (percentage).
- Controlled: the same device, headphones, volume, sequence length, show time and recall time for everyone. In every sequence a digit is never next to itself or a neighbouring number (like 4-5) and is used at most twice, so difficulty is similar.
- Counterbalancing: a Latin square changes the order of the noise levels for each participant, so practice and tiredness don't favour one level. Sequence sets rotate across levels too.
- Noise type: we use one type — a real recording of people talking — so the only thing that changes is the loudness. (White noise and construction can be switched on in settings to compare types.)
- Why talking: research shows that changing sounds, especially speech, disrupt serial recall more than steady sounds — and talking is the most common distraction in classrooms.
For the CSP write-up — where the code does the work
js/stats.js → scoreResponse()— goes through the sequence and response digit by digit, giving a point for each correct position.js/stats.js → analyzeTrials()— groups the list of trials by noise level, then works out the mean, standard deviation and standard error, a line of best fit (regression), and ANOVA p-values.js/sequences.js → buildSessionPlan()— makes the random but balanced plan for each participant (Latin square order + rotating sequence sets).js/noise.js— loops the real recordings (and generates white noise from random numbers), and sets their loudness in decibels.js/charts.js— draws the graphs as SVG.js/cloud.js— uploads each trial to the shared database (Supabase) and downloads everyone's trials for the Results page.
Sound credits
- Talking: “Group discussion 1” and “Group discussion 3” by ezwa (PDSounds), Wikimedia Commons, public domain.
- Construction (optional): “Baustelle am Mödlingbach” by TofuVegan, Wikimedia Commons, licensed CC BY-SA 4.0. Changed: made mono, trimmed, looped and volume-levelled.
- White noise (optional): generated by our code.