Commit graph

6955 commits

Author SHA1 Message Date
Paul Davis
d408fffe4e rationalize and centralize computation of positional offset and scroll offset for canvas items 2014-08-17 13:38:45 -04:00
Paul Davis
2b361eecec inline ScrollGroup::canvas_position() for no particular reason 2014-08-17 13:38:35 -04:00
Paul Davis
11e789df5b avoid recursing through the entire canvas when scrolling - only scroll explicitly identified ScrollGroups 2014-08-17 13:37:45 -04:00
Paul Davis
cb9453b475 different approach to independent scrolling, involving ArdourCanvas::ScrollGroup
The idea now is that a scroll group item can be added to the canvas which will causes its children to scroll in either or both
directions (horizontal or vertical). There are few complications: the position() of the ScrollGroup is ambiguous depending
on whether you want it with scroll taken into account or not, so Item::canvas_position() was added, which defaults to
the same value as Item::position() but is overridden by ScrollGroup to return the position independent of scrolling. This
method is used when translating between item/canvas/window coordinate systems.

Note that the basic idea is that we MOVE the scroll group when a scroll happens. This mirrors what happens in the GnomeCanvas,
where Nick Mainsbridge came up with a great idea that allowed unification of the time bar and track canvases.
2014-08-17 13:37:27 -04:00
Paul Davis
87fa554ac9 initial redesign of canvas scrolling to facilitate independent x- and y-axis scrolling of specific groups within the canvas.
This commit should cause no change in behaviour, but contains all the code and changes necessary
for the next step
2014-08-17 13:37:16 -04:00
Paul Davis
6d3b9fe7e6 overwrite state of libs/canvas with code from corresponding period in ardour-cairocanvas
This makes continued merges with ardour codebase easier, at the
small cost of removing the XML-based constructors. They were not
in use anyway and their use doesn't really fit into the
conception of the canvas as a dynamic UI element. Could reintroduce
them at a later date.
2014-08-17 13:29:01 -04:00
John Emmas
1d945f26be When writing '.jackdrc' make sure we enclose any device names in quotation marks
(in Windows, device names almost always contain whitespace)
2014-08-16 21:48:07 -04:00
John Emmas
68a34d0d6f Keep this #include consistent with similar ones
(evoral/evoral doesn't get used anywhere else)
2014-08-16 21:48:01 -04:00
Robin Gareus
55c4c3d819 ALSA backend: tweak midi parser (fix start mid sequence) 2014-08-16 21:47:48 -04:00
Robin Gareus
151a410a13 ALSA backend: device detection 2014-08-16 21:47:40 -04:00
Robin Gareus
a5e1cbda85 ALSA backend: add raw midi parser 2014-08-16 21:44:58 -04:00
Robin Gareus
78d967d48c ALSA backend: raw midi prototype 2014-08-16 21:44:51 -04:00
Robin Gareus
c90428b5b8 ALSA backend (based on Dummy backend and zita-alsa-pcmi)
Conflicts:
	gtk2_ardour/ardev_common.sh.in
	libs/backends/wscript
2014-08-16 21:44:42 -04:00
Paul Davis
60bb0b5f58 substantive changes to the logic and safety for naming of (audio/MIDI) sources, especially when created via import
Conflicts:
	libs/ardour/import.cc
2014-08-16 18:02:22 -04:00
Robin Gareus
206b9acb5f DummyBackend: fix midi event mux+sorting 2014-08-16 18:00:48 -04:00
Robin Gareus
33b19c61d5 Dummy backend, revise small things 2014-08-16 18:00:01 -04:00
Robin Gareus
3d9498e351 dummy-backend, fix physical ports in/out convention. 2014-08-16 17:59:56 -04:00
Robin Gareus
bafc5b816c test possible 'flickering' with nvidia 2014-08-16 17:59:45 -04:00
Robin Gareus
a37a75a05c do not thin() automation event list on load.
only thin() when writing automation. This fixes issues with
loading short x-fades (which can be stretched later).

TODO: thinning should not just drop, but interpolate and use
more elaborate logic, compared to A2/MB2 Curve::merge_nascent()
2014-08-16 17:59:35 -04:00
Robin Gareus
31c49330f0 don't allow waveform to bleed into TimeAxisViewItem frame border 2014-08-16 17:59:10 -04:00
Robin Gareus
f413ab6ace use CubicSpline interpolation for x-fade preset Shapes 2014-08-16 17:58:29 -04:00
Robin Gareus
de84813c0d update Evoral::Curve to honor ControlList::InterpolationStyle 2014-08-16 17:58:23 -04:00
John Emmas
8dd1ed2b7a Add newly introduced sources to MSVC project
(xfade_curve stuff)

Conflicts:
	libs/canvas/MSVCcanvas/cairocanvas.vcproj
2014-08-16 17:58:17 -04:00
John Emmas
c7dc741bed Rearrange some #includes to keep MSVC happy 2014-08-16 17:58:01 -04:00
Robin Gareus
ece0d75122 Fix code to prepare re-enable cubic spline interpolation of automation data.
see also 24917e4c9e
2014-08-16 17:57:52 -04:00
Robin Gareus
9bbc29c022 panner: backwards compatibility, constrain pan-range in old sessions
fixes http://tracker.ardour.org/view.php?id=5823#c15686

This is only an issue when loading an old session
(pre 3.5.308 - actual change was 21ca6a10) for the first
time with newer ardour.
Saving and re-loading with ardour >= 3.5.308 fixed this as well.
2014-08-16 17:57:47 -04:00
Robin Gareus
81068a7932 smooth visual curve drawing 2014-08-16 17:57:42 -04:00
Robin Gareus
d8bdfa6f17 use fixed number of steps for dB-scale x-fade curves.
32 steps is sufficient for all practical musical purposes.
2014-08-16 17:57:13 -04:00
Robin Gareus
1685c2bff2 fixed number of steps for symmetric fades:
Extra steps are all below -20dB vs inverse signal being over -2dB.
linear interpolation -6dB steps is sufficient for the tail.
2014-08-16 17:57:08 -04:00
Paul Davis
9e82cb582d fix data loss/file deletion caused by mistaken used of Session::source_by_path() to check if an AUDIO filesource with a given path already exists.
::source_by_path() was written for MIDI files only. I fixed the call and renamed the two similar functions (one for audio and one for MIDI) to make it more clear.
2014-08-16 17:56:44 -04:00
Robin Gareus
e545bcb193 fix symmetric fade-shape (still variable number of steps) 2014-08-16 17:56:40 -04:00
Robin Gareus
4ee31432e4 Symmetric x-fade, use equivalent of -6dB per step for 7 steps. 2014-08-16 17:56:34 -04:00
Robin Gareus
ec90b1c774 fix typo in vst doc. 2014-08-16 17:56:14 -04:00
Robin Gareus
08666b2cfd smoothen rendering of x-fades 2014-08-16 17:56:05 -04:00
Robin Gareus
c79776d0e9 increase accuracy of fades. 2014-08-16 17:55:59 -04:00
Robin Gareus
f91194f60f fix prev commit 2014-08-16 17:55:54 -04:00
Robin Gareus
93fea9021e renice x-fade rendering w/cairo-antialiasing 2014-08-16 17:55:47 -04:00
Robin Gareus
e06a7e60f0 revert x-fade curves to Mixbus2. 2014-08-16 17:55:40 -04:00
Paul Davis
050254d521 make building the dummy backend be a configure-time option. defaults to False for the time being
Conflicts:
	libs/backends/wscript
2014-08-16 17:55:18 -04:00
Paul Davis
c934033e23 manually jump forward state of system_exec files to avoid various cherry-picking-related problems during merge with ardour 2014-08-16 17:53:33 -04:00
Colin Fletcher
c2bdb00b0c Use SystemExec for post-export hook
Use the new command-line parsing constructor for SystemExec to construct
the args array for the post-export hook from the entered command string,
with some simple substitutions for filename, directory, &c.

Conflicts:
	gtk2_ardour/export_format_dialog.cc
	libs/ardour/export_handler.cc
2014-08-16 17:43:50 -04:00
Robin Gareus
ec99a4f5c2 Canvas: new x-fade drawing, two curve widget
Conflicts:
	libs/canvas/wscript
2014-08-16 17:23:25 -04:00
Robin Gareus
9ec7b79ac9 Revert "cairo sub-surface prototype & example
This reverts commit c57fcde78c.
and also     commit f1f8f89fcb.
2014-08-16 17:21:08 -04:00
Robin Gareus
17e94e02e8 exercise subsurface rendering for x-fade curves 2014-08-16 17:20:57 -04:00
Robin Gareus
da7cdb9b26 cairo sub-surface prototype - intermediate flattened group renderer. 2014-08-16 17:20:51 -04:00
Robin Gareus
c360c6cca9 VST: fix name detection if effGetEffectName is N/A, remove superfluous \0. 2014-08-16 17:20:43 -04:00
Robin Gareus
026618978f VST: properly query name from plugin 2014-08-16 17:20:37 -04:00
Robin Gareus
87974bf89c Curve: anti-aliasing.
use cairo for anti-aliasing, and ignore explicit Catmull-Rom
points for that fall on the same x-cordinate.
2014-08-16 17:20:27 -04:00
Robin Gareus
3d9b03017c implement Curve in/outside fill 2014-08-16 17:20:09 -04:00
Robin Gareus
264947595a directly apply waveform clip-level changes 2014-08-16 17:19:17 -04:00