[OFS Extension] StrokeSpeed - Gradually speed up or slow down stroke timing (Version 0.2 Released)

StrokeSpeed

Extension for OpenFunScripter by gayrobot

strokespeed-ezgif.com-resize


What Is This?
Another extension I made just to make my own life easier.

Check out the companion extensions:
StrokeScale
StrokeSlide
StrokeLimit

StrokeSpeed is an extension that automates tedious timing transformations in OpenFunScripter. Instead of manually adjusting dozens of timestamps one by one, you can transform entire sections of your script in seconds with live preview.
Gradually speed up or slow down stroke timing to create intensity build-ups, wind-downs, or smooth transitions between different tempos.


Download
Current Version
StrokeSpeed v0.2 - Download

IMPORTANT - Known Issues
:warning: Overwrite Mode may not properly restore overwritten points during live preview.
:warning: Crashes may occur while using Live Preview
:warning: ALWAYS SAVE before making changes!!!


Installation

• Download the .rar file and extract the StrokeSpeed folder
• Copy it to your OFS extensions folder (In OFS Click Extensions→Extension directory)
• StrokeSpeed will appear in your extensions menu


How to Use

• Select the points you want to transform in your script (at the end of the script)
• Open StrokeSpeed from the extensions menu
• Turn on Live Preview to see changes in real-time
• Adjust the settings until it looks right
• Turn off Live Preview to commit the changes


Settings Explained

Live Preview
• Shows you changes instantly as you adjust settings
• Uncheck to commit changes


Stroke Detection Mode
This tells the tool how to group your points into “strokes” before transforming them.

Peak-to-Peak
• Groups points from one valley/bottom to the next
• Best for regular up-down stroke patterns

Direction Changes
• Starts a new group every time the stroke changes direction
• Best for complex multi-point strokes like 0-20-100-80-0

Time Windows
• Groups points that happen within X milliseconds of each other
• Best for when timing matters more than pattern

Point Count
• Groups every X points together, no matter what
• Best for consistent grouping regardless of pattern or timing

All Selected as One
• Treats your entire selection as a single stroke
• Best for applying one smooth transformation across everything

Overwrite Mode
• Check the box to enable Overwrite Mode
• Points after your selection stay where they are instead of shifting
• Speeding up leaves a gap. Slowing down can push into the points after your selection
• :warning: May cause crashes during Live Preview, and may not properly restore overwritten points while sliding back and forth.


Speed Range

Start %
How fast strokes play at the beginning of your selection
100% = no change (original stroke speed)
50% = half speed (slower, more time between strokes)
200% = double speed (faster, less time between strokes)

End %
How fast strokes play at the end of your selection
100% = no change (original stroke speed)
50% = half speed (slower, more time between strokes)
200% = double speed (faster, less time between strokes)

Example Uses:
Start: 100%, End: 200% = Strokes gradually speed up (build up intensity)
Start: 200%, End: 100% = Strokes gradually slow down (wind down)
Start: 150%, End: 150% = Uniform 50% speed increase across all strokes
Start: 50%, End: 50% = Uniform 50% speed decrease across all strokes

Buttons
• Each slider has a button next to it that will set the slider to its default value.
• Swap Start/End: A button underneath the sliders that swaps the start and end values.


Interpolation Curve
This controls HOW the transformation happens between your start and end values.

Linear
• Smooth, even progression from start to end
• Best for most situations, predictable results

Ease In
• Starts slow, speeds up toward the end
• Best for gradual build-ups that accelerate

Ease Out
• Starts fast, slows down toward the end
• Best for quick changes that settle gently

Ease In-Out
• Starts slow, speeds up in middle, slows down at end
• Best for smooth, natural-feeling transitions


Wave Modulation
This new feature lets you add a periodic wave to the intensity change. Check the box to enable Wave Modulation Mode and see the settings.

Type
The shape of the wave applied to the strokes.
• Sine: smooth, rounded swings
• Triangle: steady rise and fall with sharper transitions
• Sawtooth: gradual rise, then a sudden drop
• Square: jumps between fast and slow with nothing in between

Amplitude
• How far the wave pushes the speed, in percentage points
• 25 with a 100% speed means the speed swings between 75% and 125%

Cycles
Controls how many full waves fit within the selection.

Phase
Controls the offset of the wave

Shape
• Stretches the top and bottom of the wave into plateaus
• 0 = the original wave, higher = wider flat sections with quicker transitions between them
• Square waves are unaffected since they’re already flat

Buttons
• Each slider has a button next to it that will set the slider to its default value.


Changelog
v0.2 (Current)
New Feature: Wave Modulation (Sine, Triangle, Sawtooth, Square)
New Feature: Overwrite Mode
Swap Start/End button for Speed Range
‘Default’ buttons for all sliders

v0.1

Initial release


Possible Future Plans

  • Speed Limit
  • Randomization, to add slight variations into the patterns
  • Saving/Loading presets
  • Reverse button
  • Functions for creating ‘wave’ patterns
  • Set to Zero buttons/Default Settings button

Links
Version 0.2 Download: StrokeSpeed.rar ~ pixeldrain
Version 0.1 Download: StrokeSpeed.rar ~ pixeldrain

Join my Discord to get the latest versions, updates, report any issues, or leave feedback.

patreon kofi

HUGE thanks to my Backstage Supporters
pup null, Gooonie, piscesbug, Treble, MikanT, Anberlin7926, PupArtemis

13 Likes

StrokeSpeed v0.2 Released.

New Feature Added: Wave Modulation (Sine, Triangle, Sawtooth, Square)
New Feature Added: Overwrite Mode
Swap Start/End button for Speed Range
‘Default’ buttons for all sliders