Syncopathy - an offline bluetooth scriptplayer for the handy (and buttplug)

I added a new build which should fix this

1 Like

Sorry just got home from work. That was fast! It must be on my end now, it just spins the circle when I try to connect in either mode. I’m installing windows on a spare laptop so I can test on that

Just saw your post in the handy discord and hopped over here to take a look.

It works great. Was really easy to install and setup, and the handy connected up on the first try and playing videos also worked great on the first try.

Loved how it searched and found my videos and scripts for me so that I didn’t have to fuss with that and having the logging up was great so that I could see what it was doing behind the scenes. Since everything worked great, I didn’t actually need to use it for any troubleshooting, but it was still nice to see things at work.

Great job. I’ve bounced around between a lot of different options because nothing did exactly what I wanted them to, or were a pain to use. This solved all of that for me. Thanks.

1 Like

Just in case anyone runs into the same issue as me with the handy not connecting. Apparently the Qualcomm FastConnect 7800 bluetooth LE driver is not validated by Microsoft on Windows 11 yet..so the complete BLE features are not functional. Other bluetooth adapters with BLE support work fine

Yes. Bluetooth is a mess especially on windows…

I cooked a new build.
I added an embedded video player option. It requires a restart to take effect and is windows only.
Other than that it’s mostly cosmetic changes.

2 Likes

Great work! The speed button is grayed out.

Also - option to put the heatmap/visualizer and options in two windows top and bottom. Toggling between is a pain.

suggestion: easy option to reload current video to accept any changes made in settings that only update when a script is first loaded.

Awesome work. Great piece of software

Your app looks amazing! May I ask if you can add the Stroke Range setting to them main embedded video player screen? Or maybe even a setting for range presets so it can be changed quickly while playing video?

Maybe. If I can fit it in the UI without using more space. It should be easy to add.
Generally though I don’t want to overcrowd the UI with settings.

It’s greyed out while the video is playing. This is a limitation of the implementation I don’t care to fix. So speed can changed but only while the video is paused otherwise it might end up out of sync.

1 Like

Makes sense, it wasn’t super clear that you can modulate speed when paused. But great workaround.

Your other updates were great, I like the ability to hotkey the tabs with number keys.

additional suggestions that are hopefully easy to implement:

  1. Filter is awesome. How about a filter based on the specific media library paths?

  2. Batch select for allowing quick category assignment. Right now you have to right click each video. Categories are a great idea, especially with the ability to filter; but getting those categories to each vid is still a barrier.

  3. Allow numeric input of any slider values; as it stands, there are some standard numbers (0 and 125 for delays for example), and having to slide them to those numbers is a bit frustrating. Getting to just type them in would be ideal.

  4. A toggle for “play on load”. As it stands when you select a video you still have to right-click it to play it. It would be a huge QOL improvement to just select a video and have it play.

  5. I love the ability to hide the logging. Can we have the default hidden? I don’t think most users are going to want to see the constant scrolling of the log updating; it’s great for troubleshooting, but most users aren’t going to want to look at that by default.

  6. If the UI has what the user needs where they want it, it’s ok to crowd it a bit; it’s a better option than having the user go someplace else.

  7. I would love to see the heat map superimposed with the scrubber in the video player, like how Scriptplayer does it. Having to toggle over to the video player tab when using the external (better) video player is a mild frustration.

  8. “Surprise Me!” is awesome. If there’s a way to have a pulldown with checkboxes that gives us options based on, say, categories or file location, would be even more awesome. I’m going to guess current implementation is based on the filter? Maybe that is good enough.

  9. An option to show/hide overlay text in the thumbnails would be nice. It’s visually very cluttered unless you go down to 1-3 per row.

  10. You created the best app I’ve used so far, WELL. DONE.

Just to elaborate a little further the Handy API has this stop and start command and you pass the playback rate to the start command, it might be possible to update the playback rate while it’s playing by just sending more start commands but I haven’t tried this. Either way I’d like to not spent time on this.

Which brings me to managing expectations because I have no aspirations of making this the best script player everyone wants to use. It’s really just a personal project I wanted to share. Feedback is welcome but I may not always agree or frankly care.

  1. I honestly want to get away from file paths and directory structures.
  2. agreed but I prefer to prioritize other things for now
  3. The delay in the settings is really just to compensate for the inherent device latency it’s not something I expect to the user to change often and technically doesn’t require exact values either it just needs to feel right. It’s not supposed to be used to sync a script to an slightly out of sync video.
  4. agreed but is more work right than it sounds
  5. The logging panel will be removed at some point but for it’s providing value to me.
  6. opinion
  7. The external player will never have any custom UI because that’s not possible.
    However I may be able to at the ability to pop out the embedded player in a separate window.
  8. The surprise me button currently grabs up to 12 random videos from the current filtered selection, disliked videos are always excluded.
  9. sure why not
  10. thank you
1 Like

Most responsive dev ever, and the changes are great; I love the numeric entry solution. Perfection.

The one thing missing I realized that needs to be a standard is an “invert script” toggle. A lot of scripts are miscoded and need to be inverted; and some people use their devices upside down physically.

Lastly, having a highlight window around the currently active video would make it a lot easier to locate it. As it stands, the user has to match the top of the video player’s text with text in the list.

Actual lastly - random button - the spinner is really annoying once the novelty wears off; I’d either just remove it or have it play while the video insta-loads. There’s really no reason outside of the ‘fun’ factor. It’s just slowing things down. (I know, it’s a fun idea. But being able to at least disable it would be nice, and just have an instant load of randomness).

Again, wonderful work.

I don’t disagree the novelty of the random button wears off but I think what you really want is playlists which you then shuffle play. That be my long term goal no ETA on that.

The next thing I will likely do is a rewrite of the funscript player do allow for on the fly script modifications, auto play etc. also no ETA

Is there a reason why IVDB scripts don’t work?

yes you fell victim to DRM

Ah, I did think that the IVDB files seemed too small so that makes sense. I definitely need to find a way to download the actual scripts…

yeah that’s sadly kinda the point that you can’t download it. that way access can be revoked any time…

I won’t be supporting it because I have no intention of implementing the web API. There’s plenty of web API players that should support it.