MultiFunPlayer v1.33.1 - Multi-axis funscript player with SLR & FapTap support

Do you have v1.32.1 to try?
I would also need trace logs, change log level to trace via application settings at the top of the window, connect to DeoVR with SLR and try playing a video that has a script, wait few seconds, change log level back to info and DM me the latest log file.

Threw together a guide on Stash + MFP using Web media source

1 Like

MultiFunPlayer v1.33.1:

Download: timed patreon only exclusive
Patreon build: https://www.patreon.com/posts/122741611

1.33.1

  • Improve Web window UI
  • Add support for F11 and video fullscreen in Web window
  • Close Web window if initialization fails
  • Show WebView2 runtime download dialog if it’s not installed
  • Allow changing playback speed of Web window player from MFP
  • Fix instant device movement due to invalid PolledUpdate events
  • Fix Web source start page not allowing urls with custom ports
  • Fix crash when calculating heatmap with negative keyframe positions
  • Fix crash when receiving messages in UDP output after disposing
  • Add FixedUpdate and PolledUpdate helpers for plugins
  • Add dynamic KeyframeCollection which allows live streaming of keyframes

1.33.0

Additional patreon only changelog:

  • Add FapTap script repository - works with Web media source
    uo42J7VQRo
  • Fix scripts stored on VR headset not loading via SLR interactive api
  • Fix SLR login code not opening browser

Changelog:

  • Add Web media source - opens a custom Edge browser which sends playback information to MFP from a video element on the page
    MultiFunPlayer_QGPzRTZJKl
  • Add option to split axes in heatmap preview (#198)
  • Add ability to configure main thread update rate (#176) - can be used to lower CPU usage
    MultiFunPlayer_woxUjv5IfH
  • Add support for reading and writing PotPlayer playback speed - requires 2501xx beta or later
  • Make looping optional in script motion provider
  • Aggregate plugin file watcher events and queue compile only once
  • Optimize axis state locking
  • Fix unable to receive data from auto-started PotPlayer
  • Fix OFS source PathAndQuery not set after changing ip or port (#203)
  • Fix first plugin #r reference not found if source file contains BOM

If you like what I’m doing, please consider supporting me on Patreon
https://www.patreon.com/yoooi

4 Likes

So passed on some logs to Yoooi and turns out the guillotine chop between movies is a bug and will be resolved which is nice - survival is secured. @burtreynolds I learned that Wifi can not really be used without being saw/choppy/sandpaper yet. They are on it and it seem solvable to have buttersmooth on Wifi/BT also, which is even nicer. Until then pull out your USB cords and connect them even to your SSR1PCB. Dont use Wifi for now. It makes you or new users think Multifunplayer is bad.
Thanks Yoooi for the infinite work on MFP. When my annual Patreon is running out, no idea when, I will redo another year.

Yea that should be fixed in the v1.33.1 above.

1 Like

Yoooi can you tell us how you got Wifi movement so smooth in that test version I was allowed to try? You emulated buffer on the hardwareside by making the commands longer? I mean it introduced terrible variable lag but the smoothness was amazing. I understand that commands get lost even oder 5-10ms lag which is quickly happening with Wifi or BT. Could @Khrull add a buffer to his firmware?

It was not a buffer, I just made it so the moves are longer while preserving speed so that the next command does not have to line up perfectly. It should eliminate those tiny pauses that dont feel smooth but the device will be slightly out of sync when a command takes longer to arrive.
The actual solution is to have a dynamic buffer in TCode and in device firmware.

I see, the result is day and night. The lag makes it unusable as it throws every script out of sync but it is a nice demo that Wifi can be super smooth as cable connection. I hope the dynamic buffer finds its way in soon. Wifi is quite unusable as long as it is not buffered.

Hey, thanks for all the great work on multifunplayer its super useful! I’m using it right now with node red to change scripts on the fly, and currently I’m just triggering the scripts by sending the relevant keystrokes through node red to the virtual keyboard and triggering the keybind shortcuts I made in advance. However for some reason it has this bug where it will randomly stop accepting any keystroke inputs and just do nothing, until you open and close the settings tab, after which it will work again.

Now assuming that it would be hard to find and fix that bug itself, is it possible maybe to trigger actions inside multifunplayer through ways other than keystrokes? I can easily make a python script that catches the node red output and then sends whatever is needed to multifun to trigger the actions, I’m just not sure how I would tell multifun what to do bascially if its not through keystrokes. Is there any way? :pray:

1 Like

Would second that could you harass @HereSphere a bit so it can control MFP?

What MFP version are you using, it was a bug in some old versions.

You could make a plugin to accept data from node-red.
Tho there is currently no way for the plugins to invoke shortcuts, but they can invoke actions. I might add a way to invoke shortcuts by name, or maybe allow creating fake input gestures.

I think you could use some reflection magic and access the internal IShortcutManager field in the PluginBase, from that you might be able to invoke the shortcut directly but most of the classes are internal.

Its better if multiple users make requests. IIRC someone alredy asked about this.
HereSphere would need to send input events via their api.

I’m on version 1.30 right now, was it fixed in .31 or in .32?

Also for the plugins, I’m only coding with chatgpt so I’m not sure about the basics, is there an example plugin code somewhere just so I can see how the base of that would look like? Then i can have chatgpt experiment around on it haha

I think that was fixed in 1.29.3.
I would have to see your shortcut setup and probably trace logs.
The only thing that disables shortcuts from running is when you open the shortcut settings tab.

Sample shortcuts are here: MultiFunPlayer Sample Plugins · GitHub
But chatgpt wont be able to help you with invoking shortcuts, that requires reflection and looking at MFP source code to access the right internal parts, until I allow plugins to invoke shortcuts.
You should be able to figure out a plugin invoking the actions directly with InvokeAction.

Thank you I’ll check it out :slight_smile:

For the logs, I’m assuming I should change the “log level”? Do I choose “trace”?

Also in case it’s relevant, my temporary fix for the bug is that I made a python script that literally manually opens and closes the settings tab every minute or so. And with that setup the bug doesnt appear anymore.

Yes change log level to Trace and also check Enable UI logging.
Additionally exit MFP and open the MultiFunPlayer.config.json file in text editor, find LogBlacklist line and remove the two lines that are inside { and } so that the logs include full input data.

Then start MFP reproduce the issue and then fix it by opening the settings dialog.
Revert LogBlacklist, Log level and Enable UI logging settings to defaults.
And DM me the latest log file.

Having a problem with custom script names not being picked up in v1.33.1
Standard SR6 scripts are picked up fine, but when looking for scripts for a custom defined device with custom names (alpha, beta, volume), they are not found in the local repository.
A bit surprised because I’ve definitely had this working in the past.

Edit: I tried this on 1.32.1 and 1.31.3 as well, and it did not work there either.
Here’s how I have things configured:

Pictures


image

Hopefully it’s something silly

Yoooi quite solved the Wifi jitter and lag in test version. Good job and thank you.