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