OpenFunscripter - another scripting tool - 1.1.9 release

Maybe tomorrow. I’m off for bed now. It’s a workday tomorrow, or today actually since it is already past midnight :slight_smile:

1 Like

lol no problem

How common was the issue? I’ve been scripting for 25+ min, frame by frame (using arrow keys and numpad + save every 5 minutes). No issues with the latest build (created Wednesday) so far.

Edit: 45 min now without issues.

It was definetly a decoding error of some sort.
Now if the video was somehow corrupted or if there’s a bug in the version of libmpv that I’m using (which has been the same for every release on windows) is unclear.
Right now what will happen when an error is encountered by mpv is, it will flood the event queue with messages which has the side effect that the screen won’t get updated anymore because if the queue is full OFS doesn’t know when to redraw the video.

@mrdoesnothingalot I started working on this tempo mode.
AppVeyor (just grab the 7z archive)
The bpm and offset don’t get saved yet.
Rendering things exactly like in your mockup would make things alot more challenging and in my oppinion create too much visual noise.
The offset is in seconds and goes from -1 to 1 is that enough?
Also I have 500 BPM limit which maybe needs to be higher?
500 BPM scripts sound deadly :flushed:

1 Like

It must be, unless it is connected to some function that I’m not using when scripting frame by frame. I’ve been scripting on and off for a few hours now with yesterdays build and haven’t had any issues so far.

I only colored the bars to emphasize what I meant, not actually proposing that because obviously it’s too cluttered. Colored points can work though

The fastest song I have (and have the motivation to find the BPM for) is 321 BPM, so 500 is a bit excessive. Also some songs require more than 1 second of offset to be on sync

You got the beat snaps wrong. full beats are way longer than 32nd beats, not the other way around. It should be 1/32nd of a measure, not 32 measures.


Also I just noticed, your “whole beat snap” is actually 4th beat snap. And it should only count whole measures, not every single note


And the “4th beat snap” is the full measure snap

Oh yea, the sliders aren’t the most precise way of applying BPM. Maybe have a text box instead. (I have a 148 bpm song and the closest I can get is 147 or 149 bpm)

Here is a pic of what it’s supposed to be (in ArrowVortex again)

You’re a legend for creating this tool and even opensourcing it! (I am a huge FOSS supporter/lover).

Do you also program in your daily job/work?
How much time would you estimate have you already invested in / spent on OpenFunscripter?

Really, just fantastic.

1 Like

Thanks for this @gagax123 I have successully installed the snap in ubuntu mate. Now just trying to figure out how to get the program working.

I ran the command
snap install OFS-64x_refs.heads.master-367b96e7e941c3e10060da23c0b91efb609deb4e.snap --classic --dangerous

I attempted to install via CMAKE in Arch linux (my CMAKE was out of date in Ubuntu… which is why I plan to switch everything to arch soonish). I used the commands below. Please let me know if I am missing something:

mkdir scripter
cd scripter
git clone https://github.com/gagax1234/OpenFunscripter
cd ..
cmake OpenFunscripter
cmake --build src

I got the errors below:
collect2: error: ld returned 1 exit status
make[2]: *** [src/CMakeFiles/OpenFunscripter.dir/build.make:414: OpenFunscripter/bi
n/OpenFunscripter] Error 1
make[1]: *** [CMakeFiles/Makefile2:1281: src/CMakeFiles/OpenFunscripter.dir/all] Er
ror

This honestly confused me more than it helped. :upside_down_face:
But I think I got it now. Will report back soon :tm:

yes. I’m not keeping track but the project is now 2 months old on github and 3 months in total.

@Aguy1724
I havn’t setup an install with cmake so I don’t know if that works.
You can compile the program and run the compiled binary but not install it with cmake.
In your commands you didn’t list

git submodule update --init --recursive

but I assume you did that.
Maybe try it clean from scratch, like this that’s how I always do it.

git clone %my repo%
cd into the directory
git submodule update --init --recusirve
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release …
make -j %your_core_count%

EDIT: the forum turns two dots into three :man_shrugging:

Also you dropped the interesting part from the error message.I can see it’s a linker error but what failed to link remains a mystery. :ghost:
Presumably you’re missing a dependency.

What prevents you from installing the snap on arch? Or can’t you run the snap?

Thanks @gagax123

I can run the snap, I was just going to try to get it to build in Linux and post it here so that any others that came along using linux could build it. I believe you are right on the dependency. I got the same error using make -j

I’m just not generally as big of a fan of snaps and know they can act a little odd sometimes. But all things considered I can see how it’d be much easier for you to create a snap and not have to figure out what dependency is missing from all the linux distros. I’ll continue checking out the error on my end and see what I can determine, will update if I make any progress.

Been playing around with it in the snap. Just gotta figure out the best workflow setup.

@mrdoesnothingalot
Here’s iteration no. 2
Still no saving.
I hope I got it his time.

Edit: mmmh I have a feeling I got it wrong. :man_with_probing_cane:

1 Like

Yep, whole measure snap (the white one) is still 4th beat snap (and not a whole measure). I fell like instead of “beats” it should be “measures” so it’s less confusing.


Other beat snaps are fine though

Anyone compile this for MacOS successfully? There are no responses for Apple computers.

I’m afraid the only way OFS will ever run on MacOS is if some technical MacOS user steps up and makes it work.
I don’t have the hardware nor the time tbh.

@gagax123 There is a small annoying issue with statistics when setting a new last point in the script. Very often you only get “Interval: 1 ms” and nothing more. You have to use down and then up arrow to step back one point and forward one point to get the statistics (left/right does not solve it). Often the first last point works, but not the ones after that. Can you see if you can reproduce that and see if it can be fixed without too much work?

Another detail. Can you allow changing the width of the simulator window? I don’t know why I prefer the width to be much less than the height, I just don’t prefer to have such a wide sim as in the picture.
simulator2

I added rounding to the milliseconds of added actions after that I wasn’t able to reproduce it anymore.
If I was to rewrite OFS from scratch I would make everything timing related floats/doubles. :pensive:

There is already a width slider already. I’m confused. :confused:

@mrdoesnothingalot Tempo mode iteration 3. is also in this. AppVeyor

Lol, sorry my bad!

The height is possible to resize directly in the video view, but not the width and I totally forgot about the simulator pane settings. I guess I’ve been scripting a bit too much today :slight_smile: I just finalized the script I’ve been working on and I’m about to upload it now. I’ve got two new project prospects and I’m having a hard time choosing which, but that is off topic for this thread.


Perfect. Just like what I wanted. I’ll let the saving BPM data (and tempo changes) part be put aside for later

2 Likes

Hey @gagax123 I’d actually be very interested in OFS for MacOS. I’m contemplating hiring someone from Fiverr or similar site to perform this function.

  1. Would a person unfamiliar with OFS or scripting in general be able to compile this or would they need some knowledge of what the program does?
  2. What skills/languages exactly would a programmer need in order to perform this operation?

I’m a layman so please explain in the simplest terms if possible

I don’t know about that…

No need of OFS or scripting would be required.
The person would need good knowledge of how C/C++ compilation works with cmake on MacOS and be good at troubleshooting.

Please hold of on hiring some random person.
I will try to get it to compile on github-actions which will probably be a pain. :sweat: