f220d01132
Remove member filter argument from PathScanner methods and use normal filter for regex
...
Also use regfree to free memory of compiled patterns
2014-06-17 21:13:16 +10:00
0e96d84079
Change PBD::PathScanner API to return results by value to avoid inadvertent memory leaks
2014-06-17 21:13:05 +10:00
e426c603b6
remove debug output
2014-06-16 23:58:52 +02:00
019e987944
more alsa-midi debugging
2014-06-16 22:08:52 +02:00
43db6fd97e
more midi latency detection debugging
2014-06-16 20:22:31 +02:00
fbe359e8c7
debug alsa midi latency measurement
2014-06-16 19:44:23 +02:00
a96036e3af
fix typo in comment of prev. commit
2014-06-16 00:55:26 +02:00
c8fd1d26eb
fix region un/combine, based on a patch by Tom Brand
2014-06-16 00:51:45 +02:00
c7c3c1e924
another edge-case, don't crash on invalid files with zero channels
2014-06-15 21:07:19 +02:00
443ccb866f
fix edge case - handle error in device owner request
2014-06-15 21:07:19 +02:00
4651530d6f
ARD: proper cleanup
2014-06-15 21:07:19 +02:00
8050712503
comment correction regarding Canvas::visible_area()
2014-06-15 12:18:47 -04:00
dae45f1d75
initialize _scroll_parent in Canvas::item
2014-06-15 12:17:12 -04:00
6c6afa4ecf
optimize midi delayline.
2014-06-15 16:36:13 +02:00
b0bab058d0
offset automation by latency
2014-06-15 16:21:09 +02:00
b6e81dcdae
offset automation by processor latency for bouncing/freezing
...
the same remains to be done for general route processing
2014-06-15 16:12:50 +02:00
36be1a3a9b
plug some leaks
2014-06-15 13:24:41 +02:00
69af017315
initialize uninitialized variable
2014-06-15 13:24:40 +02:00
12cf9d5be8
fix pathscanner / stl_vector related memory leaks
2014-06-15 13:24:39 +02:00
55d51d38ce
Add newly introduced sources to our MSVC projects
2014-06-15 09:56:49 +01:00
e59210c402
Remove no longer needed sources from MSVC projects
2014-06-15 09:55:34 +01:00
f7acad4e5c
strtok() is the root of all evil.
2014-06-14 16:45:55 +02:00
62ba8d23e3
tracking down concurrency issus is fun.
2014-06-14 16:38:47 +02:00
ff39a42581
ALSA backend: set latencies to zero when measuring latency
2014-06-13 13:51:42 +02:00
b68552d9a0
send-delayline: proper debug output (and sort includes on the way)
2014-06-13 13:51:42 +02:00
ecb92f474f
update ALSA backend, MIDI device config
2014-06-13 12:02:03 +02:00
da912f7ed4
add AudioEngine API to configure individual MIDI devices
2014-06-13 11:47:51 +02:00
5abf3624f4
Use Ardour 3 credentials for soundcloud upload
...
I registered 'Ardour 3' as an app with Soundcloud - here are the
client_id and client_secret I got back. Probably the client_secret
shouldn't be here - I'll try to understand what should really happen and
fix this up in due course. Probably we should be using OAuth.
Also remove a couple of bits of dead code and fix a few whitespace
oddities.
2014-06-12 23:20:06 +01:00
f0dbd6c085
Export dialog: tidy code, & remove some superfluous debug output
...
Remove some debug output, tidy up a few whitespace inconsistencies, use
DEBUG::Soundcloud in one more place, and zap a couple of unused variables.
2014-06-12 23:20:05 +01:00
70308f5174
Post-export hook tweaks
...
Remove the Soundcloud username & password from the parameter substitutions
passed to the post-export hook: having thought about this now, I can't
actually think of a case where these are of any use at all.
In compensation, add %s and %n parameters that expand to the session
directory and name - maybe people will think of uses for these.
2014-06-12 23:20:05 +01:00
724a69a8d5
Search $PATH for command when creating SystemExec from command line
...
When creating a SystemExec from a command-line, search $PATH for the
command to execute, so that post-export hooks don't need to specify a full
path.
2014-06-12 23:20:05 +01:00
590882f3c8
change Canvas heirarchy and constructors
...
Items no longer need a parent group (they require a Canvas pointer instead), so all constructors have been rationalized
and have two variants, one with a parent and one with a canvas.
All Items now inherit from Fill and Outline, to banish diagonal inheritance and virtual base classes and all that.
There were zero changes to the Ardour GUI arising from these changes.
2014-06-12 14:53:44 -04:00
23d7893910
remove drag handle canvas object - it was just a stupid unfinished experiment
2014-06-12 10:40:43 -04:00
87a6f633a1
derive ArdourCanvas::Ruler from Rectangle
2014-06-12 10:35:16 -04:00
e1825361b5
remove hard-coded colors
2014-06-12 01:07:58 -04:00
143f9509ea
many fixes and improvements for a now-working ArdourCanvas::Ruler item
2014-06-11 23:54:28 -04:00
f5fc4a6b09
add ruler.cc to canvas wscript
2014-06-11 23:54:28 -04:00
2cab65062d
add Ruler to Canvas fwd.h
2014-06-11 23:54:28 -04:00
5ee4f41925
add initial (untested) implementation of canvas ruler item
2014-06-11 23:54:28 -04:00
e1b82caeb9
delayline: properly hand-over the shared-pointer.
2014-06-12 02:10:37 +02:00
266953cb96
add latency callback to dummy backend
2014-06-11 22:01:21 +02:00
b6362a76a8
fix possible crash when setting delivery name w/o panshell
2014-06-11 20:21:14 +02:00
6003aea385
NOOP, re-indent using tabs
2014-06-11 17:14:31 +02:00
4d0e564fa7
align internal sends using delaylines
2014-06-11 17:14:26 +02:00
ca3c9cae6e
basic integration of delaylines (still un-nused)
2014-06-11 17:14:18 +02:00
626b2daa82
add delayline implementaion (in prep for latency compensation)
2014-06-11 16:31:29 +02:00
621e92f268
NOOP, re-indent & whitespace
2014-06-11 16:27:30 +02:00
33db3c854d
prepare midi buffer API for midi-delaylines
2014-06-11 16:27:23 +02:00
0400fa64da
fix midi buffer erase()
2014-06-11 16:26:27 +02:00
107e0d6d02
fix crash recovery: add new constructors to SndFileSource, AudioFileSource, add a new SourceFactory method and finally tweak
...
AudioDiskstream::use_pending_capture_data() to create both the required whole-file and the in-playlist regions
2014-06-10 10:07:04 -04:00
438179d278
wrap MIDI timecode at 24h
2014-06-10 04:22:34 +02:00
c0376fe7b3
really fix sending MIDI timecode.
2014-06-10 04:12:08 +02:00
7df663acf2
fix crash when trying to send MMC of timecode > 255 hours
2014-06-10 03:18:05 +02:00
915bb2f641
close dir opened with opendir() - fixes accumulated fd for plugin state saves
2014-06-10 02:21:22 +02:00
7a3a66db72
fix Canvas::LineSet implementation to support horizontal and vertical linesets
2014-06-09 15:39:19 -04:00
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