Commit Graph

7185 Commits

Author SHA1 Message Date
Robin Gareus
90a67d04d5 another attempt to fix playhead position with varispeed. 2016-07-25 19:46:19 +02:00
Robin Gareus
eec294a97e the endless quest to plug memory leaks -- episode 378 2016-07-25 17:16:32 +02:00
Robin Gareus
23a2cc4b71 prepare region RMS (loudness) normalization 2016-07-24 20:30:23 +02:00
Colin Fletcher
c21ba6f457 libs/ardour: update UK English localisation 2016-07-24 16:11:46 +01:00
Robin Gareus
85746c528f export rate formatting:
* use the locale (44.1 vs 44,1)
* do not encourage translating SI units and prefixes)
2016-07-24 16:54:08 +02:00
Robin Gareus
bcee4e1518 add a lua timer callback signal 2016-07-24 13:00:15 +02:00
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
Robin Gareus
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
Paul Davis
bd80b2f144 fix issue with solo-in-place
Monitor outs cannot be muted by other soloing. Duh.
2016-07-21 13:16:05 -04:00
Paul Davis
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
Paul Davis
9c323c59ef messages sent to info/warning/error/fatal should end with endmsg, not endl 2016-07-20 16:34:00 -04:00
Paul Davis
54730c2aa5 remove long-lived debug output related to RT-setting of controls 2016-07-20 16:21:03 -04:00
Paul Davis
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
Paul Davis
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
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
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
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
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
a09fec0213 add a const - just because. 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
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
nick_m
5f2ee3328f Fix stored type confusion in Meter/TempoSection::get_state(). 2016-07-18 02:58:59 +10: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
Robin Gareus
4203e7c903 fix file-name reported to analyzer when stem-exporting 2016-07-15 16:58:51 +02:00
Julien "_FrnchFrgg_" RIVAUD
8c3551341c Make Route and Track ::silent_roll() also flush out ports buffers
So that MIDI in the ports is really made silent.
2016-07-14 21:55:49 -04:00
Julien "_FrnchFrgg_" RIVAUD
9ba6e938d8 Also flush buffers of the inner delivery of inserts
When flushing the buffers of Delivery processors owned by a Route/Track,
inner deliveries of PortInsert processors were missed since PortInsert
is not a Delivery subclass, but rather owns a Delivery as a private
member. Expose a flush_buffers() for PortInsert and call it too.

This is correct since (external) Send is a Delivery subclass, so that
just makes the send part of inserts behave as external sends do.
2016-07-14 21:55:49 -04:00
Julien "_FrnchFrgg_" RIVAUD
8af589b322 Consolidate delivery buffer flushing of all route types
Route::no_roll(), Route::roll(), Track::no_roll(), AudioTrack::roll()
and MidiTrack::roll() all had the exact same loop for flushing buffers
of their Delivery processors. That was a lot of replicated code that had
to be kept synchronised by hand. Put that code into a protected method
Route::flush_processor_buffers_locked() which is called instead.
2016-07-14 21:55:49 -04:00
Robin Gareus
941339bdde fix a -Wsign-compare 2016-07-14 21:41:16 +02:00
Paul Davis
cf52d6e4b4 enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.h 2016-07-14 14:45:23 -04:00
Damien Zammit
fdfff81850 a-EQ: Remove LPF/HPF completely from this plugin 2016-07-15 01:54:50 +10:00