Commit graph

16222 commits

Author SHA1 Message Date
Robin Gareus
d557fa5e33
Automatically meter MIDI track inputs on rec-arm 2020-06-16 22:28:19 +02:00
Robin Gareus
175b665c97
Add Lua bindings to write immediate MIDI events 2020-06-16 04:22:23 +02:00
Robin Gareus
3294b1ce08
Allow to select pan-automation lanes - #8234
The GUI uses ::axis_view_by_control() if a controllable when
the CoreSelection contains a controllable.

CoreSelection::get_stripables() saves and looks up controllable
by PBD::ID. Panorama automation controls were previously
not found, since they are not directly owned by the route.
2020-06-14 20:31:50 +02:00
Robin Gareus
650fd31332
Improve debug message 2020-06-12 05:08:40 +02:00
Robin Gareus
9708987003
Fix automation write-mode (overwrite existing automation)
AutomationWatch::transport_state_change() is called at a time
when transport has just started to roll, but may not yet be rolling
(count-in, latency-preroll).

Later, after pre-roll is complete and transport starts moving,
AutomationWatch::transport_state_change() is not called again.

Thus set_in_write_pass(true); is never called, and writing
automation assumes that all changes happen while stopped.

In 'write" mode, guard points are added for each change, when
the transport is stopped.

Before this change, this happened at periodic intervals even
when rolling.
2020-06-12 05:08:29 +02:00
Robin Gareus
d33cc4a3dd
Document transport state semantics
This also adds transport_state_rolling() which can be used
from a TransportStateChanged callback.
2020-06-12 05:02:06 +02:00
Robin Gareus
5ce12a38e6
Retain connections of ctrl-data ports
Previously "Follow selection" disconnected a MIDI port from
control surfaces, even when it was marked as "MidiPortControl".
2020-06-11 23:24:55 +02:00
Robin Gareus
6677e9787e
Reserve generic MIDI control surface port-name 2020-06-11 23:19:05 +02:00
Robin Gareus
0e37759495
Synchronize preset changes of plugin-instances
When adding or removing a plugin preset, all instances
of the same plugin need to be notified to update their
preset list.
2020-06-11 19:42:37 +02:00
Robin Gareus
1c24e9abef
Bump LV2 plugin version (and mark them stable)
> An odd minor or micro version, or minor version zero,
> indicates that the resource is a development version.

from http://lv2plug.in/ns/lv2core#minorVersion
2020-06-10 21:33:53 +02:00
Luciano Iam
8ff4bcfd68
WebSockets: improve JS client message handling code 2020-06-10 19:47:37 +02:00
Luciano Iam
a26a9018fd
WebSockets: code refactor
Terminology used by server and client was starting to diverge.

C++ classes ArdourStrips and ArdourGlobals classes have been
renamed to ArdourMixer and ArdourTransport respectively.

State node values for transport functionality have been simplified
and prefixed with 'transport_' to match what was done for strips.
2020-06-10 19:47:37 +02:00
Luciano Iam
ae4df127ad
WebSockets: implement a JavaScript object-oriented client API
Replace previous callback based basic client with an easier
to use object-oriented API that further abstracts the low level
details of the WebSockets Server surface messaging protocol.

All built-in web surface demos were updated to use the new API.
2020-06-10 19:47:37 +02:00
Robin Gareus
5296ed141f
Fix support for older libwebsocket versions
LWS_WITH_EXTERNAL_POLL a new optional define for libwebsocket 4.x.
Earlier versions always supported it, without the compile-time define.

This fixes support for libwesocket 2.x (Debian, Ubuntu), and 3.x.
Also for Windows, LWS_WITH_GLIB is not available.
2020-06-10 15:58:47 +02:00
Robin Gareus
f0d5d1323a
Fix MIDI tracer time display for async and transport-master ports 2020-06-10 00:16:54 +02:00
Robin Gareus
4c5ad08e81
Add mono separate regions to source-list
The "whole-file" property is now mainly used as indicator whether
a region should be in the source list.
2020-06-09 22:49:12 +02:00
Nils Philippsen
f6e38219bc
Don't refer to never used external variable
Signed-off-by: Nils Philippsen <nils@tiptoe.de>
2020-06-09 21:11:21 +02:00
Nils Philippsen
2a456c1921
Add cycles_t type definition on ppc64
Signed-off-by: Nils Philippsen <nils@tiptoe.de>
2020-06-09 21:11:21 +02:00
Robin Gareus
72d45c154a
Do not allow ctrl chars in file (or session) names (1/2) 2020-06-09 20:30:51 +02:00
Hiroki Inagaki
e848afe2ec
Update Japanese translation 2020-06-09 17:48:09 +02:00
Vincenzo Reale
c87edcbf04
Adding appdata and gtkmm2ext Italian translations 2020-06-09 17:44:15 +02:00
Vincenzo Reale
f27e7dadf5
Italian translation update 2020-06-09 17:43:28 +02:00
Matthias von Faber
e3dcd1f5d7
Only try using __pthread_get_minstack on glibc
This is a glibc-only extension, so don't bother on other platforms.
Also, according to POSIX, PTHREAD_STACK_MIN is defined in limits.h, so
include climits just to be safe.
2020-06-09 17:39:24 +02:00
Matthias von Faber
662ff1bd39
Fall back to non-realtime threads again
Makes Ardour start into sessions again when realtime scheduling is
unavailable.
2020-06-09 17:39:24 +02:00
Matthias von Faber
4b7efac3dc
Report true error when tasklist threads cannot be created
pthreads doesn't use errno, so the error message was misleading.
2020-06-09 17:39:24 +02:00
Peter Kovář
630a3d07d2
Added support for the original Contour Design ShuttlePRO 2020-06-09 17:29:01 +02:00
Robin Gareus
c7edc28383
Keep aux-send names when duplicating tracks 2020-06-07 21:39:50 +02:00
Robin Gareus
c7bce4b685
NO-OP: whitespace 2020-06-07 18:25:18 +02:00
Robin Gareus
21b8885fe9
Remove debug output (also fix some builds, missing stdio.h) 2020-06-07 18:18:58 +02:00
Robin Gareus
27e45c585f
Fix another stupid typo 2020-06-06 23:03:21 +02:00
Robin Gareus
e0548fa798
Offset stack-size by current TLS #8200
Some libraries use thread locals and hence increase the min
requirement.

This is seen on void-linux for example:

> linking a minimal program against cairo gives a
> __static_tls_size of 43008 bytes.
> Doing the same on Ubuntu focal and Debian bullseye,
> __static_tls_size is only 4608.
2020-06-06 19:04:26 +02:00
Robin Gareus
09aa0a3d1a
Consolidate code using pthread_attr_setstacksize
This also adds some stack constraint to rt and fallback threads
that didn't have those before (ALSA MIDI for example)
2020-06-06 18:35:44 +02:00
Robin Gareus
515ffbdfe2
Add API to create threads with given stacksize 2020-06-06 18:32:09 +02:00
Robin Gareus
9398a6f60a
Fix generic MIDI encoder off by one
Increment for CC values > 0x40, decrement control for values <= 40.
 - 0x41 increment by one
 - 0x40 decrement by one

previously: 0x3f decremented by one, 0x3e by two, .. 0x00 by 64,
but 0x40 also by 64.
2020-06-06 17:10:31 +02:00
Robin Gareus
75404eaa64
Ignore NO-OP Latency changes
This also fixes an endless recursion when directly connecting
is_physical() ports to each other.
2020-06-05 20:44:57 +02:00
Robin Gareus
8f82ccd3aa
Add LatencyRange comparator, and explicit assignment operator 2020-06-05 20:44:57 +02:00
Robin Gareus
ab9f51d2d8
Downgrade LV1 error to warning
Failing to discover a plugin is not critical. If the plugin is
used by the session, an error message is displayed later.
2020-06-05 20:44:57 +02:00
John Emmas
743a3b1842 Add/remove source(s) in our MSVC project (audiographer) 2020-06-05 12:41:55 +01:00
Robin Gareus
ae3c8b19c6
Tweak PulseAudio re-initialization
This fixes an issue with pulse disconnecting after freewheeling,
and possibly also address #8193
2020-06-05 04:24:09 +02:00
Robin Gareus
25169d239d
Relax initial export-noise to 1/3 of interval 2020-06-05 03:19:47 +02:00
Robin Gareus
f89e72d86d
Cont'd backend support for demo-noise 1e7207f9ec 2020-06-05 02:29:20 +02:00
Paul Davis
a98094fcff remove accidentally added colon in euskara (basque) translation 2020-06-04 13:23:36 -06:00
Robin Gareus
1e7207f9ec
Add export spec support for watermark/demo-noise 2020-06-04 21:20:32 +02:00
Robin Gareus
820165d238
Add export demo noise watermarking 2020-06-04 21:20:32 +02:00
Paul Davis
d95d10eb55 sort control protocols in name order after discovery 2020-06-01 13:06:23 -06:00
Robin Gareus
ef94663d1c
Overhaul MIDI Clock generator
* Fix absolute time alignment, sync clock ticks on exact beats
* Fix start/cont sync to MIDI Clock **Beats** (MIDI Clock / 6)
* Send timecode from engine (not session) - vari-speed independent
* Special case MClk port, don't /resample/
* Support pre-roll, sync start.
2020-05-31 23:46:28 +02:00
Robin Gareus
29a6bfd3e7
Add support for fixed speed MIDI output ports
This is the output port equivalent for
::read_and_parse_entire_midi_buffer_with_no_speed_adjustment()
2020-05-31 23:45:18 +02:00
Robin Gareus
677f4b4e53
NO-OP: whitespace 2020-05-31 23:45:15 +02:00
Robin Gareus
8e52ea74da
Add API to lookup MIDI Clock Beat position 2020-05-31 23:45:09 +02:00
Paul Davis
54c1c0cc2c %s is printf, this is ostream! 2020-05-30 11:35:40 -06:00