OpenFunscripter - another scripting tool - 1.1.9 release

Works fine for me :+1: :100:

Not for me. 1.1.4 works, 1.1.5 doesn’t. Neither on update or fresh install.

Try clearing application data and see if that works. Note that all your settings will be lost and you need to reconfigure OFS.

Instructions for Windows:

  1. Close OFS and open Windows Explorer.
  2. Enter %appdata% in the textbox where the path is shown and press enter.
  3. Delete the OFS folder. Make a copy before deleting it in case this doesn’t work and you want restore your 1.1.4 settings.
  4. Start OFS.

T-Code support → Excellent. Much needed improvement. Now I can actually see if what I enter actually works correctly on OSR in realtime, instead of the PITA of reloading in a player (which was buggy and would not pick up changed script without restart and kept forgetting invert settings, and didn’t remember invert settings on reload!). Spline mode is also much better - makes much smoother motion and less harsh on servos. I used to have to use the special function to turn sawtooth into curves, and then undo for editing before saving.

One thing that confuses me though is… I always assume while editing that the “top” of graph should make OSR go to “top” of its stroke, while bottom of graph should make OSR go down to bottom (closest to body), but the software somewhere seems to be backwards, and the only way to do this is to INVERT the main axis. What exactly is the standard in scripting? Is TCode 0 the bottom or the top? Can we have it set so the bottom makes OSR go to bottom without having to invert axes?

lol now you got me confused aswell.

The intuitive way you describe is how it works/should work. you shouldn’t have to invert.
It worked for me without inverting.
I go by this https://trymosa.netlify.app/ where 0 is bottom and 999 top. maybe a stupid question but do you have your servo pins flipped? :thinking:

Also @sentinel I couldn’t have given any better advice than that either. :pensive:

1 Like

Something different between your OSR and mine then… on mine using that Chrome web plugin, when L0 is at bottom (Tcode 0) the OSR goes up to the top, and when L0 is at top (T999) my OSR goes down to bottom. I tried swapping the 3-pin plugs to servos, but the servos do not move at all with plugs reversed, so they must be correct the way they are… I am using PowerHD 20KG servos similar to what Tempest used. I don’t know what is going on. That is why I asked about a standard. I would have presumed T0 = bottom and T999 = top but that is not what my OSR2 is doing. Maybe there is some way to reverse axis in Arduino firmware.

The better place to ask would be the discord.
Swapping the pins of the left servo with the ones from the right servo should switch the direction.
:warning: Do not reverse the 3-pin connectors :warning:
That can probably damage the servos or the romeo always connect black to black and red to red. This assumes you don’t have an external powerbus.
Anyway let’s not have this discussion in this thread please.

1 Like

I am trying to get this installed on a new linux machine. Any chance you could add the build process commands as a text file? I am trying to use the commands you posted here, but it looks like they have been formatted oddly. I’ve tried getting the snap to cooperate, but currently it’s not wanting to launch.

You just made me confirm that the snap works.

sudo snap install --classic --dangerous OFS(…).snap
openfunscripter

Worked for me I had to restart the terminal though to get the “openfunscripter” command but I think that’s because I had to freshly install snapd first since I’m using fedora.
Please PM on here me for further help.

@geogan In the process of testing on linux I also saw that you are right with the T-Code being wrong after all but only when the t-code spline mode is turned off. I always had it on by default so I never noticed.
Sorry for not believing you. That’s a regression because it definitely had worked correctly at some point.
It’s going to be fixed next release.

I’m also working on a waveform upgrade.


Before

Work in progress. This the first time I’m doing a direct comparison and I already know why it looks wrong. :sweat_smile:

This is roughly the same section in audacity.

There’s something fundamentaly wrong with how I’m rendering the waveform and it’s something I only learned recently (I’m not an audio guy) and that is that an audio waveform is just a line :exploding_head:


I don’t know if I’ll ever reach that kind of accuracy. probably not worth pursuing :thinking:

This is perhaps a bit out of scope, but how plausible would it be to translate a waveform output like this to a script? As in, loudest moments would be 100 and quietest would be 0. I’m thinking this could be a quick way to make a vibe channel script for the OSR2 but it might have other applications.

If I recall correctly you are just using a standard graphical output from FFMPEG to make the waveform so no worries if this is not of interest to you, it’s pretty niche.

I think FFMPEG would generate a workable output, it’s just a matter of forcing the output to be every
video frame and translating this output to a funscript format (I think).

Either way, <3 your software. Keep on rockin’

Out of scope for sure.
I’m only using ffmpeg to output an mp3 of a video that mp3 I’m reading myself to render the waveform.
I don’t want to do any script generator type stuff, at the core OFS is a program for handcrafting scripts.
You could implement this functionality with Lua, it would be very clunky & I don’t expect anybody to do it but that’s where I stand.

What would people like to see documented?
I really want to start a wiki on github https://github.com/gagax1234/OpenFunscripter/wiki
But I honestly have no idea where to start.

Also anybody with a github account is going to be able to contribute.
I would welcome that :kissing_heart:

1 Like

I did this. People naturally assume audio is great way to script but it’s the opposite. After successfully implementing an audio-> buttplug setup I found that sound is way too dirty, then ported through the WebAudioAPI which is a low-end engineering tool. The best you get is volume as a whole we would need to channel each part of the audio (basically impossible).

https://github.com/highfiiv/sensitive-eq

Any word on this running on MacOS?

I have just spent an hour trying to find how to move a whole script left part way to the beginning of the video from where the script starts now. I cannot find how.

Some revision change lists include new commands that are added.
When some commands are requested they are described.
Some are scattered randomly in this enormous thread.

So the documentation I would like to see first is a complete list of the available commands that are, or can be, bound to keys or a joystick or my finger.
And it needs to be easily found.

This would be great for my small mind!
Thanks!

@hosenguy

I’m not sure if your looking for an external documentation but on the program itself, that already exists. Under options, keys, you can see all configurable keys laid out.

For a few more nifty tools under View → Special Functions, you’ll find range extender & simplifier. There are few more things here & there for like multi-axis scripting, but for 99% of scripting the above tools should suffice.

1 Like

OK, that is the main thing that made me crazy. I use too many different programs!
This screen should be page one of the documentation and then go on to explain the operation of the program!

1 Like

Hey I’m trying to go about creating a non-cock-hero script and finding that there’s one problem which is basically preventing me from making anything - maybe it’s just a bug on my machine?

If I try to seek forward or backwards any more than a handful of frames, the script timeline continues to move, but the video stops. Which means that the script timeline becomes out of sync. And there doesn’t seem to be a good way to get it back in-sync without double-clicking on it to manually seek somewhere.

Which means I can’t kind of shuffle back-and-forth to find the ‘right’ spot for an action. Does this happen for anyone else, and if so what is the ‘right’ way to seek back and forth?

edit: Also a feature request - it would be great to be able to middle-mouse drag the timeline left and right to seek without the keyboard!

@defucilis I’m unsure if I understand your issue because I don’t recognize it. However, a general issue stepping back and forth frame by frame is lag and such. That usually happens if you haven’t re-encoded the video to get rid of the video compression. This is done by only storing so called I-frames in the video. You can re-encode the video using ffmpeg from the command line or use the tool FunExpander.

Funexpander is found in the software section, Fun Expander 2.5.2 - Video converter with ffmpeg to i-frames added [Updated 2022-04-11].

For a complete ffmpeg command line example click on the last section in the right sidebar in this post How to get started with scripting .

1 Like

Reencoding with ffmpeg totally fixed the problem, thanks!

It was strange - the lag would kind of ‘persist’, so if I went back say, 100 frames and it started lagging after the first 20, and then I pressed play, the video would be playing back 80 frames out of sync with the funscript curve window playback position.

So I kept finding myself not realizing it was out of sync, creating keyframes, and then once the lag went away because I did a manual seek I’d discover that all my keyframes were out of sync with the video.