FunHalver halves the intensity of .funscripts by changing every up and down stroke into a single direction. This makes the script twice as easy to last through without sacrificing stroke-length or video-synchronization.
To be clear, I haven’t tried out the program yet, but just reading about it: AMAZING and beyond useful.
Since I got into funscripts I’ve been wondering all the time about why nobody programmed this exact feature into one of the countless apps here.
Do you think it’s possible to call this tool by command line or an other way so I could include your feature to HandyControl. I could pass a parameter with source and target location and your app does the conversion. Or can you create a .dll without the GUI? Will it still be 120mb? If not I could also just link a button to your app to pass over a file. Currently this is not supported. If I drop a file on the app icon the app opens but does not load the file.
You could also use HandyControl command line support to open the script in HandyControl after the conversion (user presses a button). So you can test how it runs.
Looks like you have the same problem than me when I did the Half to Full Speed conversion feature. Depending on how a section starts, the stroke directions gets inverted. Fixing this would mean to analyse and identify the beat patterns and gaps which would require more time than I would like to spend on this so I left this as it is and blame the script creator instead . The problem is that there are so many pattern types that you can’t build them all correctly.
It would be much easier if a CockHero script section always starts in the same direction so the first stroke always goes down.
Left inverted - Right not inverted
It happens every time when a white gap line changes direction.
tl;dr if you’re not Lucifie - version 0.2.0 is now available with some bugfixes and improvements I was too sleepy to put in last night - download link in the original post
Hmm…maybe? It would have to be written in node.js, so anyone using HandyControl would have to have node.js installed on their machine (kind of like if it was a python script). But it definitely looks like it wouldn’t be too hard.
That said, the script that actually turns a .funscript JSON object into a half-speed one is only 120 lines long so I think it would be much easier to just recreate it in HandyControl directly.
Ah yeah - The way I’m currently doing it is that each group of strokes starts ‘up’ - since that ensure that cock hero beat patterns never end up getting ‘flipped’. I basically flipped a coin whether I wanted the first action to be sourceActions.pos or just 100, but yeah now that you mention it it’s pretty important that it starts at the same to avoid being half-a-beat off. I’ve added it as a user-configurable option, turned off by default.
Just checked this out- they’re not missing, they’re just hidden by the pink lines! I added a 2px offset to the pink lines so that you can see when there’s a white line behind them. It’s definitely a bug that the script is being reduced in that section though - that particular script you linked has revealed a bunch of bugs that I’m looking into now!
In .NET it’s quite simple to include command line parameters in the app without being a command line app itself. You just have to anylyse the parameter afterwards and do something. This way you can load a file for example when you drop it on the application or just doubleclick it if the file extension is linked to the app.
I am not sure if its right to just copy your code to HandyControl. Linking the apps some way seems to be better so you can expand and update your app independant.
One example how to load a script to HandyControl.
…\HandyControl.exe /load “C:\filename.funscript”
In the apps misc settings is a button that shows all available commands.
I made it open-source because I want people to copy it Although I suppose I see your point in that it would be good if HandyControl could benefit when I make improvements to the core algorithm, rather than it needing you to go through and update the .NET port…
I just took a moment to look into it and it seems that I can get command-line arguments passed into my app. Although I’m not sure that I can make the app release control of the terminal, so it might be necessary to add a manual 3-second wait timer or something and then close it from your end.
I’ll make sure version 0.3.0 can be run from the command line with options for input file path, output file path, all user-configurable options and perhaps a ‘verbose’ mode.
Version 0.3.0 is done! The main changes are a few new options, including the all-important (for Cock Hero and PMV videos) “Match First Downstroke” option - this will stop your half-speed script from being half-a-beat out of sync!
Download links are in the opening post in this topic.
@Lucifie, this version has command-line support, the GitHub release page for v0.3.0 has more detail in regards to the command line params and whatnot
I’ve just started messing around with this and has made so many scripts that were already fantastic even better, by lowering the intensity it makes climaxing with these scripts that much more sustainable and satisfying i usually get overwhelmed with normal speed scripts but by using this i can just bask in the euphoria I’m feeling in the moment and it really allows me to slow down my favorite deepthroat scenes into a longer throat worshipping session. Fantastic tool to further improve what I love about my Handy.
fwiw this functionality has been rolled into https://beta.funscript.io so if you like halving your script speeds I’d suggest doing it over there (any algorithm improvements are only applied to that site, not this app)
I noticed that the fundoubler there often generates 2 points very close to each other (several ms apart), while it should just be a single node:
What i suspect is that it tries to have both up and downstrokes at the exact same speed, and therefor gets a misalignment there. But what i think would be better here is that it only takes 1 of the 2 nodes:
in the case of an upper node, take the last (puts emphasis on the downstroke)
in the case of a lower node, take the first (better timing alignment)
Another thing (which i used in the chgen plugin), is that especialy in CH’s the downstroke/upstroke alignment matters, so speeds should be equal for those 2 actions. Therefor, something like this is undesired:
In this case the lower point is from a faster pattern. Yet the speed going to it is still from the slower one. The upper position here should in this case align with the faster pattern starts. Either by adding an additional node, or just moving that upper node to the right.
While a half speed CH doesnt realy care much about this (as patterns can take any alignment they like). For a full stroke script its something that becomes relevant.