JoyFunPlayer 4.0 - OSR (TCode) Player

Hey thanks for the comments @Nfinite :smile:

The twerking mode was a quick last minute idea & addition which turned out pretty well. I should be able to improve on it in the next updates. :slight_smile:

Yes, the SLR integration also works with local files. I use it for both local and streaming. There’s a FAQ on the SLR discord that you could check for more tips on how to set it up:

Link to discord: Join SLR Discord
Link to the FAQ: SLR Discord - Interactive FAQ

Also great idea about having an inverse twerking (cowgirl) mode. I’m kinda running out of buttons, but I’ll figure out a way to add it.

P.s. don’t forget to check the Manual rotation control & 3-axis random stroker features. :stuck_out_tongue:

The manual rotation control also doubles as a way to adjust the pitch & roll at the same time. It’s kind of finicky, but if you press it again to disable then it will remember that last angle.

1 Like

I noticed in the twerking mode at the top of the stroke, the mini arm coming out of the pitch servo is banging into the lower edge of the little back window it goes through on the frame. It actually pushed hard enough to sort of twist the frame until it let off, is my OSR just messed up lol…

It sounds like the pitch arm has too much range. Unfortunately the pitch angle also changes depending on the depth of the stroke because of the kinematics. You can lower the maximum pitch angle inside the Arduino if you’re comfortable doing that.

The pitcher base was updated by Tempest a little while ago to fix this problem. If everything is aligned just right, the original pitcher base can work but yeah, it’s a tight fit

https://www.patreon.com/posts/47387624

2 Likes

I actually found out specifically what XTPlayer is doing, it’s using “interval” commands like “L0999I250” which means “go to position 999 in 250 milliseconds.” I like this since it seems “better defined” than just sending interpolated values for the current time as fast as possible. With the interval commands, the OSR knows where it needs to be in the future, unlike with JoyFunPlayer’s “moment in time right now” interpolated solution.

I think this would be smoother because it lets the interpolation happen on the OSR’s end. Let’s say we need the servo to move 1000 servo position units in 1 second:

  • I’m estimating that JoyFunPlayer operates around the 100 Hz range so JFP would send 100 movements, meaning the servo moves 100 times, moving 10 units each time.
  • With the interval commands, the OSR board knows that it needs to move 1000 position units in the next second. The Arduino is fast enough to chop this up into as small of increments as possible, making the servo move 1000 times, 1 unit each time.

The interval commands should be smoother. Since the servo tries to move to the commanded position as quickly as possible, the graph might look something like this in an exaggerated case with ~6 Hz command rate:
image
Each of those corners on the JFP line represents a newly commanded position, which the servo moves to instantly (unrealistic but assumed here to exaggerate). You can imagine how the red line would get smoother as the command rate increases (more and more corners until it looks like a smooth slope when zoomed out).

TL;DR: adding interval command mode to JFP would be nice!

Hey @f86k, I have actually done lots of research on this topic. The commands are sent at a max rate of 500Hz. I’m using this method because it allows true immediate control which simply isn’t possible with the regular interval commands. JFP can also do smooth curves instead of straight lines with the Cubic & Cosine function. This makes a big difference with the right servos.

Edit: I did notice a mistake in my interpolation since my last code cleanup. I should have a fix uploaded soon :slight_smile:

It has been fixed. The ‘Cubic’ mode should be very smooth again.

4 Likes

Too bad it isn’t open source. There are so many improvements that can be done on that app. Interface wise, mostly.

2 Likes

If you use deoVR where should you store the scripts ?

Question for SLR use. If I download the video from SLR and start it localy with SLR logged on JFP if I have the script but not download it will it be played ? It’s basically to get the SLR sub with unlimited streaming of script but a poor connection that need from me to download videos

I’m really enjoying the random stroker and the manual pitch/roll controls, but find the use of the whole range a bit uncomfortable (like it might snap me :-)), particularly with the random stroker. Would it be possible to build in limits to the pitch/roll in the same way as you’ve done with the stroke length?

The SLR integration stopped working for me. Not sure what changed, but the “Playing” and “Script” fields at the bottom of the window are now blank, even playing local scripts. Seeing similar behavior through other OSR2+ players, so don’t think it’s just this application. Anyone have any ideas?

Im also finding SLR scripts/video titles are no longer auto loading. as of tody(07AUG2021)
SLR have likly changed something their end.
I say this because if you download and drag the correct script into JFP it all syncs up and still tracks playing & pausing.

[EDIT: Its just the SLR Quest app not sending all info for me, DEO VR on Quest all works fine for me now!]

@Tech_Dave, does the method still work for you? I tried both SteamVR (with HP Reverb) version of DeoVR and DeoVR on Quest, in both cases JFP 3.1.2 was unable to stream scripts from SLR.

Just checked and both using the SLR quest app and DEO VR on quest2 both fail to load/provide the video title name and script.

both only track the current play time :worried:
@radar1

Hey I’m sorry for the issue with streaming. We’re looking into fixing it.

If you download the script then you can still drag & drop it onto JFP to make it work.

1 Like

Thank you! Being able to use this with the premium scripts subscription would be a dream.

In that case dreams may come true. :wink:

Expect a new version with the fix coming soon.

@Tech_Dave @radar1

1 Like

@Tech_Dave @radar1 @sdfaw3rawef3

Please check this version 4.0: 1.26 MB file on MEGA

There are quite a few changes. I really recommend using JFP with a gamepad, not all features are available otherwise.

2 Likes

Just tested JFP4.0 and SLR is all working on Quest2 if you use DEO VR :star_struck:
but now MPV is broken.
I’m not sure if Im missing somthing but for now I’ll keep both
JFP4.0.0 for SLR & JFP3.1.2.0 Local 2D videos

Also a huge thank you @raser1 for your continued work!!!

1 Like

You’re welcome. @Tech_Dave :hugs:

Maybe you’re missing the mpv.exe file inside the new JFP 4.0 folder. It’s not included in this download :wink:

1 Like