On Tuesday, August 10, 2021, Phyllis Smith via Cin < [email protected]> wrote:
Andrew,
so i wondered if changing speed for fast/slow reverse and normal playback was possible..
after few hours of hacking I made this patch.
it makes fast/slow playback speed configurable in Cinelerra_rc via new stored variables:
I like it! Since I do not know C++, I am just asking if "TransportCommand" lines in other .h files need changing too? For example:
fileref.h: TransportCommand *command; module.h: TransportCommand *nested_command; packagerenderer.h: TransportCommand *command; playbackengine.h: int put_command(TransportCommand *command, int reset); playbackengine.h: TransportCommand *command, *stop_command; playbackengine.h: TransportCommand *next_command, *sent_command; renderengine.h: int arm_command(TransportCommand *command); renderengine.h: TransportCommand *command; transportque.h:class TransportCommand transportque.h: TransportCommand(); transportque.h: ~TransportCommand(); transportque.h: void copy_from(TransportCommand *command);
hm, I think (!) those mostly links to same slightly redefined object. But may be I missed something too ( probably more testing needed.. but I guess if we put this patch in git and it will break something we always can revert?
You probably already went over the above, but just making sure and if all is good then I can check it into GIT. One of the things I like about it is that if you never use SLOW, you can set it to a different fast speed and get 2 different FAST speeds ! This gives you some of the capability of a Shuttle. Let me know and thanks, Phyllis
interesting use of it, I never thought about this! also, in Cinelerra_rc there is scrub_speed variable already, may be it related to (default) shuttle scrubbing speed (can you test when you have time? ) SAMPLERATE 48000 SCRUB_SPEED 2.000000e+00 there seems to be some commented-out code in mainmenu related to this.. $ grep scrub_speed cinelerra/* grep: cinelerra/armv8l: Is a directory grep: cinelerra/data: Is a directory cinelerra/edlsession.C: scrub_speed = 2.; cinelerra/edlsession.C: scrub_speed = defaults->get("SCRUB_SPEED", (float)2); cinelerra/edlsession.C: defaults->update("SCRUB_SPEED", scrub_speed); cinelerra/edlsession.C: scrub_speed = session->scrub_speed; cinelerra/edlsession.h: float scrub_speed; cinelerra/mainmenu.C:// ScrubSpeed *scrub_speed; cinelerra/mainmenu.C:// settingsmenu->add_item(scrub_speed = new ScrubSpeed(mwindow)); cinelerra/mainmenu.C:// if(mwindow->edl->session->scrub_speed == .5) cinelerra/mainmenu.C:// scrub_speed->set_text(_("Fast Shuttle")); cinelerra/mainmenu.C: if(mwindow->edl->session->scrub_speed == .5) cinelerra/mainmenu.C: mwindow->edl->session->scrub_speed = 2; cinelerra/mainmenu.C: mwindow->edl->session->scrub_speed = .5; may be it was commented out because you can have variable speed with this device anyway?