13
0
Commit Graph

21648 Commits

Author SHA1 Message Date
nick_m
299709cbbc Make Region's _beat a PBD::Property.
- fixes incorrect beat setting on undo for various region operations.
2016-07-23 02:23:08 +10:00
nick_m
6e49ca61a4 Remove the temporary note group in MidiRegionView, update start trim during drag. 2016-07-22 23:21:27 +10:00
43bdfa7197 invalidate meter-color cache when midi channel count changes
This fixes a bug of midi-colors being used for audio-meters or
vice versa when when the total channel count remained identical
2016-07-22 12:57:24 +02:00
87c38e1a26 properly handle meter channel count changes
* reset peak when switching type (audio/midi) or total count
* clamp to +40dBFS to prevent endless falloff for HUGE signals
2016-07-22 12:57:24 +02:00
d53d0faf93 a more reliable/robust/less complex version of previous commit 2016-07-21 14:00:18 -04:00
3bf7c4ef49 do not delete MIDIControllable* when dealing with pending MIDI Control requests - the MIDIControllable belongs to the surface code in controllables 2016-07-21 13:42:11 -04:00
bd80b2f144 fix issue with solo-in-place
Monitor outs cannot be muted by other soloing. Duh.
2016-07-21 13:16:05 -04:00
39adc85e29 Accommodate newly introduced source(s) in our MSVC project (gtk2_ardour) 2016-07-21 09:01:21 +01:00
78296d2c18 tentative fix for a crash that occurs when switching backends.
Session::process() returns early with Session::_silent set to true. AudioBuffer::set_data()
was never set for (at least) the LTC output port. PortManager::cycle_end() calls
AudioBuffer::silence() which used to assume that get_buffer() must have been called. But it
was not, because that should have happened in Session::process().

So check AudioBuffer::data() and call get_buffer() if required.
2016-07-20 23:26:50 -04:00
9c323c59ef messages sent to info/warning/error/fatal should end with endmsg, not endl 2016-07-20 16:34:00 -04:00
34fe25c603 remove debug noise 2016-07-20 16:33:40 -04:00
54730c2aa5 remove long-lived debug output related to RT-setting of controls 2016-07-20 16:21:03 -04:00
52d746c5fb MuteMaster should (a) use a Muteable's own ::muted_by_others_soloing() (b) not try to use its own _solo_ignore to track Muteable::can_solo() or solo isolate state 2016-07-20 16:10:11 -04:00
316562ee9e ensure that Route::_phase_control has its state restored, and also re-arrange Route::set_state() to avoid duplicated control set_state() calls 2016-07-20 14:47:24 -04:00
b502d689e2 OSC: comp mode control text needs to be changed by signal too. 2016-07-20 08:59:06 -07:00
72a91ae274 add LocaleGuard while restoring RC configuration.
Should fix issues with reloading various RC variables that use float
2016-07-20 10:48:07 -04:00
81211a91b1 minor safety fix for the Pane 2016-07-20 10:48:07 -04:00
82d3afb851 Gtkmm2ext::Pane: attempt to track child lifetime, since Gtkmm 2.4 doesn't do this correctly 2016-07-20 10:48:07 -04:00
541e6aaeb1 Fix previous commit
A spurious space change was included by mistake.
2016-07-20 14:01:13 +02:00
522b288526 Make bus's trim control also affect sends to the bus
The trim processor was moved to the front after the internal return was,
so the trim setting was applied before the signal coming from other
tracks/busses sends was mixed in. Change the order so that trim applies
to audio from internal sends as well.
2016-07-20 13:58:42 +02:00
b648ad9cc7 a-Delay: Smooth transition on LPF changes and set max feedback 100 2016-07-20 21:17:51 +10:00
62cd4d43bf a-Comp: Fix bug with DSP in the knee processing region 2016-07-20 20:10:46 +10:00
85cdff7cb0 Use the new do_export() method when asked to export 2016-07-20 02:01:40 +02:00
f371ac1beb Add a dedicated export method to MidiRegion
To export a MIDI region to a file, the code used MidiRegion::clone()
since it takes care of creating a new file-backed source with the wanted
contents. Nevertheless, it had several side-effects:
- it created and registered a new region which is confusing to users
- it only exported notes that were in the region range, but didn't
  remove the region start offset from MIDI events, essentially producing
  a spurious silence at the beginning of the exported file (this is not
  a problem for region cloning because the newly created region is made
  aware of the offset and caters for it).

Add a dedicated code path for export, that uses the new offsetting
capabilities of MidiModel::write_section_to().
2016-07-20 02:01:40 +02:00
728e6027d1 Make MidiModel::write_section_to able to offset event times
MidiModel::write_section_to() only wrote events to the given source if
those events had a time in the given range. Make it able to optionally
offset event times so that the start of the written range corresponds to
time 0 in the source.
2016-07-20 02:01:40 +02:00
2bad0e5c55 Make MidiModel::write_section_to() more type-independant
Replace hard-coded Evoral::Beats by TimeType which is currently the same
thing but might change in the future.
2016-07-20 02:01:40 +02:00
8338c1ccf5 save/restore track monitoring, rec-enable and rec-safe states 2016-07-19 18:56:37 -04:00
0fd2d82a6d add missing header include 2016-07-19 20:33:36 +02:00
2e789e34e7 enforce range of HP/LP
We must not assume that the host sends values within the the range
nor that the enum is always an integer.
2016-07-19 19:26:05 +02:00
2e933a6414 Fix a typo in HiAndLowPass.lua
Instead of mixing two consecutive biquad orders with a linear xfade, the
code used the same weight for both signals to mix, due to a copy-paste
blunder. Brown-bag fix this now. Also change a little the threshold for
using 32-samples chunks to cater for steepness jumping from 0 to 4 (this
doesn't change anything for commonly used rates and is just for
robustness in never-happening cases anyway).
2016-07-19 16:42:27 +02:00
55bd8ff4d8 and now with "d" 2016-07-19 16:33:48 +02:00
96ac896db0 revert inadvertently committed debug settings 2016-07-19 15:49:55 +02:00
ae2ce3053f and plain realloc (not mlocked) as baseline 2016-07-19 15:34:06 +02:00
cf89f645ab another TLSF vs realloc-pool shootout
..since memory-size and segmentation increased.
(large sizes favor TLSF, smaller segments are in favor realloc-pool)
2016-07-19 15:06:20 +02:00
c1aef0084a tweak realloc-pool realloc behavior.
* ignore provided old-size from lua, use internal segment size.
* fix behavior on OOM (leave memory untouched)
2016-07-19 15:05:16 +02:00
d13435a4e1 re-add TLSF 2016-07-19 15:03:51 +02:00
f8207524e9 a-Delay: Add feedback control 0 to 90 percent 2016-07-19 14:43:43 +10:00
0b5f2c5d58 Don't add Bundles to PortMatrix if they only have mistyped ports
PortMatrix is able to filter out ports that have an unwanted datatype, but
if a Bundle is added that has no port at all with a wanted datatype then
it is not weeded out correctly (and even if it were, there's no chance
that it will legitimately appear in the UI). Don't add that kind of
Bundle in the first place.
2016-07-19 02:10:40 +02:00
f5ed0c6d07 Remove bus ignore from MIDI tracks
Now that busses can contain MIDI, this special casing doesn't make sense
anymore.
2016-07-19 02:10:40 +02:00
0017837b02 OSC: check if pan exists, fixes MB crash. 2016-07-18 15:57:27 -07:00
a09fec0213 add a const - just because. 2016-07-18 23:52:40 +02:00
901f8caf22 add a plugin-death connection
at application exit, there may otherwise be a race condition,
queue draw could be scheduled for a widget that's no longer present.
2016-07-18 23:52:40 +02:00
a450024c56 add some strategic lua gc steps. 2016-07-18 23:52:40 +02:00
520dcf8cdf rework lua-bridge C++ variable references
Since lua functions are closures, C++ methods that pass arguments by
reference cannot be used directly. The previous approach (boost::ref)
failed with clang. Assume the following:

  void foo (float&) { }
  static inline float& bar () {
    boost::reference_wrapper<float> r (42);
    return r.get ();
  }

  foo ( bar () );

With gcc, "r" goes out of scope after foo's arguments are processed
and all is well.
But with clang,  "r" already leave scope when *inlined* bar() returns.

Solution: allocate some user-data on the lua-stack to hold the reference.
There is no reference to this user-data so lua will eventually
garbage collect it.

(theoretically, creating the table which holds the return-values
could trigger an emergency garbage collection when memory is low and
free the reference just while they're being pushed to the table, then
gain FuncArgs<Params> already dereferenced them all as variable on the
C stack -- probably again compiler specific)
2016-07-18 23:52:40 +02:00
bb29478aa2 stop using Gestalt() on OS X (deprecated and no longer operating correctly)
The incorrect behaviour was documented and did not cause issues in Ardour, but we should
still stop using this ancient call.
2016-07-18 15:56:28 -04:00
727613b4b7 fix a compile of annoying compiler warnings with elcap clang 2016-07-18 14:42:34 -04:00
9f3a9ef02d before pushing keybindings to GTK for menu display, make sure that we add back the META modifer that GTK expects 2016-07-18 14:42:13 -04:00
1a55e83e98 move show_gdk_event_state() utility function from gtk2_ardour to libs/gtkmm2ext 2016-07-18 14:41:25 -04:00
653b113607 fix unused variable warnings and code tidy 2016-07-18 14:39:32 -04:00
cf4b4dea3e fix Pingback 2016-07-18 19:21:05 +02:00