summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour
AgeCommit message (Collapse)Author
2016-07-20tentative fix for a crash that occurs when switching backends.5.0-pre1Paul Davis
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-20MuteMaster should (a) use a Muteable's own ::muted_by_others_soloing() (b) ↵Paul Davis
not try to use its own _solo_ignore to track Muteable::can_solo() or solo isolate state
2016-07-20Add a dedicated export method to MidiRegionJulien "_FrnchFrgg_" RIVAUD
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-20Make MidiModel::write_section_to able to offset event timesJulien "_FrnchFrgg_" RIVAUD
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-19revert inadvertently committed debug settingsRobin Gareus
2016-07-19and plain realloc (not mlocked) as baselineRobin Gareus
2016-07-19another TLSF vs realloc-pool shootoutRobin Gareus
..since memory-size and segmentation increased. (large sizes favor TLSF, smaller segments are in favor realloc-pool)
2016-07-18add a const - just because.Robin Gareus
2016-07-18Normalize API rename part 2Robin Gareus
2016-07-18No-Op: rename Normalizer to IntermediateRobin Gareus
post-processing is no longer just Normalization. RealtimeExport does Encoding - faster than realtime - using the same infrastructure.
2016-07-16improve AU Latency PropertyChange EventsRobin Gareus
2016-07-16AU: install latency listenerRobin Gareus
Don't query after every cycle, some plugins inject license checks when a host queries latency (!)
2016-07-16AU: remove cruft, fix parameter initializationRobin Gareus
2016-07-16add a realtime-export session propertyRobin Gareus
2016-07-16allow to query export profile typeRobin Gareus
2016-07-16libardour support for timespan realtime exportRobin Gareus
2016-07-16Refactor TmpFile into an abstract base classRobin Gareus
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-16NO-OP session-property commentsRobin Gareus
2016-07-14Also flush buffers of the inner delivery of insertsJulien "_FrnchFrgg_" RIVAUD
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-14Consolidate delivery buffer flushing of all route typesJulien "_FrnchFrgg_" RIVAUD
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-14enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.hPaul Davis
2016-07-14refactoring to prepare for real-time exportRobin Gareus
* add a threaded TmpFile Writer * update API calls to that process_export_fw() can be used as process_function The idea is to re-use export infrastructure from normalization: export to a tmp-file and then encode target formats after that.
2016-07-13a better, deeper fix for "cancel all solo", as Session::cancel_all_solo()Paul Davis
2016-07-13use aligned malloc for luaDSPRobin Gareus
2016-07-12Add a new API to format midi-note-names with translation: Do Re Mi...Robin Gareus
This deprecates Evoral::midi_note_name(). we don't maintain i18n for libevoral.
2016-07-12once the user has explicitly set the session range end, playlist/range ↵Paul Davis
changes do not move it. The user may drag the marker, edit in the Location UI, or use nudge, to set the end
2016-07-12remove pointless version of Stripable::set_presentation_order()Paul Davis
2016-07-11add a convenient lua forward mapped buffers methodRobin Gareus
2016-07-11proper semantics for variable port-countRobin Gareus
Ardour takes the closest pin/port match yet still offers a plugin with variable i/o access to all port-buffers. the "reported" (user visible) pin-count now defaults to the actual selected configuration (precise) and lua_dsp_configure() can override it.
2016-07-11lua MidiBuffer bindingsRobin Gareus
2016-07-10remove reference "const int32_t&" -> const int32_t"Robin Gareus
this simplifies lua-bindings and also let's the compiler worry about constant primitive types.
2016-07-10towards export latency compensationRobin Gareus
2016-07-10align stem-export (raw track outputs (with and w/p processing)Robin Gareus
2016-07-09const bool METHOD() const makes no sensePaul Davis
2016-07-10Fix long-standing spelling bug.nick_m
- should be a no-op.
2016-07-10Experimental patch to ensure playback buffer bounds use minimal beat->frame ↵nick_m
rounding.
2016-07-10Avoid the use of dynamic_cast in TempoMap for performance improvement.nick_m
- review / comment would be appreciated here.
2016-07-10Remove frame conversion for MidiRegionView::note_in_region_range(), speed up ↵nick_m
tempo dilation
2016-07-10Paste uses exact beats. rework _start_beats calculation in copy-with-offset ↵nick_m
ctor.
2016-07-10Exact beat - provide audio->music mapping for region split.nick_m
- for those not in the know, this series provides a way to remove the temporal distortion introduced when using an audio frame-based gui for music-locked objects. In short, the gui uses an audio frame representation to move objects. It displays the object using frame_at_beat(), quantizing the time value to audio frames. This is fine until the user selects that frame but expects it to be interpreted as a beat. Thus beat_at_frame() would not produce the user-expected beat (temporal quantization error of up to 0.5 audio samples). This is one method of mapping audio time to music time accurately.
2016-07-10Make some musical operations on music-locked regions operate in beats.nick_m
- use exact beats to determine frame position. - see comments in tempo.cc for more. - this hasn't been done for split yet, but dragging and trimming are supported.
2016-07-09move latency-recompute into dedicated thread.Robin Gareus
this fixes an issue with jack1 and jack_latency_recompute() since must not send a server request from inside the server callback.
2016-07-09move LatencyChanged detection from Plugin to Processor (plugin-insert)Robin Gareus
* support all Plugin APIs (not implementation specific) * also check for latency changes when plugins are hard en/disabled
2016-07-08fix thinkoPaul Davis
2016-07-08add an plugin API to query generic-gui grid-layoutRobin Gareus
2016-07-08make route group master a real property.Paul Davis
Required for state save/restore to know about the master
2016-07-08signed VCA numbersPaul Davis
2016-07-08change VCA number to signed.Paul Davis
Allows for more robust out-of-band (negative) value
2016-07-08treat VCA assign as a RouteGroup property.Paul Davis
Newly added routes,removed routes etc. all correctly assign or unassign to the group's VCA.
2016-07-07implement designated enable/bypass port for lua-procRobin Gareus