Commit graph

264 commits

Author SHA1 Message Date
Paul Davis
ea5fa64c0b manually fix up various cases where Gtk:Frame foo_frame had been changed to foo_sample 2017-09-18 14:59:11 -04:00
Paul Davis
30b087ab3d globally change all use of "frame" to refer to audio into "sample".
Generated by tools/f2s. Some hand-editing will be required in a few places to fix up comments related to timecode
and video in order to keep the legible
2017-09-18 12:39:17 -04:00
Robin Gareus
9e256b044d GUI support for Latch 2017-09-18 11:40:52 -04:00
Robin Gareus
1545c426d9 Revert "Temporary session-format compatibility (revert before release)"
This reverts commit 8cd8cb1650.
2017-09-18 11:40:52 -04:00
Paul Davis
a1143a0ed6 expose automation state controls in AutomationTimeAxisView when used for MIDI CC 2017-08-12 14:40:21 -04:00
Paul Davis
b98969be94 do not set automation to off/manual for MIDI CC data when clearing such data 2017-08-12 14:40:21 -04:00
Robin Gareus
df76e4417d Fix ATAV GUI property cleanup
AutomationTimeAxisView::state_id() requires a stripable
(stripable == automatable + parameter OR  stripable + control)
2017-08-01 16:56:20 +02:00
Robin Gareus
97e3168466 Fix ATAV hide button for VCA lanes 2017-07-27 01:34:16 +02:00
Robin Gareus
3d50563620 Properly propagate TAV TimeSelection 2017-07-21 15:49:28 +02:00
Robin Gareus
8400ebd175 Amend c242cbc318 (VCA automation button) 2017-07-21 13:01:43 +02:00
Robin Gareus
eb1e423b75 Remove <gtkmm.h> include from header files. 2017-07-17 21:06:04 +02:00
Robin Gareus
f6e182b937 Move Gtkmm2ext widgets into libwidget 2017-07-17 21:06:04 +02:00
Robin Gareus
5c92613698 Separate Ardour UI widgets into dedicated library 2017-07-17 21:06:04 +02:00
Robin Gareus
8cd8cb1650 Temporary session-format compatibility (revert before release)
Saving the new ControlList interpolation methods (enum) breaks loading
the session in older version. The session-format version will
need to be increased.

Until then:
 * Fader automation + region gain envelope uses linear fades
 * The automation-line visible in the GUI does not match the actual fade
   (the y-axis is log/exp-scale, the fade is linear)
 * Adding new points on the line is not using the correct initial value
 * Custom changes of interpolation mode are not available

Neither of these issues is a regression.
2017-06-21 18:13:36 +02:00
Robin Gareus
df6655ac68 Add interpolation-mode menu to ATAV. 2017-06-21 18:13:06 +02:00
Robin Gareus
973d58e8f9 Add option add automation-lane points on the line -- #7397 2017-06-18 22:13:02 +02:00
Robin Gareus
af6941ac34 Prepare VCA Automation Lanes -- refactor TAV
* add an abstract StripableTimeAxisView (Route TAV + VCA TAV)
* move common strip-methods into STAV
* Add Automation Lanes to VCA TAV
* Allow ATAV without Automatable for VCA Controls
2017-06-15 16:06:32 +02:00
Robin Gareus
99b064274f Update GUI, drop Automatable::value_as_string() API 2017-06-09 16:54:21 +02:00
Robin Gareus
b0f68a0f5c Prepare AutomationTimeAxisView for non-route (VCA) automation 2017-06-09 16:54:21 +02:00
Paul Davis
dc0139d4af use CoreSelection for track selection 2017-05-05 18:56:25 +01:00
Robin Gareus
0b5db91ee9 AutomationLine time-unit conversion and paste API update
This fixes copy/paste of MIDI automation (time-unit: beat) from/to
Parameter automation (time-unit: samples).

It also fixes repeatedly pasting with tempo-ramps: pre-multiply length
before converting to samples.
2017-04-26 23:37:27 +02:00
Tim Mayberry
da8146f011 Use PBD::to_string in AutomationTimeAxis instead of boost::lexical_cast and string_compose 2017-04-19 09:37:02 +10:00
Tim Mayberry
13d2670e96 Use AxisView::get_gui_property API in AutomationTimeAxis class 2017-04-19 09:36:58 +10:00
Tim Mayberry
5b71470449 Use XMLNode::get_property API in AutomationTimeAxis class 2017-04-19 09:36:56 +10:00
nick_m
59daffea1d rework snap
snap now fills in a struct (MusicFrame) which contins a snapped frame
along with a music divisor.
this gives useful information wrt magnetic snap which may or may not
have rounded to an exact musical position.

region position may now be set musically (using quarter notes for now).

this patch fixes several problems in the current code:

	- dragging a list of music-locked regions now maintains correct
	  musical offsets within the list.

	- splitting regions using magnetic snap works correctly (#7192)

	- cut drag should now work correctly with magnetic snap.

	- musical length of split midi regions is no longer frame based.
2017-02-04 22:57:36 +11:00
Paul Davis
ef184b54f2 use reduced height for automation lines when firrst added, not just after a resizing 2017-01-09 12:29:24 +00:00
Julien "_FrnchFrgg_" RIVAUD
ec74d4b0d0 Avoid jitter of track headers width when changing automation states 2016-08-20 18:32:37 +02:00
Julien "_FrnchFrgg_" RIVAUD
214dfccdae Use a real dropdown for AutoState in automation lanes 2016-08-17 23:56:31 +02:00
Paul Davis
cf52d6e4b4 enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.h 2016-07-14 14:45:23 -04:00
Robin Gareus
140258d8ab remove reference "const int32_t&" -> const int32_t"
this simplifies lua-bindings and also let's the compiler worry about
constant primitive types.
2016-07-10 15:30:41 +02:00
nick_m
93c24e4433 Paste uses exact beats. rework _start_beats calculation in copy-with-offset ctor. 2016-07-10 02:18:36 +10:00
Robin Gareus
4f7d3069ab highlight area below automation lanes 2016-07-05 00:39:43 +02:00
Paul Davis
c31435b474 RouteUI is now also derived from SessionHandlePtr but NOT AxisView. Fix initialization.
Only "most derived" classes can initialize virtual base classes (SessionHandlePtr)
2016-06-05 16:33:01 -04:00
Paul Davis
384d05dd35 change AxisView color API to be virtual and implement per-type variants 2016-06-05 16:33:01 -04:00
Paul Davis
260058a4a9 move from PresentationInfo::global_order() to PresentationInfo::order, and fix up part of reordering behaviour
Dragging tracks/busses in the editor *below* VCAs still does not work
2016-06-03 15:15:39 -04:00
Paul Davis
eee83c25a9 make all TimeAxisView derived types return PresentationInfo for sorting 2016-06-02 14:46:35 -04:00
Paul Davis
6baac7d46f various safety checks for the result of dynamic_cast-ing a TimeAxisView to RouteTimeAxisView
Now that we have VCATimeAxisView, this needed to be done, but it also potentially applied with automation
2016-06-02 08:42:58 -04:00
Paul Davis
0d999ea4ec remove un-used name_hbox widget from TimeAxisView 2016-06-01 21:57:43 -04:00
Paul Davis
17ace643e4 OMNIBUS COMMIT: prefer const XMLNode::property method (and provide a real one) 2016-05-04 23:09:45 -04:00
nick_m
5e7c7e52bd Use automation line's frame of reference for y position.
- removes the need for 'pixel hunting' wrt NAME_HIGHLIGHT_SIZE.
	- new control points generated by clicking on a line are placed
	  where the verbose canvas cursor says they are.
2015-10-30 21:14:16 +11:00
nick_m
17294ab9ec Make control point selection more consistent.
- disallow simultaneous events via ControlList::editor_add ()
	- clicking on an automation line selects the points that define it.
	- don't 'flash' a region selection when using mousedraw mode.
	- cp click selection resembles region selection.
	- region gain points respect snap modifier (a la automation points).
2015-10-20 00:53:27 +11:00
Robin Gareus
22b07e0233 NOOP, remove trailing tabs/whitespace. 2015-10-05 16:17:49 +02:00
Paul Davis
4dc63966f0 globally remove all trailing whitespace from ardour code base.
Paul Davis was responsible for introducing almost all of this.
2015-10-04 14:51:05 -04:00
Tim Mayberry
1d42ed077e Use ARDOUR_UI_UTILS::set_tooltip rather than via ARDOUR_UI::set_tip
This removes the direct dependence on ARDOUR_UI/Gtk_UI for setting
tooltips. Removes inclusion of ardour_ui.h from 16 files.
2015-09-16 16:55:17 -04:00
Tim Mayberry
6b019a4953 Move UIConfiguration Singleton into UIConfiguration header
This removes the direct dependence on ardour_ui.h from 39 files
2015-09-16 16:55:17 -04:00
Tim Mayberry
fc1e7dbb55 Move DPIReset and ColorsChanged signals into UIConfiguration 2015-09-16 16:55:17 -04:00
nick_m
15819f0896 Automation -use editor_add in gui, record straight lines with fewer points.
- don't keep setting/unsetting write pass when transport frame
	  remains the same (think larger jack buffer sizes)
	- insert guards are now 64 frames after when.
	- refactor previous approach.
2015-06-17 09:54:22 +10:00
nick_m
57ce447fd1 Fix some workflow problems wrt automation.
- clearing automation points sets control to "off" rather than touch.
	- multiple touches on the same pass acts consistently (no more
	  fader jumps on mouse button press
	- use actual value for initial point rather than some arbitrary
	  default. clarify new semantics of add () (with_default->with_initial).
	- clean some whitespace
	- add guard points as needed in stop.
	- catch grab broken signal (i can't trigger it, but the docs seem
	  to think it is essential).
2015-06-17 09:54:22 +10:00
Robin Gareus
1d5c6104f5 replace old ArdourButton::Icon API with Gtkmm2ext. 2015-05-24 21:45:39 +02:00
Robin Gareus
db7d0c59b5 remove explicit VectorIcon Element 2015-05-24 20:28:24 +02:00