Pain Mode (Default)
The default mode plays random pain and protest sounds when your laptop is slapped.- Randomly selects from 10 embedded pain/protest audio clips
- Each slap triggers a different random sound
- No escalation or progression
main.go:239
Sexy Mode
Sexy mode features an escalating audio response system that intensifies based on how frequently you slap your MacBook.How Escalation Works
Sexy mode uses a sophisticated intensity tracking system with exponential decay:Escalation Algorithm
Escalation Algorithm
- Intensity Score: Each slap adds 1.0 to your intensity score
- Decay Half-Life: 30 seconds (configurable via
decayHalfLifeconstant inmain.go:66) - File Mapping: Score maps to 60 different audio files using a
1-exp(-x)curve - Sustained Slapping: At maximum slap rate (one per 750ms cooldown), the score converges to reach the final, most intense audio file
Score Calculation (main.go:147-159)
Score Calculation (main.go:147-159)
- After 30 seconds of inactivity: intensity halves
- After 60 seconds: intensity is at 25% of peak
- After 90 seconds: intensity is at 12.5% of peak
File Selection (main.go:166-174)
File Selection (main.go:166-174)
Sexy mode tracks your slapping intensity over a rolling time window. The more consistently you slap, the more intense the audio becomes. Stop slapping and the intensity naturally decays back to lower levels.
main.go:235
Halo Mode
Halo mode plays random death sound effects from the Halo video game series.- Randomly selects from embedded Halo audio clips
- Each slap triggers a different random game sound
- No escalation (same as Pain mode behavior, different audio files)
main.go:237
Custom Mode
Custom mode lets you use your own MP3 files instead of the built-in audio packs.- Directory must contain at least one
.mp3file - All files in the directory will be loaded (subdirectories are ignored)
- Files are sorted alphabetically
- Randomly selects from your MP3 files
- No escalation (random mode only)
main.go:233
Mode Restrictions
You cannot combine multiple modes. The flags--sexy, --halo, and --custom are mutually exclusive.
main.go:212-224
Cooldown Period
All modes enforce a 750ms cooldown between audio playbacks to prevent rapid-fire sounds. Code Reference:main.go:69