MultiFunPlayer v1.32.0 - Multi axis funscript player - Now with SLR script streaming

That’s a shame, since MFP looks like the best option for syncing multiple devices simultaneously. It looks like just a few adjustments would let it work; Scriptplayer has an ability to directly connect to the handy, and your own player has all the different options down below. If someone could release even a guide to how to connect the OSR through those different channels, one could use that as a reference for connecting other devices.

For now though, I’ve found that by connecting MFP to DeoVR, and using DeoVR to connect to the handy and other devices via Intiface, I can use both simultaneously without overloading my bluetooth. This does mean I can only watch stuff in my VR headset, since DeoVR doesn’t have a desktop mode, but it works for now.

How do I manually home the device? All I see is an “auto home” feature which I don’t really want. I am just messing around trying to set hotkeys but I don’t see a way to manually send the device to neutral position on a per axis, or all-axis basis?

Also, will you be adding any features to record movements and compile them into funscripts? I feel like that would be MUCH faster than using openfunscripter or whatever the case to manually go through videos painstakingly to make scripts.

This looks like great software. I’m just trying to figure it out. Massive thanks to you!

You could kinda get manual home if you set autohome delay to 0, and then add a keybind that toggles autohome on/off, but that will only work when there is no motion happening.
Other then that, there is no manual home, the homing feature was designed for when you pause the video or when the script ends.

No, this is just a script player, there are a few scripting applications that should support recording with controllers etc.

Thanks! Let me know if you have any other questions.

I love the layout of this software. One feature that I miss is the ability to select a video location from the script heatmap. Being able to do that makes it easy for me to skip gaps, or select scenes with a desired intensity - without it it’s kind of hunt and peck through the video. JoyFunPlayer allows this, but I much prefer the interface on MultiFunPlayer. If I’m missing something, apologies, I’m a multi-axis noob and still exploring the various software.

Yea, you cant do that right now, but I added it to todo on github.

MultiFunPlayer v1.16.0:

Download:

  • Add ability to seek, by clicking on the heatmap, and play/pause video, by clicking on the play/pause button (#24)
  • Add ability to customize actions (#21)
    2021-10-13_23-38-32
    • Reduced the number of actions from 900+ to 100+
    • Allows custom settings “profiles” by having different values per keybind
    • Action settings can be accessed via the wrench button
      2021-10-13_23-46-52
  • Add heatmap stroke visualzation, accesed via right clicking on the heatmap (#22)
    MultiFunPlayer_2021-10-13_23-47-49
    • Also allows modifying heatmap quality for different effect
      MultiFunPlayer_2021-10-13_23-48-22
  • Add ability to set the window to be always on top, accessed via application settings on the window title bar (#23)
    2021-10-13_23-48-54
  • Fix buttplug.io vibes not stopping under certain situations (#20)
  • Small ui tweaks

Breaking changes:

  • All previously configured actions will be reset

If you like what I’m doing, please consider supporting me on Patreon

1 Like

You rock! Thanks so much for adding this so quickly.

1 Like

Hi! I’ve made some progress on getting multiple devices to run together. Some of it was simply buying a better USB BT 5 dongle, but when I connected everything via Buttplug, I noticed that MFP was still giving jerky output, whereas Scriptplayer’s was smooth, even over bluetooth. Then I noticed the ‘Update rate’ slider under the connection settings. It seems like raising that does help make the jerky response smoother, but 60hz is nowhere near high enough for a decent smooth up/down motion.
Is there any way to set the update rate higher than 60 for the Buttplug.io connection? Every other connection type goes up to 330hz.

In scriptplayer do you connect to Handy thru buttplug/intiface or directly?

I know that buttplug has some issues with bluetooth, reported by a few users, it might be in buttplug code tho as there isnt really a way to send commands any other way than the way MFP already does. I need to test it for sure to know where the issue is coming from.

Is there any way to set the update rate higher than 60 for the Buttplug.io connection? Every other connection type goes up to 330hz.

Not exactly, minimum delay for async/task is 15ms so about 60hz. So you can only have 1-60hz, and then the next setting would be “as fast as possible”, meaning without any delay. Could be added tho.

Scriptplayer can connect directly to the handy via wifi, but for this case I was using buttplug to test and it seemed to work fine.

I imagine it was using a “as fast as possible” connection, given that the handy needs a continuous motion, so you’d want as many points as possible. I’m not sure how that works with a direct connection. You mentioned that MFP was designed for the OSR; how does it handle the stroke commands? I don’t have one myself, but have you tested it through buttplug, given that there’s an option to connect that way?

Edit: after further testing, it would appear that the handy doesn’t work quite perfectly when connected via buttplug: it doesn’t quite get all the details of the script as it would if connected directly. I imagine this is because when one connects to the handy via wifi or Handyfeeling.com, the script is downloaded onto the handys internal memory temporarily, whereas a bluetooth connection just gives it moment to moment position commands. Still, Scriptplayer does seem to have moderately high fidelity that way, so it is possible.

You mentioned that MFP was designed for the OSR; how does it handle the stroke commands? I don’t have one myself, but have you tested it through buttplug, given that there’s an option to connect that way?

I didnt test it yet, buttplug was added to MFP before it could handle TCode. But im using OSR via serial so not sure if the issue will happen, it might be only with bluetooth.

One problem with TCode in buttplug is that it only has 100 positions instead of 10000 from spec. So the motion will be less smooth.

Hey, i just wanted to ask if there is any way to make the Player use an embedded MPV Library instead of the actual .exe. Im using Jellyfin to organize my Videos and both Players (Jellyfin Media Player and Jellyfin MPV Shim) are both using the embedded one. (There is mpv.dll file, not an .exe)

You should be able to just create mpv.conf file next to mpv.dll and paste input-ipc-server=multifunplayer-mpv.
Its also possible that your apps already have a mpv.conf somewhere, or maybe you can add custom arguments to internal mpv, in that case add --input-ipc-server=multifunplayer-mpv argument.

Screenshot 2021-10-26 184440
Okay, it kinda worked? I know thats an issues of jellyfin and not MultiFunPlayer, but it seems that the server is not playing directly off my folders, instead just calling them stream.mov… Is there something you might know what i could do?

Its probably playing from internal dlna server and the urls will not contain the actual file name.
Unfortunately for now there is no solution, so you have to drag/drop the script manually for each video.

Try this build:

It contains experimental way to automatically match url files to local files.

  • Click on “Video path modifiers” button on the video toolbar in MFP
  • Click on “+” button, then select “Uri To Local”
  • Click on wrench button to configure “Uri To Local”
  • Enter “127.0.0.1:8096” as “Endpoint filter”
  • Click on the “Select directory” button and browse to the root folder where your videos are located, it will scan subfolders too
  • Exit “Video path modifiers” settings and try playing a video, the url should be mapped to one of your local files and the script should auto load

oh boy, thanks. I’ll try it tomorrow. :slight_smile:

Edit: Sadly, nothing changed for me. Is there any way you could test it?

Oh, its probably internally playing a stream not directly the file, so that method wont work.
I’ve tested playing from dlna server and it works fine as dlna exposes the file directly not via a stream.
Basically the auto method works by requesting the file size from server url and then looking for a matching video in specified directory. Stream will report only a part of the file so there is no way to make it work.

I think only solution for this will be a manual method, so you can try adding “Find/Replace” modifier and then paste video url in “Find” input, and full path with filename to the video that should match the url in the “Replace” input.

In next version I will add a button to quickly add “Find/Replace” modifier where you just select the target video file from a file browser and “Find/Replace” will be created/filled automatically.

tried everything here. osr2 working but multifunplayer not seeing it or something

What did you try and what do you mean by not seeing it, you cant see it in the “COM Port” selection?