Commit graph

11889 commits

Author SHA1 Message Date
Paul Davis
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
Paul Davis
81211a91b1 minor safety fix for the Pane 2016-07-20 10:48:07 -04:00
Paul Davis
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
Julien "_FrnchFrgg_" RIVAUD
541e6aaeb1 Fix previous commit
A spurious space change was included by mistake.
2016-07-20 14:01:13 +02:00
Julien "_FrnchFrgg_" RIVAUD
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
Damien Zammit
b648ad9cc7 a-Delay: Smooth transition on LPF changes and set max feedback 100 2016-07-20 21:17:51 +10:00
Damien Zammit
62cd4d43bf a-Comp: Fix bug with DSP in the knee processing region 2016-07-20 20:10:46 +10:00
Julien "_FrnchFrgg_" RIVAUD
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
Julien "_FrnchFrgg_" RIVAUD
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
Julien "_FrnchFrgg_" RIVAUD
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
Paul Davis
8338c1ccf5 save/restore track monitoring, rec-enable and rec-safe states 2016-07-19 18:56:37 -04:00
Robin Gareus
0fd2d82a6d add missing header include 2016-07-19 20:33:36 +02:00
Robin Gareus
55bd8ff4d8 and now with "d" 2016-07-19 16:33:48 +02:00
Robin Gareus
96ac896db0 revert inadvertently committed debug settings 2016-07-19 15:49:55 +02:00
Robin Gareus
ae2ce3053f and plain realloc (not mlocked) as baseline 2016-07-19 15:34:06 +02:00
Robin Gareus
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
Robin Gareus
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
Robin Gareus
d13435a4e1 re-add TLSF 2016-07-19 15:03:51 +02:00
Damien Zammit
f8207524e9 a-Delay: Add feedback control 0 to 90 percent 2016-07-19 14:43:43 +10:00
Len Ovens
0017837b02 OSC: check if pan exists, fixes MB crash. 2016-07-18 15:57:27 -07:00
Robin Gareus
a09fec0213 add a const - just because. 2016-07-18 23:52:40 +02:00
Robin Gareus
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
Paul Davis
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
Paul Davis
727613b4b7 fix a compile of annoying compiler warnings with elcap clang 2016-07-18 14:42:34 -04:00
Paul Davis
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
Paul Davis
1a55e83e98 move show_gdk_event_state() utility function from gtk2_ardour to libs/gtkmm2ext 2016-07-18 14:41:25 -04:00
Paul Davis
b8f5306d5b fix incorrect restoration of pane positions on Apple.
Code to check if we were to close to an edge (for window resizing) blocked all divider setting,
because it would be called with a current widget allocation of 1x1
2016-07-18 12:49:36 -04:00
Len Ovens
1364cd6a30 OSC: Get rid of meter noise in MB. 2016-07-18 09:47:33 -07:00
Robin Gareus
8c944c08ea Normalize API rename part 2 2016-07-18 17:37:13 +02:00
Robin Gareus
b64dcac17e No-Op: rename Normalizer to Intermediate
post-processing is no longer just Normalization. RealtimeExport
does Encoding - faster than realtime - using the same infrastructure.
2016-07-18 17:37:13 +02:00
Paul Davis
ee2d7a2d0c add exception handling in LocaleGuard, to try to cover more OS X wierd/corner cases 2016-07-18 10:56:43 -04:00
Robin Gareus
855618eb5f amend previous commit (forgotten checkin) 2016-07-18 13:11:18 +02:00
Robin Gareus
c5fb7e1d83 update to lua-5.3.3 2016-07-18 12:28:36 +02:00
John Emmas
062712c691 Remove 'i18n.h' from some VC projects where it's no longer needed 2016-07-18 09:41:46 +01:00
John Emmas
defb46d0fd Add a newly introduced source file to our MSVC project (libpbd) 2016-07-18 09:39:36 +01:00
nick_m
5f2ee3328f Fix stored type confusion in Meter/TempoSection::get_state(). 2016-07-18 02:58:59 +10:00
Colin Fletcher
21bb604fc1 fix build of test suite
Fix build of audiographer tests after changes to TmpFile in 77687519.
2016-07-17 17:04:35 +01:00
Robin Gareus
7d7755ffb6 expose PBD::open_uri bindings to lua 2016-07-17 17:04:02 +02:00
Julien "_FrnchFrgg_" RIVAUD
dd9c99026d Another translation pass 2016-07-17 02:10:09 +02:00
Robin Gareus
8e48655981 handle no audio-output AUs 2016-07-16 18:44:05 +02:00
Robin Gareus
faefc3ba9a improve AU Latency PropertyChange Events 2016-07-16 18:43:10 +02:00
Robin Gareus
b7d730433b add a note to self 2016-07-16 14:48:49 +02:00
Robin Gareus
25a4cae8ad AU: install latency listener
Don't query after every cycle, some plugins inject license checks
when a host queries latency (!)
2016-07-16 05:05:52 +02:00
Robin Gareus
8219fdee07 AU: remove cruft, fix parameter initialization 2016-07-16 05:01:26 +02:00
Robin Gareus
19a9d8415f allow inserts to connect it itself - #6924 2016-07-16 04:14:27 +02:00
Robin Gareus
bd50bfa967 add a realtime-export session property 2016-07-16 02:14:54 +02:00
Robin Gareus
9eaced4c9d allow to query export profile type 2016-07-16 02:14:27 +02:00
Robin Gareus
f8a6213454 libardour support for timespan realtime export 2016-07-16 02:14:18 +02:00
Robin Gareus
77687519b6 Refactor TmpFile into an abstract base class
This allows a TmpFile pointer to be either a Sync or Async (Threaded)
writer. As result we must be able to handle both RT and non RT processing.

Still, post-processing (normalization and encoding) should always
happen faster than realtime (freewheeling).

Since jack does not allow a client to change to freewheeling from within
the process-callback, the async-writer disk-thread FileFlushed is used
to initiate post-processing.
2016-07-16 02:14:13 +02:00
Robin Gareus
6626723880 NO-OP session-property comments 2016-07-16 02:13:50 +02:00