13
0
Commit Graph

28966 Commits

Author SHA1 Message Date
51d2bb36ce
Save/Use state-version with route templates
Currently using Ardour-5 route templates (state version "3002")
with Ardour6 fails. As opposed to session-templates, Route
templates were not versioned.

This ensures future compatibility (and may allow to interpret
unversioned templates as "3002")
2020-01-29 23:20:37 +01:00
Andreas Müller
015d4d3642
Find fmt-binding in out-of-tree building
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2020-01-29 19:41:12 +01:00
Nikolaus Gullotta
39dac5b20f Fix tests failing to build by adding LIB_FFTW3F 2020-01-29 10:12:04 -06:00
2731d494c2
Reduce overhead of Lua session-scripts 2020-01-29 16:51:14 +01:00
0ab46c342f
Fix MIDI loop capture alignment
Loop recording creates a single long source, regions have to be
"split" from this source, using "start" as offset.

Since MIDI uses absolute timestamps, offsetting this by accumulating
 buffer_position += (*ci)->samples;
like Track::use_captured_audio_sources() does, is not correct.

Furthermore, record_enabled() may be off when stopping recording,
MIDI needs to be flushed regardless.
2020-01-29 16:25:33 +01:00
ffe7fcd3b0
Allow to dis/engage rec-arm while looping 2020-01-29 05:35:36 +01:00
6bc4f69c5c
Fix loop recording alignment
DiskWriter::transport_looped() is called from the session
when engine loops. This does not take local disk-reader run()
latency offset into account.

finish_capture() needs to be postponed until the disk-writer
itself reaches the loop-position. This is achieved by
postponing loop() and calling it once loop-length of samples
has been captured.

This works because engaging loop always seeks to the loop-position
and first loop resets _capture_captured.
2020-01-29 01:32:06 +01:00
eb7297e2fc
Remove duplicate separators from context menu 2020-01-28 23:38:02 +01:00
b21bab3a8c
Don't allow to deactivate master 2020-01-28 23:37:10 +01:00
6dfee0b1d2
Amend 87af9fb (fix context menu, don't allow to remove master) 2020-01-28 23:17:21 +01:00
a430f65aa3
Initialize monitor-section output button
When loading a session the monitor-connection is made before
the GUI is initialized, the output button did not reflect
the actual connection.
2020-01-28 22:58:14 +01:00
87af9fb820
Consolidate Mixer-strip sensitivity
* Use a single method to set mixer-strip widget sensitivity
* Update context-menu to only allow show actions that can
  currently be performed, depending on active/inactive state.
* Mark all control elements of in-active strips as insenstive
  except those required to re-enable the route.
* Also update processor-box and solo-button when showing Aux

Special case Mixbus. Mixbus already shows a "Insensitive" label,
and Mixbus-channelstrip element sensitivity remains to be
implemented before using this mechanism.
2020-01-28 22:22:57 +01:00
cb01a910d7
Micro optimization: query PI flags once
This also removes a Mixbus special case, explicit ->mixbus() tests
are no longer required.
2020-01-28 21:27:43 +01:00
6b0a3cfffe fix previous commit, and another instance of the same (incorrect constructor) issue 2020-01-28 13:04:39 -07:00
a5dbac0a9c fix assert-crash caused by not constructing a StopTransport event correctly 2020-01-28 12:54:04 -07:00
b2051d98fd
Clarify pending-state message
Previously this dialog was mainly used for crashes during
recording. Now it is also used for backup saves in general.
2020-01-28 17:29:36 +01:00
e6ce5a611c shortest note length after a drag-trim is 1 tick, not 1/512 beats 2020-01-28 00:06:12 -07:00
fd62b38f8d correct computation of new note length after a front-drag-trim 2020-01-28 00:05:44 -07:00
10978a2f58 rearrange MIDI preferences "tab" to include ports and remove Buffering 2020-01-28 00:05:05 -07:00
5d99526406 correct location of resolved note-offs after region is rendered 2020-01-27 22:17:07 -07:00
4148d2cee4 fix bad re-ordering in ARDOUR_UI::set_session() that changed when transport-related actions are set sensitive (compared to v5)
This specific change has broader scope than the bare minimum required - we could just move/replicate transport_ctrl.set_session()
after session_sensitive_actions have had their sensitivity set to true. But this "seems" like a more thorough solution,
in that it sets all relevant actions groups before doing anythng else.
2020-01-27 18:24:30 -07:00
7e899b4199
Restore engine state for auto-start 2020-01-27 22:27:29 +01:00
8e5e902b5c
Fix sending MMC Start/Stop messages
Ardour 5.x slave check was incorrectly ported to A6's TMM:
In Ardour 5 the comparison tested for *not* MTC:
```
  if (!dynamic_cast<MTC_Slave*>(_slave)) { ..send MMC.. }
```

Other MMC messages (Record, Locate) are sent unconditionally.
2020-01-27 21:49:53 +01:00
44440f9316
Add new requirements from AudioEngine::stop to ::drop_backend
This fixes an issue that after changing backends (::set_backend),
the session-transport was in inconsistent state. If it was rolling,
it continued to roll with "stop" being unavailable.
2020-01-27 20:26:06 +01:00
5c789547cb
Fix building unit-tests 2020-01-27 17:43:37 +01:00
f101a657f2
Fix two more clang static analysis warnings 2020-01-27 17:42:28 +01:00
f9cc630b10
Delete out-of-bounds metronome clicks 2020-01-27 03:35:28 +01:00
6aac8b2c8a
Fix another clang-scan warning 2020-01-27 03:32:18 +01:00
fc7dd5115d
Fix some clang-scan warnings 2020-01-27 03:31:49 +01:00
cf4d7387d2
Use a sensible min length for default session-duration
If the user tries to set the Start or End marker on an empty session,
apply some sensible defaults for the resulting session range.
2020-01-26 19:36:23 +01:00
2d07e72d40
Fix the ability to set Session Start&End Range on a new, empty session
set_session_extents had a bug; it wasn't calling locations->add()
on the newly created location.

The correct implementation was in set_session_range_location,
but this was only called from one place.
This function was removed, and set_session_extents will be used in its place.
set_session_extents will create a session location if one no longer exists,
so there is no need for set_session_range_location.
2020-01-26 19:33:41 +01:00
db465b5b43
Fix Loop-length (no pre-roll on loop-iterations) 2020-01-26 05:15:24 +01:00
674116b156
Fix configuration with gcc-9
Libraries need to be specified in order as last argument,
not as linkflag.
2020-01-26 01:11:23 +01:00
83e4b9f7eb remove debug output 2020-01-25 14:25:30 -07:00
3b65b430aa
Remove midi-event by iterator, not key -- #7885
With concurrent events removing by key, allowed for invalid
iterators.
2020-01-25 22:15:37 +01:00
cbfbe65128 disconnect from audio/MIDI setup dialog signal response when done with it 2020-01-25 10:27:46 -07:00
8ecfee2c94
Fix OSX/PPC packaging
This partially reverts 5a841ef462 to fix issues with
egrep "libstdc++.6.dylib"
2020-01-25 11:35:17 +01:00
4fe3036495
Update waf2.x "subst" feature uses obj attributes 2020-01-25 06:20:28 +01:00
7c381dab6e
Downgrade "using all channels" warning to info - part 2 2020-01-25 04:17:53 +01:00
5a841ef462
Tweaks to build/package scripts for new waf
* Windows: delete waf installed .dll.a files
* Windows: override waf's conf.env.LIBDIR = conf.env.BINDIR
  with explicit --libdir
* Windows: fix asm (`x86_64-w64-mingw32-as` -D flag is for
  debug messages, -D defines are not available)
* Mac: override waf adding -install_name (and
  -Wl,-compatibility_version -Wl,-current_version)
  by moving -dynamiclib from linkflags to ldflags
* Mac: Allow libs with compat version number suffix
  (not needed anymore, but may help in the future)
2020-01-25 04:07:42 +01:00
06b2eb1c27
Explicitly use OSX
Previously this was inherited via PBD.

On MacOS/X,  this adds
  "-undefined dynamic_lookup -flat_namespace"
and various "-framework .." options to linkflags

Without this flag, .dylibs fail to link usually because
of missing `-lintl` (Undefined symbols: "_libintl_dgettext")

On other systems this is a NO-OP:
CFLAGS_OSX, CXXFLAGS_OSX and LINKFLAGS_OSX
are only set on the darwin platform.
2020-01-25 04:07:41 +01:00
1d2cfd6f2d
Change waf/darwin default compiler to prefer gcc (if available) 2020-01-25 04:07:41 +01:00
19603d075f
Update waf to v2.0.19 2020-01-25 04:07:41 +01:00
David Runge
2e9ac80e99
Towards waf python 2+3 support 2020-01-25 04:07:37 +01:00
dfe712c564
Consistent GTK Look/Feel
gtk/gtksettings.c uses different default themes for
Window and Linux/Mac which results in subtle layout differences,
In particular TreeView headers and Tabs.

"MS-Windows" style is hardcoded in gtk msw_rc_style.c
and ardour's clearlooks.rc starts with different defaults.

This forces the default style to a non-existent one.
(might also help with https://tracker.ardour.org/view.php?id=5605)
2020-01-25 03:56:10 +01:00
0db559c0ac
Special case checkbox border color in Treeview 2020-01-25 03:40:04 +01:00
7c2ec72495
Revert "add styling specifics for TreeViews so that checkboxes are properly visible"
This reverts commit 82cf46d781.
2020-01-25 03:40:04 +01:00
70588baeac handle engine failure between audio/MIDI setup and end of plugin scan 2020-01-24 15:56:37 -07:00
13ecf633a3 after handling the first click on the audio/MIDI setup, mark it insensitive to prevent subsequent (dbl) clicks changing engine state 2020-01-24 15:56:37 -07:00
a416829379 make audio/MIDI setup dialog use ArdourDialog::_sensitive 2020-01-24 15:56:37 -07:00