taburineagle / MPC-HC-Looper

A/B looping program to complement the MPC-HC media player, with speed controls, playlist creation (and saving), and tie-in to my Looper Trimmer EDL editing program.
Other
15 stars 1 forks source link

Playback speed slider does not remember its value #8

Open h0rn3z0r opened 3 years ago

h0rn3z0r commented 3 years ago

If you change playback speed and switch current file, the range slider value will be reset to 100%, although file speed will remain unchanged. The slider should remember its position on file change.

h0rn3z0r commented 3 years ago

Hm, excuse me, but an additional clarification here is needed. I was using quite an outdated version and now I see some work was done on this issue. Right now video speed also resets in sync with slider, but what if one needs to keep the same speed throughout the session?

I am not sure what behavior is desirable, some people will prefer the "old" way of handling speed and others find new scenario more handy. That's something worth thinking about.

taburineagle commented 3 years ago

The "resetting with sync" is the way it should work - I have released several bugfix versions of Looper since the last "official" release, but I'm actually working on completely re-writing Looper's codebase in another language at the moment (that project is here: Looper 2), so I haven't released a "proper" release from the AutoIt (this) codebase in a while... (Long story short, AutoIt-based executables have had increasing problems in the past few years as coming up with false positives on virus scanners due to the way the compiled .exe stores its runtime, so even releasing incremental updates to this codebase have been extremely frustrating for me, as I get results saying "Malicious!" when there is nothing malicious at all in my program.), ha, so, due to that, I have completely re-written Looper in VB.NET to have more control over compilation, as those issues don't present themselves using that language, which is why I'm several "official" versions behind on my website.

One question though, when you say "keep the same speed throughout the session", do you mean when changing files in MPC-HC/BE, or just the same "session" using the same media file? Looper has always been written to reset the speed back to 100% when changing media files (if you jump to the next file in a folder, or open another file in MPC-HC/BE for instance), so would that be a feature request to not behave that way?

h0rn3z0r commented 3 years ago

when you say "keep the same speed throughout the session", do you mean when changing files in MPC-HC/BE, or just the same "session" using the same media file?

Sorry, maybe used a wrong term - I mean keep the same speed setting across all files until you close the program.

Looper has always been written to reset the speed back to 100% when changing media files (if you jump to the next file in a folder, or open another file in MPC-HC/BE for instance)

That's how it works and it's totally fine. But the problem lies in the playlist. On the latest release version (07-20-19) when you click on any event in the playlist (no matter if it is the same file or another) or when the looper switches event automatically in the Playlist Mode, the same speed setting is kept (!) and the slider resets to 100%, creating a discrepancy. This is what the issue is about.

I, personally, thought the slider was resetting by a mistake in this situation, overall behavior is intentional and got used to it. In the latest bugfix version playback speed always resets in sync with the slider on any event change. If that's how it's supposed to work then all right.

taburineagle commented 3 years ago

Sorry, maybe used a wrong term - I mean keep the same speed setting across all files until you close the program.

Ah, that's what I thought you meant - I could definitely add that in as a feature in a later version, where the speed doesn't automatically jump to 100% when you change files (unless an event has a speed set). At the moment, it's really only written to snap back to 100% as kind of a "clean slate" kind of function in most cases.

I, personally, thought the slider was resetting by a mistake in this situation

Ha, yeah - you're definitely correct, that's not how it's supposed to work :) The speed slider is supposed to always mirror the speed MPC-HC/BE is playing at, although the earlier version had an issue where MPC-HC wasn't getting the command first. The bugfix version is how it's supposed to act.

taburineagle commented 3 years ago

Ah, I was unaware writing "fix" in a commit closed the issue completely :) OK - new version, to fix both the shuffling order randomization in Shuffle Mode and the feature request to keep the speed consistant - to turn this feature on and keep the speed setting the same throughout the session, add this line, under the [Prefs] section of MPCLooper.ini:

dontForceSpeedReset=1

Here is an .exe version from this commit to try these features out with: MPC-HC Looper 03-20-21 RC .exe download

h0rn3z0r commented 3 years ago

The new setting does not work for me unfortunately, seems like it resets somewhere else.

I also want to suggest using the Releases page for sharing executables. The repository itself is not the best place to store them. You can mark such "testing" versions as a pre-release and they won't replace the current stable latest release version on the main page.

taburineagle commented 3 years ago

Ah, yes, you are correct - I will do future shares in the Releases page - I don't think that existed when I started pushing Looper to GitHub when I first started (I think they were only doing "tags" then - although I could be wrong on that...), that's why I've done it the other way... but that's definitely better!

Hmm... strange, looking through the code, the only other time the speed is set to 100% deliberately is when you quit out of MPC-HC and ask Looper to open it back up again, or when you ask it to load an event that's set to play at 100% (as events always supersede the current speed setting.) Just to make sure, are you adding the dontForceSpeedReset=1 setting under the [Prefs] section of MPCLooper.ini? Mine at the moment for testing looks like this, with that added directly above the [System] section -

[Prefs]
MPCConfirm=1
loopPreviewLength=0.25
loopSlipLength=1
loopButtonMode=Loop Mode
alwaysOnTop=1
dontForceSpeedReset=1
[System]
MPCEXE=C:\Program Files\MPC-HC\mpc-hc64.exe
h0rn3z0r commented 3 years ago

Sorry, my fault, I misunderstood what the new feature does exactly, after some extra testing I finally realized what kind of setting is truly needed: something like "allow the slider to override speed settings".

So, new files should load with a default 100% speed like before when this setting is turned off. If it is enabled:

taburineagle commented 3 years ago

Ah, got you, OK - so, just to make absolutely sure I understand before changing things,

When the setting is turned off,

When the setting is turned on:

h0rn3z0r commented 3 years ago

That is correct!