Page 3 of 3
Re: Convert funscript to phase modulated MP3
Posted: Wed Apr 05, 2023 3:45 pm
by throwawayacct
edger477 wrote: Tue Apr 04, 2023 5:09 pm
throwawayacct wrote: Tue Apr 04, 2023 4:20 pm
Zero being "bottom" and 100 "top" of a stroke? Im struggling to understand how the left and right settings correspond to the stroke position in the original funscript, as they are just power levels. For example, I tried a script with left at 0 at 0 power (50 center, I think 80 at full?) as a parameters test - to see what it did, basically, and I got some interesting wave patterns, but the sensation carried a "slap"...not a spike or a pop. The right side wave form is lopsided regardless the settings I put in, and I thought maybe messing with the "center position" control would do something...but it doesn't seem to impact what I thought it would.
Maybe just a run down on what each of the settings affect, would be great.
When using normalization, best to press "disable" on the volume mapping. The reason is that they both accomplish similar effect but in a different way.
Center position... sorry I forgot what I wanted to do with that :) please just leave it at default. I think intent was to make it so that you can set the point around which movement is happening, but that would be too tedious to figure out as what value you would want to put there... beter just use diglet's restim and adjust it in realtime.
as of other values:
- Volume at 0 is the volume of generated signal when the funscript is at 0 position.
Volume at center is the volume of generated signal when the funscript is at 50 position.
Volume at 100 is the volume of generated signal when the funscript is at 100 position.
The use case for those would be if i.e. you experience that signal with cfs6t08p's converter was too harsh on head when position is at top (100), you could reduce the volume for both channels at 100 position to ~50? Then the volume will gradually fall off when funscript goes from 50 to 100 and come back up when is going back. Different values for left and right channels could allow to compensate for different size of electrodes, but already mentioned restim does that better since you can adjust it in realtime with "right power" setting.
Same applies to other 2 electrodes, if there is too harsh/strong signal on them when position is at 0, reducing volume on that side helps with it.
Inputing 0 as volume would mean that you will get very strong tremolo effect as the funscript is doing the stroking, and there will be no estim at the position where 0 is volume.
i'd recommend giving default settings a try, just click on "disable" for volume mapping (since default normalization is from 20 to 80 of funscript).
Try generating 2 files, one normal and one with "invert" checked, since depending on how electrodes are wired one might be better.
But if you don't want to use mp3 files to edit them/make some estim session for videos, then just use restim. It does all of this in realtime, so you can feel what the settings do and calibrate to how you like, then play the funscripts.
viewtopic.php?p=344244#p344244
Mac user, so no restim.
By "position" you mean up (100) and down (zero), right? I have zero experience on the funscript side, I only know that it's supposed to control a stroking device. How is this different from the % volume changes in the converter?
I've run about a hundred times through the converter at different settings to compare, noted settings and all - and I just seem to get further and further away from the desired effect.
Re: Convert funscript to phase modulated MP3
Posted: Wed Apr 05, 2023 4:07 pm
by diglet
Restim is based on python and only cross-platform packages. It runs on any OS but I only provide release packages for windows. If you have no experience with python, download python 3.11 and pycharm, should be able to get the project running in no time.
Re: Convert funscript to phase modulated MP3
Posted: Wed Apr 05, 2023 5:10 pm
by edger477
throwawayacct wrote: Wed Apr 05, 2023 3:45 pm
By "position" you mean up (100) and down (zero), right? I have zero experience on the funscript side, I only know that it's supposed to control a stroking device. How is this different from the % volume changes in the converter?
I've run about a hundred times through the converter at different settings to compare, noted settings and all - and I just seem to get further and further away from the desired effect.
Yes position is the 0-100 value from funscript, it is a file that has positions for strokers at certain timestamps.
Most basic conversion (with no volume adjustments) produces one channel (left) with constant waveform of carrier frequency (743 default).
The right channel gets that same waveform shifted by up to half the wavelength (so between identical like left or completely opposite), which depends on the position of funscript at given timestamp. When wired in triphase, 2 identical channels mean that all current from two + electrodes go to the - common, and 2 opposite channels mean that all current goes from one + to other + (common being in the middle receiving almost no current if it is not significantly closer to one of + electrodes). That is the technical background of this, there is no volume variations or anything.
On that note, I think there might be a bug in original cfs6t08p's converter:
https://github.com/cfs6t08p/funstim/blo ... im.js#L109
@diglet, does this look wrong? sin goes from 0 at 0 to 1 at Pi/2. Since he used 0 to Pi, it means that each 0 to 100 stroke would in estim go 0-100-0, or one stroke up to 100 and down to 0 would result in 0-100-0-100-0?
I might edit this line in my fork if throwawayacct doesn't configure python to run restim as I think he is only one using this now :)
@throwawayacct
To test if this basic version produces stroking feelings for you (to verify box and wiring are ok), you can go to
https://electron-btstim.herokuapp.com/
Enter parameters like this:
This is approximate one stroke per 2 seconds, if my FM depth of 1Hz is not too much (basicically left channel is fixed at 743 and right one goes between 742 and 744 every 2 seconds)
Re: Convert funscript to phase modulated MP3
Posted: Wed Apr 05, 2023 5:15 pm
by edger477
Also, if any of you wants to get to me faster with small questions, feel free to ping me in one of discords (Milovana, Open Estim, Joanne's)
Re: Convert funscript to phase modulated MP3
Posted: Wed Apr 05, 2023 6:01 pm
by diglet
edger477 wrote: Wed Apr 05, 2023 5:10 pm
On that note, I think there might be a bug in original cfs6t08p's converter:
https://github.com/cfs6t08p/funstim/blo ... im.js#L109
@diglet, does this look wrong? sin goes from 0 at 0 to 1 at Pi/2. Since he used 0 to Pi, it means that each 0 to 100 stroke would in estim go 0-100-0, or one stroke up to 100 and down to 0 would result in 0-100-0-100-0?
I might edit this line in my fork if throwawayacct doesn't configure python to run restim as I think he is only one using this now :)
The signal goes from fully in-phase to fully out of phase, which is a difference of pi.
It his code was not correct, I would surely have noticed when I was reverse engineering files.
Re: Convert funscript to phase modulated MP3
Posted: Thu Apr 06, 2023 3:43 pm
by throwawayacct
diglet wrote: Wed Apr 05, 2023 4:07 pm
Restim is based on python and only cross-platform packages. It runs on any OS but I only provide release packages for windows. If you have no experience with python, download python 3.11 and pycharm, should be able to get the project running in no time.
I'm not a fuckin programmer. Sorry, I know you intend to help - but some of you folk forget that not everyone in these discussions is on your level. Hence my clear expressions of being frustrated with a thing, in this very thread.
"Oh but it's easy" - yeah, for
you. I'm mid-40's and have a learning disability. I'm lucky I remember how to turn the fucking thing on. No, I'm not asking for a walk-thru - I'm not mucking about with putting new programs on my
work machine: a mostly-full, 10-year old MBP that fortunately still runs. Thanks anyway.
Re: Convert funscript to phase modulated MP3
Posted: Thu Apr 06, 2023 3:58 pm
by throwawayacct
edger477 wrote: Wed Apr 05, 2023 5:10 pm
throwawayacct wrote: Wed Apr 05, 2023 3:45 pm
By "position" you mean up (100) and down (zero), right? I have zero experience on the funscript side, I only know that it's supposed to control a stroking device. How is this different from the % volume changes in the converter?
I've run about a hundred times through the converter at different settings to compare, noted settings and all - and I just seem to get further and further away from the desired effect.
Yes position is the 0-100 value from funscript, it is a file that has positions for strokers at certain timestamps.
Most basic conversion (with no volume adjustments) produces one channel (left) with constant waveform of carrier frequency (743 default).
The right channel gets that same waveform shifted by up to half the wavelength (so between identical like left or completely opposite), which depends on the position of funscript at given timestamp. When wired in triphase, 2 identical channels mean that all current from two + electrodes go to the - common, and 2 opposite channels mean that all current goes from one + to other + (common being in the middle receiving almost no current if it is not significantly closer to one of + electrodes). That is the technical background of this, there is no volume variations or anything.
On that note, I think there might be a bug in original cfs6t08p's converter:
https://github.com/cfs6t08p/funstim/blo ... im.js#L109
@diglet, does this look wrong? sin goes from 0 at 0 to 1 at Pi/2. Since he used 0 to Pi, it means that each 0 to 100 stroke would in estim go 0-100-0, or one stroke up to 100 and down to 0 would result in 0-100-0-100-0?
I might edit this line in my fork if throwawayacct doesn't configure python to run restim as I think he is only one using this now :)
@throwawayacct
To test if this basic version produces stroking feelings for you (to verify box and wiring are ok), you can go to
https://electron-btstim.herokuapp.com/
Enter parameters like this:
This is approximate one stroke per 2 seconds, if my FM depth of 1Hz is not too much (basicically left channel is fixed at 743 and right one goes between 742 and 744 every 2 seconds)
You lost me. I'm not making the connection between the values in the hookup app and the converter you designed. Box, wires, electrodes are all fine, I know what triphase is in context with stimming - what I'm having trouble understanding is how the values in your converter translate to the finished file. What each value affects on the finished waveform - but the more this goes on, the more it sounds like I just have to keep fucking around.
Re: Convert funscript to phase modulated MP3
Posted: Thu Apr 06, 2023 4:14 pm
by edger477
I am sorry then.
The relation is that generated waveform on hookup app should feel like stroking. If it doesn't then the generated mp3 won't either.
And I am sorry that I don't know how to explain the settings better than I already had.
Re: Convert funscript to phase modulated MP3
Posted: Thu Apr 06, 2023 5:33 pm
by diglet
For me, threephase didn't make any sense until I took a few days to write out the math on paper. It's just difficult to understand. It seems even the people who made the stimfiles have large gaps in their knowledge. I uncovered an entirely new degree of freedom that we didn't know was there.
That was part of the motivation for writing restim. You shouldn't have to understand how estim signals are generated to make good stimfiles. Those who make 6-axis funscript files for multi-axis strokes don't need to understand inverse kinematics either (in fact, it appears even the author of the stroker doesn't understand inverse kinematics...). We need good tools that do the hard work for you.
Re: Convert funscript to phase modulated MP3
Posted: Thu Apr 13, 2023 5:24 am
by doremi
In short, use the defaut values as is.

Re: Convert funscript to phase modulated MP3
Posted: Wed Feb 11, 2026 9:38 pm
by boundupone
Just posting so I can find this thread again easily