Scripts Control (Create playlists of scripts/patterns, easy switch with shortcut, local videos allowed)

Hi,

Some words about me
I discovered The Handy last year and realized the magnificence of the automatic/sync stroker :heart_eyes:

But quickly, I had the feeling that something was missing to make the experience better.

Occasionally, I get ruined by the synchronized script going into the no-action zone. On the other hand, I have to pause the video a few times because it’s too intense, and I’m more of an edging person.

So, for that, I built a simple web app that can fix these issues for me. A couple of months later, I decided to share it with you :index_pointing_at_the_viewer:

The app


You can find the readme here
Direct link to app here
Due to the server limitations used by The Handy, I decided to run the app with Initface central to leverage the Bluetooth connection. This should also allow the use of other devices.

This app allows you to create playlists of scripts or even ā€œsub-scriptsā€ as patterns, switch between read playlists by shortcut, and it is also possible to play local videos with a synced script (optional).

Well, a simple preview is better than words.
Video-ezgif.com-optimize

Video used for this preview can be found here

Managing playlists
PlaylistManagement

I’m also used to doing long edging sessions, so you can configure playlists with a lot of patterns, add modifiers to them, and then play them randomly.
I’m not a great script creator, so I’ve wrapped up a feature to import/export playlists.

Feel free to give me any feedback, bug reports, or feature requests. They should be submitted through the GitHub page, but I will try to follow them in the thread.

Keep in mind that this is more of a beta version, but it still works pretty well for my use.

18 Likes

ā€œBut to make it work, we need one script per pattern or all patterns in one script, but with chapters to identify them.ā€

Open Funscripter only allows people to make bookmarks. Are bookmarks the same as chapters?

1 Like

Well, I’m using OpenFunscripter 3.2.0, and I can set chapters like this:
Animation

Then, the exported script will contain chapter data, such as start and end times (with names if they’re set).

Bookmarks will only contain a position, which can lead to unwanted action points.
However, if we say that a pattern starts from a bookmark, we can assume that the last point should not be part of the pattern :thinking:

Ah my bad, I’m still on an old version. Good luck.

this would be amazing if that could be integrated into stashapp

1 Like

deep respect, sir. this is amazing. holy shit. after just a few minutes of dicking around with it, it’s clear you put a lot of thought into it. a lot of features that really make sense.

this thing just came out of nowhere and is now my favorite player aside from stashapp, but they have pretty different use cases.

now i just need to somehow curate a collection of funscripts with chapters.

i’m a big fan of @Hungswolo’s patterns which is actually how i found your project just now.


some feature requests:

  • add awareness of non-padded numbers for alphabetical sorting in the tracks library. e.g. 2 foo should come before 11 bar.
  • a slightly more convenient way to clear a playlist keybind
    • maybe put a ā€˜clear’ button in the corner of the the keybind assignment/capture dialog?
    • or maybe on the playlists page, you know how there is a keybind indicator on the playlist itself that you can click to open the keybind assignment/capture dialog? maybe if you hover over that thing, an ā€˜x’ could appear beside it that you can click on to clear it?
  • seeking in current playlist item. maybe a way to pan left/right in the current chart by clicking and dragging?
  • a way to ā€˜clip out’ patterns from existing scripts that do not have chapters and put them into a playlist (or pattern bank).
1 Like

Well, I’m glad that this app found someone else ^^

I do use stashapp, but indeed, sometimes I just want to play patterns to edge an hour.

I’m digging around to find a way to share a patterns bank (git sounds to be a perfect candidate for now) and automatically identify patterns on non chaptered scripts, but patterns can be

For your features request:

add awareness of non-padded numbers for alphabetical sorting in the tracks library. e.g. 2 foo should come before 11 bar.

Done

a slightly more convenient way to clear a playlist keybind

A button in the assignement dialog should do the trick

seeking in current playlist item. maybe a way to pan left/right in the current chart by clicking and dragging?

I’m not sure of what you’re talking about, is it the top chart or the tooltip one, can you explain a little more about it?

a way to ā€˜clip out’ patterns from existing scripts that do not have chapters and put them into a playlist (or pattern bank).

I thought of something like this but the app is not meant to be a ā€œtable/scriptā€ editor and it might lead to an expansive task of doing this by hand, I hope to find a better solution

1 Like

when playing a playlist in /player, i do not think there is currently a way to seek in time. maybe this doesn’t make as much sense for properly composed (in the Scripts Control sense) playlist, but consider the use case of playing a long-ass script like a @Hungswolo in your thing. it would be nice to be able to seek somehow.

i noticed that in the top chart, you can scroll up/down to zoom in/out, and that is great, but it would be even better if there were seek controls somehow. i imagined clicking and dragging left/right on the top chart to seek around, but maybe there is an even better way?

edit: on further thought, i think it would be good to have a few features:

  • chart zoom via scroll up/down (already implemented)
  • a way to pan around (look forward/back in time) without actually seeking to a new timecode (i.e. do not affect playback). maybe by clicking and dragging left/right.
  • a way to jump back to the current playback position (a button near the chart? a configurable keyboard shortcut?).
  • a way to change the current playback position. maybe by double clicking somewhere on the chart? or some kind of modifier+click?

another option could be to add a seek bar like in handy simple scripter:
https://playground.handyfeeling.com/scripter3/

from a ux perspective, i think it is nice to be able to look around in the playlist chart without having to pause or seek though because pausing/seeking somewhat breaks immersion.

bug?

settings > shortcuts:

Toggle play/pause Media player
With associated script if any

this does not seem to work for playlists. i think it only works if you have a video playing with a script?

Yes, I see what you mean.
I’m not used to reading long scripts (except those synchronized with videos), so navigating with the main graph doesn’t make sense to me, but it might be relevant for the case you’re talking about.
I’ll take a look at it to see what I can do.

1 Like

I’ve implemented more controls for the main chart :wink:

MainChartControls

1 Like

awesome!

i think the new chart navigation stuff works well and is intuitive.

is it possible to load more than the next minute or so of data into the chart? it would be nice to see the whole playlist, or at least the whole current track of a playlist. i see the issue here though since playlists can theoretically be infinite in length. putting reasonable bounds on how much to load into the chart is kind of an interesting problem. maybe you just pre-generate track by track and stop when you get at least 5min or something? of course if a playlist is like one super long track then it would be nice to see the whole track in the chart, though.

also, is it possible to make the ā€˜play/pause’ shortcut work for the currently playing script even if a video is not loaded?

I think the best option is to add a configuration field to set the graph’s buffer size, default is 1 minute.
Indeed, playlists have an infinite duration. I tested it with a simulated full day without any problems. I guess one day is enough ^^

The play/pause function can work without a video; just press the playlist shortcut again.

1 Like

i’m aware of this and use it as a workaround, but would you please reconsider a global pause/resume keybind feature that works with or without a video playing? bonus: assign it to ā€˜space’ by default because that is extremely common in playback software design language.

  • i don’t necessarily want to have to remember what playlist i’m on (and hence which keybind) to be able to pause it
  • i recognize that pressing any arbitrary playlist keybind once or twice would get it to pause, but i don’t necessarily want to lose my place in the playlist i was on by accidentally switching to another playlist (consider a long playlist that doesn’t use shuffle)
  • perhaps a user is playing less-used playlist without a keybind assigned and wishes to pause
  • this is so important to me that i often manually assign ā€˜space’ to the playlist i’m using, and this discourages me from properly using the software
  • it just seems like common sense to be able to reliably pause a machine with the same button every time instead of thinking about how best to do it, no? every digitally-controlled machine i have ever used in my life is designed this way except for an airplane or something.

Ah, I didn’t understand it as a global play/pause.
I will add it asap.

BTW, you can now change the refille buffer size from the settings pag

I have published a new version of the app this week, you can now bind a key to the global play/pause action.
It taked some time, the app needed some refactoring ^^

:warning: Note that you may need to delete old bindings before rebinding them to avoid some side effects.

1 Like

i don’t think i have fully taken advantage of the concept of this software largely because i have not had time to make a very good pattern bank.

however, i have used it a good amount: some with randomized pattern playlists (should be better when i make a better bank), long scripts like from hungswolo, and even as a general purpose video+script player, and i am very pleased with it.

this is the best player that i’m aware of (caveat: have not tried any windows-only players). thanks.

1 Like

Any chance of this working with T-Code devices in future? I don’t think Intiface supports it.

Hi there, sorry for the delay, its vacancies time for me.
It’s look like butblug.io is supporting T-Code devices, so there is a chance that Initiface central can interract with it.
I guess that you have one so can you try installing intiface central and see if it can detect your device and send basics commands ?