Commit graph

7753 commits

Author SHA1 Message Date
David Robillard
a58730e8f9 Revert "Kludgey fix for invisible playhead when scrolled."
This reverts commit 8f823388d9.
2015-01-16 22:06:10 -05:00
David Robillard
fc70b5a9f9 Compute arrow bbox manually to appease crazy canvas. 2015-01-16 22:04:26 -05:00
David Robillard
8f823388d9 Kludgey fix for invisible playhead when scrolled.
The problem this is avoiding makes absolutely no sense.  Either I'm dumb, or
something is more deeply wrong with scroll group bounding boxes, or both, but I
don't care anymore.  This works.  Viva release mode.
2015-01-16 21:04:38 -05:00
David Robillard
b759fd5879 Put playhead on top of everything.
Achieve this by adding a new hscroll group just for cursors.

That requires a slightly smarter window_to_canvas() to deal with overlapping
sensitive scroll groups.  New rule is that scroll groups can overlap, but the
most sensitive one found from the top down will be chosen to translate
coordinates.  This basically means don't overlap scroll groups with different
sensitivities.

In the presence of scroll groups, having a canvas-wide window_to_canvas()
and/or canvas_to_window() fundamentally makes no sense.  At some point in the
glorious future we should kill those and use only item-relative coordinate
translation.
2015-01-16 19:13:56 -05:00
David Robillard
d194ec9135 Update arrow bbox when geometry changes. 2015-01-16 19:13:56 -05:00
David Robillard
e48ff6b6a0 Fix clipping for scroll groups an offset bbox. 2015-01-16 19:13:56 -05:00
Ben Loftis
05a612b563 ASIO devices have a preferred buffersize.
pass this value up so it can be used by the engine dialog.
if for some reason the engine dialog still doesn't have a buffersize selected, print an error and try 512 instead of crashing.
2015-01-16 17:15:26 -06:00
David Robillard
4166b05bda Fix setting command key bindings on OSX. 2015-01-14 20:31:38 -05:00
Robin Gareus
37f351ccdd JACK: add support for device names with whitespace
This is backwards compatible, quotes are only added if needed.
JACK1 < 0.123.1-30 and JACK2 < 1.9.10-25 fail with either
whitespace or quotes, so nothing is lost.
2015-01-14 19:29:55 +01:00
Robin Gareus
12d4375211 fix auditioning of regions with offset - fixes #6131 2015-01-13 18:36:10 +01:00
Robin Gareus
9863d160fc LTC: don’t flag “no lock” until delta was at zero at least least once. 2015-01-12 23:17:39 +01:00
Robin Gareus
b8bec75aa3 add an explicit indicator for LTC lock 2015-01-12 20:27:23 +01:00
Robin Gareus
e90a784fb5 force complete peak compute.
Do not skip peaks when creating peak files while recording.
Fixes missing peaks in #6127

(TODO: after double-check and sign-off, remove ‘force’
parameter from ::compute_and_write_peaks API)
2015-01-12 18:19:05 +01:00
John Emmas
95091a52a0 When building with MSVC make sure any backends / panners etc get copied to the correct target folder
(i.e. 'lib/ardour3' or 'lib/mixbus3' as appropriate)

These changes are MSVC specific and shouldn't affect the other builds
2015-01-12 14:43:22 +00:00
David Robillard
55278fb3b0 Fix mouse event position offset bug.
Search scroll groups for event delivery from top to bottom rather than bottom
to top.  Overlapping scroll groups still aren't properly supported by the
canvas, but currently all we care about is that the top one gets the event, so
the hscroll group (tempo lines) can be below the hvscroll group (tracks), but
the latter gets events.
2015-01-12 01:05:01 -05:00
Robin Gareus
4d370b8942 add a midi->audio dummy backend mode.
this allows to easily debug latency compensation
as well as visualize lost midi events.
2015-01-11 20:51:57 +01:00
Robin Gareus
38c2bdc856 gracefully handle missing .midnam
Fixes bug: Add a .midnam to local preferences.
use it in a session. delete the .midnam,
reload session -> crash
2015-01-10 19:31:50 +01:00
John Emmas
9e873acedb Accommodate a newly introduced #define ('LIBARDOUR') when building with MSVC
These changes are MSVC specific and shouldn't affect the other builds.
2015-01-10 12:15:47 +00:00
John Emmas
2abd8b8f06 Add a newly introduced header file to our MSVC project (libevoral)
This change is MSVC specific and shouldn't affect the other builds.
2015-01-10 11:58:58 +00:00
John Emmas
f598105966 Add support for the C99 function 'log2()' which is newly needed by 'gtk2_ardour/tempo_lines.cc' (but isn't available from MSVC).
These changes are MSVC specific and shouldn't affect the other builds.

(incidentally, libpbd already offers a function called 'fast_log2()'. Not sure if that could have been used instead...)
2015-01-10 11:56:24 +00:00
Robin Gareus
0367aa5825 remove cruft (old unused pre-git version files) 2015-01-09 06:11:57 +01:00
Robin Gareus
7f72e7d879 fix LTC alignment.
LTC-slave: offset the parsed LTC-frame instead of changing the
frame's timestamp. This fixes an issue with freewheel timeout and
delta-calculation. Align transport-time with output to match
capture alignment: "with existing material".

LTC-generator: follow suit. align clock with master-bus out.
This is a semi-permanent workaround. Once [tracks feeding] the
master-bus is/are delayed to align to output. The generator
needs to use (worst_track_latency not worst_playback_latency)
2015-01-09 06:08:15 +01:00
David Robillard
2132b917cc Fix offset events when consolidating MIDI range. 2015-01-08 23:28:02 -05:00
David Robillard
ec17b5388f Fix bounding box of rectangles with wide outlines. 2015-01-08 18:36:10 -05:00
Robin Gareus
659c0d093d remove hardcoded major version in build scripts 2015-01-08 17:59:41 +01:00
David Robillard
7985624037 Close polygon borders (fix partially drawn hits). 2015-01-08 11:09:38 -05:00
Ben Loftis
0fba29a67a tweak boot message so the final message makes more sense 2015-01-08 07:38:08 -06:00
David Robillard
2a251b4570 MusicalTime => Beats. 2015-01-07 00:12:07 -05:00
David Robillard
4d202d9157 Add modulus operator to MIDI transformer.
Useful for doing things like making alternating bowing patterns.
2015-01-06 23:04:28 -05:00
Robin Gareus
17dfebf611 Only restore plugin state (of first instance) once. 2015-01-06 20:29:39 +01:00
David Robillard
b56905b9a7 Fix MIDI file descriptor leaks.
Pretty sure this is the cause of MIDI data going missing on save for optimized
builds.  Introduced in 294b99aabf.
2015-01-05 15:50:30 -05:00
Robin Gareus
c16d520338 prepare for 'ardour4' 2015-01-05 19:07:24 +01:00
Robin Gareus
5584f46003 update windows user_cache_directory(): same pattern as config dir 2015-01-05 18:29:33 +01:00
Robin Gareus
6e3e1738dd removed hardcoded ".ardour" suffix 2015-01-05 17:48:42 +01:00
John Emmas
7f486e146d Accommodate some newly introduced source files for building with MSVC (libpbd) 2015-01-02 15:31:39 +00:00
Tim Mayberry
d606a37204 Add PBD debug macros for recording timing data 2015-01-01 19:04:14 +07:00
Tim Mayberry
1da30faf7f Add tests that show the timing differences between the Glib/mm based timeouts
This shows that PBD::Timer is pretty much identical in terms of timing and CPU
usage as Glib TimeoutSources.

They also show the differences on Windows when setting the minimum Multimedia Timer
resolution using timeBeginPeriod
2015-01-01 19:04:09 +07:00
Tim Mayberry
b959b3fb87 Add PBD::Timer/StandardTimer/BlinkTimer classes for convenient timeouts 2015-01-01 18:59:01 +07:00
Tim Mayberry
770c190ccf Add Timing, TimingData and Timed classes for time measurement to pbd/timing.h 2015-01-01 18:58:57 +07:00
David Robillard
2558e52e22 Fix alleged use of uninitialized variable.
Looks like a guaranteed else branch to me, but who am I to argue with gcc?
2014-12-31 17:32:21 -05:00
David Robillard
0274c93eac Add missing Variant => LV2 Atom case.
(Not likely to actually be used any time soon but fixes warning and does
something reasonable if lossy).
2014-12-31 17:16:28 -05:00
Paul Davis
07c08e4673 fix incorrect test for valid MIDI events.
Only channel messages have the form <statusbyte>{<nonstatusbyte>..}
2014-12-31 10:32:50 -05:00
Paul Davis
e4f61de52f Fix range "arithmetic"
Subtracting anything from an empty range should return an empty range, not an assert() failure
2014-12-31 07:43:43 -05:00
David Robillard
168d187994 Load what we can from broken/truncated MIDI files.
We're still a very long way from tolerant of weird SMF files (libsmf takes a
"crash if input is not exactly perfect" philosophy, if we're going to be polite
and elevate such a thing to "philosophy"), but at least we'll get what's there
from files truncated by old broken versions of Ardour or other situations.
2014-12-30 23:10:11 -05:00
Robin Gareus
f499f4cfd2 don't take temporary copy of MIDI sequence
fixes potential boost shared_ptr double free.
2014-12-31 03:19:00 +01:00
Robin Gareus
805d4dd731 add a MIDI loopback mode to the Dummy Backend 2014-12-30 22:55:14 +01:00
David Robillard
97d344f740 Fix MIDI CC record/playback crash. 2014-12-30 14:45:11 -05:00
David Robillard
c35e94a3c8 Fix some mangled whitespace (noop). 2014-12-30 14:41:22 -05:00
David Robillard
a85827da1c Revert "Fix occasional MIDI read crash."
This reverts commit ec947ff8fd.
2014-12-30 13:03:22 -05:00
David Robillard
54c085d931 Fix occasional crash when saving MIDI.
I can't figure out why a change has a NULL note; that shouldn't happen, but it
does.  Worse case scenario is some undo loss, so better to print something
informative and soldier on than crash.  Hopefully this will help track down the
real cause with more testing.
2014-12-29 22:01:41 -05:00