summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour
AgeCommit message (Collapse)Author
2017-10-02NO-OP: comment format change and whitespacePaul Davis
2017-10-02remove cruft from DiskIOProcessor headerPaul Davis
2017-10-02remove leftover cruft related to wrap buffers from DiskIOProcessorPaul Davis
2017-10-02tracks no longer need to be notified about speed changesPaul Davis
2017-10-01Fix MIDI rec-region displayRobin Gareus
gui_feed_buffer is used for DiskWriter -> GUI notifications. It was wrongly migrated from MidiDiskstream to DiskReader in 7fb6807
2017-10-01Fix recording MIDIRobin Gareus
- Fix API call to add region(midi_region) -- set count to "1" - Forward DataRecorded() signal - remove botched merge/rebase" a4a87f56 accidentally brought back code from old-destructive API which was removed in af103cf3 and 08c13007 There is no per track NonLayered record mode anymore, it's session global. - set can_record correctly to not accidentally clear last capture sources for cont'd recording (toggle track's rec-arm)
2017-09-30Make MIDI disk-reader a bit less buggy :)Robin Gareus
* use start/end frame * differentiate nframes and disk_samples_to_consume * add global Port::port_offset () when writing data. * add a note about b0rked vari-speed ..
2017-09-30Immediate-event/out-of-band injection update & tweak clearing buffersRobin Gareus
Immediate events are used for MIDI-Panic and to inject GUI generated events e.g. patch-changes, note-events from the track-header (scroomer-keyboard) and patch-change audition. Current behavior: - snapshot copy immediate events from ringbuffer into a buffer at the beginning of each the cycle. - Inject immediate events into input-buffer directly after reading the input - process "normally" - pass immediate event-buffer to disk-writer, so it can skip them (don't write immediate events to disk) - if the Route is not monitoring input: clear buffer before disk-reader and re-inject (original) immediate events after the disk-reader - immediate events process normally and are also sent to outputs.
2017-09-30Remove unused IO::process_input() APIRobin Gareus
This was only needed in order to run the meter on inputs when Ardour did no processing at all.
2017-09-30First part of consolidating ::roll(), ::no_roll()Robin Gareus
This moves common code (get and fill buffers) into ::passthru() and renames ::passthru() to ::run_route(). passthru_silence() is no longer used (it was only needed A5 style Track::no_roll_unlocked for no-roll + disk-monitoring)
2017-09-30remove unused Route::_silentRobin Gareus
2017-09-30Towards fixing no_roll()Robin Gareus
Currently ::roll() may actually be a ::no_roll() under some circumstances. This can also happen during count-in: transport_stopped () == transport_rolling() and during latency-preroll: Global session-transport speed != 0, some tracks already roll, read data from disk and feed latent plugins. but other non-latent tracks or busses don't roll and still have to behave like the switch from no_roll() to roll() has not yet happened. This changes the game WRT to monitoring as well, previously, Route:roll() called Route::no_roll_unlocked () for conditions outlined above. Now Track::no_roll_unlocked is called and in some cases wrongly clears the buffers before the signal hits the disk-writer. (more work is needed related to 61f8e53b) On the upside this also fixes an issue with MidiTrack::no_roll not keeping a lock while pushing data into the step-edit-ringbuffer. This is also a step towards consolidating all entry points: ::roll(), ::no_roll(), ::silent_roll() in the Route class.
2017-09-29remove cruftRobin Gareus
2017-09-29remove *.orig files (accidentally added in cba53a202)Robin Gareus
2017-09-29Remove unused punch+preroll APIRobin Gareus
This API was not used, also superseded by record w/preroll.
2017-09-29remove cruftRobin Gareus
2017-09-29Aux-Send Latency compensation, part 2 & code-consolidationRobin Gareus
2017-09-29Update Send: Include internal 'thru' delay-lineRobin Gareus
This allows to push latency upstream and delay the source in case the destination has a longer latency. Also add a signal to notify the Session in case this happens, intended to queue a latency-recompute.
2017-09-29Aux-Send Latency compensation, part 1: latent sourcesRobin Gareus
2017-09-29Delayline: report if set_delay() actually changed the delayRobin Gareus
2017-09-29Delayline naming -- for debug purposesRobin Gareus
2017-09-29Properly aligned export (Stem + Session)Robin Gareus
Delay ports being exported by their playback latency.
2017-09-29Remove unused mechanismRobin Gareus
2017-09-29Ongoing work on latency compensationRobin Gareus
The general goal is to align transport-sample to be the audible frame and use that as "anchor" for all processing. transport_sample cannot become negative (00:00:00:00 is the first audible frame). Internally transport pre-rolls (read-ahead) before the transport starts to move. This allows inputs and disk to prefill the pipeline. When starting to roll, the session counts down a global "remaning preroll" counter, which is the worst-latency from in-to-out. Each route in turn will start processing at its own output-latency. Route::process_output_buffers() - which does the actual processing incl disk i/o - begins by offsetting the "current sample" by the route's process-latency and decrements the offset for each latent processor. At the end of the function the output will be aligned and match transport-sample - downstream-playback-latency (if any). PS. This commit is a first step only: transport looping & vari-speed have not yet been implemented/updated.
2017-09-29Add API to query IO latenciesRobin Gareus
IO::connected_latency() is relevant once Ardour publishes individual per Port latency. IO::public_latency() is only for debug purposes.
2017-09-29Add Processor API for global session-transport alignmentRobin Gareus
These are only relevant for DiskIO Processors, however more use-cases may present themselves (e.g. LuaDSP)
2017-09-29Prepare removal of initial_delayRobin Gareus
2017-09-29clean up route header, NO-OP (except variable re-order)Robin Gareus
2017-09-29NO-OP: WhitespaceRobin Gareus
2017-09-29Remove code related to capture-offset.Robin Gareus
2017-09-29No more disk-reader roll-delayRobin Gareus
It was not working in sdio/6.0-pre anyway and with upcoming changes to latency compensation the concept of per disk[stream/reader] will go away.
2017-09-24fix header order and space alignmentPaul Davis
2017-09-24convert codebase to use Temporal for various time typesPaul Davis
2017-09-24change libtimecode to libtemporal, add Evoral::Beats, positional types and ↵Paul Davis
superclock headers
2017-09-23Fix changing playlist (Track is responsible for signal emission)Robin Gareus
2017-09-23Consolidate check for internal/non-removable processorsRobin Gareus
2017-09-22AlignmentChoise is a Track PropertyRobin Gareus
The DiskWriter uses AlignStyle which is set dynamically by the Track and may depend on I/O connections.
2017-09-21s/created with/modified with/Robin Gareus
Once a session has been saved by a more recent version or a different variant, the session file is tied to that version/variant. The created-with version is only for debug purposes and internal use.
2017-09-19attempt to fix roll delay logic by moving it into DiskReader (the only place ↵Paul Davis
it matters)
2017-09-19Revert "remove unusued roll_delay member of DiskReader"Paul Davis
This reverts commit 92c2e06eb72950f91ca943a5219e2caeaeecda9f.
2017-09-19remove unusued roll_delay member of DiskReaderPaul Davis
2017-09-19Amend c8a9b28d3 and 40aebce. Fix gain automation edge-cases:Robin Gareus
* drop Trim/Fader automation for bypassed processor * Trim/Fader automation for Busses is always active when rolling
2017-09-18remove getter for Amp::_apply_automation_gain; reset member to false after ↵Paul Davis
use, and true after ::setup_automation_gain runs successfully
2017-09-18consolidate roll methods into Route::roll()Paul Davis
We want Track to shrink, and logic consolidation is always good. Route already knew about disk_reader and disk_writer, now it knows about _monitoring_control too
2017-09-19Various updates and fixes for Latency CompensationRobin Gareus
* centralize signal_latency_at_***_position to processors * update initial-delay/roll-delay when processor order changes * consolidate signal-latency calculation: use the same method for processor-changes and session's post_playback_latency. * include relative output-delay in roll-delay * fix capture processor position & optimize stem-export latency (roll-delay fixes pending Route:roll() update)
2017-09-18amend prev. commitRobin Gareus
2017-09-18Tweak default configRobin Gareus
* disable MMC by default * auto-detect audition-synth at first run (prefer gmsynth if available)
2017-09-18globally change all use of "frame" to refer to audio into "sample".Paul Davis
Generated by tools/f2s. Some hand-editing will be required in a few places to fix up comments related to timecode and video in order to keep the legible
2017-09-18add _locked() variants to new tempo experimentPaul Davis
2017-09-18changes required to operate with the Evoral::Beats ticktime commitPaul Davis