Compare commits

...

8 Commits

Author SHA1 Message Date
Ben Loftis 828d1245c9 range analysis was only accessible by context-click; add to main menu 2022-06-06 14:17:39 -05:00
Ben Loftis 24df1503a8 add menu item for Consolidate Range 2022-06-06 14:17:39 -05:00
Ben Loftis c431575f22 add menu-accessible actions for Consolidate Range 2022-06-06 14:17:38 -05:00
Ben Loftis bd62f76875 fix redundant bounced-clips from a Consolidate operation 2022-06-06 14:17:35 -05:00
Ben Loftis d842326999 add some keybindings (for Nathan at Harrison)
* expand/shrink track height
* stem-export selected tracks
* create a range from selected regions
* consolidate range
* add a single Range marker for selected region(s)
* unlink (fork) midi region from linked regions
* toggle plugin manager window
* fixed shortcut for Crop

* moved "audio patchbay" from Alt-P to Alt-Shift-A,
    making it more consistent with Alt-Shift-M: MIDI patchbay
2022-06-06 14:16:57 -05:00
Ben Loftis c41ed2f133 keybindings: reformat for readability (no-op) 2022-06-06 14:16:57 -05:00
Ben Loftis 0fda55e4fe ftm-bindings tool: strip whitespace in input files 2022-06-06 14:16:57 -05:00
Ben Loftis 7225773660 fix Crop operation: all layers, preserve fades 2022-06-06 14:16:57 -05:00
5 changed files with 313 additions and 273 deletions

View File

@ -105,181 +105,186 @@ This mode provides many different operations on both regions and control points,
;; punctuation ;; punctuation
@vis|Editor/temporal-zoom-in|equal|zoom in @vis|Editor/temporal-zoom-in| equal|zoom in
@vis|Editor/temporal-zoom-out|minus|zoom out @vis|Editor/temporal-zoom-out| minus|zoom out
@vis|Editor/zoom-to-session|<@TERTIARY@>underscore|zoom to session @vis|Editor/expand-tracks| <@TERTIARY@>plus|expand track height
@eep|Editor/edit-cursor-to-previous-region-sync|apostrophe|EP to prev region sync @vis|Editor/shrink-tracks| <@TERTIARY@>equal|shrink track height
@eep|Editor/edit-cursor-to-next-region-sync|semicolon|EP to next region sync @vis|Editor/zoom-to-session| <@TERTIARY@>underscore|zoom to session
@eep|Editor/edit-cursor-to-previous-region-sync| apostrophe|EP to prev region sync
@eep|Editor/edit-cursor-to-next-region-sync| semicolon|EP to next region sync
@trans|Transport/ToggleRoll|space|toggle roll @trans|Transport/ToggleRoll| space|toggle roll
@trans|Transport/PlaySelection|<@SECONDARY@>space|play edit range @trans|Transport/PlaySelection| <@SECONDARY@>space|play edit range
@edit|Editor/play-from-edit-point-and-return|<@PRIMARY@><@TERTIARY@>space|play from EP \& return @edit|Editor/play-from-edit-point-and-return| <@PRIMARY@><@TERTIARY@>space|play from EP \& return
@trans|Transport/ToggleRollMaybe|<@PRIMARY@><@SECONDARY@>space|stop (keep loop/range play) @trans|Transport/ToggleRollMaybe| <@PRIMARY@><@SECONDARY@>space|stop (keep loop/range play)
@trans|Transport/ToggleRollForgetCapture|<@PRIMARY@>space|stop and destroy @trans|Transport/ToggleRollForgetCapture| <@PRIMARY@>space|stop and destroy
@trans|Transport/record-roll|<@TERTIARY@>space|start recording @trans|Transport/record-roll| <@TERTIARY@>space|start recording
@gmark|Common/add-location-from-playhead|Tab|add marker @gmark|Common/add-location-from-playhead| Tab|add marker
@gmark|Common/remove-location-from-playhead|<@PRIMARY@>nabla|add marker @gmark|Common/remove-location-from-playhead| <@PRIMARY@>nabla|add marker
@movp|Transport/alternate-GotoStart|Return|to start marker @movp|Transport/alternate-GotoStart| Return|to start marker
@edit|Editor/editor-fade-range|slash|fade range selection @edit|Editor/editor-fade-range| slash|fade range selection
@rop|Region/set-fade-in-length|<@PRIMARY@>slash|set fade in length @rop|Region/set-fade-in-length| <@PRIMARY@>slash|set fade in length
;;@rop|Region/toggle-region-fade-out|<@PRIMARY@>slash|toggle fade in active ;;@rop|Region/toggle-region-fade-out| <@PRIMARY@>slash|toggle fade in active
@rop|Region/set-fade-out-length|<@PRIMARY@>backslash|set fade out length @rop|Region/set-fade-out-length| <@PRIMARY@>backslash|set fade out length
;;@rop|Region/toggle-region-fade-out|<@PRIMARY@>backslash|toggle fade out active ;;@rop|Region/toggle-region-fade-out| <@PRIMARY@>backslash|toggle fade out active
@rop|Region/trim-to-previous-region|<@PRIMARY@>j|trim region to end of prev region @rop|Region/trim-to-previous-region| <@PRIMARY@>j|trim region to end of prev region
@rop|Region/trim-to-next-region|<@PRIMARY@>k|trim region to start of next region @rop|Region/trim-to-next-region| <@PRIMARY@>k|trim region to start of next region
@ranges|Editor/set-loop-from-edit-range|bracketright|set loop range from edit range @ranges|Editor/set-loop-from-edit-range| bracketright|set loop range from edit range
@ranges|Editor/set-punch-from-edit-range| bracketleft|set punch range from edit range
@ranges|Editor/set-punch-from-edit-range|bracketleft|set punch range from edit range
;; Alt+number row: region operations ;; Alt+number row: region operations
@rop|Region/toggle-region-mute|<@SECONDARY@>1|mute/unmute @rop|Region/toggle-region-mute| <@SECONDARY@>1|mute/unmute
@rop|Region/naturalize-region|<@SECONDARY@>2|move to original position @rop|Region/naturalize-region| <@SECONDARY@>2|move to original position
@rop|Region/normalize-region|<@SECONDARY@>3|normalize @rop|Region/normalize-region| <@SECONDARY@>3|normalize
@rop|Region/reverse-region|<@SECONDARY@>4|reverse @rop|Region/reverse-region| <@SECONDARY@>4|reverse
@rop|Region/quantize-region|<@SECONDARY@>5|quantize MIDI notes \linebreak[4] in selected region(s) @rop|Region/quantize-region| <@SECONDARY@>5|quantize MIDI notes \linebreak[4] in selected region(s)
@rop|Region/boost-region-gain|<@SECONDARY@>6|increase region gain @rop|Region/boost-region-gain| <@SECONDARY@>6|increase region gain
@rop|Region/cut-region-gain|<@SECONDARY@>7|reduce region gain @rop|Region/cut-region-gain| <@SECONDARY@>7|reduce region gain
@rop|Region/pitch-shift-region|<@SECONDARY@>8|transpose @rop|Region/pitch-shift-region| <@SECONDARY@>8|transpose
@rop|Region/rename-region|<@SECONDARY@>9|rename @rop|Region/rename-region| <@SECONDARY@>9|rename
@rop|Region/toggle-opaque-region|<@SECONDARY@>0|toggle region opacity @rop|Region/toggle-opaque-region| <@SECONDARY@>0|toggle region opacity
;; letters ;; letters
;; TOP ROW ;; TOP ROW
;; note that ctrl-w is special and consumed by the keyboard snooper ;; note that ctrl-w is special and consumed by the keyboard snooper
@gmark|Common/jump-backward-to-mark|q|to previous mark @gmark|Common/jump-backward-to-mark| q|to previous mark
@sess|Common/Quit|<@PRIMARY@>q|quit @sess|Common/Quit| <@PRIMARY@>q|quit
@gmark|Common/jump-forward-to-mark|w|to next mark @gmark|Common/jump-forward-to-mark| w|to next mark
@mmode|MouseMode/set-mouse-mode-content|e|content mode @mmode|MouseMode/set-mouse-mode-content| e|content mode
@select|Editor/select-all-before-edit-cursor|<@PRIMARY@>e|select all before EP @select|Editor/select-all-before-edit-cursor| <@PRIMARY@>e|select all before EP
@rop|Region/export-region|<@PRIMARY@><@SECONDARY@>e|export selected region(s) @rop|Region/export-region| <@PRIMARY@><@SECONDARY@>e|export selected region(s)
@sess|Main/ExportAudio|<@SECONDARY@>e|export session @sess|Main/ExportAudio| <@SECONDARY@>e|export session
@select|Editor/select-all-after-edit-cursor|<@PRIMARY@><@TERTIARY@>e|select all after EP @sess|Main/StemExport| <@SECONDARY@><@TERTIARY@>e|stem export selected tracks
@vis|Editor/show-editor-mixer|<@TERTIARY@>e|toggle editor window mixer @select|Editor/select-all-after-edit-cursor| <@PRIMARY@><@TERTIARY@>e|select all after EP
@mmode|MouseMode/set-mouse-mode-range|r|range mode @vis|Editor/show-editor-mixer| <@TERTIARY@>e|toggle editor window mixer
@edit|Editor/redo|<@PRIMARY@>r|redo @mmode|MouseMode/set-mouse-mode-range| r|range mode
@trans|Transport/Record|<@TERTIARY@>r|engage record @edit|Editor/redo| <@PRIMARY@>r|redo
@mmode|MouseMode/set-mouse-mode-timefx|t|timefx mode @edit|Editor/select-from-regions| <@PRIMARY@><@TERTIARY@>r|set Range to selected regions
@gselect|Common/select-all-visible-lanes|<@PRIMARY@>t|select all visible lanes @rop|Region/add-range-marker-from-region| <@SECONDARY@><@TERTIARY@>r|Add single Range marker from selection
@edit|Editor/alternate-redo|<@PRIMARY@>y|redo @trans|Transport/Record| <@TERTIARY@>r|engage record
@select|Editor/select-all-between-cursors|<@PRIMARY@>u|all enclosed by edit range @mmode|MouseMode/set-mouse-mode-timefx| t|timefx mode
@select|Editor/select-all-within-cursors|u|all present in edit range @gselect|Common/select-all-visible-lanes| <@PRIMARY@>t|select all visible lanes
@eep|Region/insert-region-from-source-list|i|insert from region list @edit|Editor/alternate-redo| <@PRIMARY@>y|redo
@sess|Common/addExistingAudioFiles|<@PRIMARY@>i|import audio files @select|Editor/select-all-between-cursors| <@PRIMARY@>u|select all regions enclosed by Range
@gselect|Common/invert-selection|<@PRIMARY@><@TERTIARY@>i|invert selection @select|Editor/select-all-within-cursors| u|select all regions touched by Range
@edtrk|Editor/toggle-midi-input-active|<@SECONDARY@>i|toggle sel. track MIDI input @rop|Region/fork-region| <@TERTIARY@>u|unlink midi from other regions
@sess|Main/Open|<@PRIMARY@>o|open an existing session @eep|Region/insert-region-from-source-list| i|insert from region list
@sess|Main/Recent|<@PRIMARY@><@TERTIARY@>o|open a recent session @sess|Common/addExistingAudioFiles| <@PRIMARY@>i|import audio files
@wvis|Window/toggle-session-options-editor|<@SECONDARY@>o|toggle preferences dialog @gselect|Common/invert-selection| <@PRIMARY@><@TERTIARY@>i|invert selection
@edit|Editor/set-playhead|p|set playhead position @edtrk|Editor/toggle-midi-input-active| <@SECONDARY@>i|toggle sel. track MIDI input
@wvis|Window/toggle-audio-connection-manager|<@SECONDARY@>p|toggle global audio patchbay @sess|Main/Open| <@PRIMARY@>o|open an existing session
@sess|Main/Recent| <@PRIMARY@><@TERTIARY@>o|open a recent session
@wvis|Window/toggle-session-options-editor| <@SECONDARY@>o|toggle preferences dialog
@edit|Editor/set-playhead| p|set playhead position
;; MIDDLE ROW ;; MIDDLE ROW
@trans|Transport/solo-selection|a|solo selection @trans|Transport/solo-selection| a|solo selection
@select|Editor/select-all-objects|<@PRIMARY@>a|select all objects @select|Editor/select-all-objects| <@PRIMARY@>a|select all objects
@aep|Region/align-regions-end|<@SECONDARY@>a|align end(s) @aep|Region/align-regions-end| <@SECONDARY@>a|align end(s)
@aep|Region/align-regions-sync|<@TERTIARY@>a|align sync points @aep|Region/align-regions-sync| <@TERTIARY@>a|align sync points
@aep|Region/align-regions-start|<@PRIMARY@><@SECONDARY@>a|align start(s) @aep|Region/align-regions-start| <@PRIMARY@><@SECONDARY@>a|align start(s)
@aep|Region/align-regions-start-relative|<@PRIMARY@><@TERTIARY@>a|align start(s) relative @aep|Region/align-regions-start-relative| <@PRIMARY@><@TERTIARY@>a|align start(s) relative
@rop|Editor/split-region|s|split @wvis|Window/toggle-audio-connection-manager| <@SECONDARY@><@TERTIARY@>a|toggle audio patchbay
@sess|Common/Save|<@PRIMARY@>s|save session @rop|Editor/split-region| s|split/separate
@sess|Main/SnapshotStay|<@PRIMARY@><@TERTIARY@>s|snapshot session @sess|Common/Save| <@PRIMARY@>s|save session
@edtrk|Editor/track-solo-toggle|<@SECONDARY@>s|toggle track solo status @sess|Main/SnapshotStay| <@PRIMARY@><@TERTIARY@>s|snapshot session
@edit|Editor/ToggleSummary|<@TERTIARY@>s|toggle summary @edtrk|Editor/track-solo-toggle| <@SECONDARY@>s|toggle track solo status
@mmode|MouseMode/set-mouse-mode-draw|d|note-draw mode @edit|Editor/ToggleSummary| <@TERTIARY@>s|toggle summary
@edit|Editor/duplicate|<@SECONDARY@>d|duplicate (once) @mmode|MouseMode/set-mouse-mode-draw| d|note-draw mode
@edit|Editor/multi-duplicate|<@TERTIARY@>d|duplicate (multi) @edit|Editor/duplicate| <@SECONDARY@>d|duplicate (once)
@select|Editor/select-all-in-punch-range|<@PRIMARY@>d|select all in punch range @edit|Editor/multi-duplicate| <@TERTIARY@>d|duplicate (multi)
@vis|Editor/fit-selection|f|fit selection vertically @select|Editor/select-all-in-punch-range| <@PRIMARY@>d|select all in punch range
@edit|Editor/toggle-follow-playhead|<@PRIMARY@>f|toggle playhead tracking @vis|Editor/fit-selection| f|fit selection vertically
@edit|Editor/toggle-stationary-playhead|<@TERTIARY@>f|toggle stationary playhead @edit|Editor/toggle-follow-playhead| <@PRIMARY@>f|toggle playhead tracking
@rop|Region/show-rhythm-ferret|<@SECONDARY@>f|show rhythm ferret window @edit|Editor/toggle-stationary-playhead| <@TERTIARY@>f|toggle stationary playhead
@wvis|Common/ToggleMaximalEditor|<@PRIMARY@><@SECONDARY@>f|maximise editor space @rop|Region/show-rhythm-ferret| <@SECONDARY@>f|show rhythm ferret window
@wvis|Common/ToggleMaximalMixer|<@PRIMARY@><@TERTIARY@>f|maximise mixer space @wvis|Common/ToggleMaximalEditor| <@PRIMARY@><@SECONDARY@>f|maximise editor space
@mmode|MouseMode/set-mouse-mode-object|g|object mode @wvis|Common/ToggleMaximalMixer| <@PRIMARY@><@TERTIARY@>f|maximise mixer space
@edit|Region/play-selected-regions|h|play selected region(s) @mmode|MouseMode/set-mouse-mode-object| g|object mode
@eep|Region/trim-front|j|trim front @edit|Region/play-selected-regions| h|play selected region(s)
@eep|Region/trim-back|k|trim back @eep|Region/trim-front| j|trim front
@wvis|Window/toggle-key-editor|<@SECONDARY@>k|toggle key bindings editor @eep|Region/trim-back| k|trim back
@trans|Transport/Loop|l|loop play (the loop range) @trans|Transport/Loop| l|loop play (the loop range)
@select|Editor/select-all-in-loop-range|<@PRIMARY@>l|select all in loop range @select|Editor/select-all-in-loop-range| <@PRIMARY@>l|select all in loop range
@wvis|Window/toggle-locations|<@SECONDARY@>l| toggle locations dialog @wvis|Window/toggle-locations| <@SECONDARY@>l| toggle locations dialog
@edit|Editor/show-editor-list|<@TERTIARY@>l| show editor list @edit|Editor/show-editor-list| <@TERTIARY@>l| show editor list
;; BOTTOM ROW ;; BOTTOM ROW
@mmode|Editor/zoom-to-selection|z|zoom to selection @mmode|Editor/zoom-to-selection| z|zoom to selection
@edit|Editor/undo|<@PRIMARY@>z|undo @edit|Editor/undo| <@PRIMARY@>z|undo
@edit|Editor/alternate-alternate-redo|<@PRIMARY@><@TERTIARY@>z|redo @edit|Editor/alternate-alternate-redo| <@PRIMARY@><@TERTIARY@>z|redo
@vis|Editor/toggle-zoom|<@TERTIARY@>z|toggle last 2 zoom states @vis|Editor/toggle-zoom| <@TERTIARY@>z|toggle last 2 zoom states
@aep|Region/align-regions-sync-relative|x|align sync points (relative) @aep|Region/align-regions-sync-relative| x|align sync points (relative)
@edit|Editor/editor-cut|<@PRIMARY@>x|cut @edit|Editor/editor-cut| <@PRIMARY@>x|cut
@mmode|MouseMode/set-mouse-mode-cut|c|cut mode @mmode|MouseMode/set-mouse-mode-cut| c|cut mode
@edit|Editor/editor-copy|<@PRIMARY@>c|copy @edit|Editor/editor-copy| <@PRIMARY@>c|copy
@wvis|Window/toggle-big-clock|<@SECONDARY@>c|toggle big clock @wvis|Window/toggle-big-clock| <@SECONDARY@>c|toggle big clock
@-edit|Editor/crop|<@PRIMARY@><@TERTIARY@>c|crop @edit|Editor/editor-crop| <@PRIMARY@><@TERTIARY@>c|crop range
@rop|Region/set-region-sync-position|v|set region sync point @edit|Editor/editor-consolidate| <@SECONDARY@><@TERTIARY@>c|consolidate range
@edit|Editor/editor-paste|<@PRIMARY@>v|paste @rop|Region/set-region-sync-position| v|set region sync point
@edit|Editor/ToggleJadeo|<@SECONDARY@>v|video window @edit|Editor/editor-paste| <@PRIMARY@>v|paste
@wvis|Common/toggle-meterbridge|<@SECONDARY@>b|show meter bridge @edit|Editor/ToggleJadeo| <@SECONDARY@>v|video window
@edtrk|Editor/track-record-enable-toggle|<@TERTIARY@>b|toggle track rec-enable @wvis|Common/toggle-meterbridge| <@SECONDARY@>b|show meter bridge
@sess|Main/AddTrackBus|<@PRIMARY@><@TERTIARY@>n|add track(s) or bus(ses) @edtrk|Editor/track-record-enable-toggle| <@TERTIARY@>b|toggle track rec-enable
@rop|Region/add-region-cue-marker|m|add a region/cue marker @sess|Main/AddTrackBus| <@PRIMARY@><@TERTIARY@>n|add track(s) or bus(ses)
@sess|Main/New|<@PRIMARY@>n|open a new session @sess|Main/New| <@PRIMARY@>n|open a new session
@wvis|Window/toggle-midi-connection-manager|<@SECONDARY@><@TERTIARY@>m|toggle global midi patchbay @rop|Region/add-region-cue-marker| m|add a region/cue marker
@wvis|Common/show-mixer|<@SECONDARY@>m|show mixer window @wvis|Window/toggle-midi-connection-manager| <@SECONDARY@><@TERTIARY@>m|toggle midi patchbay
@wvis|Common/show-mixer| <@SECONDARY@>m|show mixer window
@gmon|Monitor Section/monitor-cut-all|<@PRIMARY@>m|monitor cut all @gmon|Monitor Section/monitor-cut-all| <@PRIMARY@>m|monitor cut all
@gmon|Monitor Section/monitor-mono|<@PRIMARY@><@SECONDARY@>m|monitor mono @gmon|Monitor Section/monitor-mono| <@PRIMARY@><@SECONDARY@>m|monitor mono
@gmon|Monitor Section/monitor-dim-all|<@PRIMARY@><@TERTIARY@>m|monitor dim @gmon|Monitor Section/monitor-dim-all| <@PRIMARY@><@TERTIARY@>m|monitor dim
;; arrow keys, navigation etc. ;; arrow keys, navigation etc.
@vis|Editor/step-tracks-up|Up|scroll up (step) @vis|Editor/step-tracks-up| Up|scroll up (step)
@trans|Transport/TransitionToRoll|<@TERTIARY@>Up|transition to roll @trans|Transport/TransitionToRoll| <@TERTIARY@>Up|transition to roll
@select|Editor/select-prev-route|<@SECONDARY@>Up|select previous track/bus @select|Editor/select-prev-route| <@SECONDARY@>Up|select previous track/bus
@select|Editor/select-prev-stripable|<@SECONDARY@><@TERTIARY@>Up|select previous strip @select|Editor/select-prev-stripable| <@SECONDARY@><@TERTIARY@>Up|select previous strip
@vis|Editor/move-selected-tracks-up|<@PRIMARY@>Up|move selected tracks up @vis|Editor/move-selected-tracks-up| <@PRIMARY@>Up|move selected tracks up
@vis|Editor/step-tracks-down|Down|scroll down (step) @vis|Editor/step-tracks-down| Down|scroll down (step)
@trans|Transport/TransitionToReverse|<@TERTIARY@>Down|transition to reverse @trans|Transport/TransitionToReverse| <@TERTIARY@>Down|transition to reverse
@select|Editor/select-next-route|<@SECONDARY@>Down|select next track/bus @select|Editor/select-next-route| <@SECONDARY@>Down|select next track/bus
@select|Editor/select-next-stripable|<@SECONDARY@><@TERTIARY@>Down|select next strip @select|Editor/select-next-stripable| <@SECONDARY@><@TERTIARY@>Down|select next strip
@vis|Editor/move-selected-tracks-down|<@PRIMARY@>Down|move selected tracks down @vis|Editor/move-selected-tracks-down| <@PRIMARY@>Down|move selected tracks down
@movp|Common/playhead-backward-to-grid|Left|to previous grid point @movp|Common/playhead-backward-to-grid| Left|to previous grid point
@emov|Editor/playhead-to-previous-region-boundary|<@SECONDARY@><@TERTIARY@>Left|to previous region edge @emov|Editor/playhead-to-previous-region-boundary| <@SECONDARY@><@TERTIARY@>Left|to previous region edge
;@emov|Editor/playhead-to-previous-region-boundary-noselection|<@LEVEL4@>Left|to previous edge \linebreak[4] (ignoring selection) ;@emov|Editor/playhead-to-previous-region-boundary-noselection| <@LEVEL4@>Left|to previous edge \linebreak[4] (ignoring selection)
@emov|Editor/playhead-to-previous-region-sync|<@PRIMARY@><@SECONDARY@>Left|to previous region sync @emov|Editor/playhead-to-previous-region-sync| <@PRIMARY@><@SECONDARY@>Left|to previous region sync
@emov|Editor/tab-to-transient-backwards|<@PRIMARY@>Left|to previous transient @emov|Editor/tab-to-transient-backwards| <@PRIMARY@>Left|to previous transient
@movp|Common/nudge-playhead-backward|<@SECONDARY@>Left|nudge backward @movp|Common/nudge-playhead-backward| <@SECONDARY@>Left|nudge backward
@trans|Transport/Rewind|<@TERTIARY@>Left|rewind @trans|Transport/Rewind| <@TERTIARY@>Left|rewind
@markers|Editor/selected-marker-to-previous-region-boundary|<@PRIMARY@><@TERTIARY@>Left|move to prev region edge @markers|Editor/selected-marker-to-previous-region-boundary|<@PRIMARY@><@TERTIARY@>Left|move to prev region edge
@movp|Common/playhead-forward-to-grid|Right|to next grid point @movp|Common/playhead-forward-to-grid| Right|to next grid point
@emov|Editor/playhead-to-next-region-boundary|<@SECONDARY@><@TERTIARY@>Right|to next region edge @emov|Editor/playhead-to-next-region-boundary| <@SECONDARY@><@TERTIARY@>Right|to next region edge
;@emov|Editor/playhead-to-next-region-boundary-noselection|<@LEVEL4@>Right|to next region edge \linebreak[4] (ignoring selection) ;@emov|Editor/playhead-to-next-region-boundary-noselection| <@LEVEL4@>Right|to next region edge \linebreak[4] (ignoring selection)
@emov|Editor/playhead-to-next-region-sync|<@PRIMARY@><@SECONDARY@>Right|to next region sync @emov|Editor/playhead-to-next-region-sync| <@PRIMARY@><@SECONDARY@>Right|to next region sync
@emov|Editor/tab-to-transient-forwards|<@PRIMARY@>Right|to next transient @emov|Editor/tab-to-transient-forwards| <@PRIMARY@>Right|to next transient
@movp|Common/nudge-playhead-forward|<@SECONDARY@>Right|nudge forwards @movp|Common/nudge-playhead-forward| <@SECONDARY@>Right|nudge forwards
@trans|Transport/Forward|<@TERTIARY@>Right|fast forward @trans|Transport/Forward| <@TERTIARY@>Right|fast forward
@markers|Editor/selected-marker-to-next-region-boundary|<@PRIMARY@><@TERTIARY@>Right|move to next region edge @markers|Editor/selected-marker-to-next-region-boundary| <@PRIMARY@><@TERTIARY@>Right|move to next region edge
@wvis|Common/next-tab|<@PRIMARY@>Page_Down|next tab @wvis|Common/next-tab| <@PRIMARY@>Page_Down|next tab
@wvis|Common/previous-tab|<@PRIMARY@>Page_Up|previous tab @wvis|Common/previous-tab| <@PRIMARY@>Page_Up|previous tab
@vis|Editor/scroll-tracks-down|Page_Down|scroll down (page) @vis|Editor/scroll-tracks-down| Page_Down|scroll down (page)
@vis|Editor/scroll-tracks-up|Page_Up|scroll up (page) @vis|Editor/scroll-tracks-up| Page_Up|scroll up (page)
@movp|Transport/GotoStart|Home|to start marker @movp|Transport/GotoStart| Home|to start marker
@movp|Transport/GotoEnd|End|to end marker @movp|Transport/GotoEnd| End|to end marker
@edit|Editor/editor-delete|Delete|delete @edit|Editor/editor-delete| Delete|delete
@edit|Editor/alternate-editor-delete|BackSpace|backspace (delete) @edit|Editor/alternate-editor-delete| BackSpace|backspace (delete)
;; this one is super-global, so we put it in the session group but don't show ;; this one is super-global, so we put it in the session group but don't show
;; it on cheat sheets etc. ;; it on cheat sheets etc.
@ -287,47 +292,47 @@ This mode provides many different operations on both regions and control points,
;; keypad ;; keypad
@select|Editor/nudge-backward|KP_Subtract|nudge backward @select|Editor/nudge-backward| KP_Subtract|nudge backward
@trans|Common/nudge-next-backward|<@PRIMARY@>KP_Subtract|some text @trans|Common/nudge-next-backward| <@PRIMARY@>KP_Subtract|some text
@gmark|Common/alternate-jump-forward-to-mark|<@PRIMARY@>KP_Right|to next mark @gmark|Common/alternate-jump-forward-to-mark| <@PRIMARY@>KP_Right|to next mark
@gmark|Common/alternate-jump-backward-to-mark|<@PRIMARY@>KP_Left|to previous mark @gmark|Common/alternate-jump-backward-to-mark| <@PRIMARY@>KP_Left|to previous mark
@select|Editor/nudge-forward|KP_Add|nudge forward @select|Editor/nudge-forward| KP_Add|nudge forward
@trans|Common/nudge-next-forward|<@PRIMARY@>KP_Add|some text @trans|Common/nudge-next-forward| <@PRIMARY@>KP_Add|some text
@gedt|Common/start-range|comma|some text @gedt|Common/start-range| comma|some text
@gedt|Common/finish-range|period|some text @gedt|Common/finish-range| period|some text
@gedt|Common/alt-start-range|<@PRIMARY@>KP_Down|set the start of the range selection @gedt|Common/alt-start-range| <@PRIMARY@>KP_Down|set the start of the range selection
@gedt|Common/alt-finish-range|<@PRIMARY@>KP_Up|set the end of the range selection @gedt|Common/alt-finish-range| <@PRIMARY@>KP_Up|set the end of the range selection
@gedt|Common/start-punch-range|<@PRIMARY@>comma|set the start of the Punch range @gedt|Common/start-punch-range| <@PRIMARY@>comma|set the start of the Punch range
@gedt|Common/finish-punch-range|<@PRIMARY@>period|set the end of the Punch range @gedt|Common/finish-punch-range| <@PRIMARY@>period|set the end of the Punch range
@gedt|Common/start-loop-range|<@SECONDARY@>comma|set the start of the Loop range @gedt|Common/start-loop-range| <@SECONDARY@>comma|set the start of the Loop range
@gedt|Common/finish-loop-range|<@SECONDARY@>period|set the end of the Loop range @gedt|Common/finish-loop-range| <@SECONDARY@>period|set the end of the Loop range
@edit|Editor/copy-playlists-for-selected-tracks|<@TERTIARY@>colon|Copy Playlists for Selected tracks @edit|Editor/copy-playlists-for-selected-tracks| <@TERTIARY@>colon|Copy Playlists for Selected tracks
@edit|Editor/copy-playlists-for-armed-tracks|<@PRIMARY><@SECONDARY><@TERTIARY@>colon|Copy Playlists for Armed tracks @edit|Editor/copy-playlists-for-armed-tracks|<@PRIMARY><@SECONDARY><@TERTIARY@>colon|Copy Playlists for Armed tracks
@edit|Editor/copy-playlists-for-all-tracks|<@PRIMARY><@TERTIARY@>colon|Copy Playlists for ALL tracks @edit|Editor/copy-playlists-for-all-tracks| <@PRIMARY><@TERTIARY@>colon|Copy Playlists for ALL tracks
@edit|Editor/new-playlists-for-selected-tracks|<@TERTIARY@>quotedbl|New Playlists for Selected tracks @edit|Editor/new-playlists-for-selected-tracks| <@TERTIARY@>quotedbl|New Playlists for Selected tracks
@edit|Editor/new-playlists-for-armed-tracks|<@PRIMARY><@SECONDARY><@TERTIARY@>quotedbl|New Playlists for ALL tracks @edit|Editor/new-playlists-for-armed-tracks| <@PRIMARY><@SECONDARY><@TERTIARY@>quotedbl|New Playlists for ALL tracks
@edit|Editor/new-playlists-for-all-tracks|<@PRIMARY><@TERTIARY@>quotedbl|New Playlists for ALL tracks @edit|Editor/new-playlists-for-all-tracks| <@PRIMARY><@TERTIARY@>quotedbl|New Playlists for ALL tracks
@edit|Editor/layer-display-overlaid|<@TERTIARY@>braceleft|Display Region Layers: Overlaid @edit|Editor/layer-display-overlaid| <@TERTIARY@>braceleft|Display Region Layers: Overlaid
@edit|Editor/layer-display-stacked|<@TERTIARY@>braceright|Display Region Layers: Stacked @edit|Editor/layer-display-stacked| <@TERTIARY@>braceright|Display Region Layers: Stacked
@edit|Region/raise-region-to-top|<@TERTIARY@>bar|Raise Selected Region to Top Layer @edit|Region/raise-region-to-top| <@TERTIARY@>bar|Raise Selected Region to Top Layer
@trans|Transport/RecordPreroll|<@TERTIARY@>less|Transport: Record with Pre-Roll @trans|Transport/RecordPreroll| <@TERTIARY@>less|Transport: Record with Pre-Roll
@trans|Transport/RecordCountIn|<@TERTIARY@>greater|Transport: Record with Count-In @trans|Transport/RecordCountIn| <@TERTIARY@>greater|Transport: Record with Count-In
@edit|Editor/show-plist-selector|<@TERTIARY@>question|show-plist-selector @edit|Editor/show-plist-selector|<@TERTIARY@>question|show-plist-selector
@gmark|Common/alternate-add-location-from-playhead|KP_Enter|add mark at playhead @gmark|Common/alternate-add-location-from-playhead| KP_Enter|add mark at playhead
@gmark|Common/alternate-remove-location-from-playhead|<@PRIMARY@>KP_Enter|add mark at playhead @gmark|Common/alternate-remove-location-from-playhead|<@PRIMARY@>KP_Enter|add mark at playhead
@wvis|Transport/focus-on-clock|KP_Divide|focus on main clock @wvis|Transport/focus-on-clock| KP_Divide|focus on main clock
@numpad|Transport/numpad-decimal|KP_Decimal|numpad decimal should initiate and finalize a locate-to-marker @numpad|Transport/numpad-decimal| KP_Decimal|numpad decimal should initiate and finalize a locate-to-marker
@numpad|Transport/alternate-numpad-decimal|KP_Separator|(some keybd layouts have separator instead of decimal) @numpad|Transport/alternate-numpad-decimal| KP_Separator|(some keybd layouts have separator instead of decimal)
@numpad|Transport/numpad-0|KP_0|some text @numpad|Transport/numpad-0|KP_0|some text
@numpad|Transport/numpad-1|KP_1|some text @numpad|Transport/numpad-1|KP_1|some text
@ -371,23 +376,23 @@ This mode provides many different operations on both regions and control points,
;; numbers ;; numbers
@gmode|Transport/ToggleClick|grave|toggle click (metronome) @gmode|Transport/ToggleClick| grave|toggle click (metronome)
@midi|MIDI/panic|<@PRIMARY@>grave|MIDI panic (stop all midi notes) @midi|MIDI/panic| <@PRIMARY@>grave|MIDI panic (stop all midi notes)
@trans|Transport/ToggleExternalSync|<@SECONDARY@>grave|toggle external sync @trans|Transport/ToggleExternalSync| <@SECONDARY@>grave|toggle external sync
@eep|Editor/cycle-edit-mode|1|cycle edit mode {slide, lock, ripple} @eep|Editor/cycle-edit-mode| 1|cycle edit mode {slide, lock, ripple}
@eep|Editor/cycle-edit-point|2|next EP w/o marker {playhead, mouse} @eep|Editor/cycle-edit-point| 2|next EP w/o marker {playhead, mouse}
@eep|Editor/cycle-edit-point-with-marker|<@PRIMARY@>2|next EP w/marker {playhead, mouse, marker} @eep|Editor/cycle-edit-point-with-marker| <@PRIMARY@>2|next EP w/marker {playhead, mouse, marker}
@mmode|MouseMode/set-mouse-mode-object-range|3|Smart Mode (provide some Range tools in Object mode) @mmode|MouseMode/set-mouse-mode-object-range| 3|Smart Mode (provide some Range tools in Object mode)
@gmode|Transport/ToggleFollowEdits|<@PRIMARY@>3|toggle playhead follows edits @gmode|Transport/ToggleFollowEdits| <@PRIMARY@>3|toggle playhead follows edits
@grid|Editor/cycle-snap-mode|4|cycle to next snap mode {On/Off} @grid|Editor/cycle-snap-mode| 4|cycle to next snap mode {On/Off}
@grid|Editor/prev-grid-choice|5|use prev grid unit @grid|Editor/prev-grid-choice| 5|use prev grid unit
@grid|Editor/next-grid-choice|6|use next grid unit @grid|Editor/next-grid-choice| 6|use next grid unit
@gmode|Transport/ToggleAutoReturn|7|toggle auto return @gmode|Transport/ToggleAutoReturn| 7|toggle auto return
@gmode|Transport/ToggleAutoPlay|<@PRIMARY@>7|toggle auto play @gmode|Transport/ToggleAutoPlay| <@PRIMARY@>7|toggle auto play
@gmode|Transport/TogglePunch|8|toggle punch in+out @gmode|Transport/TogglePunch| 8|toggle punch in+out
; ToDo @gmode|Transport/ToggleRecMode|<@PRIMARY@>8|toggle recording mode ( layered, overwrite, merge ) ; ToDo @gmode|Transport/ToggleRecMode| <@PRIMARY@>8|toggle recording mode ( layered, overwrite, merge )
@ranges|Region/set-tempo-from-region|9|set tempo (1 bar) from region(s) @ranges|Region/set-tempo-from-region| 9|set tempo (1 bar) from region(s)
@ranges|Editor/set-tempo-from-edit-range|0|set tempo (1 bar) from edit range @ranges|Editor/set-tempo-from-edit-range| 0|set tempo (1 bar) from edit range
; mouse stuff ; mouse stuff
@ -442,52 +447,52 @@ This mode provides many different operations on both regions and control points,
;; MIDI Editing ;; MIDI Editing
@notes|Notes/move-starts-earlier|comma|Move Note Starts Earlier @notes|Notes/move-starts-earlier| comma|Move Note Starts Earlier
@notes|Notes/move-starts-earlier-fine|<@SECONDARY@>comma|Move Note Starts Earlier (Fine) @notes|Notes/move-starts-earlier-fine| <@SECONDARY@>comma|Move Note Starts Earlier (Fine)
@notes|Notes/move-ends-later|period|Move Note Ends Later @notes|Notes/move-ends-later| period|Move Note Ends Later
@notes|Notes/move-ends-later-fine|<@SECONDARY@>period|Move Note Ends Later (Fine) @notes|Notes/move-ends-later-fine| <@SECONDARY@>period|Move Note Ends Later (Fine)
@notes|Notes/move-starts-later|<@PRIMARY@>comma|Move Note Starts Later @notes|Notes/move-starts-later| <@PRIMARY@>comma|Move Note Starts Later
@notes|Notes/move-starts-later-fine|<@PRIMARY@><@SECONDARY@>comma|Move Note Starts Later (Fine) @notes|Notes/move-starts-later-fine| <@PRIMARY@><@SECONDARY@>comma|Move Note Starts Later (Fine)
@notes|Notes/move-ends-earlier|<@PRIMARY@>period|Move Note Ends Earlier @notes|Notes/move-ends-earlier| <@PRIMARY@>period|Move Note Ends Earlier
@notes|Notes/move-ends-earlier-fine|<@PRIMARY@><@SECONDARY@>period|Move Note Ends Earlier (Fine) @notes|Notes/move-ends-earlier-fine| <@PRIMARY@><@SECONDARY@>period|Move Note Ends Earlier (Fine)
@notes|Notes/nudge-later|Right|Nudge Notes Later @notes|Notes/nudge-later| Right|Nudge Notes Later
@notes|Notes/nudge-later-fine|<@SECONDARY@>Right|Nudge Notes Later (fine) @notes|Notes/nudge-later-fine| <@SECONDARY@>Right|Nudge Notes Later (fine)
@notes|Notes/nudge-earlier|Left|Nudge Notes Earlier @notes|Notes/nudge-earlier| Left|Nudge Notes Earlier
@notes|Notes/nudge-earlier-fine|<@SECONDARY@>Left|Nudge Notes Earlier (fine) @notes|Notes/nudge-earlier-fine| <@SECONDARY@>Left|Nudge Notes Earlier (fine)
@notes|Notes/edit-channels|c|Edit Note Channels @notes|Notes/edit-channels| c|Edit Note Channels
@notes|Notes/edit-velocities|v|Edit Note Velocities @notes|Notes/edit-velocities| v|Edit Note Velocities
@notes|Notes/transpose-up-octave|<@SECONDARY@>Up|Transpose up (1 octave) @notes|Notes/transpose-up-octave| <@SECONDARY@>Up|Transpose up (1 octave)
@notes|Notes/transpose-down-octave|<@SECONDARY@>Down|Transpose down (1 octave) @notes|Notes/transpose-down-octave| <@SECONDARY@>Down|Transpose down (1 octave)
@notes|Notes/transpose-up-semitone|Up|Transpose up (1 semitone) @notes|Notes/transpose-up-semitone| Up|Transpose up (1 semitone)
@notes|Notes/transpose-down-semitone|Down|Transpose down (1 semitone) @notes|Notes/transpose-down-semitone| Down|Transpose down (1 semitone)
@notes|Notes/transpose-up-octave-smush|<@TERTIARY@>Up|Transpose up (1 octave) allow mushing @notes|Notes/transpose-up-octave-smush| <@TERTIARY@>Up|Transpose up (1 octave) allow mushing
@notes|Notes/transpose-down-octave-smush|<@TERTIARY@>Down|Transpose down (1 octave) allow mushing @notes|Notes/transpose-down-octave-smush| <@TERTIARY@>Down|Transpose down (1 octave) allow mushing
@notes|Notes/transpose-up-semitone-smush|<@SECONDARY@><@TERTIARY@>Up|Transpose up (1 semitone) allow mushing @notes|Notes/transpose-up-semitone-smush| <@SECONDARY@><@TERTIARY@>Up|Transpose up (1 semitone) allow mushing
@notes|Notes/transpose-down-semitone-smush|<@SECONDARY@><@TERTIARY@>Down|Transpose down (1 tone) allow mushing @notes|Notes/transpose-down-semitone-smush| <@SECONDARY@><@TERTIARY@>Down|Transpose down (1 tone) allow mushing
@notes|Notes/increase-velocity|<@PRIMARY@>Up|Increase Note Velocity (+8) @notes|Notes/increase-velocity| <@PRIMARY@>Up|Increase Note Velocity (+8)
@notes|Notes/decrease-velocity|<@PRIMARY@>Down|Increase Note Velocity (+8) @notes|Notes/decrease-velocity| <@PRIMARY@>Down|Increase Note Velocity (+8)
@notes|Notes/increase-velocity-smush|<@PRIMARY@><@TERTIARY@>Up|Increase Note Velocity (+8) allow mushing @notes|Notes/increase-velocity-smush| <@PRIMARY@><@TERTIARY@>Up|Increase Note Velocity (+8) allow mushing
@notes|Notes/decrease-velocity-smush|<@PRIMARY@><@TERTIARY@>Down|Increase Note Velocity (+8) allow mushing @notes|Notes/decrease-velocity-smush| <@PRIMARY@><@TERTIARY@>Down|Increase Note Velocity (+8) allow mushing
@notes|Notes/increase-velocity-fine|<@PRIMARY@><@SECONDARY@>Up|Increase Note Velocity (+1) @notes|Notes/increase-velocity-fine| <@PRIMARY@><@SECONDARY@>Up|Increase Note Velocity (+1)
@notes|Notes/decrease-velocity-fine|<@PRIMARY@><@SECONDARY@>Down|Increase Note Velocity (+1) @notes|Notes/decrease-velocity-fine| <@PRIMARY@><@SECONDARY@>Down|Increase Note Velocity (+1)
@notes|Notes/increase-velocity-fine-smush|<@PRIMARY@><@SECONDARY@><@TERTIARY@>Up|Increase Note Velocity (+1) allow mushing @notes|Notes/increase-velocity-fine-smush| <@PRIMARY@><@SECONDARY@><@TERTIARY@>Up|Increase Note Velocity (+1) allow mushing
@notes|Notes/decrease-velocity-fine-smush|<@PRIMARY@><@SECONDARY@><@TERTIARY@>Down|Increase Note Velocity (+1) allow mushing @notes|Notes/decrease-velocity-fine-smush| <@PRIMARY@><@SECONDARY@><@TERTIARY@>Down|Increase Note Velocity (+1) allow mushing
@notes|Notes/delete|Backspace|Delete Note Selection @notes|Notes/delete| Backspace|Delete Note Selection
@notes|Notes/alt-delete|Delete|Delete Note Selection @notes|Notes/alt-delete| Delete|Delete Note Selection
@notes|Main/Escape|Clear selection @notes|Main/Escape|Clear selection
@notes|Notes/select-next|Tab|Select next note @notes|Notes/select-next| Tab|Select next note
@notes|Notes/select-previous|<@PRIMARY@>Tab|Select previous note @notes|Notes/select-previous| <@PRIMARY@>Tab|Select previous note
@notes|Notes/add-select-next|<@TERTIARY@>Tab|Select next note @notes|Notes/add-select-next| <@TERTIARY@>Tab|Select next note
@notes|Notes/add-select-previous|<@PRIMARY@><@TERTIARY@>Tab|Add previous note to selection @notes|Notes/add-select-previous| <@PRIMARY@><@TERTIARY@>Tab|Add previous note to selection
@notes|Notes/alt-add-select-next|<@TERTIARY@>ISO_Left_Tab|Add next note to selection @notes|Notes/alt-add-select-next| <@TERTIARY@>ISO_Left_Tab|Add next note to selection
@notes|Notes/alt-add-select-previous|<@PRIMARY@><@TERTIARY@>ISO_Left_Tab|Add previous note to selection @notes|Notes/alt-add-select-previous| <@PRIMARY@><@TERTIARY@>ISO_Left_Tab|Add previous note to selection
@notes|Notes/extend-selection|<@PRIMARY@>e|Extend selection to end of region @notes|Notes/extend-selection| <@PRIMARY@>e|Extend selection to end of region
@notes|Notes/invert-selection|<@PRIMARY@>i|Invert note selection @notes|Notes/invert-selection| <@PRIMARY@>i|Invert note selection
@notes|Notes/duplicate-selection|<@PRIMARY@>d|Duplicate note selection @notes|Notes/duplicate-selection| <@PRIMARY@>d|Duplicate note selection
@rec|Recorder/arm-all|<@PRIMARY@>r|record arm all tracks @rec|Recorder/arm-all| <@PRIMARY@>r|record arm all tracks
@rec|Recorder/arm-none|<@PRIMARY@><@TERTIARY@>r|disable record arm of all tracks @rec|Recorder/arm-none| <@PRIMARY@><@TERTIARY@>r|disable record arm of all tracks

View File

@ -232,7 +232,14 @@
<menuitem action='separate-under-region'/> <menuitem action='separate-under-region'/>
<menuitem action='separate-from-loop'/> <menuitem action='separate-from-loop'/>
<menuitem action='separate-from-punch'/> <menuitem action='separate-from-punch'/>
<separator/> </menu>
<menu action="ConsolidateMenu">
<menuitem action='editor-consolidate'/>
#ifndef MIXBUS
<menuitem action='editor-consolidate-with-processing'/>
#endif
<menuitem action='combine-regions'/>
<menuitem action='uncombine-regions'/>
</menu> </menu>
<menu action="AlignMenu"> <menu action="AlignMenu">
<menuitem action='align-regions-start'/> <menuitem action='align-regions-start'/>
@ -250,6 +257,12 @@
<menuitem action='toggle-region-fade-out'/> <menuitem action='toggle-region-fade-out'/>
</menu> </menu>
<separator/> <separator/>
<menu action="AnalyzeMenu">
<menuitem action='editor-analyze-spectrum'/>
<menuitem action='editor-analyze-loudness'/>
<menuitem action='editor-loudness-assistant'/>
</menu>
<separator/>
<menuitem action='tag-last-capture'/> <menuitem action='tag-last-capture'/>
<menuitem action='remove-last-capture'/> <menuitem action='remove-last-capture'/>
<separator/> <separator/>

View File

@ -169,6 +169,8 @@ Editor::register_actions ()
ActionManager::register_action (editor_menu_actions, X_("Select"), _("Select")); ActionManager::register_action (editor_menu_actions, X_("Select"), _("Select"));
ActionManager::register_action (editor_menu_actions, X_("SelectMenu"), _("Select")); ActionManager::register_action (editor_menu_actions, X_("SelectMenu"), _("Select"));
ActionManager::register_action (editor_menu_actions, X_("SeparateMenu"), _("Separate")); ActionManager::register_action (editor_menu_actions, X_("SeparateMenu"), _("Separate"));
ActionManager::register_action (editor_menu_actions, X_("ConsolidateMenu"), _("Consolidate"));
ActionManager::register_action (editor_menu_actions, X_("AnalyzeMenu"), _("Analyze"));
ActionManager::register_action (editor_menu_actions, X_("SetLoopMenu"), _("Loop")); ActionManager::register_action (editor_menu_actions, X_("SetLoopMenu"), _("Loop"));
ActionManager::register_action (editor_menu_actions, X_("SetPunchMenu"), _("Punch")); ActionManager::register_action (editor_menu_actions, X_("SetPunchMenu"), _("Punch"));
ActionManager::register_action (editor_menu_actions, X_("Solo"), _("Solo")); ActionManager::register_action (editor_menu_actions, X_("Solo"), _("Solo"));
@ -396,6 +398,18 @@ Editor::register_actions ()
act = reg_sens (editor_actions, "editor-crop", _("Crop"), sigc::mem_fun(*this, &Editor::crop_region_to_selection)); act = reg_sens (editor_actions, "editor-crop", _("Crop"), sigc::mem_fun(*this, &Editor::crop_region_to_selection));
ActionManager::time_selection_sensitive_actions.push_back (act); ActionManager::time_selection_sensitive_actions.push_back (act);
act = reg_sens (editor_actions, "editor-consolidate-with-processing", _("Consolidate Range (with processing)"), sigc::bind (sigc::mem_fun(*this, &Editor::bounce_range_selection), ReplaceRange, true));
ActionManager::time_selection_sensitive_actions.push_back (act);
act = reg_sens (editor_actions, "editor-consolidate", _("Consolidate Range"), sigc::bind (sigc::mem_fun(*this, &Editor::bounce_range_selection), ReplaceRange, false));
ActionManager::time_selection_sensitive_actions.push_back (act);
act = reg_sens (editor_actions, "editor-analyze-loudness", _("Loudness Analysis"), sigc::mem_fun(*this, &Editor::loudness_analyze_range_selection));
ActionManager::time_selection_sensitive_actions.push_back (act);
act = reg_sens (editor_actions, "editor-analyze-spectrum", _("Spectral Analysis"), sigc::mem_fun(*this, &Editor::spectral_analyze_range_selection));
ActionManager::time_selection_sensitive_actions.push_back (act);
act = reg_sens (editor_actions, "editor-loudness-assistant", _("Loudness Assistant"), sigc::bind (sigc::mem_fun(*this, &Editor::loudness_assistant), true));
ActionManager::time_selection_sensitive_actions.push_back (act);
reg_sens (editor_actions, "editor-cut", _("Cut"), sigc::mem_fun(*this, &Editor::cut)); reg_sens (editor_actions, "editor-cut", _("Cut"), sigc::mem_fun(*this, &Editor::cut));
reg_sens (editor_actions, "editor-delete", _("Delete"), sigc::mem_fun(*this, &Editor::delete_)); reg_sens (editor_actions, "editor-delete", _("Delete"), sigc::mem_fun(*this, &Editor::delete_));
reg_sens (editor_actions, "alternate-editor-delete", _("Delete"), sigc::mem_fun(*this, &Editor::delete_)); reg_sens (editor_actions, "alternate-editor-delete", _("Delete"), sigc::mem_fun(*this, &Editor::delete_));

View File

@ -3500,43 +3500,52 @@ Editor::crop_region_to (timepos_t const & start, timepos_t const & end)
return; return;
} }
timepos_t pos;
timepos_t new_start;
timepos_t new_end;
timecnt_t new_length;
for (vector<boost::shared_ptr<Playlist> >::iterator i = playlists.begin(); i != playlists.end(); ++i) { for (vector<boost::shared_ptr<Playlist> >::iterator i = playlists.begin(); i != playlists.end(); ++i) {
/* Only the top regions at start and end have to be cropped */ boost::shared_ptr<RegionList> regions_at_start = (*i)->regions_at(start);
boost::shared_ptr<Region> region_at_start = (*i)->top_region_at(start); for (RegionList::const_iterator r = regions_at_start->begin(); r != regions_at_start->end(); ++r) {
boost::shared_ptr<Region> region_at_end = (*i)->top_region_at(end); boost::shared_ptr<AudioRegion> ar = boost::dynamic_pointer_cast<AudioRegion>(*r);
if (ar) {
vector<boost::shared_ptr<Region> > regions; //if we cut an audio region during the fade, keep the fade handle at the same spot
ar->playlist()->clear_owned_changes ();
if (region_at_start != 0) { samplepos_t pos = start.samples ();
regions.push_back (region_at_start); samplecnt_t fade_length;
} samplepos_t fade_start = ar->position_sample() + ar->fade_in()->back()->when.samples();
if (region_at_end != 0) { if (pos <= fade_start) {
regions.push_back (region_at_end); fade_length = fade_start - pos;
} ar->set_fade_in_length (fade_length);
}
/* now adjust lengths */ vector<Command*> cmds;
for (vector<boost::shared_ptr<Region> >::iterator i = regions.begin(); i != regions.end(); ++i) { ar->playlist()->rdiff (cmds);
_session->add_commands (cmds);
pos = (*i)->position();
new_start = max (start, pos);
if (timepos_t::max (pos.time_domain()).earlier (pos) > (*i)->length()) {
new_end = (*i)->end();
} else {
new_end = timepos_t::max (pos.time_domain());
} }
new_end = min (end, new_end);
new_length = new_start.distance (new_end);
(*i)->clear_changes (); (*r)->trim_front (start);
(*i)->trim_to (new_start, new_length); _session->add_command (new StatefulDiffCommand (*r));
_session->add_command (new StatefulDiffCommand (*i));
} }
boost::shared_ptr<RegionList> regions_at_end = (*i)->regions_at(end);
for (RegionList::const_iterator r = regions_at_end->begin(); r != regions_at_end->end(); ++r) {
boost::shared_ptr<AudioRegion> ar = boost::dynamic_pointer_cast<AudioRegion>(*r);
if (ar) {
//if we cut an audio region during the fade, keep the fade handle at the same spot
ar->playlist()->clear_owned_changes ();
samplepos_t pos = end.samples ();
samplecnt_t fade_length;
samplepos_t fade_end = ar->position_sample() + ar->length_samples() - ar->fade_out()->back()->when.samples();
if (pos >= fade_end) {
fade_length = pos - fade_end ;
ar->set_fade_out_length (fade_length);
}
vector<Command*> cmds;
ar->playlist()->rdiff (cmds);
_session->add_commands (cmds);
}
(*r)->trim_end (end);
_session->add_command (new StatefulDiffCommand (*r));
}
} }
} }
@ -4249,8 +4258,8 @@ Editor::bounce_range_selection (BounceTarget target, bool with_processing)
} }
} }
timepos_t start = selection->time[clicked_selection].start(); timepos_t start = selection->time.start_time();
timepos_t end = selection->time[clicked_selection].end(); timepos_t end = selection->time.end_time();
timecnt_t cnt = start.distance (end); timecnt_t cnt = start.distance (end);
bool in_command = false; bool in_command = false;
@ -4323,10 +4332,6 @@ Editor::bounce_range_selection (BounceTarget target, bool with_processing)
rtv->track ()->presentation_info ().set_trigger_track (true); rtv->track ()->presentation_info ().set_trigger_track (true);
} }
if (copy_to_clip_library) {
export_to_clip_library (r);
}
vector<Command*> cmds; vector<Command*> cmds;
playlist->rdiff (cmds); playlist->rdiff (cmds);
_session->add_commands (cmds); _session->add_commands (cmds);

View File

@ -258,6 +258,9 @@ while (<SOURCE>) {
$gkey =~ s/^-//; $gkey =~ s/^-//;
$owner = $group_owners{$gkey}; $owner = $group_owners{$gkey};
# strip white space from the binding; this allows reformatting the input file for legibility
$binding =~ s/^\s+|\s+$//g;
# substitute bindings # substitute bindings
$gtk_binding = $binding; $gtk_binding = $binding;