Robin Gareus [Wed, 4 Jun 2014 00:23:24 +0000 (02:23 +0200)]
add API to query a processor's frozen state.
Robin Gareus [Tue, 3 Jun 2014 22:27:01 +0000 (00:27 +0200)]
disable pluginbox in RouteUI window when a track is frozen
Robin Gareus [Tue, 3 Jun 2014 19:08:45 +0000 (21:08 +0200)]
re-work bounce/freeze. Freezer stops at first active delivery.
amend to
8f52bf7d9f
Robin Gareus [Tue, 3 Jun 2014 00:16:56 +0000 (02:16 +0200)]
ALSABackend: elaborate on start-up error cases
Paul Davis [Wed, 4 Jun 2014 00:08:26 +0000 (20:08 -0400)]
Revert "When writing '.jackdrc' make sure we enclose any device names in
quotation marks". This patch is incorrect. The string quoting must be done ONLY
when creating a string to be written to ~/.jackdrc or similar, not when
constructing an argument list.
This reverts commit
5626ea2b1f480bcdd5413c041ee9921fc299ab80.
Paul Davis [Tue, 3 Jun 2014 20:38:33 +0000 (16:38 -0400)]
fix two mysterious problems with stdint types
Paul Davis [Tue, 3 Jun 2014 20:37:53 +0000 (16:37 -0400)]
merge onecanvas and cairocanvas branches, and manually resolve conflicts, including rounding in item_to_window() methods
Paul Davis [Tue, 3 Jun 2014 19:57:56 +0000 (15:57 -0400)]
more profound changes to canvas scrolling, in particular find appropriate ScrollGroup for Canvas::{window,canvas}_to_{canvas,window}()
Paul Davis [Sat, 24 May 2014 21:29:57 +0000 (17:29 -0400)]
fix missing leftover Canvas::pick_current_item() which was confusing button release event coordinates
Paul Davis [Sat, 24 May 2014 02:05:08 +0000 (22:05 -0400)]
use window-based coordinates when picking current item so that we get per-item (per-scroll-group,really) computation of position and coverage.
Paul Davis [Fri, 23 May 2014 03:05:18 +0000 (23:05 -0400)]
various changes to get independent scrolling to work better in canvas. mostly tweaks relating to how scroll offsets are used during rendering.
Event handling offsets still require work.
Paul Davis [Fri, 23 May 2014 02:33:04 +0000 (22:33 -0400)]
clean up ArdourCanvas::Arrow implementation to remove unshown polygon/head
Paul Davis [Fri, 23 May 2014 02:32:26 +0000 (22:32 -0400)]
remove utterly useless unused code
Paul Davis [Wed, 21 May 2014 23:15:08 +0000 (19:15 -0400)]
remove useless groups from timebar area, clarify scroll group naming in editor
Paul Davis [Wed, 21 May 2014 23:14:40 +0000 (19:14 -0400)]
rationalize and centralize computation of positional offset and scroll offset for canvas items
Paul Davis [Wed, 21 May 2014 23:13:58 +0000 (19:13 -0400)]
remove timebar canvas item from markers
Paul Davis [Wed, 21 May 2014 23:13:26 +0000 (19:13 -0400)]
inline ScrollGroup::canvas_position() for no particular reason
Paul Davis [Wed, 21 May 2014 15:12:57 +0000 (11:12 -0400)]
remove timebar canvas and just use a single canvas instead. This is just part one - lots of minor fixes to be done
Paul Davis [Wed, 21 May 2014 14:25:28 +0000 (10:25 -0400)]
avoid recursing through the entire canvas when scrolling - only scroll explicitly identified ScrollGroups
Paul Davis [Wed, 21 May 2014 13:25:36 +0000 (09:25 -0400)]
remove incorrect calls to Editor::maybe_autoscroll() from specific Drag classes (autoscroll is handled by the Drag manager)
Paul Davis [Wed, 21 May 2014 13:25:08 +0000 (09:25 -0400)]
whitespace deletion
Paul Davis [Wed, 21 May 2014 03:08:15 +0000 (23:08 -0400)]
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.
Paul Davis [Wed, 21 May 2014 03:04:23 +0000 (23:04 -0400)]
remove unused variable
Paul Davis [Sun, 18 May 2014 16:22:23 +0000 (12:22 -0400)]
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
Paul Davis [Sat, 17 May 2014 19:51:08 +0000 (15:51 -0400)]
non-copy region drag now creates a new track when a region is dragged to the drop zone
Paul Davis [Sat, 17 May 2014 16:17:16 +0000 (12:17 -0400)]
part one of allowing region drag to the bottom (drop-zone) rect of track canvas
John Emmas [Tue, 3 Jun 2014 13:04:10 +0000 (14:04 +0100)]
When writing '.jackdrc' make sure we enclose any device names in quotation marks
(in Windows, device names almost always contain whitespace)
John Emmas [Tue, 3 Jun 2014 13:02:05 +0000 (14:02 +0100)]
Keep this #include consistent with similar ones
(evoral/evoral doesn't get used anywhere else)
Robin Gareus [Tue, 3 Jun 2014 00:06:22 +0000 (02:06 +0200)]
fix wscript for x-compiling
Robin Gareus [Mon, 2 Jun 2014 23:00:58 +0000 (01:00 +0200)]
ALSA backend: tweak midi parser (fix start mid sequence)
Robin Gareus [Mon, 2 Jun 2014 22:50:26 +0000 (00:50 +0200)]
ALSA backend: device detection
Robin Gareus [Mon, 2 Jun 2014 19:09:21 +0000 (21:09 +0200)]
fix linking against libasound
Robin Gareus [Mon, 2 Jun 2014 18:33:12 +0000 (20:33 +0200)]
make ALSA backend optional and disable by default
Robin Gareus [Mon, 2 Jun 2014 17:20:04 +0000 (19:20 +0200)]
ALSA backend: add raw midi parser
Robin Gareus [Mon, 2 Jun 2014 14:52:07 +0000 (16:52 +0200)]
ALSA backend: raw midi prototype
Robin Gareus [Mon, 2 Jun 2014 12:29:19 +0000 (14:29 +0200)]
ALSA backend (based on Dummy backend and zita-alsa-pcmi)
Robin Gareus [Sun, 1 Jun 2014 19:43:48 +0000 (21:43 +0200)]
allow latency measurement at startup
Robin Gareus [Sun, 1 Jun 2014 19:43:03 +0000 (21:43 +0200)]
tentative fix for requesting driver+device list from backend
Paul Davis [Mon, 2 Jun 2014 15:42:35 +0000 (11:42 -0400)]
fix errors in manual conflict resolution
Paul Davis [Mon, 2 Jun 2014 15:32:13 +0000 (11:32 -0400)]
merge with master and fix 4 conflicts by hand
Robin Gareus [Mon, 2 Jun 2014 10:19:35 +0000 (12:19 +0200)]
DummyBackend: fix midi event mux+sorting
Robin Gareus [Sun, 1 Jun 2014 17:48:21 +0000 (19:48 +0200)]
fix display of cd-track-detail UI
Robin Gareus [Sun, 1 Jun 2014 16:18:32 +0000 (18:18 +0200)]
fix --with-dummy config option
Robin Gareus [Sun, 1 Jun 2014 16:18:08 +0000 (18:18 +0200)]
Dummy backend, revise small things
Robin Gareus [Sun, 1 Jun 2014 16:16:15 +0000 (18:16 +0200)]
dummy-backend, fix physical ports in/out convention.
Robin Gareus [Sat, 31 May 2014 22:40:07 +0000 (00:40 +0200)]
disable snap fades to 'other' region (for now)
Robin Gareus [Sat, 31 May 2014 16:22:34 +0000 (18:22 +0200)]
test possible 'flickering' with nvidia
Robin Gareus [Sat, 31 May 2014 15:13:47 +0000 (17:13 +0200)]
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()
Robin Gareus [Sat, 31 May 2014 14:07:38 +0000 (16:07 +0200)]
frankenstein'ed fade+trim cursors
Robin Gareus [Sat, 31 May 2014 13:18:43 +0000 (15:18 +0200)]
initialize variables
Robin Gareus [Sat, 31 May 2014 13:15:46 +0000 (15:15 +0200)]
show fade+trim handles only if the operation is possible
Robin Gareus [Sat, 31 May 2014 12:16:15 +0000 (14:16 +0200)]
session fade-region-visible is for fades - not controls
Robin Gareus [Sat, 31 May 2014 12:06:10 +0000 (14:06 +0200)]
don't allow waveform to bleed into TimeAxisViewItem frame border
Robin Gareus [Sat, 31 May 2014 12:04:41 +0000 (14:04 +0200)]
prepare fade+trim cursors (cursor image still missing)
Robin Gareus [Sat, 31 May 2014 12:00:28 +0000 (14:00 +0200)]
reduce outline of fade-in/active rectangle to line
Robin Gareus [Sat, 31 May 2014 12:00:04 +0000 (14:00 +0200)]
show x-fade-rectangle only when hovering
Robin Gareus [Sat, 31 May 2014 02:51:02 +0000 (04:51 +0200)]
fix fade+trim handle hover color
Robin Gareus [Sat, 31 May 2014 02:17:47 +0000 (04:17 +0200)]
reset [trim] fade handle position if track-height changes
Robin Gareus [Sat, 31 May 2014 01:53:59 +0000 (03:53 +0200)]
towards region-trims preserving fade duration
Robin Gareus [Fri, 30 May 2014 15:24:12 +0000 (17:24 +0200)]
use CubicSpline interpolation for x-fade preset Shapes
Robin Gareus [Fri, 30 May 2014 15:00:28 +0000 (17:00 +0200)]
update Evoral::Curve to honor ControlList::InterpolationStyle
John Emmas [Fri, 30 May 2014 11:52:03 +0000 (12:52 +0100)]
Add newly introduced sources to MSVC project
(xfade_curve stuff)
John Emmas [Fri, 30 May 2014 11:50:49 +0000 (12:50 +0100)]
Rearrange some #includes to keep MSVC happy
Robin Gareus [Fri, 30 May 2014 02:25:59 +0000 (04:25 +0200)]
Fix code to prepare re-enable cubic spline interpolation of automation data.
see also
24917e4c9e36ca57
Robin Gareus [Fri, 30 May 2014 01:54:15 +0000 (03:54 +0200)]
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.
Robin Gareus [Fri, 30 May 2014 01:04:02 +0000 (03:04 +0200)]
smooth visual curve drawing
Robin Gareus [Thu, 29 May 2014 20:40:40 +0000 (22:40 +0200)]
use fixed number of steps for dB-scale x-fade curves.
32 steps is sufficient for all practical musical purposes.
Robin Gareus [Thu, 29 May 2014 19:03:46 +0000 (21:03 +0200)]
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.
Paul Davis [Thu, 29 May 2014 20:28:57 +0000 (16:28 -0400)]
back port
6576105 from cairocanvas as fix for data loss/file deletion
Paul Davis [Thu, 29 May 2014 20:27:33 +0000 (16:27 -0400)]
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.
Robin Gareus [Thu, 29 May 2014 18:53:18 +0000 (20:53 +0200)]
fix symmetric fade-shape (still variable number of steps)
Robin Gareus [Thu, 29 May 2014 14:59:04 +0000 (16:59 +0200)]
Symmetric x-fade, use equivalent of -6dB per step for 7 steps.
Robin Gareus [Thu, 29 May 2014 12:16:15 +0000 (14:16 +0200)]
set Gtk::RadioAction state on instant.xml load.
This should really be done in ArdourDropdown somehow.
Fixes issues introduced at
b9708d5: If after session-load some
radio-item other than the first one is set active, it is
impossible to switch to the first.
e.g. set "Snap to Grid", Save Session, Load Session, trying to
switch to "Snap to None" fails until another mode is selected first.
Robin Gareus [Thu, 29 May 2014 11:19:47 +0000 (13:19 +0200)]
more new fade icons from Chris Goddard
Robin Gareus [Thu, 29 May 2014 05:49:36 +0000 (07:49 +0200)]
fix typo in vst doc.
Robin Gareus [Thu, 29 May 2014 05:49:26 +0000 (07:49 +0200)]
update x-fade context-menu
Robin Gareus [Thu, 29 May 2014 05:48:43 +0000 (07:48 +0200)]
smoothen rendering of x-fades
Robin Gareus [Thu, 29 May 2014 05:48:25 +0000 (07:48 +0200)]
increase accuracy of fades.
Robin Gareus [Thu, 29 May 2014 03:30:13 +0000 (05:30 +0200)]
fix prev commit
Robin Gareus [Thu, 29 May 2014 03:06:02 +0000 (05:06 +0200)]
renice x-fade rendering w/cairo-antialiasing
Robin Gareus [Thu, 29 May 2014 02:37:13 +0000 (04:37 +0200)]
revert x-fade curves to Mixbus2.
Paul Davis [Thu, 29 May 2014 02:30:06 +0000 (22:30 -0400)]
make building the dummy backend be a configure-time option. defaults to False for the time being
Robin Gareus [Thu, 29 May 2014 01:10:22 +0000 (03:10 +0200)]
replace use of Curve with XFadeCurve.
Robin Gareus [Thu, 29 May 2014 01:09:57 +0000 (03:09 +0200)]
Canvas: new x-fade drawing, two curve widget
Robin Gareus [Wed, 28 May 2014 20:20:28 +0000 (22:20 +0200)]
update fade icons
Paul Davis [Wed, 28 May 2014 19:53:25 +0000 (15:53 -0400)]
fix wscript to handle git revision ID that consists of just MAJOR.MINOR, as will happen if the repo is at the exact same rev as the MAJOR.MINOR tag
Robin Gareus [Wed, 28 May 2014 17:46:31 +0000 (19:46 +0200)]
fix x-fade icons in context menu
Robin Gareus [Wed, 28 May 2014 17:12:32 +0000 (19:12 +0200)]
Revert "cairo sub-surface prototype & example
This reverts commit
c57fcde78cc0fb393fb7420f1edbc71edf572bd0.
and also commit
f1f8f89fcb9312065a818233dff4a3f1871fa7fe.
Paul Davis [Wed, 28 May 2014 16:18:30 +0000 (12:18 -0400)]
fix up operation of Editor::temporal_zoom_to_frame() which had not been updated since samples_per_pixel was changed to an integer (framecnt_t)
Robin Gareus [Wed, 28 May 2014 15:12:33 +0000 (17:12 +0200)]
exercise subsurface rendering for x-fade curves
Robin Gareus [Wed, 28 May 2014 15:12:03 +0000 (17:12 +0200)]
cairo sub-surface prototype - intermediate flattened group renderer.
Robin Gareus [Wed, 28 May 2014 00:15:52 +0000 (02:15 +0200)]
VST: fix name detection if effGetEffectName is N/A, remove superfluous \0.
Robin Gareus [Tue, 27 May 2014 23:59:19 +0000 (01:59 +0200)]
VST: properly query name from plugin
Robin Gareus [Tue, 27 May 2014 17:28:56 +0000 (19:28 +0200)]
Curve: anti-aliasing.
use cairo for anti-aliasing, and ignore explicit Catmull-Rom
points for that fall on the same x-cordinate.
Paul Davis [Tue, 27 May 2014 17:25:46 +0000 (13:25 -0400)]
for trx, use the primary clock for verbose cursor units
Robin Gareus [Tue, 27 May 2014 14:28:28 +0000 (16:28 +0200)]
x-fade drawing rework, part one
Robin Gareus [Tue, 27 May 2014 14:27:20 +0000 (16:27 +0200)]
implement Curve in/outside fill
Robin Gareus [Mon, 26 May 2014 22:34:27 +0000 (00:34 +0200)]
global one-time setup of waveform preferences.
see note in previous commit.
Robin Gareus [Mon, 26 May 2014 22:33:42 +0000 (00:33 +0200)]
persistent waveform shape setting.
NOTE: the call to set_global_shape() only needs to happen once,
presumably in a hook in the editor that catches Config::Changed
The same is true for waveform-scale and clipping. But for now it's
at least consistent.
Robin Gareus [Mon, 26 May 2014 22:33:15 +0000 (00:33 +0200)]
directly apply waveform clip-level changes