Fleep Sound Packages -- Complete Guide¶
Fleep sound packages provide realistic mechanical sound effects for VPX tables, replacing VPX's default sounds with recordings from real pinball machines. This guide covers recording procedures, integration, and troubleshooting.
Resources¶
- Fleep Sound Functions VBS (updated):
https://www.dropbox.com/s/2t2hq4tvazdsd74/Fleep%20Sound%20Functions%20%28updated%29%20.vbs?dl=0 - Fleep Sounds Dropbox folder:
https://www.dropbox.com/sh/jdscd8i2cnpaeaf/AABN2lQXfLRSc9r9iBLWNy4oa?dl=0 - Adding Fleep Sound Package tutorial:
https://paper.dropbox.com/doc/Adding-Fleep-Sound-Package--BINdwBapDcUvEyDIntVlGBVaAQ-jKBeTlcYksoH7xhmMQrkq - Updated AudioPan/AudioFade (v2, fixes Csng error):
https://drive.google.com/file/d/1UaU3cC0umyv5kSTPUC_652UBo8cngO50/view?usp=sharing
Recording Equipment¶
Fleep's recommended microphone types, in descending order of preference:
- Large Diaphragm Cardioid Condenser -- More low/low-mid frequencies, full-bodied sound. USB options like Blue Yeti (gain at 0) work well.
- Small Diaphragm Cardioid Condenser -- Less low end, bright top end.
- Cardioid Dynamic -- Compensates room reverb, low-frequency roll-off, warm/aggressive sound. Good for loud sources.
- X/Y Stereo Condenser (Zoom portable recorders) -- Decent quality, requires trial and error on mic angle. Great for quiet detailed sounds.
- Electret/MEMS (phones/GoPros) -- Acceptable as last resort. Samsung Galaxy S/Note, GoPro Hero, Pixel 3a+, iPhone 11+.
Critical requirement: Video with synced audio (to correlate sounds with physical events). Do NOT deliver via YouTube -- it compresses and degrades audio quality. Use Google Drive or Dropbox for file transfer.
Recording Procedure¶
Room Setup¶
- Make the room as quiet as possible
- Turn off game SFX and music (service menu or unplug backglass speakers)
- Keep playfield glass ON -- retains true cabinet acoustics, keeps recording level from clipping
- Close coin door during recording
- For best acoustics: hang quilted shipping blankets (two layers) on each side of machine using giant push pins
Microphone Placement¶
- Place recording device slightly above lockdown bar using a tripod (portrait orientation)
- Do NOT lay device on lockdown bar -- ruins audio quality
- Avoid any contact of tripod, mic, or camera with the cabinet
- Keep recording device at the same position for all videos, or make one continuous video
Recording Sequence¶
Step 1: Gameplay (~10 minutes) - Record normal gameplay - Avoid triggering flippers while ball hits slingshots (produces cleaner slingshot samples)
Step 2: Solenoid/Coil Test (5x full cycle) - Williams/Gottlieb: Run solenoid test in Run/Running mode, close coin door, let cycle 5 times - Stern SAM/Spike: Use single coil mode (cycling mode fires too fast). Flipper buttons cycle coils, start button actuates
Step 3: Flipper Coil Test - 7x each for left and right flipper - Press, hold 2 seconds, release - For 3-4 flipper games, do each flipper individually
Step 4: Special Mechanisms - Record any exclusive solenoids: wheels, motors, special toys - Record any unique sounds specific to the table
Integration into VPX Tables¶
Required Collections¶
Fleep sounds use VPX collections with "Fire events for this collection" enabled. Each collection maps to specific sound sets:
| Collection | Purpose | Notes |
|---|---|---|
dPost |
Rubber-wrapped post sounds | nFozzy separated posts |
dSleeve |
Rubber sleeve sounds | nFozzy separated sleeves |
GatesWire |
Wire gate sounds | Use "GatesWire" not "Gates" for correct sound |
Apron |
Apron collision sounds | Apron-adjacent walls need hit events |
Metals |
Metal contact sounds | Hit threshold = 2 for guide rails |
Woods |
Wood contact sounds | |
Rubbers |
Rubber bounce sounds | Pre-existing collection, separate from dPost/dSleeve |
Rollovers |
Rollover switch sounds | |
Walls |
Wall collision sounds |
Commonly Missing Items¶
These are frequently missing from new table builds:
- Rubber_4 sound -- duplicate Rubber_3 and rename
- Plunger pull sound effects
- Metals and Rollovers collections
- Apron collection with hit events enabled
- min() function -- defined under the ZMAT section of the Fleep example table
Cartridge Selection by Era¶
Fleep sound cartridges should match the machine's era and system, not just manufacturer. Even matching assembly part numbers does not guarantee matching sounds -- coils get replaced with similar parts that sound different, and cabinet resonance affects recordings. Fleep recommends comparing by ear.
Examples: - BOP (early WPC, 1991) used the Pinbot cartridge over the Whirlwind cartridge - Bad Cats 3.0 used the Bride of Pinbot package (similar Williams era) - System 11 cartridges are not yet standardized -- combine table-specific and newer S11 cartridges
Flipper Near-Ball Triggers¶
Newer Fleep sound packs require TriggerBallNearLF and TriggerBallNearRF trigger objects near flippers to distinguish between dampened and full-stroke flipper sounds. Without these triggers, only full-stroke sounds play. First implemented in TNA and Whirlwind cartridges.
core.vbs Compatibility¶
When integrating Fleep into an existing table, the core.vbs version must be compatible. Older versions may lack functions Fleep calls (like PlaySoundAtLevelStatic). Update core.vbs from the VPW repository before integrating.
Sound File Conventions¶
Naming¶
- No leading zeros in sound filenames. Leading zeros caused 30+ minute debugging sessions when a missing
0in script didn't match the filename. Consensus: skip leading zeros to avoid scripting bugs, accept messy sort order in the VPX sound manager.
Volume¶
- Use only the loudest sample version with a volume parameter to reduce as needed. The VPX
PlaySoundvolume parameter saturates at 1.0 (cannot amplify), so the loudest sample covers the full range. - Remove
_amp9suffixes from filenames when using the volume parameter approach. - Ensure
StopSoundcalls match the actual sound file names.
Ball Rolling Sounds¶
Playfield Rolling¶
The standard ball rolling code uses a height threshold:
Adjusting30 to a higher number raises the height threshold. However, this only covers playfield rolling.
Ramp Rolling (ZRRL)¶
For ramp rolling sounds, you need the separate ZRRL (Ramp Rolling) sound effects from the example table, plus:
- A timer for the rolling sound loop
- Triggers on ramps for hit events
- Height-based volume scaling (half volume with +50000 pitch when BOT(b).z > 30)
Direction Detection¶
Use ActiveBall.vely to determine ball direction for entry/exit sounds:
Sub Ramp1_Enter_Hit
If activeball.vely < 0 Then WireRampOn False
End Sub
Sub Ramp1_Enter_UnHit
If activeball.vely > 0 Then WireRampOff
End Sub
vely = ball moving up (toward backbox); positive = ball moving down.
Troubleshooting¶
"Variable is undefined: 'min'" Error¶
The min() function is defined under the ZMAT section of the Fleep example table. Copy that section into your table script.
AudioPan Crash on Walls¶
Fleep's AudioPan function expects an object with an x property. Walls do not have positional properties. Fix: always pass a physical VPX object (wall, primitive, or light) with positional properties, or add debug.print tableobj.name before the failing line to identify the offending object.
Ball Rolling Sound Persists After Destruction¶
Ball rolling sound can persist after multiball ball destruction. Add cleanup code to stop sounds when balls are deleted.
Sound Plays Below Z=0¶
Ball collision sounds below Z=0 should be disabled to prevent phantom sounds from balls in the trough or destroyed balls.
Duplicate SolCallback for Flippers¶
Duplicate SolCallback assignments cause flipper subs to fire twice per press. If both script initialization and a separate callback section assign the same solenoid callback, remove the duplicate.
Sound Pan Law Limitation¶
VPX sound panning uses: Left=100%, Middle=200%, Right=100%. This is a code-level limitation in VPX's sound engine and cannot be changed from the script side.