-
Notifications
You must be signed in to change notification settings - Fork 0
Timings
James Chang edited this page Jun 30, 2025
·
1 revision
This application uses hardcoded timing values for four different musical movements. All timing values are defined in the timestampPatterns object.
-
Primary:
timestampPatternsobject inscript.js— actively used by the app -
Reference:
/timings/*.txtfiles — development reference only (not used by the app)
- 27 timing points from 0 to 68.79 seconds
- Simple pattern switching between 6 speakers
- Timings:
timestampPatterns.default.timestamps
- 25 timing points from 0 to 56.929 seconds
- Special decay behavior: speakers fade to 0.5 instead of 0
- Timings:
timestampPatterns["transition1-2"].timestamps
- 5 timing points from 0 to 55.5 seconds
- Uses circular panning with acceleration over time
- Rotation speed controlled in
animateCircularPanning() - Timings:
timestampPatterns["transition3-4"].timestamps
- 10 timing points from 0 to 9 seconds (simplified for demo)
- Uses dry/wet mixing between performer and hidden speaker
- Crossfading controlled in
updateDryWetBalance() - Timings:
timestampPatterns.stropheV.timestamps
-
startPatternSwitching()— Main timing loop (50ms intervals) -
animateCircularPanning()— Controls rotation speed for Transition 3–4 -
updateDryWetBalance()— Controls crossfading for Strophe V -
setInitialSpeakerGains()— Sets starting conditions for each movement
Easier way to find stuff: Copy the comment and use command+f to search for the same comment in the respective file
-
Line 826
// INITIAL TIMING SETUP: Different movements start with different speaker configurations
-
Line 499
// TIMING SETUP: Define base parameters for circular panning movement
-
Line 1020
// TIMING CONTROL: Circular panning speed accelerates based on audio position
-
Line 1035
// Update the angle - ROTATION SPEED CONTROLLED HERE