John Emmas [Thu, 21 Jul 2016 08:01:21 +0000 (09:01 +0100)]
Accommodate newly introduced source(s) in our MSVC project (gtk2_ardour)
Paul Davis [Thu, 21 Jul 2016 03:26:50 +0000 (23:26 -0400)]
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.
Paul Davis [Wed, 20 Jul 2016 20:34:00 +0000 (16:34 -0400)]
messages sent to info/warning/error/fatal should end with endmsg, not endl
Paul Davis [Wed, 20 Jul 2016 20:33:40 +0000 (16:33 -0400)]
remove debug noise
Paul Davis [Wed, 20 Jul 2016 20:21:03 +0000 (16:21 -0400)]
remove long-lived debug output related to RT-setting of controls
Paul Davis [Wed, 20 Jul 2016 20:10:11 +0000 (16:10 -0400)]
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
Paul Davis [Wed, 20 Jul 2016 18:47:14 +0000 (14:47 -0400)]
ensure that Route::_phase_control has its state restored, and also re-arrange Route::set_state() to avoid duplicated control set_state() calls
Len Ovens [Wed, 20 Jul 2016 15:59:06 +0000 (08:59 -0700)]
OSC: comp mode control text needs to be changed by signal too.
Paul Davis [Wed, 20 Jul 2016 14:48:01 +0000 (10:48 -0400)]
add LocaleGuard while restoring RC configuration.
Should fix issues with reloading various RC variables that use float
Paul Davis [Wed, 20 Jul 2016 03:31:30 +0000 (23:31 -0400)]
minor safety fix for the Pane
Paul Davis [Wed, 20 Jul 2016 03:31:07 +0000 (23:31 -0400)]
Gtkmm2ext::Pane: attempt to track child lifetime, since Gtkmm 2.4 doesn't do this correctly
Julien "_FrnchFrgg_" RIVAUD [Wed, 20 Jul 2016 12:01:13 +0000 (14:01 +0200)]
Fix previous commit
A spurious space change was included by mistake.
Julien "_FrnchFrgg_" RIVAUD [Wed, 20 Jul 2016 11:50:25 +0000 (13:50 +0200)]
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.
Damien Zammit [Wed, 20 Jul 2016 11:17:51 +0000 (21:17 +1000)]
a-Delay: Smooth transition on LPF changes and set max feedback 100
Damien Zammit [Wed, 20 Jul 2016 10:10:46 +0000 (20:10 +1000)]
a-Comp: Fix bug with DSP in the knee processing region
Julien "_FrnchFrgg_" RIVAUD [Wed, 20 Jul 2016 00:01:16 +0000 (02:01 +0200)]
Use the new do_export() method when asked to export
Julien "_FrnchFrgg_" RIVAUD [Tue, 19 Jul 2016 23:53:31 +0000 (01:53 +0200)]
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().
Julien "_FrnchFrgg_" RIVAUD [Tue, 19 Jul 2016 23:17:58 +0000 (01:17 +0200)]
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.
Julien "_FrnchFrgg_" RIVAUD [Tue, 19 Jul 2016 16:30:36 +0000 (18:30 +0200)]
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.
Paul Davis [Tue, 19 Jul 2016 22:56:31 +0000 (18:56 -0400)]
save/restore track monitoring, rec-enable and rec-safe states
Robin Gareus [Tue, 19 Jul 2016 18:33:36 +0000 (20:33 +0200)]
add missing header include
Robin Gareus [Tue, 19 Jul 2016 17:26:05 +0000 (19:26 +0200)]
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.
Julien "_FrnchFrgg_" RIVAUD [Tue, 19 Jul 2016 14:38:26 +0000 (16:38 +0200)]
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).
Robin Gareus [Tue, 19 Jul 2016 14:33:48 +0000 (16:33 +0200)]
and now with "d"
Robin Gareus [Tue, 19 Jul 2016 13:49:55 +0000 (15:49 +0200)]
revert inadvertently committed debug settings
Robin Gareus [Tue, 19 Jul 2016 13:34:06 +0000 (15:34 +0200)]
and plain realloc (not mlocked) as baseline
Robin Gareus [Tue, 19 Jul 2016 13:06:20 +0000 (15:06 +0200)]
another TLSF vs realloc-pool shootout
..since memory-size and segmentation increased.
(large sizes favor TLSF, smaller segments are in favor realloc-pool)
Robin Gareus [Tue, 19 Jul 2016 13:05:16 +0000 (15:05 +0200)]
tweak realloc-pool realloc behavior.
* ignore provided old-size from lua, use internal segment size.
* fix behavior on OOM (leave memory untouched)
Robin Gareus [Tue, 19 Jul 2016 13:03:51 +0000 (15:03 +0200)]
re-add TLSF
Damien Zammit [Tue, 19 Jul 2016 04:42:53 +0000 (14:42 +1000)]
a-Delay: Add feedback control 0 to 90 percent
Julien "_FrnchFrgg_" RIVAUD [Tue, 19 Jul 2016 00:03:44 +0000 (02:03 +0200)]
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.
Julien "_FrnchFrgg_" RIVAUD [Mon, 18 Jul 2016 22:01:12 +0000 (00:01 +0200)]
Remove bus ignore from MIDI tracks
Now that busses can contain MIDI, this special casing doesn't make sense
anymore.
Len Ovens [Mon, 18 Jul 2016 22:57:27 +0000 (15:57 -0700)]
OSC: check if pan exists, fixes MB crash.
Robin Gareus [Mon, 18 Jul 2016 21:51:42 +0000 (23:51 +0200)]
add a const - just because.
Robin Gareus [Mon, 18 Jul 2016 21:51:10 +0000 (23:51 +0200)]
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.
Robin Gareus [Mon, 18 Jul 2016 21:34:12 +0000 (23:34 +0200)]
add some strategic lua gc steps.
Robin Gareus [Mon, 18 Jul 2016 21:30:20 +0000 (23:30 +0200)]
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)
Paul Davis [Mon, 18 Jul 2016 19:56:03 +0000 (15:56 -0400)]
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.
Paul Davis [Mon, 18 Jul 2016 18:42:34 +0000 (14:42 -0400)]
fix a compile of annoying compiler warnings with elcap clang
Paul Davis [Mon, 18 Jul 2016 18:42:13 +0000 (14:42 -0400)]
before pushing keybindings to GTK for menu display, make sure that we add back the META modifer that GTK expects
Paul Davis [Mon, 18 Jul 2016 18:41:25 +0000 (14:41 -0400)]
move show_gdk_event_state() utility function from gtk2_ardour to libs/gtkmm2ext
Paul Davis [Mon, 18 Jul 2016 18:39:32 +0000 (14:39 -0400)]
fix unused variable warnings and code tidy
Robin Gareus [Mon, 18 Jul 2016 17:19:57 +0000 (19:19 +0200)]
fix Pingback
Robin Gareus [Mon, 18 Jul 2016 17:19:35 +0000 (19:19 +0200)]
clean up HttpGet
Paul Davis [Mon, 18 Jul 2016 16:49:26 +0000 (12:49 -0400)]
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
Len Ovens [Mon, 18 Jul 2016 16:47:33 +0000 (09:47 -0700)]
OSC: Get rid of meter noise in MB.
Paul Davis [Mon, 18 Jul 2016 16:06:31 +0000 (12:06 -0400)]
add 2 missing colors for clear gray theme
Paul Davis [Mon, 18 Jul 2016 16:03:37 +0000 (12:03 -0400)]
add new clear-gray color theme
Paul Davis [Mon, 18 Jul 2016 15:50:34 +0000 (11:50 -0400)]
correctly package color theme files for both linux and OS X
Paul Davis [Mon, 18 Jul 2016 15:50:21 +0000 (11:50 -0400)]
turn back towards color theme files ALWAYS including the program name. also load both default and user colors (if present)
Robin Gareus [Mon, 18 Jul 2016 15:31:50 +0000 (17:31 +0200)]
Normalize API rename part 2
Robin Gareus [Mon, 18 Jul 2016 15:36:29 +0000 (17:36 +0200)]
No-Op: rename Normalizer to Intermediate
post-processing is no longer just Normalization. RealtimeExport
does Encoding - faster than realtime - using the same infrastructure.
Paul Davis [Mon, 18 Jul 2016 14:56:19 +0000 (10:56 -0400)]
add exception handling in LocaleGuard, to try to cover more OS X wierd/corner cases
Robin Gareus [Mon, 18 Jul 2016 14:46:17 +0000 (16:46 +0200)]
Update pingback to use ArdourCurl
Robin Gareus [Mon, 18 Jul 2016 14:10:35 +0000 (16:10 +0200)]
remove old a3_curl API and switch some curl calls
Keep freesound-moocher as is until freesound-apiv2 branch is merged
or rebased.
Robin Gareus [Mon, 18 Jul 2016 14:45:45 +0000 (16:45 +0200)]
ArdourCurl: prepare to unify various curl calls
mainly motivated by a central location to setup SSL.
Julien "_FrnchFrgg_" RIVAUD [Mon, 18 Jul 2016 11:37:36 +0000 (13:37 +0200)]
Optimize a-HiAndLowPass
- Better formula for the lpf smoothness parameter. It is computed only
on init and rate change anyway...
- Only run as many Biquads as needed to save computing power, esp. when
using low steepness and parameters are not changing.
Robin Gareus [Mon, 18 Jul 2016 11:11:18 +0000 (13:11 +0200)]
amend previous commit (forgotten checkin)
Robin Gareus [Mon, 18 Jul 2016 10:28:36 +0000 (12:28 +0200)]
update to lua-5.3.3
Julien _FrnchFrgg_ RIVAUD [Mon, 18 Jul 2016 09:09:01 +0000 (11:09 +0200)]
Simplify the logic in HiAndLowPass filter
And beef up comments for readers using the filter as an example.
Robin Gareus [Mon, 18 Jul 2016 08:53:40 +0000 (10:53 +0200)]
clean up Hp/Lp code
Colin Fletcher [Wed, 17 Feb 2016 17:21:33 +0000 (17:21 +0000)]
pingback:: use curl_free() for pointers returned by curl_easy_escape()
As per the curl documentation, use curl_free() for pointers returned by
curl_easy_escape() rather than plain free().
John Emmas [Mon, 18 Jul 2016 08:41:46 +0000 (09:41 +0100)]
Remove 'i18n.h' from some VC projects where it's no longer needed
John Emmas [Mon, 18 Jul 2016 08:39:36 +0000 (09:39 +0100)]
Add a newly introduced source file to our MSVC project (libpbd)
Robin Gareus [Sun, 17 Jul 2016 21:36:25 +0000 (23:36 +0200)]
bundle dynamically loaded NSS libs
Robin Gareus [Sun, 17 Jul 2016 17:16:22 +0000 (19:16 +0200)]
fix cURL/SSL
pingback comes first. We need defaults (with SSL). Later explicit
(Freesound Moocher) and implicit (curl_easy_init) calls to curl_global_init
are idempotent and won't get the flags back.
nick_m [Sun, 17 Jul 2016 16:58:59 +0000 (02:58 +1000)]
Fix stored type confusion in Meter/TempoSection::get_state().
Colin Fletcher [Sun, 17 Jul 2016 16:04:35 +0000 (17:04 +0100)]
fix build of test suite
Fix build of audiographer tests after changes to TmpFile in
77687519.
Robin Gareus [Sun, 17 Jul 2016 15:04:02 +0000 (17:04 +0200)]
expose PBD::open_uri bindings to lua
Robin Gareus [Sun, 17 Jul 2016 15:03:48 +0000 (17:03 +0200)]
quick hack to test SSL in bundles
this needs to be reverted, and we need a proper curl wrapper,
shared by video-timeline AND freesound moocher
Robin Gareus [Sun, 17 Jul 2016 12:10:13 +0000 (14:10 +0200)]
cleanup High/Low Pass
* shorten Name
* fix typo in Time Constant
* remove some local variables
Julien "_FrnchFrgg_" RIVAUD [Sat, 16 Jul 2016 16:50:51 +0000 (18:50 +0200)]
Another translation pass
Robin Gareus [Sat, 16 Jul 2016 23:20:45 +0000 (01:20 +0200)]
remove old a-Hi/Low pass
Robin Gareus [Sat, 16 Jul 2016 23:20:23 +0000 (01:20 +0200)]
clean up a-HP/LP
Robin Gareus [Sat, 16 Jul 2016 21:05:30 +0000 (23:05 +0200)]
Hi AND low pass filter -- fresh from the oven werks.
Robin Gareus [Sat, 16 Jul 2016 17:09:15 +0000 (19:09 +0200)]
fix double quote in fr.po
Robin Gareus [Sat, 16 Jul 2016 14:37:11 +0000 (16:37 +0200)]
repeat "Scan" button in plugin sub-menus
Robin Gareus [Sat, 16 Jul 2016 16:44:05 +0000 (18:44 +0200)]
handle no audio-output AUs
Robin Gareus [Sat, 16 Jul 2016 16:43:10 +0000 (18:43 +0200)]
improve AU Latency PropertyChange Events
Robin Gareus [Sat, 16 Jul 2016 12:48:49 +0000 (14:48 +0200)]
add a note to self
Robin Gareus [Sat, 16 Jul 2016 03:05:52 +0000 (05:05 +0200)]
AU: install latency listener
Don't query after every cycle, some plugins inject license checks
when a host queries latency (!)
Robin Gareus [Sat, 16 Jul 2016 03:01:26 +0000 (05:01 +0200)]
AU: remove cruft, fix parameter initialization
Robin Gareus [Sat, 16 Jul 2016 02:14:27 +0000 (04:14 +0200)]
allow inserts to connect it itself - #6924
Julien "_FrnchFrgg_" RIVAUD [Fri, 15 Jul 2016 21:12:52 +0000 (23:12 +0200)]
Better choice for ports on external send creation
Ardour tried to make an educated guess at the initial number of outputs
for a new send. It used the channel configuration of the master bus, if
it existed, else the channel configuration of the route itself.
That guess is good in most cases, but in the case of a track/bus without
audio channels, creating a send with audio doesn't make sense. In that
case, also use the route outputs as a base for the send configuration.
Julien "_FrnchFrgg_" RIVAUD [Fri, 15 Jul 2016 23:33:12 +0000 (01:33 +0200)]
Review, import and augment translations from edwsaintesprit@hotmail.com
Robin Gareus [Sat, 16 Jul 2016 00:15:56 +0000 (02:15 +0200)]
export RT support as Timespan option
Robin Gareus [Fri, 15 Jul 2016 23:36:11 +0000 (01:36 +0200)]
add a realtime-export session property
Robin Gareus [Fri, 15 Jul 2016 23:35:43 +0000 (01:35 +0200)]
allow to query export profile type
Robin Gareus [Fri, 15 Jul 2016 15:04:34 +0000 (17:04 +0200)]
libardour support for timespan realtime export
Robin Gareus [Fri, 15 Jul 2016 15:03:07 +0000 (17:03 +0200)]
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.
Robin Gareus [Fri, 15 Jul 2016 23:53:54 +0000 (01:53 +0200)]
NO-OP session-property comments
Robin Gareus [Fri, 15 Jul 2016 22:12:19 +0000 (00:12 +0200)]
adjust plugin-UI height when toggling expanders
Len Ovens [Fri, 15 Jul 2016 18:44:49 +0000 (11:44 -0700)]
OSC: LFE is a control not a position.
Robin Gareus [Fri, 15 Jul 2016 14:54:07 +0000 (16:54 +0200)]
fix file-name reported to analyzer when stem-exporting
Robin Gareus [Fri, 15 Jul 2016 14:10:42 +0000 (16:10 +0200)]
hotfix C++ locale (OSX, windows)
Julien "_FrnchFrgg_" RIVAUD [Fri, 15 Jul 2016 00:02:21 +0000 (02:02 +0200)]
Make Route and Track ::silent_roll() also flush out ports buffers
So that MIDI in the ports is really made silent.
Julien "_FrnchFrgg_" RIVAUD [Thu, 14 Jul 2016 23:51:55 +0000 (01:51 +0200)]
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.
Julien "_FrnchFrgg_" RIVAUD [Thu, 14 Jul 2016 23:43:14 +0000 (01:43 +0200)]
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.
Julien "_FrnchFrgg_" RIVAUD [Thu, 14 Jul 2016 21:23:59 +0000 (23:23 +0200)]
Update french translation
Julien "_FrnchFrgg_" RIVAUD [Thu, 14 Jul 2016 21:16:26 +0000 (23:16 +0200)]
Make french translation up-to-date with Ardour's current code