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

https://nightly.link/Yoooi0/MultiFunPlayer/actions/runs/7210001425

Missing the ability to change between fixed/polled update from UI, everything is set as polled update.
Also I just realized that I misspelled “poll” as “pool” everywhere…

Because at certain times I’m limited to locally stored files (on a network storage - capable of running samba, dlna, xbvr through a private local wifi hotspot), such as when staying in hotels. While it’s impossible to stream 6k, 7k or 8k videos on a public hotel wifi, scripts are fine. But SLR only allows 3 script downloads per month so streaming is the only option.
DeoVR would work if Quest headset could mount a samba share and make DeoVR actually think it’s a local folder, not a network share… but I wasn’t able to find any way to do this.

Fantastic. From a few quick tests, it seems like the jitter has been eliminated and the handy appears to be moving one would expect.

I look forward to the (hopefully) eventual inclusion of this functionality in a patreon build.

Your work is a gift to this community.
Many thanks.

Ok, nice I guess, tho I think BLE is still trash.
Since I dont have The Handy I would appreciate If you could do more testing, maybe compare with other players that support The Handy over bluetooth.

Also, @johntaylor1980 try this build for The Handy over buttplug/bluetooth: nightly.link | Repository Yoooi0/MultiFunPlayer | Run #7210001425

Hey, so I’ve had the chance to a little more extensive testing and unfortunately there is an issue. I may not be entirely accurate in my assessment of what’s happening, but there is definitely something that is off. It’s a little difficult to articulate, so bear with me.

As far as I can tell, with MFP the handy seems to move from point to point in a script at a constant speed, regardless of the horizontal distance between the points. That is, as it passes a point, it moves immediately to the position of the following point, arriving before it should, then idling until passing that point. In effect, the movement of any script is transformed to resemble a step function.

It’s not unusable, but it does cause some weird movement in more creative sections of scripts.

Two other issues I’ve identified:

  • Adjustments to the output range appear to have no effect. Maybe an expected consequence? But worth mentioning because the handy tends to slam at the top and bottom of scripts with 100% range.
  • Force closes frequently with MPV when changing media.

As always, thank you for your work.

1 Like

Add buttplug output and map one vibe to L0 and second vibe to some other axis like R1/R2.
There is a lot of ways you can make them move independently, but the default settings should work with just a stroke/L0 script.

Fixed, I think: nightly.link | Repository Yoooi0/MultiFunPlayer | Run #7229086676
Was sending move duration as seconds not milliseconds.

True, forgot about that, fixed.

I think I’ve already fixed that earlier, try the latest build.

2 Likes

All three issues appear fixed. Movement matches scripts exactly as I would expect. In fact, MFP seems to be marginally more accurate than ScriptPlayer in particularly dense sections of certain scripts. Well done.

I can think of nothing further to add at this point. I eagerly await the inclusion of this functionality in a full build.

Please accept my sincerest gratitude for going out of your way to appease the demands of a random poster. My thanks.

I wanna use my lovense toy connected via initface central. I connected initface central via mfp buttplug.io output. Script is working, axis showing data but my toy does not vibrate, What do i do wrong? I use the latest initface central and latest mfp

Thats good to hear.
Need to think if this is correctly implemented before merging into master branch.

Also since this ignores all MFP features I wonder whats the point in using MFP if you can use ScriptPlayer or something else.

Did you map your device to an axis in MFP? If you didnt, expand buttplug output settings and map it there. You should either map to V0 and enable “load unnamed script” in device settings or map to L0 but change L0 default value to 0 (also in device settings).

Due to certain circumstances I’m unable to use my device over Wi-Fi. I’m entirely reliant on Bluetooth. While this works without issue in most cases, it does prevent streaming SLR scripts through DeoVR. With script downloads being limited to 3 per month, I have been looking for a method to stream SLR scripts over Bluetooth for a not-insignificant amount of time.

I’ll grant you mine is likely a unique use case. Either way, as far as I can tell, MFP is the only solution that actually exists. For that I thank you.

Anyways, that’s the why of using MFP and the reason I’ve been such a pest about it.

Hello Yoooi,

First of all, thank you for writing this application for us. I use MFP for my own fucking machine via TCP and The Handy via Buttplug.io. Input comes from DeoVR.

With version 1.27 everything ran great via TCP, but since version 1.28 my machine is very jerky. I had a look at the T-Code commands received and strangely enough they now have 6 digits, e.g., L08894. Isn’t that one digit to much?

You probably had the device settings set for TCode v2 before, if you didnt migrate settings then the default is TCode v3 which has 4 digit output precision. If you go to device settings using the button at the top of the window you can change it there to 3 digits.
But 4 digits should not cause jerky motion unless your parsing of TCode in your firmware is not correct.

Just want to take 1 min to thank you for your work… can’t imaging life without MFP!

1 Like

Yeah i mapped my lovense device to an axis in the buttplug output settings. Where do i find “load unnamed script” or where to change the default L0 value?

Cog button at the top of the window.

So you had the lovense mapped already and it was not vibrating?

Thx Yoooi, I wasn’t aware of that T-Code V2 and V3 thing :slight_smile: Now it works again.

1 Like

Yeah i mapped the vibrator to L0 where the output of the script also was, but i was not vibrating. It only was vibrating with the slider in Initface Central.

Thats strange. Could you go to general settings and change log level to trace, then restart MFP, connect buttplug output to intiface, play a script for a few seconds then close MFP. Then send me the latest log file from the Logs folder.

Tested using MultiFunPlayer-1.29.0-look-ahead.1+27.9011483-Release from this message. The same testing script as before.

  • “The Handy” output - same situation as before. I see that there was a conversation about this, so my 2 cents is that “The Handy” output seems to involve some sort of queueing problem. After I press pause in MPV, device in this mode takes multiple seconds to stop, clearing out some sort of a buffer of inputs. Tested 10 Hz and 20 Hz.
  • Buttplug.io” output with Intiface Desktop 2.5.3 - works fine, no complaints. Might have made a strange motion or two in 2 minutes of testing, but that could have also been from the script - would need a pure sine wave script to tell for sure. Tested 10-60 Hz in increments of 10.

Because MFP is the only regularly updated script player, and it has better UX, features, and integrations than everything else. HandyControl was my first choice until now, but it has bugs and the last release was 2 years ago. ScriptPlayer has a cumbersome release policy and UI that I don’t like, so since finding MFP I have only used it for multi-device scripts that use e-stim or Handy.

Huh? No wonder it does not work if they are doing some dumb stuff on their api servers. I thought the servers would immediately pass on the command to the device. That should be about 2x ping delay.

The Handy would not be able to handle a detailed sine script over BLE.
With polled update you cant run anything really but the script itself, so all of MFP features are ignored and you cant generate a sine wave like with fixed update.

And the update rate does not have an effect on polled update because it just waits for next script action, vs updating the position at fixed update rate like before.
Obviously there would be a way to switch a device between fixed update and polled update in the UI.