13
0
Commit Graph

26714 Commits

Author SHA1 Message Date
b6b353d452 Handle generic-midi bindings per session.
This allows to special-cases session-specific control-surface state.
e.g. midi-learn.

Only restore midi-learned, session-specific, bindings when loading a
session with generic-midi enabled.

Also dis/re-enable generic-midi resets midi-learned, but no other
session-independent settings.

This also handles the edge case:
 1) load global config, generic-midi = ON, w/ bindings.
    state is remembered as cpi->state
 2) load session-condig, generic-midi = OFF, cpi->state is retained
 3) user enables the surface, cpi->state from (1) is applied.
 -> invalid bindings applied -> fail
2018-10-04 02:30:21 +02:00
9df6e334fc Persistent ctrl-surface state
Keep latest surface configuration, regardless if surface is active
or being deactivated. Current state after de-activation is retained.

Currently state loaded from a session overrides global state from
global preferences, if the surface is marked active in the session.
This is to allow midi-learn.

generic-midi and session-specific midi-learn will require additional
work.
2018-10-04 01:36:51 +02:00
be826f3635 Prevent excessive meter redraws for inactive meters at zero 2018-10-03 20:54:14 +02:00
cdc64358ec Properly initialize midi-meters
Midi meters are using linear 0..1 range, (not decibels, no log-scale
falloff).

If a track is deactivated, run() is never called. the queued reset never
executed and the meter remained at the initialization default -inf
(visually it looked like a pegged meter).
2018-10-03 20:22:30 +02:00
23220955a5 Remove Transport > TimeMaster toggle from menu
The checkbox is not kept in sync with
  Session > Properties > Timecode > JACK Time Master
besides, it relies on JACK, relies on ardour being the first jack client
and also is mostl useless due to tempo-ramps not being supported by
many jack clients.
2018-10-03 18:19:00 +02:00
fe4df1bee3 Prevent adding aux-sends to master or monitor 2018-10-03 18:16:42 +02:00
35243c9b3e Fix weird behavior in playhead_x_to_grid: use return value from snap_to_grid. 2018-10-02 20:12:21 -05:00
e36aa9fab7 Include Track-number with stem-exports, if track-numbers are present. 2018-10-02 23:28:44 +02:00
40316437a4 Add a GUI option to enable boxy button style 2018-10-02 21:28:49 +02:00
e01582dd9a Prepare a boxy, no round borders, button-style 2018-10-02 21:28:49 +02:00
54f0f37c52 Fix context-menu item "bus" = audio and midi busses.
Hide/show logic uses "not track".
This results in matching both audio and midi busses.
2018-10-02 21:28:49 +02:00
62cd539143 Fix false-positive duplicate format detection
Previously, stem-exports of more than 1 channel always included
the export-format, even if only one format was exported.
2018-10-02 21:28:49 +02:00
2b95b5b8b3 More correct fix for 8bfbef4: the check was already there; just needed to set the dirty flag. 2018-10-02 09:41:04 -05:00
8bfbef4888 Fix deadlock when no region boundaries are selected in the Snap prefs. 2018-10-02 09:28:05 -05:00
a9907b7d56 ipw: Fix race condition with polling the cancel state of the dialog
Sometimes the interthread process window dialog reports "cancelled"
when it was not actually cancelled, it was just hidden and reshown,
Since we are polling the cancel state interthread, we must reset
the cancel status BEFORE the dialog is shown, and never toggle the
cancel state unless it is a true cancel action by the user.
2018-10-02 20:14:04 +10:00
feb2763a8a libptformat: Add ability to reuse object && add path to ptf to api 2018-10-02 20:14:04 +10:00
b60e9f7df9 Remove a call to 'fst_audio_master_idle()'
Nobody seems quite sure why it's needed but it seems to be crashing a lot of plugins:-

http://tracker.ardour.org/view.php?id=7668
2018-10-02 09:17:32 +01:00
87559a6054 Fix Mixbus master-bus tape-saturation controllable 2018-09-30 15:34:59 +02:00
cf652331ad Adapt our remaining MSVC projects for 'boost::atomic' (in case it later gets extended to the other libs)
Stage 3 of 3
2018-09-30 09:19:28 +01:00
b519434744 Adapt our remaining MSVC projects for 'boost::atomic' (in case it later gets extended to the other libs)
Stage 2 of 3 (more to follow)
2018-09-30 09:06:25 +01:00
9506a294c7 Adapt our remaining MSVC projects for 'boost::atomic' (in case it later gets extended to the other libs)
Stage 1 of 3 (more to follow)
2018-09-30 08:56:12 +01:00
097176696b Add support (in our MSVC projects) for using 'boost::atomic'
(only done "where necessary" for the moment - more to follow...)
2018-09-29 12:22:47 +01:00
d76589d90f FP8/16: include makeup gain control 2018-09-28 16:19:40 +02:00
Albert Graef
65693a72a2 MCP: Fix up the feedback for the view selection buttons. 2018-09-27 11:31:13 -04:00
Albert Graef
38bccabeca MCP: Allow the current bank to move right one channel even if this results in a partial bank.
Rationale: This change is trivial, but Ardour's behavior of refusing to move right one channel unless a full bank remains has been there for a long time, and there are probably good reasons for it. This design was likely conceived when all MCP-compatible devices had banks of 8 faders anyway. However, with the advent of affordable single-strip devices like the X-Touch ONE it becomes a real issue.

Single-strip devices can only access the first channel in the current bank, so relaxing this restriction is the easiest way to enable such devices to access all strips, while still maintaining the usual bank size of 8. Note that maintaining a bank size of 8 is beneficial even with single-strip devices for several reasons:

- It allows use of the bank switch buttons to flip through a large number of strips more quickly.

- It maintains compatibility with existing device descriptions. E.g., the X-Touch ONE can be used with the existing X-Touch device description without any ado.

- Most importantly, it maintains compatibility with other MCP-compatible controllers which do have 8 strips and may be connected to Ardour at the same time. E.g., one might want to use an X-Touch Mini, or even a full-size X-Touch along with the X-Touch ONE in some use cases. Changing the bank size to 1 affects all connected MCP devices, so you'd rather keep the bank size to 8 in such scenarios. (Ardour should preferably have separate bank size settings for each connected MCP device, but that isn't possible right now since only one MCP device description can be active at the same time.)
2018-09-27 11:31:13 -04:00
Albert Graef
936f6814ac MCP: Fix up the feedback for the bank left/right buttons. 2018-09-27 11:31:13 -04:00
4840543272 show last received and when for timecode timestamps in transport masters widget 2018-09-27 11:31:13 -04:00
f8264ed1fb add name editing for transport masters 2018-09-27 11:31:13 -04:00
5685865eae use new TransportMaster::speed_and_position() API 2018-09-27 11:31:13 -04:00
c4fcd0c268 consolidate all transport masters on a SafeTime object that is a member of the TransportMaster base class.
This seems to have broken some aspects of chasing/locking
2018-09-27 11:31:13 -04:00
147d456dbd change type of MIDI::Parser::position signal to include timestamp 2018-09-27 11:31:13 -04:00
0f7123d33a more objectification for SafeTime 2018-09-27 11:31:13 -04:00
b6aefaf100 initial hacks towards a truly thread-safe SafeTime object, using boost::atomic 2018-09-27 11:31:13 -04:00
3c11660d2a VST-state, set/restore program before loading chunk.
This may fix some issues with VST state being restored incorrectly
when a plugin-preset was loaded.
2018-09-25 21:46:59 +02:00
8ff1cc31cb Add script to exercise PI-stats interface 2018-09-25 18:50:14 +02:00
99a8899c2d Add Lua bindings to query DSP load statistics 2018-09-25 18:01:22 +02:00
144dda0581 Fix/tweak various DSP-load window issues
* update when window is visible and session-changes
* drop connections to prevent multiple callbacks
* catch session-deletion, skip updates
2018-09-25 18:01:22 +02:00
7857083fc8 Accommodate newly introduced source(s) in our MSVC project (gtk2_ardour) 2018-09-25 13:04:43 +01:00
21601f8d56 Add a reset-all DSP-load-stats button 2018-09-25 01:00:58 +02:00
d71dfdfd6a Add a window that shows DSP usage of all plugins
Currently hidden, use
  Editor:access_action("Window", "toggle-plugin-dsp-load")
2018-09-25 00:13:08 +02:00
f7b93ee7b9 Separate Plugin DSP load UI implementation 2018-09-25 00:13:08 +02:00
4bdf0dad20 rearrange parts of transport masters dialog, and fix tooltip issue 2018-09-24 15:46:11 -04:00
9fc9264aa0 remove debug output 2018-09-23 13:55:26 -04:00
6ca8ec5141 remove debug output 2018-09-23 13:48:19 -04:00
f61ac5bc7f various tweaks to the transport masters dialog 2018-09-23 13:48:19 -04:00
d9de14aa63 rename transport masters dialog -> window 2018-09-23 13:48:19 -04:00
12d5eb9a34 remove debug output 2018-09-23 13:48:19 -04:00
d48dd0ccd5 defer creating a visibility tracker for a window until the window is mapped
Without this, the visibility tracker will report that the window is not visible at startup, and
this overrides the XML _visible property which denotes that the window should be made visible
2018-09-23 13:48:19 -04:00
b9d8f75119 emit property change for "collect" on a TransportMaster 2018-09-23 13:48:19 -04:00
ba37a6bd36 no more ProxyTemporary member of ArdourWindow - all such windows should be wrapped in an explicit proxy in ARDOUR_UI 2018-09-23 13:48:19 -04:00