F.A.P.S (Funscript - Audio Processing System) is a desktop application that automatically generates Funscript files by analyzing the audio of your videos. Using audio processing algorithms and AI, it creates device movements synchronized with the music, rhythm, and energy of the content.
Designed for devices like The Handy, F.A.P.S can generate complete scripts without manual intervention, while offering full control over every parameter for those who want to fine-tune the results. Multiple generation moods are available, each tailored to different content types and styles.
Developed by CaptainHarlock
Here are some screenshots:
Generator:
Moods:
AI Analysis:
Edge & Cum Advanced Editor:
Pattern Editor:
Queue System:
Compare:
History:
Point Editor:
Combinator:
Preview Card:
Recently created moods:
âFap Mixerâ
âSixthSenseâ
âPulseâ
âBeat Riderâ
Hereâs a summary of the main features:
Features
Generation Modes (Moods) 18 different movement styles:
Music-Based (
):
- AUTO - Analyzes each segment and automatically applies the most appropriate mood
- Normal - Beat-based movement for music with defined rhythm
- Relaxed - Slow and smooth waves
- Simple - Direct beat-to-movement conversion
- Crazy - Intense and fast movement
- Crazy+Voice - Crazy mode with voice vibrations
- Slow - Slow and deliberate movements
- Fap Mixer
- Demucs stem separation with role assignment (primary rhythm, secondary complement, texture, vibration) + optional GPU voice classification detecting moans, screams, breath and gagging with configurable per-type actions
Voice-Based (
):
- Hypno - Voice-reactive patterns with customizable keyword detection via AI transcription, designed for HFO/ASMR/JOI content
- Edging - Teasing patterns with edge/denial/release keyword detection and build-up cycles
Advanced AI (
):
- Pulse
- 3-layer generation using BS Roformer 6-stem + DrumSep 5-drum-substem separation: rhythm base from beats + drum sub-beat injection, dynamic amplitude from weighted stem RMS, and movement zone shifting by stem dominance - SixthSense
- 7-layer adaptive generation using 6-stem + 5-drum-substem AI separation with section-aware profiles, sub-beat precision and guitar solo detection
Video-Based (
):
- Beat Rider
- Visual pattern tracking using HSV color detection and line-crossing analysis on video frames, generating movements from detected visual beats in a user-defined region of interest
JOI Modes (
):
- JOI Director
- Phrase-by-phrase AI director using Whisper transcription + LLM to assign actions (stroke, tease, edge, pulse, vibrate, releaseâŚ) with 26+ pattern types - JOI Patterns
- LLM classifies each spoken phrase into pattern categories with intensity and tempo - JOI LLM

- LLM outputs continuous parameters per phrase generating parametric waveforms - JOI LLM_A / LLM_B

- Parametric variants with explicit or auto-derived waveform shapes (sine, sawtooth, pulse, vibrate, staircase, shake)
AI Analysis
Uses several AI models and services running locally on your GPU:
⢠All-In-One â Music structure analysis (BPM, beats, downbeats, sections, key, energy)
⢠Beat This! + BeatNet â Neural beat and downbeat tracking
⢠BS Roformer (6 stems) â Vocal, drums, bass, guitar, piano, other separation
⢠DrumSep (5 substems) â Kick, snare, toms, hi-hat, cymbals separation
⢠Demucs â 4-stem separation (vocals, drums, bass, other)
⢠Wav2Vec2 â Voice feature extraction and nonverbal vocalization classification (moaning, screaming, etc.)
⢠Whisper + Silero VAD â Speech transcription with voice activity detection
⢠LLM Models (local, quantized) â Text analysis for JOI modes.
⢠Librosa â Audio feature extraction (RMS energy, onsets, spectral analysis, HPSS)
⢠Shazamio â Music fingerprint identification
⢠MusicBrainz / Deezer / iTunes â Song duration and metadata lookup
Adjustable Parameters
Each mood has its own dedicated parameter panel. Common parameters include:
- Minimum/maximum position (movement range)
- Detection sensitivity
- Maximum device speed
- Minimum interval between points
- Intensity normalization between songs
- Inverted mode (flips movement direction)
Edge & Cum Editor
Visual timeline editor for creating climax sequences:
- Multiple block types: Edge Base, Fast Vibration, Post-Climax, Silence and Custom
- 9 available patterns in âEdge Baseâ: Crescendo, Decrescendo, Normal, Random, Build-up, Denial, Tease, Pulse, Wave Train
- 8 available patterns in âFast Vibrationâ: Stepped, Prog. Stepped, Tip Edge, Base Edge, Tip/Base Edge, Earthquake, Shutter, Surge
- 8 available patterns in âFast Vibrationâ: Slow Up/Down Curve, Slow Up/Down Vibro, Tip Care, Base Care, Milk, Torture, Cool Down, Aftershock
- 5 intensity levels, vibration available with different strength and frequency levels, in âEdge Baseâ patterns.
- Drag and drop blocks
- Pattern preview
Metrics on Completion
After each generation displays:
- Points generated and duration
- Speed statistics (minimum, maximum, average)
- Distribution by speed ranges
Languages
- English
- EspaĂąol
Tabs
-
Generator - Main tab where you load a video/audio file, select a mood, configure parameters, run AI analysis and generate the funscript.
-
Queue - Batch processing queue. Add multiple files with their own configurations and process them sequentially. Supports pause, cancel, time estimation and per-item status tracking.
-
Pattern Editor - Visual editor for creating custom movement patterns. Draw points on a canvas to define waveforms (sawtooth, step, zigzag, pulse) with configurable cycles, duration and position range. Patterns can be Repetitive (looped) or Adaptive (scaled to music). Supports undo/redo. Created patterns become available in mood configurations.
-
Compare - Comparison of two funscripts. Load two .funscript files and visualize them overlaid on a graph with zoom and scroll navigation. Shows statistics like point count, speed differences and similarity metrics.
-
History - Log of all past generations in the current session. Shows filename, mood used, point count, duration and timestamp. Allows re-applying a previous configuration with one click (âUse Configâ button).
-
Combinator - Combines parts from funscripts generated with different moods for the same video. Load a video, auto-discovers all mood variants generated for it, then select time ranges from each source and insert them into a combined timeline. Features GPU-accelerated timeline rendering, video playback (VLC), drag markers for range selection and undo/redo. Export the combined result as a single funscript.
-
Point Editor - Full-featured funscript editor optimized for large files (20k+ points). GPU-accelerated timeline with real-time video playback sync. Color-coded velocity indicators. Supports point selection, multi-selection, drag editing, undo/redo (100 levels).
-
Preview Card - Generates visual preview/info cards for sharing funscripts.
Extracts a grid of video frames (configurable rows/columns with frame offset control)
and composites them with optional song list, speed heatmap and statistics. Supports vertical
(9:16) and horizontal (16:9) layouts, dark/light themes, and exports as JPG.
Also includes a Multi Funscript Card mode that auto-discovers all mood variants
generated for the same video and creates a combined comparison card.
Technical Features
GPU Acceleration
- CUDA support for NVIDIA GPUs
- Support for modern AMD GPUs (Experimental, thanks to @Alexcreeds )
- Processing with PyTorch and torchaudio
- Automatic CPU fallback if no GPU available (Using librosa, but not verified at this time, the best option is to use GPU acceleration)
Cache System
- Saves AI analysis to avoid repeated processing
- Harmonic/percussive separation cache
- âCache Managerâ
Project Management
- Save/load projects with all parameters
- Reusable templates
- Generation history
Device Safety
- Handy Safe mode to limit speeds
- Real-time speed verification
- Alerts for problematic segments
Formats
- Input: MP4, MKV, AVI, WebM, MOV, MP3, WAV, FLAC, OGG, M4A
- Output: .funscript, .hc (chapters), .fproj (projects)
Requirements
Minimum
- Windows 10/11
- 8 GB RAM (16 GB RAM recommended)
- 10GB for the application. Please note that generated caches can take up a lot of additional space.
- Nvidia GPU with +4 GB VRAM (+8 GB VRAM recommended) (From 10xx to 50xx series works) (Experimental support for AMD GPUs added in v0.9)
NOTE: @Alexcreeds has taken the time and effort to port v0.8 to ROCm to make it work with certain AMD GPUs. You can also find the link below if you want to try it out.
Installation & First Run
Prerequisites
- None
- IMPORTANT: Donât use spaces in the path
Installation
- Extract the file (** IMPORTANT ** > Please use the latest WinRAR versiĂłn to extract the file: WinRAR archiver, a powerful tool to process RAR and ZIP files)
- Run âInstall_Nvidia.batâ or âInstall_AMD.batâ
Running the Application
- Double-click
run.bat - The application window will open â youâre ready to generate!
Changelog v0.8
- Added new âPulseâ mood, designed as an improved version of âNormal.â
- The application now uses âembedded Pythonâ⌠No installation required, just extract and run!
- Added logo for the application, hope you like it, lol
- Added a new âPreview Cardâ tab to generate a Card with grid of images, heatmap, song list, and other details.
- Review and improvement of the âNormalâ mood, added new âSpacingâ control.
- Review and improvement of the âCrazyâ mood.
- Review and improvement of the âCrazy+Voiceâ mood.
- Review and improvement of the âRelaxedâ mood, added new âOnset detectionâ drop-down menu and âFill gapsâ option.
- Review and improvement of âAUTOâ and its 3 methods of use. Completely rewritten the BPM+RMS method, which now also uses Sections.
- Removal/Hiding of unused parameters in moods.
- New song detection system, better and faster
- New display method for âEdge & Cumâ patterns, now correctly represented graphically in the timeline.
- Ability to disable songs, useful for avoiding processing intros or interludes that are not songs.
- Option to rename the song block or redo the search through Shazam.
- Added the option to do âAI Analysis Onlyâ in Queue, with selection of the type of analysis. Very useful for running several AI Analyses automatically, which is what takes the most time, and then having the cache ready to start generating the Funscripts
- Fixed bug in non-stereo or non-mono audio; now any audio is converted to stereo or mono as needed.
- Spanish translation for âSixthSenseâ controls
- Several missing translations for English
Changelog v0.8.1
F.A.P.S v0.8.1 changelog:
- Added missing dependencies (Pillow)
- Added the \wheels folder and install.bat again
Changelog v0.9
-
New mood: âBeat Rider,â which takes a radically different approach from the rest; it doesnât analyze audio but rather visual data, and is designed to quickly generate funscripts for videos that use a beat indicator (such as Cockheros and similar)
-
âEdge & Cumâ: Added âGenerate & Previewâ inside âEdge & Cumâ: Allows fine-tuning of Edge & Cum patterns, and the edits can be saved to apply them to any generated Funscript (baked points); these edits are also saved when the project is saved
-
âEdge & Cumâ: New method in âAnalyze & Suggestâ for automatically adding blocks, based on visual analysis (note: the video must contain relevant text such as âcum,â âstop,â etc. This is configurable)
-
âPoint Editorâ: Added option to move forward/backward by song
-
âPoint Editorâ: Increased the maximum zoom in
-
âPoint Editorâ: Added volume control for the preview
-
âPoint Editorâ: When jumping between problem points (error detection in âAdvancedâ), the sliders and video time are now updated in real time
-
âPreview Cardâ: Added an option to generate animated GIFs, with various quality profiles, including one designed to create GIFs compatible with the EroScripts preview
-
âFap Mixerâ: Added a dropdown menu for selecting stems per block directly in the main UI (previously this had to be done in Configure AI)
-
âFap Mixerâ: Added a new, improved method for assigning stems to blocks
-
âFap Mixerâ: Added a âSimplifâ slider to prevent the excessive creation of useless points (RDP filter)
-
âNormalâ: Added âBy Sectionâ checkbox that automatically adjusts the âSpacingâ value based on section type (starting from the current value in Spacing)
-
âSimpleâ: Added âBeats by Sectionâ checkbox that automatically adjusts the âBeatsâ value based on section type (starting from the current value in Beats)
-
âSimpleâ: Added âRMS Windows by Sectionâ checkbox that automatically adjusts the âRMS Windows by Sectionâ value based on section type (starting from the current value in RMS Window)
-
âSlowâ: Fixed an issue in the formula that caused flat or very slow-moving parts of the funscript
-
âSlowâ: Added âBy Sectionâ checkbox that automatically adjusts the intensity of the movement based on the section type
-
âSlowâ: Added âMin RMS Energyâ slider to set a minimum movement
-
âSlowâ: Fixed an issue with the Ease-In that generated many consecutive useless points
-
âRelaxedâ: Added a dropdown menu to add extra movement to slower sections (4 patterns to choose from; can be applied only on ups, only on downs, or both, with a threshold control for applying it)
-
âCrazyâ: No longer generates movement in parts of songs that the user has disabled (intro, between songs, ending)
-
âCrazyâ: Added an RDP filter to prevent the creation of unnecessary redundant points
-
âCrazyâ: Added a filter to prevent the generation of âflat zonesâ that caused short stutters
-
âCrazy+Voiceâ: Added an RDP filter to prevent the creation of unnecessary redundant points
-
âCrazy+Voiceâ: Added a filter to prevent the generation of âflat zonesâ that caused short stutters
-
âHypnoâ: Critical, the controls for âkeywordsâ werenât actually working; theyâve been reviewed and improved
-
âHypnoâ: Priority system for âkeywordsâ, higher positions have higher priority
-
âHypnoâ: Now, if âDetect Voiceâ is disabled, the generated cache (without voice detection) is saved, and when the same video is loaded again, the funscript can be generated directly without having to rerun âAI Analysisâ without voice detection
-
âHypnoâ: Added a new âThresholdâ slider that controls the sensitivity for zone changes (low/medium/high)
-
âHypnoâ: Added additional filters such as RDP, âflat zonesâ, and others to reduce the number of points while maintaining the movement.
-
âHypnoâ: Fixed an issue with the installer that installs an incorrect version of Whisper (this could also affect âEdgingâ or the JOIs)
-
âHeatmapâ: Resolution enhanced
-
Fixed MANY minor issues
-
Added more missing translations
-
Added VLC libraries: Avoids known compatibility issues with the userâs VLC versions
-
Added CPU fallback for All-in-One: Avoids a known issue with Nvidia 10xx Series GPUs (and likely other models not compatible with All-in-One via GPU)
-
Installation: There are now two installation files. âInstall_Nvidia.bat,â which is the official installer currently in use. And âInstall_AMD.bat,â which is experimental and based on the port created by user @Alexcreeds
DOWNLOAD LINKS
F.A.P.S v0.9:
DONATIONS:
The application is and always will be free, but it has taken a LOT of time and some money to create it. If you like it and think it deserves it, donations are welcome ![]()
ENJOY !!!
![]()
EXTRA: User @Alexcreeds has taken the time and effort to port the version to ROCm to make it work with certain AMD GPUs. Here is his v0.9 port if you want to try it out:
Here a demo video showing how to use the app.
Just over 1 hour (real time) showing the AI video analysis process, song adjustment, use of musical moods (Pulse, SixthSense, Normal, Relaxed, Slow, Simple, Crazy, Crazy+Voice, Fap Mixer, AUTO), using âEdge & Cumâ to add patterns, using âPoint Editorâ to preview the generated funscript and make adjustments, and using âPreview Cardâ to generate Cards or animated GIFs.
















