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