FartScrollLid 💨 A hilarious macOS app that plays fart sounds as you open and close your MacBook lid - inspired by the classic "fart scroll" browser extension! Features 🎵 Dynamic Fart Sounds - Pitch changes based on lid angle (deep bass when closed, high squeaks when open) - Pitch changes based on lid angle (deep bass when closed, high squeaks when open) 🎯 Motion-Activated - Only farts when you're actively moving the lid - Only farts when you're actively moving the lid 📊 Real-Time Monitoring - Shows lid angle, velocity, and fart parameters - Shows lid angle, velocity, and fart parameters 😄 Funny Status Messages - "Maximum pressure!", "Gas escaping!", and more How It Works FartScrollLid uses the MacBook's internal lid angle sensor (discovered through reverse engineering) to detect the angle between your laptop lid and base. When you move the lid, it triggers fart sounds with: Pitch modulation based on lid angle (0-130 degrees) based on lid angle (0-130 degrees) Volume control based on movement speed based on movement speed Instant response - farts stop immediately when you stop moving Requirements macOS 11.5 or later MacBook with lid angle sensor (most modern MacBooks) A sense of humor Installation Option 1: Build from Source Clone this repository: git clone https://github.com/iannuttall/fartscroll-lid.git cd fartscroll-lid Open in Xcode: open FartScrollLid.xcodeproj Build and run (Cmd+R) Option 2: Download Release Download the latest .app from the Releases page. Usage Launch FartScrollLid Click "Start Farting" Move your MacBook lid up and down Enjoy the symphony of farts! Stop moving to silence the farts Click "Stop Farting" when you've had enough fun Technical Details Lid Angle Sensor Device : Apple HID device (VID=0x05AC, PID=0x8104) : Apple HID device (VID=0x05AC, PID=0x8104) HID Usage : Sensor page (0x0020), Orientation usage (0x008A) : Sensor page (0x0020), Orientation usage (0x008A) Data format : 16-bit angle value in centidegrees (0.01° resolution) : 16-bit angle value in centidegrees (0.01° resolution) Range: 0-360 degrees Audio Engine Uses AVFoundation for real-time audio playback Varispeed unit for pitch modulation (0.5x to 2.0x) Smooth parameter ramping to avoid audio artifacts Movement threshold: 2 deg/s minimum to trigger farts Project Structure FartScrollLid/ ├── FartScrollLid.xcodeproj/ # Xcode project ├── FartScrollLid/ # Source code │ ├── AppDelegate.m/h # Main app controller │ ├── FartScrollLid.m/h # Lid angle sensor interface │ ├── FartAudioEngine.m/h # Fart sound engine │ ├── NSLabel.m/h # Custom label class │ └── FART.wav # Fart sound file └── README.md # This file Credits Based on the original LidAngleSensor app by Sam Henri Gold Fart sound from fart.js Inspired by the original fart scroll browser extension by The Onion Built with assistance from Factory Droid License MIT License - see LICENSE file for details Contributing Pull requests are welcome! For major changes, please open an issue first to discuss what you would like to change. Ideas for improvements: Additional fart sound variations Customizable pitch/volume curves Fart statistics tracking Network multiplayer farting Apple Watch companion app Disclaimer This app is for entertainment purposes only. Please use responsibly in appropriate settings. Not recommended for: Business meetings Libraries First dates Job interviews Funerals But highly recommended for: Pranking friends Amusing children Breaking awkward silences General tomfoolery Author Created by Ian Nuttall with Factory Droid Remember: Life is too short not to laugh at fart sounds from your laptop 💨😄