Skip to content

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:

  1. Large Diaphragm Cardioid Condenser -- More low/low-mid frequencies, full-bodied sound. USB options like Blue Yeti (gain at 0) work well.
  2. Small Diaphragm Cardioid Condenser -- Less low end, bright top end.
  3. Cardioid Dynamic -- Compensates room reverb, low-frequency roll-off, warm/aggressive sound. Good for loud sources.
  4. X/Y Stereo Condenser (Zoom portable recorders) -- Decent quality, requires trial and error on mic angle. Great for quiet detailed sounds.
  5. 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

  1. Make the room as quiet as possible
  2. Turn off game SFX and music (service menu or unplug backglass speakers)
  3. Keep playfield glass ON -- retains true cabinet acoustics, keeps recording level from clipping
  4. Close coin door during recording
  5. 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 0 in 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 PlaySound volume parameter saturates at 1.0 (cannot amplify), so the loudest sample covers the full range.
  • Remove _amp9 suffixes from filenames when using the volume parameter approach.
  • Ensure StopSound calls match the actual sound file names.

Ball Rolling Sounds

Playfield Rolling

The standard ball rolling code uses a height threshold:

If BallVel(BOT(b)) > 1 AND BOT(b).z < 30 Then
Adjusting 30 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
Negative 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.