13
0
Commit Graph

13357 Commits

Author SHA1 Message Date
eb71eddbc8 Add libzita-resampler as lib
This simplifies x-compiling and x-platform builds as well
allows to statically link, if needed.
2017-09-16 18:31:54 +02:00
7258c6334d Namespace PBD::RingBuffer
class RingBuffer<> is a very generic name and should not pollute the
global namespace.
2017-09-16 16:37:29 +02:00
14fcf86f03 MSVC uses a slightly smaller value for HUGE 2017-09-11 19:25:13 +01:00
019f664356 Fix a-fluidsynth bank/program restore (during session load)
* set program in work-response, synchronous to run()
* properly store bank per channel (for replay)
2017-09-11 16:48:54 +02:00
fdbe22d005 a-fluidsynth: query current bank/program after loading .sf2 2017-09-10 16:06:16 +02:00
057fd9259e FP8: add mode to reset gain to unity
Re-selecting the most recently selected (blinkig select button) strip
returns gain to unity (0dB)
2017-09-09 21:46:26 +02:00
ba2114644d Only emit InstrumentInfo::Changed() on actual change
Ignore plugin re-order, meter-pos changes and other cases where
Route calls reset_instrument_info()
2017-09-09 18:21:06 +02:00
b9f2a2ab3f Fix signal-emission order (first re/set instrument info) 2017-09-09 18:21:00 +02:00
5637bdd29b Prepare for singleton patch-selector per midi-track UI (mixer, editor,..) 2017-09-09 18:20:36 +02:00
7872e4033f LV2/midnam tweaks - fix race conditions
* Emit signal once midnam was actually updated
* only re-read midnam if was it changed. This allows idempotent calls to
  read_midnam() - from the same thread.

At session-load a synth-plugin may load a soundfont in the background
and emit midnam_update() after the synth was initialized but before the
GUI thread connects to the signal. By making the call idempotent the
GUI can call read_midnam() after connecting to the signal to catch up.
2017-09-09 03:08:46 +02:00
2ca3009143 Allow to send MIDI data directly to a plugin 2017-09-09 03:08:46 +02:00
483ad807ce fix crashing thinko in push2 code 2017-09-08 18:36:26 -04:00
b7227415ad a-fluidsynth mark session as modified if .sf2 changes 2017-09-08 23:35:00 +02:00
ba7bbd1d51 a-fluidsynth: implement LV2_BANKPATCH__notify 2017-09-08 23:35:00 +02:00
e452ba0fe1 Add LV2 extension to notify host about midi-bank/pgm state. 2017-09-08 23:35:00 +02:00
8bc2bf0155 Non-numeric Properties are not automatable
Fixes a crash, when the Generic-UI tries to access the AutomationList
of LV2 URID or String Properties.
2017-09-08 23:35:00 +02:00
e15d9202a5 Emit Changed() signal when MIDI bank/pgm changes 2017-09-08 04:35:06 +02:00
6654c53760 Fix bumping .mid file name (snapshots & playlist copy)
When forking regions, copying playlists or saving snapshots we do not
have a reference to the track and cannot use the track's name as basis
for the new filename like Editor::fork_region() does.
A cloned midi region's name is based on the original region name.

This prevents endless addition "name-1-1-1-1-1-1-1-1.mid", adding
to the region's basename.
2017-09-07 06:05:26 +02:00
db7ae81f07 Call curl_global_init() exactly only once (2/2) 2017-08-31 20:08:54 +02:00
03f77792dd Remove over-protection
The queued resize will only happen trigger a size-request when the
widget is realized, and on_size_request() calls ensure_layout().

Moreover, this over protection meant that sometimes a resize wasn't
noticed by the button containers.
2017-08-30 20:11:17 +02:00
d11d8b8a96 Catch new exception in other places. 2017-08-30 17:53:31 +02:00
3d9a0a1f98 Don't use API definition as namespace & fix whitespace 2017-08-30 17:53:08 +02:00
1f6c54a2f0 Gracefully handle templates that lack contents in their description or created_with node. 2017-08-30 10:23:34 -05:00
7d88091229 Avoid assert() when loading xml: Throw an XMLerror if attribute_value fails. 2017-08-30 10:23:34 -05:00
35fcb622bc Accommodate recently removed source(s) in our MSVC project (portaudio_audiobackend) 2017-08-30 09:53:33 +01:00
467c801ce8 Abstract definition of rt-scheduler policy
pthread-w32 does not support pthread_setschedparam() with
SCHED_FIFO and bails out. While pthread_create() simply ignores the policy
and sets the priority regadless.

This only affects ctrl-surface event-loops & AutomationWatch on Windows.
2017-08-29 20:35:36 +02:00
df659e91f1 Consolidate _realtime_pthread_create() into libpbd. 2017-08-29 17:25:23 +02:00
6ab00534c0 Set Automationwatch thread priority (needs to be higher than GUI)
This fixes an issue with sparse automation touch/write when the CPU is
busy (stationary playhead, waveform rendering, or just high DSP load)
2017-08-29 17:25:23 +02:00
229c9584bf Add a PBD API to set pthread priority 2017-08-29 17:25:23 +02:00
d4c211ef6f Compare bundle ports per-type
This addresses the XXX comment in Bundle::has_same_ports()
2017-08-29 10:53:41 +02:00
41c5913b91 Make Bundle::disconnect() more robust
Instead of asserting or crashing if the number of channels of both
bundles don't match, just try to disconnect as much as possible.
2017-08-29 10:53:41 +02:00
50c6a90d24 Make Bundle::connected_to() optionally check for exclusivity
If the new optional argument is true, then the first bundle will also
check if it has other connections than to the given bundle.
2017-08-28 17:54:32 +02:00
6039b44c0a Make Bundle::connected_to() able to check only a single DataType
Also use the same iteration logic than in Bundle::connect to avoid
mismatched port types.
2017-08-28 14:10:22 +02:00
e07bb07899 OSC: Change jog mode should not stop transport
unless started by scrub or shuttle.
2017-08-27 14:15:34 -07:00
dbab25f537 OSC: same fix for /select/* 2017-08-25 10:22:42 -07:00
d7fcdbfe1d OSC: account for user sending the wrong number of paramters gracefully 2017-08-25 09:45:06 -07:00
9c793759c8 Remove all manual accounting of connected user bundles
IO used to manually keep a list of user bundles it was connected to, but
it didn't work correctly: sometimes it didn't notice that a bundle
wasn't connected anymore, and the list wasn't correctly persisted across
save/reloads among other things.

Moreover, it wasn't needed at all, since the user bundles are correctly
listed by _session.bundles() and IO already notices they are connected !

Remove all occurrences of |_bundles_connected| and |check_bundles_connected|.
2017-08-24 15:41:40 +02:00
1aa3a3f4d6 Make IO::connect_ports_to_bundle able to partially connect
Forward the optional |allow_partial| boolean to |Bundle::connect|.
2017-08-23 23:31:28 +02:00
8cb40ab25b Make Bundle::connect able to connect only some DataTypes
When |allow_partial| is true, only when the number of channels of a
given DataType is the same for both bundles are the corresponding
channels connected together.

When |allow_partial| is false (the default), the number of channels must
match for each DataType (the ChanCounts must be equal) for the
connection to be attempted.

This also fixes the logic in case two bundles have the same number of
channels, or even the same ChanCounts, but not with the DataTypes in the
same order (so connecting the ith channel of the bundle to the ith
channel of the other bundle makes no sense).
2017-08-23 23:31:28 +02:00
96a6529e2e Improve getting a Bundle total channel count
|Bundle::nchannels()| creates a ChanCount on demand, by iterating over
the |_channel| member variable. The sum of all |nchannels().n(t)| over
all non-NIL DataTypes |t| is thus equal to |_channel.size()|.

Consequently, calling |nchannels().n_total()| is a convoluted (and slow)
way of getting |_channel.size()|. Add a method |Bundle::n_total()| that
directly returns the latter.
2017-08-23 23:31:28 +02:00
db28d652ca Add a method to get the first DataType
Also put a comment about the ordering of DataTypes.
2017-08-23 22:58:05 +02:00
e8e1b81177 Use DataType iteration instead of assuming integers 2017-08-23 22:10:51 +02:00
ad9551e548 Update "separate_by_channel" API & add Lua bindings
This breaks compilation (GUI)
2017-08-23 21:33:29 +02:00
2961db3b6f Use literal for compatibility 2017-08-23 12:43:48 +02:00
Stefan Müller-Klieser
587a2dee55 backends: jack: display playback only devices
When starting ardour using the jack backend, playback only devices
currently do not get displayed. Mixing and Mastering only workspaces
with e.g. a single USB Dac should be a common use case. Take this use
case into account by adding them to the device list. Tested on Linux
with jack-alsa.
2017-08-23 02:17:51 +02:00
180cbb0af9 Remove cruft 2017-08-22 15:06:43 +02:00
ca2d254fdb OSC cue button up events should not be errors, fixed 2017-08-21 20:08:19 -07:00
ab621b550d OSC: /cue/enable feedback not changing fixed 2017-08-21 12:10:27 -07:00
6b810b67d9 OSC: aux bus detection fixed for mixbus 2017-08-21 08:40:22 -07:00
5a8bdf40f2 Catch Lua exception when scanning scripts 2017-08-21 17:07:54 +02:00