I have a quick question for you. I am a long time user of MFP and XBVR. When I updated to the newest MFP (i was back running 1.28 i believe) MFP no longer sees the scripts. I cannot for the life of me figure it out. I have even reverted back to the older version of MFP and now it will not see the scripts that I have clearly attached in xbvr to each respective video. Any idea what I am doing wrong here? I am connected to heresphere and my SR6, the video pops up in MFP but no script.
UPDATE - I have no Idea why, but I selected XBVR in my script repository and that worked THIS TIME! It was NOT working on the new version or the old version yesterday. Must have been a bug of some sort. Its all working properly now just by selecting that tick.
Disconnect MFP from video player, open application settings at the top of the window, change log level to trace, connect video player, play a video from XBVR, change log level back to info, send me the latest log file.
Is there a method for importing all of my settings from one version of MFP to the next? Is there a file I should copy and paste?
I still think about this potential feature every time I use MFP. Right now my solution for these long gaps/“strokes” is to use a hotkey on my computer to drop the stroke range to 30% so that I at least don’t fall out of the sleeve when the action eventually starts up again. It’s not ideal because I feel like I’m constantly fidgeting with my computer and the stroke range for a while after this happens, but I’m grateful that there’s some kind of work around in the meantime.
A “skip to next action” button would also be really useful. Not only would this be another work around for the “gaps that are technically very long strokes” problem, but this would also be good for when I don’t have “auto-skip gaps” on and come across a gap I eventually do want to skip.
And one more thing, how do I set a deadzone for the bottom of the twist axis? I want to set it so that it never twists from 0 to 10 including when gap fill is on, when there’s a twist script, and when it’s doing random action in the event there is no twist script.
Yes, you can either copy MultiFunPlayer.config.json file, or just extract the new version on top of the old one and replace all files.
The feature is on my todo so it should be added someday.
I spend most of the time figuring out where to put the buttons, there is not much UI space left.
Here is a simple plugin that should work, save it to Plugins folder as skip.cs. Change the 5 to whatever value you want.
public class Plugin : PluginBase
{
protected override void OnInitialize() => StartTask(async token =>
{
var axis = DeviceAxis.Parse("L0");
while (!token.IsCancellationRequested)
{
await Task.Delay(250, token);
var keyframes = ReadProperty<DeviceAxis, IScriptResource>("Axis::Script", axis)?.Keyframes;
if (keyframes == null)
continue;
var index = ReadProperty<DeviceAxis, int>("Axis::Index", axis);
if (index < 0 || index == int.MaxValue)
continue;
if (keyframes.SegmentDuration(index) > 5)
PublishMessage(new MediaSeekMessage(TimeSpan.FromSeconds(keyframes[index + 1].Position)));
}
});
}
Can you explain this a little more for me please? I copied and pasted this to a notepad doc and saved it as “skip.cs.” I’ve also got it in the Plugins folder. When I click on the plug icon in MFP, there’s a red exclamation mark and it says “Unable to find base Plugin class.”
Also, can you tell me what this plugin is supposed to do? Does this make it so the gap filler and auto-skip gaps functions treat any stroke longer than 5 seconds as a gap?
Thank you for the help with everything else I asked about.
Yoooi thanks for the constant work on MFP its an amazing piece of software.
I just played around with the update settings and I can not make fixed update as smooth as polled update on an SSR1. Fixed update is jittery no matter what settings. Why is that so?
I used MFP for the first time when I got my SR1, and it was an unpleasant jittery mess. After some trial and error, I got it working smoothly though. I don’t really understand what everything in MFP does, but I’ll tell you how I have mine set up.
I have the update rate all the way down to 31 Hz.
Precise sleep: OFF.
Offload elapsed time: ON.
Send dirty axes only: ON.
Something else that makes a huge difference is that my computer is running nothing else but MFP. If I have videos and webpages running at the same time, I get really bad jitter. Even just turning my screen off makes my device noticeably jump while in use.
As I said, I don’t really understand all the settings so I hope someone else more informed than me can chime in.
I assume you are talking about when connected over bluetooth? (It works fine on USB for me). My understanding is the bluetooth connection isn’t fast enough for how fixed update works. Fixed update works by constantly telling the device where it should be, if the connection isn’t fast enough the it misses some of the positions making it jittery.
Polled update just gives it the next position and time to reach meaning a lot less data.
I just use polled update.
If I’m wrong and someone has better info please correct me.
Yes I don’t see why it wouldn’t, tho I have not tested if the Stash repository works with it yet.
That plugin will work only on v1.32.0 or later.
It works as a separate thing from gap fill, it automatically skips all long moves.
Like I said its just a simple plugin as a workaround.
If you use bluetooth you probably want to use polled update. Or you have to drop the update rate very low.
If you use serial then you probably have esp32 with CH340, in that case you should try installing CH340 driver, you can also disable all axes but L0 on your serial output to minimize the amount of data sent, and you can try dropping update rate from 333hz to 200-250hz.
The CH340 has trouble handling that amount of data for some reason, an esp32 with CP2102 would work just fine at 333hz + 6 axes.
Thats unusual. If you are not using any outputs at 333hz then you can lower the main thread update rate as in the changelog.
Also what is your CPU? Precise sleep will help with jitter not cause it.
Wifi Khrulls firmware. Cant imagine its too slow. And as Burt the Reynolds writes movement jitters or stepped. Polled update is fine but fixed update has so much more options. So would be nice to work over Wifi.
Yea UDP should work fine, I never used it but I dont think everyone is having issues with it. Try pinging the esp32 ip, you might have a lot of interference.
Also I think udp runs on a separate thread in the firmware so maybe the context switches are causing stutter.
No interference, no one nearby, my network is really stable, its not the cause. But sure will ping the esp32 if you like well get get about that. I asked about the stuttering and no one answered I also asked you. I think many just use MFP in this kind of stepping mode and think its normal. Now Burt is susceptible to stutter and bad movement a lot and I just tried polled update and was astonished on how fluid it is. Would be nice if you could dig a little to find out if it is something else over Wifi.
If you want to provide more info then I would need logs with log level set to trace while using UDP and it is stuttering. Ideally also a video while it is happening so I can see what kind of stuttering you are experiencing.
The UDP sending code is pretty much exact to serial sending code so its most likely caused by something outside MFP. With UDP you cant confirm that data has been sent or how long it took, it might be buffered by windows, network driver etc. which might break the timing required for smooth motion.
Tested and stash repository works correctly with web source.
Will try to provide more maybe others can help who experience a strong difference between polled and fixed. It is not visible just feels stepped and it still is in sync.
Another question. When jumping from video to the next with Heresphere the adapter is guillotining to the setting of the next script. So if the position is 0% and the next video has a line at 100% it will go there at max speed. Can there be a setting to make this slowly or is there a transition setting already I have missed? Of course this is not the fault of MFP but MFP should solve this in my opinion. Can even be dangerous.
I think you are describing what I would call roughness, stuttering for me means bigger/intermittent pauses.
Since its not possible for MFP to chain moves perfectly on some servos you will perceive the tiny pauses between commands as rough movement. Enabling elapsed time offload should help.
Its been a thing for a very long time, you probably disabled it.
Open “sync settings” with the button next to the play/pause button, everything there should be enabled.