ardour.git
8 years agomodify Selection API to provide (default-valued) "with_signal" argument to all :...
Paul Davis [Fri, 29 Jan 2016 21:05:03 +0000 (16:05 -0500)]
modify Selection API to provide (default-valued) "with_signal" argument to all ::clear_*() methods

This allows the clear methods to be used before calling ::add(), to avoid the
emission of a signal saying "there are no <foo> selected right now".

There should be no side-effects from this commit.

Note that correct use of this new API is complex, and requires avoiding the use
of wrapper methods like clear_objects().

8 years agomackie: if a subview mode is not OK because there's no selection, show no message
Paul Davis [Fri, 29 Jan 2016 19:49:28 +0000 (14:49 -0500)]
mackie: if a subview mode is not OK because there's no selection, show no message

8 years agoNOOP: change brace placement to avoid confusing emacs
Paul Davis [Fri, 29 Jan 2016 19:48:14 +0000 (14:48 -0500)]
NOOP: change brace placement to avoid confusing emacs

8 years agomackie: make group button (appear) to do something
Paul Davis [Fri, 29 Jan 2016 19:47:40 +0000 (14:47 -0500)]
mackie: make group button (appear) to do something

8 years agoMackie protocol: More LED indicator fixes.
Ben Loftis [Fri, 29 Jan 2016 20:26:08 +0000 (14:26 -0600)]
Mackie protocol: More LED indicator fixes.

8 years agomixbus: don't assert(ch_post()) in case we use various methods on "odd" Routes in...
Paul Davis [Fri, 29 Jan 2016 18:02:00 +0000 (13:02 -0500)]
mixbus: don't assert(ch_post()) in case we use various methods on "odd" Routes in the future

8 years agomixbus: vpot press in non-subview mode should toggle master bus send
Paul Davis [Fri, 29 Jan 2016 17:58:50 +0000 (12:58 -0500)]
mixbus: vpot press in non-subview mode should toggle master bus send

8 years agoadd new Route API ::master_send_enable_controllable() to provide generic access to...
Paul Davis [Fri, 29 Jan 2016 17:58:15 +0000 (12:58 -0500)]
add new Route API ::master_send_enable_controllable() to provide generic access to a mixbus-centric control

8 years agomackie: in Sends subview mode, the enable control for the send should be looked upin...
Paul Davis [Fri, 29 Jan 2016 17:40:13 +0000 (12:40 -0500)]
mackie: in Sends subview mode, the enable control for the send should be looked upin the subview route, not the strip's own route

8 years agoButton::AudioInstruments should not be lit without good reason.
Ben Loftis [Fri, 29 Jan 2016 17:27:54 +0000 (11:27 -0600)]
Button::AudioInstruments should not be lit without good reason.

8 years agomackie: redesign display logic entirely
Paul Davis [Fri, 29 Jan 2016 17:26:41 +0000 (12:26 -0500)]
mackie: redesign display logic entirely

Strips now maintain a pair of pending display strings (upper and lower).
A periodic timeout writes the pending value to the actual hardware if it
differs from the current string. This new design makes it easy to put a
message on the display and then after some period of time, revert to
whatever was there before.

8 years agoAnother attempt fixing crash at exit on windows.
Robin Gareus [Fri, 29 Jan 2016 17:22:57 +0000 (18:22 +0100)]
Another attempt fixing crash at exit on windows.

8 years agoMackie Protocol: HasSeparateMeters flag for X-Touch devices
Ben Loftis [Fri, 29 Jan 2016 16:31:47 +0000 (10:31 -0600)]
Mackie Protocol: HasSeparateMeters flag for X-Touch devices

8 years agoAdded Behringer X-Touch device files.
Ben Loftis [Fri, 29 Jan 2016 16:10:17 +0000 (10:10 -0600)]
Added Behringer X-Touch device files.

8 years agomackie: fix Global View button function
Paul Davis [Fri, 29 Jan 2016 04:20:03 +0000 (23:20 -0500)]
mackie: fix Global View button function

Bug introduced changing logic for set_view_mode()

8 years agomackie: don't overload "Audio Instruments" and "Instruments" buttons.
Paul Davis [Fri, 29 Jan 2016 04:05:14 +0000 (23:05 -0500)]
mackie: don't overload "Audio Instruments" and "Instruments" buttons.

With the MCU Pro, the button labelled "Instruments" uses the Dyn button ID.
The one labelled "Audio Instruments" does not.

This may break Nucleus support - needs to be checked

8 years agomackie: use Route::send_name() rather than Route::nth_send()
Paul Davis [Fri, 29 Jan 2016 04:03:55 +0000 (23:03 -0500)]
mackie: use Route::send_name() rather than Route::nth_send()

8 years agomackie: fix display of send level value
Paul Davis [Fri, 29 Jan 2016 04:03:02 +0000 (23:03 -0500)]
mackie: fix display of send level value

8 years agoadd new API to Route to get name of "well-known" nth-send
Paul Davis [Fri, 29 Jan 2016 04:02:11 +0000 (23:02 -0500)]
add new API to Route to get name of "well-known" nth-send

Route::nth_send() has the wrong semantics in Mixbus for this purpose. Probably
need to revisit this at some point

8 years agofix device-list update concurrency issue.
Robin Gareus [Fri, 29 Jan 2016 00:12:32 +0000 (01:12 +0100)]
fix device-list update concurrency issue.

It may happen that during push_state_to_backend() a device is
reconfigured in a way that triggers a "Device Changed" callback before
the engine is started. This callback can trigger a change to the
configuration that will be used when the engine is actually started.

This has been seen on OSX in conjunction with Aggregate Devices
(even if the aggregate is not used, but the device which is used
is also part of an aggregate)

example: HW changed callback arrives, device-list is re-populated,
*A*irplay" is at the top of the list, Airplay supports only 44.1K,
Samplerate changes... later save also writes this new rate to the file.

8 years agoBuses and Auxes are slightly different view-filters in Mixbus
Ben Loftis [Thu, 28 Jan 2016 23:21:42 +0000 (17:21 -0600)]
Buses and Auxes are slightly different view-filters in Mixbus

8 years agoprevent bank/channel switching past the end of the available routes; do nothing when...
Paul Davis [Thu, 28 Jan 2016 21:27:33 +0000 (16:27 -0500)]
prevent bank/channel switching past the end of the available routes; do nothing when a view mode finds no matching routes

8 years agomackie: improvements to display when switching subview modes
Paul Davis [Thu, 28 Jan 2016 20:08:19 +0000 (15:08 -0500)]
mackie: improvements to display when switching subview modes

8 years agomake Send button light appropriately
Paul Davis [Thu, 28 Jan 2016 19:01:14 +0000 (14:01 -0500)]
make Send button light appropriately

8 years agoEditing from a control surface must have the ability to ignore mouse location.
Ben Loftis [Thu, 28 Jan 2016 19:43:47 +0000 (13:43 -0600)]
Editing from a control surface must have the ability to ignore mouse location.
Add mark_in and mark_out actions that explicitly use the playhead as the edit location.

8 years agoUse visible playhead location for editing during a jog-wheel event.
Ben Loftis [Thu, 28 Jan 2016 19:42:50 +0000 (13:42 -0600)]
Use visible playhead location for editing during a jog-wheel event.

8 years agoCenter the playhead for stationary_playhead playback.
Ben Loftis [Wed, 27 Jan 2016 23:10:59 +0000 (17:10 -0600)]
Center the playhead for stationary_playhead playback.
This avoids a visual discontinuity when playback is initiated after a jog-event.

8 years agoInitialize Editor::clicked_selection to prevent programming error dialog/exit
Tim Mayberry [Thu, 28 Jan 2016 03:30:59 +0000 (13:30 +1000)]
Initialize Editor::clicked_selection to prevent programming error dialog/exit

This was triggered when reloading session and immediately duplicating range with
keyboard shortcut. As clicked_selection was uninitialized it would try to use
an invalid index into the TimeSelection.

8 years agoChange duplicate range to use time range/s rather than a single region
Tim Mayberry [Wed, 27 Jan 2016 13:18:06 +0000 (23:18 +1000)]
Change duplicate range to use time range/s rather than a single region

This should fix bugs #4980, #4984, #4986 and #6579

8 years agoAdd Playlist::duplicate_range/s utility methods
Tim Mayberry [Wed, 27 Jan 2016 13:04:33 +0000 (23:04 +1000)]
Add Playlist::duplicate_range/s utility methods

8 years agomackie: fix subview mode logic
Paul Davis [Thu, 28 Jan 2016 00:05:47 +0000 (19:05 -0500)]
mackie: fix subview mode logic

8 years agomackie: clean up (some) interactions between subview mode and selection
Paul Davis [Thu, 28 Jan 2016 00:00:21 +0000 (19:00 -0500)]
mackie: clean up (some) interactions between subview mode and selection

Also, stop Plugin button from doing anything, since it has nothing to do yet

8 years agoFix AU port-name encoding.
Robin Gareus [Wed, 27 Jan 2016 23:00:47 +0000 (00:00 +0100)]
Fix AU port-name encoding.

This allows us to revert ec8cf4e4, maybe. After testing if
port-names are still properly displayed.

8 years agoFix µ-iness.
Robin Gareus [Wed, 27 Jan 2016 22:39:35 +0000 (23:39 +0100)]
Fix µ-iness.

8 years agoUse proper UTF8 file-names during export.
Robin Gareus [Wed, 27 Jan 2016 21:57:31 +0000 (22:57 +0100)]
Use proper UTF8 file-names during export.

8 years agoremove debug output
Paul Davis [Wed, 27 Jan 2016 21:26:50 +0000 (16:26 -0500)]
remove debug output

8 years agomonitor send does not count in Route::nth_send()
Paul Davis [Wed, 27 Jan 2016 21:26:41 +0000 (16:26 -0500)]
monitor send does not count in Route::nth_send()

8 years agomackie: semi-working Sends subview mode
Paul Davis [Wed, 27 Jan 2016 19:15:41 +0000 (14:15 -0500)]
mackie: semi-working Sends subview mode

8 years agono need for multiple send level/enable parameter types
Paul Davis [Wed, 27 Jan 2016 19:15:34 +0000 (14:15 -0500)]
no need for multiple send level/enable parameter types

8 years agoremove mackie send pot mode (subview mode for sends coming up)
Paul Davis [Wed, 27 Jan 2016 17:41:01 +0000 (12:41 -0500)]
remove mackie send pot mode (subview mode for sends coming up)

8 years agoreturn relevant AutomationControl for send_level_controllable() in Ardour
Paul Davis [Wed, 27 Jan 2016 16:38:14 +0000 (11:38 -0500)]
return relevant AutomationControl for send_level_controllable() in Ardour

8 years agomake Route::nth_send() and Route::nth_processor() be const
Paul Davis [Wed, 27 Jan 2016 16:37:54 +0000 (11:37 -0500)]
make Route::nth_send() and Route::nth_processor() be const

8 years agoadd stubs and enums to access "well-known" send controls
Paul Davis [Wed, 27 Jan 2016 16:16:13 +0000 (11:16 -0500)]
add stubs and enums to access "well-known" send controls

8 years agoadd Novation_LaunchKey25.map
Ben Loftis [Tue, 26 Jan 2016 22:48:00 +0000 (16:48 -0600)]
add Novation_LaunchKey25.map

8 years agosatisfy some pedantic compilers, #6748
Robin Gareus [Tue, 26 Jan 2016 14:14:55 +0000 (15:14 +0100)]
satisfy some pedantic compilers, #6748

8 years agowhen using InverseGroup for rec-enable, do not collect group members and pass them...
Paul Davis [Tue, 26 Jan 2016 03:10:43 +0000 (22:10 -0500)]
when using InverseGroup for rec-enable, do not collect group members and pass them to a session RT event method

8 years agoNOOP: whitespace fixes
Paul Davis [Tue, 26 Jan 2016 03:08:47 +0000 (22:08 -0500)]
NOOP: whitespace fixes

8 years agowhen using InverseGroup for solo, do not collect group members and pass them to a...
Paul Davis [Tue, 26 Jan 2016 03:08:23 +0000 (22:08 -0500)]
when using InverseGroup for solo, do not collect group members and pass them to a session RT event method

8 years agofix/improve logic for InverseGroup
Paul Davis [Tue, 26 Jan 2016 03:07:36 +0000 (22:07 -0500)]
fix/improve logic for InverseGroup

the route group is "inactive for predicate" if EITHER the
group itself is inactive, or the predicate returns false.

8 years agowhen using InverseGroup, do not collect group members and pass them to a session...
Paul Davis [Tue, 26 Jan 2016 03:06:41 +0000 (22:06 -0500)]
when using InverseGroup, do not collect group members and pass them to a session RT event method

8 years agofaderport: add a few more sensible actions to the footswitch options
Paul Davis [Mon, 25 Jan 2016 20:00:39 +0000 (15:00 -0500)]
faderport: add a few more sensible actions to the footswitch options

8 years agofaderport: add footswitch combos to GUI to allow user control over what the switch...
Paul Davis [Mon, 25 Jan 2016 19:48:21 +0000 (14:48 -0500)]
faderport: add footswitch combos to GUI to allow user control over what the switch does

8 years agofaderport: add footswitch button
Paul Davis [Mon, 25 Jan 2016 19:32:09 +0000 (14:32 -0500)]
faderport: add footswitch button

8 years agouse route gain control, not amp->gain()
Paul Davis [Mon, 25 Jan 2016 16:48:43 +0000 (11:48 -0500)]
use route gain control, not amp->gain()

8 years agoGainMeter(Base) now has an explicit gain control given to it
Paul Davis [Mon, 25 Jan 2016 16:47:44 +0000 (11:47 -0500)]
GainMeter(Base) now has an explicit gain control given to it

8 years agochange exposed type of various objects' gain controls; remove Amp::gain() as a shortcut
Paul Davis [Mon, 25 Jan 2016 16:47:21 +0000 (11:47 -0500)]
change exposed type of various objects' gain controls; remove Amp::gain() as a shortcut

8 years agoMake horizontal scroll increment consistent in ruler and track canvas areas
Tim Mayberry [Mon, 25 Jan 2016 07:26:11 +0000 (17:26 +1000)]
Make horizontal scroll increment consistent in ruler and track canvas areas

In response to a comment in #6722, as there is little delineation between the
ruler and track canvas areas it makes sense to keep the scrolling step the same
to avoid unintended jumps in scrolling if mouse cursor moves between areas.

8 years agodeactivate plugin if connect_and_run returns an error
Robin Gareus [Sun, 24 Jan 2016 02:19:24 +0000 (03:19 +0100)]
deactivate plugin if connect_and_run returns an error

8 years agoadd wrapper for ChanMapping::get()
Robin Gareus [Sun, 24 Jan 2016 00:11:15 +0000 (01:11 +0100)]
add wrapper for ChanMapping::get()

The boolean "valid" is implicit, get() returns -1 (really UINT32_MAX)
This simplifies upcoming lua bindings

8 years agoAdded midi map file for AKAI MPK MINI
Robert Schneider [Sat, 23 Jan 2016 14:07:55 +0000 (15:07 +0100)]
Added midi map file for AKAI MPK MINI

8 years agoremove incorrect/out of date comment
Paul Davis [Thu, 21 Jan 2016 17:25:27 +0000 (12:25 -0500)]
remove incorrect/out of date comment

8 years agono reason to have group edit dialog be modal
Paul Davis [Thu, 21 Jan 2016 17:24:38 +0000 (12:24 -0500)]
no reason to have group edit dialog be modal

8 years agofix rebase issue from master
Paul Davis [Thu, 21 Jan 2016 17:24:28 +0000 (12:24 -0500)]
fix rebase issue from master

8 years agorename Controllable::WholeGroup => InverseGroup to reflect real intent.
Paul Davis [Thu, 21 Jan 2016 17:04:20 +0000 (12:04 -0500)]
rename Controllable::WholeGroup => InverseGroup to reflect real intent.

Add logic to RouteGroupMember::use_group() to implement the real intent of InverseGroup

8 years agofirst compiling, mostly working version of group controls changes
Paul Davis [Thu, 21 Jan 2016 16:03:14 +0000 (11:03 -0500)]
first compiling, mostly working version of group controls changes

8 years agoNOOP: whitespace fixup
Paul Davis [Fri, 22 Jan 2016 16:44:26 +0000 (11:44 -0500)]
NOOP: whitespace fixup

8 years agowhen leaving an active automation state, update fader displays to show correct curren...
Paul Davis [Fri, 22 Jan 2016 16:43:27 +0000 (11:43 -0500)]
when leaving an active automation state, update fader displays to show correct current value

8 years agoModify our MSVC project to accommodate newly introduced source files (libardour)
John Emmas [Fri, 22 Jan 2016 12:29:30 +0000 (12:29 +0000)]
Modify our MSVC project to accommodate newly introduced source files (libardour)

8 years agoAdd a link library that's now needed when building ardour_cp
John Emmas [Fri, 22 Jan 2016 12:28:01 +0000 (12:28 +0000)]
Add a link library that's now needed when building ardour_cp

Now needs 'Timecode::BBT_Time' (from Ardour's 'timecode' lib).

8 years agoFix bug 6735, Take into account snap to when stretching regions in Editor
Tim Mayberry [Thu, 21 Jan 2016 04:00:54 +0000 (14:00 +1000)]
Fix bug 6735, Take into account snap to when stretching regions in Editor

8 years agoBug #6722, Add UI config option to always use mouse position as zoom focus on scroll
Tim Mayberry [Thu, 7 Jan 2016 11:55:22 +0000 (21:55 +1000)]
Bug #6722, Add UI config option to always use mouse position as zoom focus on scroll

This means that mouse zoom scrolling behaviour is consistent on the ruler
canvas area and track canvas area.

The config option defaults to true so this means the behaviour of Mixbus will
be unchanged but in Ardour the ruler area will now follow the option so by
default will use the mouse position as zoom focus when zooming rather than the
zoom focus setting.

8 years agoRefactor code into Editor::temporal_zoom_step_mouse_focus method
Tim Mayberry [Thu, 7 Jan 2016 11:19:09 +0000 (21:19 +1000)]
Refactor code into Editor::temporal_zoom_step_mouse_focus method

8 years agoFix/implement #6292, Shift + scroll wheel Scrolling in the ruler area
Tim Mayberry [Thu, 7 Jan 2016 06:33:51 +0000 (16:33 +1000)]
Fix/implement #6292, Shift + scroll wheel Scrolling in the ruler area

Keep the same scrolling distance per event as when scroll left/right is used.

Scrolling in the ruler area is different than the track canvas area which I'm
not sure is a great idea as there is not much delineation between the two areas
but as the ruler area has some other different behaviour it is probably
acceptable/useful.

8 years agoChange scrolling in the Editor track canvas summary area
Tim Mayberry [Thu, 7 Jan 2016 01:33:45 +0000 (11:33 +1000)]
Change scrolling in the Editor track canvas summary area

Keep scroll distance consistent when scrolling up and down with horizontal
modifier as when scrolling left to right.

Scroll horizonally by half a page so that no sections of the canvas are skipped
when scrolling.

Scroll by half a page rather than a step like when scrolling in the track
canvas area as it is a summary area so larger steps seem acceptable and having
it use the same scroll distance as when scrolling in the track canvas seems
pointless as you would then just scroll in the track canvas area.

8 years agoRefactor scrolling in Editor ruler canvas area into two utility methods
Tim Mayberry [Thu, 7 Jan 2016 01:26:22 +0000 (11:26 +1000)]
Refactor scrolling in Editor ruler canvas area into two utility methods

8 years agoRemove goto in Editor::track_canvas_scroll
Tim Mayberry [Thu, 7 Jan 2016 05:44:24 +0000 (15:44 +1000)]
Remove goto in Editor::track_canvas_scroll

8 years agoRefactor scrolling track canvas in Editor class into two utility methods
Tim Mayberry [Thu, 7 Jan 2016 00:30:29 +0000 (10:30 +1000)]
Refactor scrolling track canvas in Editor class into two utility methods

8 years agoCzech translation update #6739
Pavel Fric [Wed, 20 Jan 2016 23:49:10 +0000 (00:49 +0100)]
Czech translation update #6739

8 years agoTransport_play should not jump back.
Ben Loftis [Tue, 19 Jan 2016 20:00:51 +0000 (14:00 -0600)]
Transport_play should not jump back.

Typical use of transport controls is to ffwd and rewind, then "play".
This doesn't work well if the Play command always resets to starting position.

8 years agoAdd all_tracks_rec actions
Ben Loftis [Tue, 19 Jan 2016 20:00:03 +0000 (14:00 -0600)]
Add all_tracks_rec actions

8 years agomackie: remove unnecessary connection to route group property change signal
Paul Davis [Tue, 19 Jan 2016 19:25:48 +0000 (14:25 -0500)]
mackie: remove unnecessary connection to route group property change signal

8 years agoRevert "mackie: still respond to route groups visibility changes"
Paul Davis [Tue, 19 Jan 2016 19:16:49 +0000 (14:16 -0500)]
Revert "mackie: still respond to route groups visibility changes"

This reverts commit a9ec547457bfa65655ee946063426f1ba85b6f91.

8 years agomackie: still respond to route groups visibility changes
Paul Davis [Tue, 19 Jan 2016 18:38:29 +0000 (13:38 -0500)]
mackie: still respond to route groups visibility changes

8 years agomackie: remove changes to group activation status when fetching routes to display
Paul Davis [Tue, 19 Jan 2016 17:46:08 +0000 (12:46 -0500)]
mackie: remove changes to group activation status when fetching routes to display

This creates an activation loop, because we fetch new routes to display when
group active status is changed. This was done to provide individual access to
routes that are in a group. We plan to do this using a shift modifier instead.

8 years agoadd explanatory comment regarding IP_MULTICAST_LOOP, remove cout debug msg
Paul Davis [Mon, 18 Jan 2016 23:36:11 +0000 (18:36 -0500)]
add explanatory comment regarding IP_MULTICAST_LOOP, remove cout debug msg

8 years agotry using reversed IP_MULTICAST_LOOP semantics for windows
Paul Davis [Mon, 18 Jan 2016 23:15:48 +0000 (18:15 -0500)]
try using reversed IP_MULTICAST_LOOP semantics for windows

8 years agomomo ip midi debugging
Paul Davis [Mon, 18 Jan 2016 22:57:06 +0000 (17:57 -0500)]
momo ip midi debugging

8 years agomo' ip midi debugging
Paul Davis [Mon, 18 Jan 2016 22:18:44 +0000 (17:18 -0500)]
mo' ip midi debugging

8 years agoremove ipmidi debugging
Paul Davis [Mon, 18 Jan 2016 21:57:50 +0000 (16:57 -0500)]
remove ipmidi debugging

8 years agowindows, i love you, more
Paul Davis [Mon, 18 Jan 2016 21:43:27 +0000 (16:43 -0500)]
windows, i love you, more

8 years agowindows, i love you
Paul Davis [Mon, 18 Jan 2016 21:41:59 +0000 (16:41 -0500)]
windows, i love you

8 years agodebug IP multicast loopback
Paul Davis [Mon, 18 Jan 2016 21:38:25 +0000 (16:38 -0500)]
debug IP multicast loopback

8 years agouse cout instead of cerr, since this debugging is for windows
Paul Davis [Mon, 18 Jan 2016 20:53:28 +0000 (15:53 -0500)]
use cout instead of cerr, since this debugging is for windows

8 years agoIP MIDI debugging
Paul Davis [Mon, 18 Jan 2016 19:45:24 +0000 (14:45 -0500)]
IP MIDI debugging

8 years agoadd 10sec zoom action
Ben Loftis [Sun, 17 Jan 2016 03:30:00 +0000 (21:30 -0600)]
add 10sec zoom action

8 years agotrack scrolling and zooming
Ben Loftis [Sun, 17 Jan 2016 02:33:04 +0000 (20:33 -0600)]
track scrolling and zooming

8 years agoadd some horz and vert zoom actions; remove some whitespace from the code of the...
Ben Loftis [Sun, 17 Jan 2016 01:32:00 +0000 (19:32 -0600)]
add some horz and vert zoom actions;  remove some whitespace from the code of the ui-actions, so they are easier to see and maintain

8 years agoadd more remote transport toggles for touchOSC: midi_panic, toggle_roll, stop_forget...
Ben Loftis [Sat, 16 Jan 2016 18:33:49 +0000 (12:33 -0600)]
add more remote transport toggles for touchOSC:  midi_panic, toggle_roll, stop_forget, set_X_range, quick snapshots.  also add boilerplate for monitor controls, but those are not implemented yet

8 years agoimplement mark_in, mark_out, toggle_click
Ben Loftis [Fri, 15 Jan 2016 23:11:19 +0000 (17:11 -0600)]
implement mark_in, mark_out, toggle_click

8 years agoimplement remover_marker, jump_by_bars, and jump_by_seconds
Ben Loftis [Fri, 15 Jan 2016 22:40:46 +0000 (16:40 -0600)]
implement remover_marker, jump_by_bars, and jump_by_seconds