13
0
Commit Graph

16213 Commits

Author SHA1 Message Date
Luciano Iam
7554655616
WebSockets: improve libwebsockets 4 compatibility
After upgrading from lws 3 to 4 clients could still connect to the surface but no data was sent from the server.
2020-05-28 18:56:21 +02:00
Luciano Iam
6e5aeb57b3
WebSockets: fix LWS_WITH_EXTERNAL_POLL check 2020-05-28 18:56:20 +02:00
Daniel Appelt
522d6d769c
Add ControlList docs that are relevant for Lua 2020-05-28 18:52:02 +02:00
4bfb2ee6cd Allow foldback sends to be pre or post fader 2020-05-28 07:05:59 -07:00
3e6295f538
Fix MIDI Clock slave
* take port latency into account
* fix DLL initialization, and initial speed calculation
* igonre out of bounds BPM

the DLL bandwidth still needs to be tweaked, likewise the
hardcoded 1st order LPF to track BPM (vs speed).
2020-05-27 23:59:27 +02:00
16f6e62249
Consolidate TansportMaster implementation
* share port_latency latency query for MTC and MIDIClock slaves
* propagate set_session()
* share session_connections for MasterViaMIDI

This is in preparation to allow MClk slave to access midi-port-latency
2020-05-27 23:40:09 +02:00
b46a7d43c2
Dummy Backend: add a MIDI Clock generator 2020-05-27 23:40:06 +02:00
Mister Benjamin
4c8b9daa0f
Allow CD marker at session start #8029
This removes the restriction to not place a CD marker at
session start.

This helps in getting rid of some inconsistencies. Also,
the previous policy didn't help in enforcing the Red Book standard.

Two seconds of pregap are implicitly created by DDP mastering tools
and CD burning software.
2020-05-27 21:05:17 +02:00
0d4ea1e61f
Fix reverse MIDI playback
upper_bound() returns the first element that is **greater** than
the given value. So during reverse playback we need the value
before that.

Likewise for forward playback, lower_bound() returns an iterator
pointing to the element before the one that need to be played.
2020-05-25 17:19:44 +02:00
59c914e2db
Amend previous commit (no default namespace std) 2020-05-24 23:22:20 +02:00
d7ca8c350a
Fix a missing std when using modern VAMP-SDK 2020-05-24 23:21:16 +02:00
d3ffc4d90a
Update more messages to prefer "Track/Bus" instead of "Route" 2020-05-24 19:38:04 +02:00
94085b0162
Avoid "Route" in user visible messages
Prefer "Track", "Bus" and/or "Strip" where applicable, or simply
avoid it.
2020-05-24 19:20:45 +02:00
1a43512399
Another missing Lua constant (used with preferences) 2020-05-24 16:36:29 +02:00
6244cc4972 update german libardour translation 2020-05-24 00:06:25 -06:00
360c81b815
Define Lua constants (used with preferences) 2020-05-23 00:58:28 +02:00
44bca6cc8f
Fix memory leak when reading MIDI files 2020-05-22 01:29:25 +02:00
61ce687017 add text to TRANSLATORS file explaining how contextual translation msgids work and should be translated 2020-05-20 14:40:10 -06:00
160251f962 fix up context-providing translations for libs/gtkmm2ext
Translators: if the msgid looks like foo|bar then in general the foo is just
there to provide context to clarify the potentially ambiguous nature of bar.
The translated form should not contain the foo or the |
2020-05-20 14:35:33 -06:00
24ec6a6b49 fix up context-providing translations for libs/ardour
Translators: if the msgid looks like foo|bar then in general the foo is just
there to provide context to clarify the potentially ambiguous nature of bar.
The translated form should not contain the foo or the |
2020-05-20 14:32:33 -06:00
97afc4dfd6
Safe config save
This prevents corrupt rc-config files in case the disk is full.
This is a safeguard, since Ardour does not start if the main
config file is corrupt.
2020-05-19 19:47:34 +02:00
272d095af6
Don't save when renaming a track
Filenames used by the disk-reader only change when recording
which creates a pending save. There's generally no reason
to force save the session due to renaming a track.
2020-05-19 18:31:52 +02:00
8592e96d5c
There is no need to save after region cleanup 2020-05-19 18:09:09 +02:00
61d11347b6
Remove implicit saves when removing empty sources
This fixes an implicit save when importing files.
The Track's disk-reader is initially created with an empty
source which is later replaced and dropped:

  ARDOUR::Session::save_state
  ARDOUR::Session::remove_source
  PBD::Destructible::drop_references
  ARDOUR::DiskWriter::reset_write_sources
  ARDOUR::DiskWriter::set_write_source_name
  ARDOUR::Track::set_name
  Editor::finish_bringing_in_material
2020-05-19 18:08:28 +02:00
3a9bf57af9
Don't save the session when creating busses
Most calls to new_audio_route() used save = false, only directly
creating busses saved the session. Probably for historical reasons.
2020-05-19 18:02:23 +02:00
8564e6f760
No implicit session save when importing files (backend) 2020-05-19 17:59:52 +02:00
749291245c
NO-OP: replace save_state("") with save_state() 2020-05-19 17:14:47 +02:00
8194a83c30
Don't implicitly save when deleting a track 2020-05-19 16:07:30 +02:00
618c7a6bf2 tweak Prompter API to allow skipping the default "Cancel" button 2020-05-18 16:04:41 -06:00
7ac9c7e88a fix mask used to extract keycode from KeyboardKey object
Previous 16 bit mask would do the wrong thing if the keycode was > 65536,
which is not often true but is certainly a valid value (and seen on some
platforms)
2020-05-18 13:33:54 -06:00
c8cf84b7f9
Add missing enum (required for rc_config) 2020-05-18 00:28:01 +02:00
Mark Knoop
414ea28e78 Fix repeated toggling of loop mode
Calling Session::set_play_loop repeatedly (e.g. LLL) should toggle in and out
of loop play. Previously transport needed to be stopped before loop play could
be started for a second or subsequent time. This uses the loop_changing boolean
to flag that Session::non_realtime_stop should not unset the loop.

Also, Session::non_realtime_stop must reset loop_changing to false after use so
it does not affect the next transport action.
2020-05-17 10:44:33 -06:00
YQ-YSY
d909d0ec0e
New Chinese translation for Ardour 6.0 libs_ardour_po 2020-05-17 14:21:54 +02:00
YQ-YSY
7eac2ed602
New Chinese translation for Ardour 6.0 libs_gtkmm2ext_po 2020-05-17 14:21:54 +02:00
087d52a77c
NO-OP: whitespace & const'ness 2020-05-16 21:07:53 +02:00
b566ba51e0 fix typo 2020-05-16 12:27:45 -06:00
2ac934c1ae add explanatory comments regarding SetLoop vs. AutoLoop SessionEvents 2020-05-16 12:24:54 -06:00
c57df5a7e5 TMM: do not allow changing transport master while slaved (libardour edition) 2020-05-15 21:06:11 -06:00
58e5c0cfea Czech translation update from Pavel Frich 2020-05-15 18:41:08 -06:00
76c6aab7d1
Fix a memory leak (unsupported LV2 plugin) 2020-05-16 01:37:22 +02:00
d812c77362 DiskReader: initialize pre-loop-buffer at the right times 2020-05-15 17:28:18 -06:00
7ed153ca0f DiskReader: do not initialize pre-loop-buffer in constructor 2020-05-15 17:27:21 -06:00
Porrumentzio
319a7a8bab All complete. Needs revision using the program 2 2020-05-15 16:10:22 -06:00
Porrumentzio
16ca782000 All complete. Needs revision using the program. 2020-05-15 16:10:22 -06:00
Porrumentzio
e827524e79 all complete except gtk2_ardour eu.po (87%) 2020-05-15 16:10:22 -06:00
Porrumentzio
86c12a2b50 all complete except gtk2_ardour eu.po (81%) 2020-05-15 16:10:22 -06:00
Porrumentzio
431a38f273 all complete except gtk2_ardour eu.po (61%) 2020-05-15 16:10:22 -06:00
Porrumentzio
c85562bc1e gtk2_ardour eu.po (54%) and libs/ardour eu.po (93%), non complete 2020-05-15 16:10:22 -06:00
Porrumentzio
a1482878ae gtk2_ardour eu.po (41%) and libs/ardour eu.po (77%), non complete 2020-05-15 16:10:22 -06:00
Porrumentzio
00b8e2e4a8 gtk2_ardour eu.po (41%) and libs/ardour eu.po (77%), non complete 2020-05-15 16:10:22 -06:00
Porrumentzio
1daa275eed gtk2_ardour eu.po (34%) and libs/ardour eu.po (75%), non complete 2020-05-15 16:10:22 -06:00
Porrumentzio
61ea85a889 gtk2_ardour eu.po (24%) and libs/ardour eu.po (61%), non complete 2020-05-15 16:10:22 -06:00
Porrumentzio
cdec486cff gtk2_ardour eu.po (15%) and libs/ardour eu.po modified 2020-05-15 16:10:22 -06:00
Porrumentzio
8497b96de3 All files, non complete 2020-05-15 16:10:22 -06:00
Porrumentzio
aae16c0c07 First basque translation, non complete 2020-05-15 16:10:22 -06:00
a660077c97 PlaybackBuffer: extend API to include write_ptr()
It's just useful
2020-05-13 23:55:02 -06:00
169e7033b6 DiskReader: improve comment 2020-05-13 23:54:24 -06:00
d776415d54 DiskReader: always reset file_sample[AUDIO] after an overwrite
In theory we only need to do this if the use of a loop for a given overwrite differs
from the previous refill or overwrite. However, keeping track of this is hard, and
this way effectively enforces the notion that if we do the arithmetic correct,
for cases where there's no change in the use of a loop location, this ends up
being a no-op (i.e. we are resetting it back to its current value)
2020-05-13 23:54:02 -06:00
7660ea29d2 avoid off-by-one error when overwriting w/loop 2020-05-13 18:52:29 -06:00
7232ac2f67 update DiskReader loop delick objects when loop changes 2020-05-13 18:52:29 -06:00
abbcc755c1 reinstate Session::loop_changing to avoid problems when locating to start of loop for loop play 2020-05-13 18:52:29 -06:00
10200f5e29
Fix crash when closing session with VCA slaved solo
Session::destroy() calls drop_references(),
which leads to  InternalSend::send_from_going_away()
calling InternalSend::propagate_solo().

This looks up the SoloControl to test soloed_by_others(), incl.
and VCA maters. Those VCAs however may already have been destroyed,
and (weak pointer) _master.lock() fails.
2020-05-13 17:58:37 +02:00
7289be59c9
Set timecode format from active master only 2020-05-13 17:39:06 +02:00
7a0427201c essentially a no-op to just make conditional clearer more explicit 2020-05-12 12:45:39 -06:00
a9360eb6d6 find a different way to NOT unset play loop when locating to start of loop 2020-05-12 12:45:19 -06:00
ac915d7d55 NO-OP: remove commented line 2020-05-12 11:34:38 -06:00
5b7c20453f DiskReader::overwrite_existing_audio() now only overwrites data that would be read
There's no need to fill the whole buffer, because we do not consider the whole buffer readable.
This uses the recently-added PlaybackBuffer::overwritable_at() API to compute the correct
amount of data to overwrite
2020-05-12 11:34:38 -06:00
af46adc110 NO-OP: expand comments for DiskReader::audio_read() parameters 2020-05-12 11:34:38 -06:00
f5064fa1ca after an overwrite with the loop location set, reset the next sample to be read 2020-05-12 11:34:38 -06:00
156a31ac4f remove Session::loop_changing
Since we now (correctly) do not locate for loop changes, this member
is unnecessary
2020-05-12 11:34:38 -06:00
d39ae0ea92 remove #ifdef'ed code 2020-05-12 11:34:38 -06:00
615b1c4a4a restore mistakenly remove condition for locating 2020-05-12 11:34:38 -06:00
80fb4fe626 NO-OP: remove newline in function definition 2020-05-12 11:34:38 -06:00
e9b9f03499 remove debug/information message 2020-05-12 11:34:38 -06:00
9b3c31f6b9 As in previous commit, never locate because of loop handling 2020-05-12 11:34:38 -06:00
ef1565d2bf We use seamless looping always now. Never any need to locate for loop changes 2020-05-12 11:34:38 -06:00
0326af6f6a make conditional logic fully explicit 2020-05-12 11:34:37 -06:00
98d56d6b21 Add API to PlaybackBuffer to compute amount of data that can overwritten
The distance is between a given offset in the buffer (probably a
read position at some point in time) and the write ptr. Any data after
the write ptr is "old" and not readable, and thus not worth overwriting
since we would not read it anyway.
2020-05-12 11:34:37 -06:00
376d4f2e68 LocateRoll session events should always roll-after locate
Don't rely on ev->locate_transport_disposition
2020-05-12 11:34:37 -06:00
c2e774e99d trivial reorder of variable assigment 2020-05-12 11:34:37 -06:00
27e45e9336 Don't bother even checking let alone doing internal seeks for zero distances 2020-05-12 11:34:37 -06:00
98a3a96d40 use more standard mechanism for "squishing" start of audio read into loop range 2020-05-12 11:34:37 -06:00
7138e76d2d new mechanism to refill pre-loop buffer when loop changes (used for xfading loop ends) 2020-05-12 11:34:37 -06:00
6a542fe5fe Use better method call to determine rolling status when loop is changed 2020-05-12 11:34:37 -06:00
2debf52ef1 remove unused variable 2020-05-12 11:34:37 -06:00
5a7b7b3bfb remove Route::reload_loop() and derivatives
Replacement to follow in subsequent commit
2020-05-12 11:34:37 -06:00
6433647268 use const; style guide (no spaces around conditional parenthesis) 2020-05-12 11:34:37 -06:00
da9b366e63 NO-OP: style guide issues (always use braces; no spaces around conditional parenthesis) 2020-05-12 11:34:37 -06:00
6f6d26d0ef
Fix spacing of engine-delta display 2020-05-12 19:32:27 +02:00
9908419f89
Use byte-offset when reading size at ringbuffer boundary
This likely fixes https://github.com/sfztools/sfizz/issues/221
2020-05-12 19:30:15 +02:00
ab6e274613
Ignore idempotent set_name() calls
These calls are expensive, particularly for ArdourButton, that
triggers a re-layout.
2020-05-12 15:37:23 +02:00
fb203f3df8
Consolidate delta-string format, avoid markup 2020-05-12 14:59:44 +02:00
b36e6b8341
Optimize drawing of buttons with changing text
When a button has a fixed size, there's no need to call queue_resize().
This fixes an issue with the ArdourClock info displays when slaved.
The Timecode and Delta display text changes in small intervals and
caused excessive CPU load due to GUI size-requests + redraws.
2020-05-12 13:22:11 +02:00
ba1a60873a
Fix MTC delta report
This amends a6ffc6213b.
apply the offset before the DLL.
2020-05-12 01:49:45 +02:00
feaf87d200
Dummy Backend: remove hardcoded MTC sequence 2020-05-12 01:49:45 +02:00
7c15ad099f
Dummy Backend: add a MTC generator 2020-05-12 01:49:41 +02:00
80abcc8b2d Transport Masters dialog: use delta symbol in all delta_strings (libardour tweak) 2020-05-11 15:37:40 -05:00
88fc77b4c0
Double dummy MTC sequence duration 2020-05-11 21:35:22 +02:00
5e2755baa1
Slave delta display tweaks
* use left-aligned sign symbol with "sample" unit.
  When the delta value jitters in decimal places (e.g. MTC)
  it's otherwise no possible to discern + vs -.
* Use white text by default (not green)
2020-05-11 21:34:01 +02:00
58c5f75fc9
Fix TCM requiring port-reconnect when engine restarts
An engine restart sends dis-connect messages for the reverse
port-mapping (after making the connection):

Connect: system:midi_capture_41a56f90 -> ardour:MTC in
Connect: system:capture_1 -> ardour:LTC in
DisConnect: ardour:MTC in -> system:midi_capture_41a56f90
DisConnect: ardour:LTC in -> system:capture_1

This lead to TransportMaster being marked as inactive.
This is likely an issue that should be fixed elsewhere, but in
case of JACK, we likely do not have control over this.
2020-05-11 03:42:21 +02:00