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

There is actually a page in the community wiki about this since VLC has a lot of steps to get working: Play funscripts using ... | OSR Wiki

2 Likes

Why is v1.29.0 available here, but your patreon only offers v1.28.4? Am I missing something obvious?

I usually release patreon versions few days later in case there are any bugs found.
But with the insane amount of feedback here lately I might switch it around and release patreon versions earlier then do public.

1 Like

MultiFunPlayer v1.29.2:

Download: Release MultiFunPlayer v1.29.2 · Yoooi0/MultiFunPlayer · GitHub
Patreon build: https://www.patreon.com/posts/97781216

1.29.2:

  • Fix polled update TCode commands duration getting sent as seconds instead of milliseconds
  • Fix url encoding of media resource name when parsing from url causing script repositories fail to match scripts (#155)
  • Fix incorrect host comparison in Stash/XBVR repository causing no matched scripts
  • Fix Stash/XBVR repository not using full path and query when parsing for scene id causing no matched scripts
  • Fix invalid scene id regex in XBVR repository causing no matched scripts

1.29.1:

  • Fix unable to capture mouse wheel gestures
  • Fix gamepad axis gestures not displaying user index
  • Fix commit sha in window title version in release builds

1.29.0:

  • Add polled update option to all output targets (#92)
    • Polled update only sends script actions to the device ignoring all other MultiFunPlayer features, used mostly for BLE devices like The Handy to improves smoothness
      MultiFunPlayer_JZlaW8Xt5m
  • Add configurable shortcuts (#28)
    • Supports multiple shortcuts for the same gesture
      iw0QbXnzmK
  • Add ability to change between secured/unsecured schema for endpoints (#150)
  • Add ability to change axis used for heatmap range and tooltip with scroll wheel (#148)
  • Add update check to information dialog (#34)
  • Add ability to toggle force seek option in OFS source
  • Improve keyframes heatmap range display
  • Change default UDP output endpoint to tcode.local:8000 to match WiFi firmware
  • Fix gamepad axis gestures not working
  • Fix invalid VLC source media path causing scripts to not load automatically
  • Fix XBVR and Stash script repository returning no results with UseFirstMatchOnly
  • Fix script link not updating for axes without priority
  • Fix heatmap enable preview setting not getting loaded
  • Fix possible min/max exception when using Axis::Range actions
  • Fix delay when disposing media source or output target
  • Fix buttplug output creating invalid device map when loading settings
  • Fix endpoint settings not loading when using hostname
  • Remove Uri To Local media path modifier

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

5 Likes

Hello @Yoooi

Im getting this Error when trying to connect MPC-HC:

MPC-HC failed with exception:

System.TimeoutException: A task was canceled.
—> System.Threading.Tasks.TaskCanceledException: A task was canceled.
at System.Threading.Tasks.TaskCompletionSourceWithCancellation1.WaitWithCancellationAsync(CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken) at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) at System.Net.Http.HttpClient.<SendAsync>g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken) --- End of inner exception stack trace --- at MultiFunPlayer.Common.ExceptionExtensions.Throw(Exception e) at MultiFunPlayer.MediaSource.ViewModels.MpcMediaSource.UnwrapTimeout(Func1 action)
at MultiFunPlayer.MediaSource.ViewModels.MpcMediaSource.RunAsync(CancellationToken token)

I started MultiFunPlayer v1.29.2 for the first time today.

I enabled it and the default is set to 127.0.0.1:13579 of MPC-HC in MultiFunPlayer.

Still getting this Error sadly.

Im trying to play Funscripts with my DG-LAB Coyote with the

You cant specify the ip in mpc-hc so what do you mean the default is 127.0.0.1?
In mpc-hc can you click “launch in web browser” and then go to “variables page”?

I mean i use the Default settings of 127.0.0.1:13579 of MPC-HC in MultiFunPlayer.
And still getting this Error.

In mpc-hc can you click “launch in web browser” and then go to “variables page”?

Ok and now?

how to fill linear L0 gap?

Assuming you can access that without errors in your browser then MFP should work too. What is your MPC-HC version? Can you try disabling windows firewall? Try localhost:13579 in MFP? Dunno really, seems like a networking issue, MFP just cant access the http://127.0.0.1:13579/variables.html page.

Under L0 go to click on “Motion” button, select “Random” motion provider, expand “Common settings” and enable “Gap fill”

1 Like

After testing 1.29.2 i dont see the option for fixedupdate for the handy.

And as a result the playback is that unreliable that for the handy this tool isnt usable then.


Also, for vibrations you could actualy have multiple channels as for example the lovense edge has 2 seperately controllable vibrators. Just like you have L0, L1 etc for linear motion, the V list would be better as vibrators only. A pump doesnt realy make sense in that.

While its not entirely required, it makes loading it a bit easier.


Also, with many devices its possible the window isnt high enough to display all menus. Could be just an issue i discovered while trying to set up things, but its just feedback to at least be aware of it.


And last, Handycontrol allows you to zoom in on the script, it would be a nice feature if you could select a certain position more accurately. The video player often isnt well capable of showing chapter start and ends, while script movement is just a very easy method to see where the action starts/stops.

Again, a nice to have


And yes, in case you wonder i was trying to set up the handy in combination with the edge (3 channels). The handy obviously didnt work as it should be, but the edge worked fine even though i loaded in the scripts in other channels and just mapped them diffirently at the butplug.io part. That part worked fine.

I did eventualy just try to sync up handycontrol with the vibrations of MFP, and got it accurate enough to about 0.2s (its notable, but not disturbing as it was just the vibrations being somewhat off), and at least i can tell it is worthy as a setup to have. It just needs better handy playback for me.

I’m getting this exception… the clip is under 20mins

VLC failed with exception:

System.OverflowException: TimeSpan overflowed because the duration is too long.
   at System.TimeSpan.IntervalFromDoubleTicks(Double ticks)
   at MultiFunPlayer.MediaSource.ViewModels.VlcMediaSource.ReadAsync(HttpClient client, CancellationToken token)
   at MultiFunPlayer.Common.ExceptionExtensions.Throw(Exception e)
   at MultiFunPlayer.Common.TaskExtensions.ThrowIfFaulted(Task task)
   at MultiFunPlayer.MediaSource.ViewModels.VlcMediaSource.RunAsync(CancellationToken token)

The Handy output always uses polled update. But each command goes thru their servers so even with polled update its not really usable.

You should connect The Handy to buttplug.io via bluetooth, then map it in buttplug.io output in MFP and set it to polled update. It should behave normally then.

The default devices are made to TCode specifications.
You can create your own device via application settings at the top of the window with more vibe axes.

You can try setting the app to horizontal mode via application settings.

Eh, maybe, I’ll add it to todo to consider.

Never had that happen, what VLC version are you using?

3.0.20 Vetinari

Well then it should work fine.
Can you go to application settings at the top of the window, change log level to trace, connect to vlc and try playing the video, after the crash send me the latest log file.

seems there’s no PM here and I can’t attach it here

Ill have to test this later (cant atm). But on that same note, it said it was experimental, so i cant blame you if it doesnt work through MFP directly.

The horizontal layout is an improvement to me. And i already made a TCode copy and added the 2nd vib channel. I just mentioned it since i dont know who made the standard for that (and maybe you can signal for an improvement on that part?).

Hi, i have the same problem with VLC. VLC connects, when no video is open. After opening a video i get the error message. This is an extract of the log file:

" from “VLC”
2024-02-26 10:59:17.7832|ERROR|MultiFunPlayer.MediaSource.ViewModels.VlcMediaSource|VLC failed with exception|System.OverflowException: TimeSpan overflowed because the duration is too long.
at System.TimeSpan.IntervalFromDoubleTicks(Double ticks)
at MultiFunPlayer.MediaSource.ViewModels.VlcMediaSource.ReadAsync(HttpClient client, CancellationToken token)
at MultiFunPlayer.Common.ExceptionExtensions.Throw(Exception e)
at MultiFunPlayer.Common.TaskExtensions.ThrowIfFaulted(Task task)
at MultiFunPlayer.MediaSource.ViewModels.VlcMediaSource.RunAsync(CancellationToken token)
2024-02-26 10:59:17.7832|INFO|MultiFunPlayer.UI.Controls.ViewModels.ScriptViewModel|Received MediaPathChangedMessage [Source: “” Name: “”]
2024-02-26 10:59:17.7832|DEBUG|MultiFunPlayer.UI.Controls.ViewModels.ScriptViewModel|Resetting sync [Axes: L0, L1]
2024-02-26 10:59:17.7832|DEBUG|MultiFunPlayer.UI.Controls.ViewModels.ScriptViewModel|Resetting axes [Axes: L0, L1]
2024-02-26 10:59:17.7832|DEBUG|MultiFunPlayer.UI.Controls.ViewModels.ScriptViewModel|Resetting sync [Axes: L0, L1]
2024-02-26 10:59:17.7832|DEBUG|MultiFunPlayer.UI.Controls.ViewModels.ScriptViewModel|Reloading axes [Axes: L0, L1]
2024-02-26 10:59:17.7832|DEBUG|MultiFunPlayer.UI.Controls.ViewModels.ScriptViewModel|Invalidating axes [Axes: L0, L1]
2024-02-26 10:59:17.7832|INFO|MultiFunPlayer.UI.Controls.ViewModels.ScriptViewModel|Received MediaPlayingChangedMessage [IsPlaying: False]
2024-02-26 10:59:17.7832|DEBUG|MultiFunPlayer.UI.Controls.ViewModels.ScriptViewModel|Resetting sync [Axes: L0, L1]
2024-02-26 10:59:17.7832|DEBUG|MultiFunPlayer.UI.Controls.ViewModels.ScriptViewModel|Trying to link axes [Axes: L0, L1]
2024-02-26 10:59:17.7832|DEBUG|MultiFunPlayer.UI.Controls.ViewModels.ScriptViewModel|Resetting axes [Axes: L0]
2024-02-26 10:59:17.7832|DEBUG|MultiFunPlayer.UI.Controls.ViewModels.ScriptViewModel|Resetting axes [Axes: L1]