FunscriptDancer - generate Funscripts from music beat/pitch/energy, cross platform

Do my dance on your dick, ooh you know you love this shit.
Do my dance on your dick, ooh you know you love this shit.
Do my dance on your dick, ooh you know you love this shit.
Do my dance on your dick, ooh you know you love this shit.
– Tyga

Generate funscripts from any music media using its beat, pitch and energy. The analysis of the audio can be cropped, and there are sliders and radio buttons to control the funscript generation. The funscript preview updates in real time.

See example Funscripts

Note that the music analytics - the difficult bit - are performed by software written by people who know more about music analysis than I do and that need to be installed separately.

Currently there is no stand alone binary for FunscriptDancer. It needs to be run from source, but it should run on Windows, MacOS and Linux.

Instructions can be found at the link below.

Get it here

63 Likes

In case anyone was wondering: the prototype can be found in the prototype folder, where you can admire my awk skillz.

I chose to do this in Julia as it combines the power and ease of use of high level data-focussed environments like Python (e.g. dataframes, plotting) with the speed and possibilities for building distributables across platforms of lower level languages.

But then I discovered that the built distributable is 2GiB (srsly) and also it segfaults when run. Distributables is not the priority or strength of Julia, and Julia remains immature. It is a nice language to work with in many ways though.

I may be able to improve this by swapping out the GUI toolkit (this is Gtk: I’ve already ruled out Qt but haven’t tried ImGui yet) and using a lower-level plotting API that doesn’t bring in the entire Julia ecosystem. I doubt it would go much below 1GiB uncompressed.

But I’m also considering reimplementing (again) in Rust or C++.

There are a number of improvements I’d like to make (the blank spaces by the sliders are placeholders for new controls I have in mind; Sonic Annotator can be cut out and the Vamp libraries bundled and called directly; better handling of media with multiple pieces of music) but I’m not going to pursue them until I’ve improved the distributable situation.

4 Likes

Was already seraching for a tool like this and tried some other ones. Sounds quite prommising, I’ll give it a try if I find some free time :grimacing: (always my issue :cry:)

Keep on going! :+1:

please make an exe. to run it

3 Likes

Yep for us folk who are not coders

Best I can do in the near term is add a Windows batch file to start Julia and FunscriptDancer.

1 Like

anyone know if there’s a mirrors for sonic-annotator? code.soundsoftware.ac.uk seems to be down and I can’t find it anywhere else

I’ve added a bat file. This will save using the command line, but there are still a number of steps to perform.

I’d love to provide a standalone executable, but that’s not going to be possible in the near term.

Not as far as I know. The Vamp plugin pack is hosted there too.

Good news, code.soundsoftware.ac.uk is back online

1 Like

After a bit of hacking, it looks like replacing the GUI toolkit (and the plotting library) with the Julia bindings for Dear ImGUI (the toolkit used by OpenFunscripter) would allow me to produce a distributable binary that both successfully runs and is a little over half a gigabyte uncompressed - chunky, and much larger than the equivalent in C++ (or I think Rust) would be, but not totally ridiculous. We’re probably all downloading videos larger than that. So I think I’ll go that way rather than rewrite in another language.

Rewriting the user interface and the plots isn’t a small task, and it’s a technology I haven’t used before, so don’t expect an update to be released particularly soon.

3 Likes

Hello,
have a problem when i select a File.

Error: Unable to run sonic-annotator. Is it installed and on the command path?

Sonic is installed.

Win11

pls help ty

There’s probably an issue with the Path environment variable.

Try opening a command prompt (cmd from Windows menu) and entering sonic-annotator -l and pressing enter. It should show a list of available metrics that look like vamp:bbc-vamp-plugins:bbc-energy:average.

If it says sonic-annotator is not recognized... then it’s not on the Path. You need to add the directory containing the .exe. See here.

This is actually producing output for me, unlike the other programs I’ve tried! Exciting! But I haven’t been able to actually test them yet.

Small bug though, if a file contains a # in its name the conversion step fails.

I dont know how to run Julia/Funscriptdancer…Please help
Can someone help me with the usage step to step using julia and the programm?

This app is sheer excellence!
Simple, sleek and swift.

Game changing goodness.

Perhaps you should add a Donation Button or Patreon or Tip page…

You sir, have made the world a better place.

Just tried generating scripts for a couple of StasyQ videos. Haven’t tested yet but they look alright. Nice work!

Can’t run it… sorry, i’m not a coder

2 Likes

n1 Software. Any Guide for Optimal Settings? Pitch / Energy and Out of Range?
Thanks

This is the program I’ve been waiting for. A quick way to make scripts to the beat of the music and it does a great job even with the default setting.
It’s not perfect so scripts need some tuning after, especially when there’s no beat to follow but it certainly faster than doing the whole thing manually.
The install was a bit much but you explained very well how to do it.
Well done!