13
0
Commit Graph

6919 Commits

Author SHA1 Message Date
f0c18abf55 remove global canvas scroll offset, to provide no-scroll-parent == no-scroll behaviour 2014-06-09 08:39:48 -04:00
8fe593fcca some misc tweaks to the ALSA Backend 2014-06-08 21:04:30 +02:00
4c1d049c8e reset accumulated capture offset on file roll-over.
(previously it was not reset as long as rec-arm and rec-enable
remained enabled)
2014-06-08 21:03:50 +02:00
b86e1204ec fix borked logic controlling whether/when to draw clip/outline pixels/lines in waveviews 2014-06-08 13:13:44 -04:00
c22e96522d Merge branch 'waveview_caching_for_upstream' of https://github.com/nmains/ardour into cairocanvas 2014-06-08 13:01:47 -04:00
nick_m
e495577f98 Use global clip level from prefs. Restore clip colour, \ 2014-06-09 02:50:14 +10:00
5e281d3b44 when delivering enter/leave events to canvas items, ensure that the event coordinates are in canvas space, not window space
This fixes a variety of borkage in the canvas at present
2014-06-08 11:26:32 -04:00
153befa92c add Item::canvas_origin() for convenience 2014-06-08 11:26:32 -04:00
b3a44ea32b ALSA Backend: align midi output buffer with n_periods (currently 2) 2014-06-08 15:53:15 +02:00
81182b5bf6 prepare MIDI latency measurement (backend) 2014-06-08 11:18:18 +02:00
6416a429a8 implement midi capture alignment:
For audio: not writing frames to the capture ringbuffer offsets
the recording.
For midi: we need to keep track of the record range
and subtract the accumulated difference from the event time.
2014-06-08 01:07:03 +02:00
5a41487a08 remove some 1920 tick constants and leave notes for some others. 2014-06-07 18:35:37 +02:00
nick_m
7a05dde39d Use a dumb cache for waveview ImageSurfaces. This halves the size of the
previous one, but usually ends up using three of them at the current
CACHE_HIGH_WATER setting.
Should result in a smaller memory footprint for sessions with
multiple copies of nearby audio segments (electronic style).
The downside is the larger memory footprint for linear recording
sessions if CACHE_HIGH_WATER > 1 (1 giving a max of two
half - sized cache entries per audio stream).
2014-06-08 01:47:38 +10:00
94fa927861 limit automation event density - fixes #5928
Constrain control points to one per tick (1/1920 beats).

Prior to this it was possible to set two values to the
same time (interpolation and iteration failed).
2014-06-07 17:43:12 +02:00
8f17b7c309 ALSA backend: separate systemic audio+midi latency 2014-06-07 17:28:47 +02:00
c452cd9be2 ALSA rt-thread priority fixes 2014-06-07 17:28:46 +02:00
b68d2e25b2 ALSA backend: prevent possible crash destruction of a-r-d 2014-06-07 17:28:46 +02:00
960a5347f0 ALSA & Dummy: implement port [un]registration_callback 2014-06-07 17:28:46 +02:00
5288de3dc0 install libardouralsautil into the normal libdir, not a subdir 2014-06-07 08:30:35 -04:00
5086cc3f49 Revert windows backend search expression to "*backend.dll" 2014-06-07 14:31:32 +10:00
6b3e7cf07d Don't use module versioning with dummy backend when building with mingw 2014-06-07 14:31:32 +10:00
67c43d4b49 Don't use module versioning with jack backend in the mingw build 2014-06-07 14:31:32 +10:00
dada765e7a Include stdint.h for int64_t type 2014-06-07 13:49:12 +10:00
c5538969b7 Fix timecode target so it is just libtimecode.so and not liblibtimecode.so 2014-06-07 13:49:12 +10:00
b54a2713a1 When rendering a Canvas::Rectangle take its _position into account, even though in general this is always (0,0) within its parent 2014-06-06 08:33:13 -04:00
d7fc573cb8 alsa + dummy backend, proper [re]initialization 2014-06-06 03:43:39 +02:00
1c87f6adec properly setup port system latency for Dummy & ALSA backend 2014-06-06 00:58:11 +02:00
792fe016e7 clip rendering of ScrollGroup to just the part of the canvas covered by the scroll group.
This stops tracks from appearing to scroll up under the rulers, among other things.
2014-06-05 18:18:28 -04:00
ef9bf58359 fix problems with expose/redraws from canvas where requested area goes way outside the integer range allowed by GTK/GDK 2014-06-05 14:42:46 -04:00
748c137461 pass ardour's pid to the device reservation script.
terminate a-r-d when ardour crashes or exits unexpectedly.
2014-06-05 19:49:23 +02:00
475e24f1d9 don't build a-r-d if alsa backend is not built 2014-06-05 18:19:55 +02:00
27af0f2d4b add default timeout for old dbus headers 2014-06-05 18:19:54 +02:00
8c79f70eef remove debugging output 2014-06-05 12:04:42 -04:00
1d354f746a basic, initial structure for canvas widget item 2014-06-05 12:04:42 -04:00
55009368c5 allow public access to CairoWidget::render() 2014-06-05 12:04:41 -04:00
de6a1ab701 make alsa/ardour dbus-device request tool generally useful. 2014-06-05 18:02:43 +02:00
8d6183bff5 ALSA backend: require both in+output. 2014-06-05 03:27:19 +02:00
27f8fc90cf mark dbus reservation tool optional 2014-06-05 03:26:52 +02:00
3813c7afae increase system-exec timeouts for kill. 2014-06-05 02:22:13 +02:00
822c460d15 DBus ALSA device reservation 2014-06-05 02:22:13 +02:00
742282b7e9 proper dbus device reservation 2014-06-05 02:22:12 +02:00
a907d3455e break out ALSA related functions into libardouralsautil 2014-06-04 19:16:37 +02:00
40cfe86569 ALSA: tentative hack to request audio-device. 2014-06-04 17:17:15 +02:00
6b781f72f2 ALSA backend: engine.halted_callback if the process thread dies 2014-06-04 17:17:15 +02:00
104adebea6 if the user chooses to stop the jack-backend, mark it as stopped. Don't display the "..was shutdown .. was not fast enough.." message. 2014-06-04 17:17:14 +02:00
ec49e351c3 fixes to change engines while Ardour is running.
When a new backend is selected, it is loaded to query
available devices etc. This effectively drops the current backend.
2014-06-04 17:17:14 +02:00
236926e7ca Add newly introduced sources to MSVC project
(scroll_group stuff)
2014-06-04 13:50:06 +01:00
3ca59162c9 Revert "add API to query a processor's frozen state."
Theoretically one could alter the plugins after a delivery even on a
frozen track. ..or even change settings, the ordering and add/remove
plugins after the frozen part of a track.

We won't go there. Frozen is frozen. this API is not needed after all.

This reverts commit a771dea203.
2014-06-04 02:40:19 +02:00
aec7ea4613 Revert "Revert "ALSA backend: separate flags for is-running and should-be-running""
sorry, c/p error
This reverts commit 9658b77327.
2014-06-04 02:39:39 +02:00
9658b77327 Revert "ALSA backend: separate flags for is-running and should-be-running"
Theoretically one could alter the plugins after a delivery even on a
frozen track. ..or even change settings, the ordering and add/remove
plugins after the frozen part of a track.

We won't go there. Frozen is frozen. this API is not needed after all.

This reverts commit 6d89488d64.
2014-06-04 02:34:58 +02:00
6d89488d64 ALSA backend: separate flags for is-running and should-be-running 2014-06-04 02:23:41 +02:00
a771dea203 add API to query a processor's frozen state. 2014-06-04 02:23:24 +02:00
06b4cf92db re-work bounce/freeze. Freezer stops at first active delivery.
amend to 8f52bf7d9f
2014-06-04 02:19:46 +02:00
03cb44f814 ALSABackend: elaborate on start-up error cases 2014-06-04 02:19:46 +02:00
daaa59b533 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 5626ea2b1f.
2014-06-03 20:08:26 -04:00
8b745aa4b4 fix two mysterious problems with stdint types 2014-06-03 16:38:33 -04:00
8fa81c1436 merge onecanvas and cairocanvas branches, and manually resolve conflicts, including rounding in item_to_window() methods 2014-06-03 16:37:53 -04:00
e0533e9dd7 more profound changes to canvas scrolling, in particular find appropriate ScrollGroup for Canvas::{window,canvas}_to_{canvas,window}() 2014-06-03 16:13:12 -04:00
d4989ed9ce fix missing leftover Canvas::pick_current_item() which was confusing button release event coordinates 2014-06-03 16:12:00 -04:00
073df89c4d use window-based coordinates when picking current item so that we get per-item (per-scroll-group,really) computation of position and coverage. 2014-06-03 16:12:00 -04:00
54a56cd3c6 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.
2014-06-03 16:12:00 -04:00
f17b84ad10 clean up ArdourCanvas::Arrow implementation to remove unshown polygon/head 2014-06-03 16:11:24 -04:00
bf7b35388b rationalize and centralize computation of positional offset and scroll offset for canvas items 2014-06-03 16:11:24 -04:00
22e7252729 inline ScrollGroup::canvas_position() for no particular reason 2014-06-03 16:10:27 -04:00
c9f890bd7c avoid recursing through the entire canvas when scrolling - only scroll explicitly identified ScrollGroups 2014-06-03 16:10:27 -04:00
6019f06bdf 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-06-03 16:10:27 -04:00
97109672c7 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-06-03 16:09:06 -04:00
5626ea2b1f When writing '.jackdrc' make sure we enclose any device names in quotation marks
(in Windows, device names almost always contain whitespace)
2014-06-03 14:04:10 +01:00
fd50cf14dd Keep this #include consistent with similar ones
(evoral/evoral doesn't get used anywhere else)
2014-06-03 14:02:05 +01:00
01cedf0e05 ALSA backend: tweak midi parser (fix start mid sequence) 2014-06-03 01:00:58 +02:00
b050f91323 ALSA backend: device detection 2014-06-03 00:50:26 +02:00
432f54db24 make ALSA backend optional and disable by default 2014-06-02 20:33:12 +02:00
c79a56a08f ALSA backend: add raw midi parser 2014-06-02 19:23:07 +02:00
5cd2010c79 ALSA backend: raw midi prototype 2014-06-02 19:23:07 +02:00
8e9b02cfa2 ALSA backend (based on Dummy backend and zita-alsa-pcmi) 2014-06-02 19:23:07 +02:00
7f18913e6d fix errors in manual conflict resolution 2014-06-02 11:42:35 -04:00
8c9749e42f merge with master and fix 4 conflicts by hand 2014-06-02 11:32:13 -04:00
f6d29abfc7 DummyBackend: fix midi event mux+sorting 2014-06-02 12:20:40 +02:00
1c60652bd8 fix --with-dummy config option 2014-06-01 18:18:32 +02:00
dc1a7a15fa Dummy backend, revise small things 2014-06-01 18:18:08 +02:00
b800a01ea6 dummy-backend, fix physical ports in/out convention. 2014-06-01 18:16:15 +02:00
ab60429efc test possible 'flickering' with nvidia 2014-05-31 18:22:34 +02:00
f382aef5ac 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-05-31 17:13:47 +02:00
2342b7d611 don't allow waveform to bleed into TimeAxisViewItem frame border 2014-05-31 14:06:10 +02:00
62e8d1a25f use CubicSpline interpolation for x-fade preset Shapes 2014-05-30 17:24:12 +02:00
c91f847454 update Evoral::Curve to honor ControlList::InterpolationStyle 2014-05-30 17:00:28 +02:00
161a3258ee Add newly introduced sources to MSVC project
(xfade_curve stuff)
2014-05-30 12:52:03 +01:00
33412421f6 Rearrange some #includes to keep MSVC happy 2014-05-30 12:50:49 +01:00
5aecc877d6 Fix code to prepare re-enable cubic spline interpolation of automation data.
see also 24917e4c9e
2014-05-30 04:25:59 +02:00
e69057319e 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-05-30 03:54:15 +02:00
fed5599baa smooth visual curve drawing 2014-05-30 03:04:02 +02:00
38891288f3 use fixed number of steps for dB-scale x-fade curves.
32 steps is sufficient for all practical musical purposes.
2014-05-29 22:41:13 +02:00
1cfdad6ffb 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-05-29 22:41:13 +02:00
08a1409b1f back port 6576105 from cairocanvas as fix for data loss/file deletion 2014-05-29 16:28:57 -04:00
be575b7945 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-05-29 16:27:41 -04:00
c6930c1aef fix symmetric fade-shape (still variable number of steps) 2014-05-29 20:53:18 +02:00
7953df93bf Symmetric x-fade, use equivalent of -6dB per step for 7 steps. 2014-05-29 16:59:04 +02:00
cc6eb5049a fix typo in vst doc. 2014-05-29 07:49:36 +02:00
202d926916 smoothen rendering of x-fades 2014-05-29 07:48:43 +02:00
5451a70a16 increase accuracy of fades. 2014-05-29 07:48:25 +02:00