Aegisub/src/command
Vincent Wong 4b3ffd8a3c Audio/Timing: implement tap-to-time
Tap-to-time provides the user the ability to tap to the lyrics/syllables
of the song in order to time lines or karaoke. It consists of these
extra UI interactions:

- **Indicator**: tap marker: a designated marker that can be moved to
  the current audio position; indicated in:
  - the audio display by a green arrow underneath a marker
  - the karaoke display by a green-colored syllable
- **Control**: tap marker: the tap marker can be changed by selecting
  syllables on audio display in karaoke mode, or clicking the markers on
  audio display in dialogue mode
- **Control**: ctrl-right-click audio display: starts playing the audio
  from that exact position until the end of the file
- **Option**: Timing/Tap To Time: enables the tap marker indicator and
  commands
- **Button**: time_opt_tap_to_time: toggles the Timing/Tap To Time option
- **Button**: time_tap_connect (hotkey I): a command that:
  - moves the tap marker's position to the current playing audio
    position
  - sets the next marker to be the tap marker
  - if the tap marker is already the last marker AND BOTH autocommit AND
    next-line-on-commit is ON, will move onto the next line
  - if moved on to the next line, also sets the start marker to the current
    audio position, so the two lines are connected, and moves to the
    next tap marker (essentially reinvoking time_tap_connect once)
- **Button**: time_tap_no_connect (hotkey O): similar to
  time_tap_connect, except it will not set the next line's start
  position even if moved to the next line

Expected workflow:
1) User loads song lyrics
2) User splits each line into syllables
3) User turns on tap-to-time, autocommit, and next-line-on-commit
4) User plays audio from beginning, tapping time_tap_connect to each
syllable, occasionally tapping time_tap_no_connect when a break between
lines is desired
5) If user messes up a line, they can set the tap marker to where they
want to restart from, and ctrl-right-click to start the audio a few
seconds before it
6) Syllables can be split/merged at will, and adjustments to timing can
be done using normal karaoke timing controls
2021-03-01 18:27:34 +01:00
..
app.cpp Add the standard OS X "Window" menu 2016-03-13 16:33:53 -07:00
audio.cpp Add .webm to extension list, add .eac3 as an audio format 2019-09-22 17:41:02 -07:00
automation.cpp Move global_scripts to options.h 2014-06-06 12:08:41 -07:00
command.cpp Replace wxString::Format with agi::format 2014-05-30 11:53:14 -07:00
command.h Use appropriate DPI images in more places on macOS 2019-10-06 12:46:06 -07:00
edit.cpp Fix line order when splitting after current frame 2019-09-22 17:39:43 -07:00
grid.cpp Clean up unused includes 2014-05-23 07:28:24 -07:00
help.cpp Point users at a functional bug tracker 2019-09-22 17:39:43 -07:00
keyframe.cpp Eliminate implicit std::string <-> wxString conversions 2015-01-01 10:24:00 -08:00
recent.cpp Fix compilation on Linux 2015-12-21 19:57:49 -08:00
subtitle.cpp Fix compilation on Linux 2015-12-21 19:57:49 -08:00
time.cpp Audio/Timing: implement tap-to-time 2021-03-01 18:27:34 +01:00
timecode.cpp Eliminate implicit std::string <-> wxString conversions 2015-01-01 10:24:00 -08:00
tool.cpp Move tool_translation_assistant_insert into the anonymous namespace 2014-12-28 20:31:48 -08:00
video.cpp Recognize .opus as an audio format, .h264 .hevc as video formats 2019-09-22 17:41:02 -07:00
vis_tool.cpp Clean up unused includes 2014-05-23 07:28:24 -07:00