Age | Commit message (Collapse) | Author |
|
|
|
|
|
So that MIDI in the ports is really made silent.
|
|
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.
|
|
|
|
Pass current (latency compensated) cycle times to plugin.
This fixes time-reporting to plugins and also fixes automation
and when bouncing (the session->transport* is not valid) etc.
|
|
|
|
remote control ID and "order keys" have been removed.
|
|
Make it be based on the ParameterDescriptor, which indicates toggle status anyway
|
|
|
|
and used. The controls now own their own state, rather than proxy for state in their owners.
Massive changes all over the code to accomodate this. Many things are not finished. Consider this a backup safety commit
|
|
GroupControlDisposition)
This allows the signal to convey more information, which may be required by some handlers of a control's Changed signal
|
|
|
|
|
|
significance of ParameterDescriptor
|
|
AutomationControl for track monitoring choice
|
|
|
|
This also removes Route::group_gain_control() and associated machinery.
Not yet tested with Mackie or other surfaces. More work to done to
start using the group capabilities, and also potentially to add
or derive more controls as RouteAutomationControls
|
|
AutomationControl::writable() and use them.
Classes derived from AutomationControl now check ::writable() in their ::set_value() methods to ensure that they
do not attempt to overwrite data sent to them while automation playback is underway.
|
|
|
|
Paul Davis was responsible for introducing almost all of this.
|
|
This drastically-stripped down version of the Ardour original is used only when USE_TRACKS_CODE_FEATURES
is defined. It doesn't respond to many aspects/features of libardour.
|
|
|
|
This cleans up a lot of false-positives in static analysis
and also helps compilers to optimize code paths in general.
(tagging the fatal stingstream operator as ‘noreturn’ is
far less trivial)
|
|
Work towards ParameterDescriptor being used more universally to describe control characteristics.
|
|
using auto-input
|
|
user pressed stopped (2) captured regions should end where the playhead ends
|
|
|
|
non-capture driven MIDI region creation operations).
See comments in Session::new_midi_source_name() for details.
|
|
|
|
fixes
* http://tracker.ardour.org/view.php?id=5628
* http://tracker.ardour.org/view.php?id=5561
|
|
"scratch buffers are by definition scratch and their contents are undefined at all times"
"silent buffers are by definition all-zero and should not be used for real data"
But track & route were using those for actual data; plugins (which may run
in the same thread and may get the same buffers) use them for scratch thereby
overwriting real data.
In particular get_silent_buffers() (used by LadspaPlugin::connect_and_run)
clears the buffer which can holds real data:
e.g. via Route::passthru_silence() -> plugin1 -> plugin2 (clears output of plugin1)
|
|
|
|
..and continue to calculate fall-off in
audio-cycle (rather than UI thread)
TODO: check if this works properly when switching
between audio/midi meter modes on a midi-track.
One of the motivations to always reset meters when the
meter-point changes was to resolve peak-hold & fall-off
issues when a midi-meter replaces an audio-meter and vice
versa.
|
|
|
|
|
|
|
|
"explicit Monitor DISK" + "Transport Stop" + "not track rec-en"
-> meter is always zero
|
|
for state descriptions see
http://www.oofus.co.uk/ardour/Ardour3MonitorModesV3.pdf
|
|
|
|
see http://www.oofus.co.uk/ardour/Ardour3MonitorModesV2.pdf
the overall logic can probably be simplified somewhat
track-rec-enable on -> always monitor input
|
|
if meter==input, meter depends on In/Disk
see also 29108187ed
|
|
|
|
explicitly run meter in this case, since we are otherwise just passing silence
|
|
commit fdbae82077db53add90df7448a06869dac89acc6
Author: Paul Davis <paul@linuxaudiosystems.com>
Date: Wed Mar 27 21:45:28 2013 -0400
mammoth changes in basic signal flow, total redesign of MIDI channel filtering and more.
commit 59343a8283698e02bc0f622313b29e98f449e4c8
Author: Paul Davis <paul@linuxaudiosystems.com>
Date: Wed Mar 27 01:58:53 2013 -0400
initial working version after changes to MIDI channel filtering. may affect metering input too. testing not yet finished
this commit merges many deep changes in ardour's internal architecture,
combined with a total redesign of how MIDI channel filtering works.
data in a track used to flow from JACK port buffers to diskstream's ringbuffers
and was then copied from the ringbuffers into a BufferSet for use during
Route::process_output_buffers(). The butler thread would handle the movement of
data between the ringbuffers and disk.
with this commit, data now flows from JACK port buffers into the BufferSet used
for Route processing, and is copied from the BufferSet into the diskstream's
ringbuffers (the butler thread continues to handle interactions with disk as
usual).
this change allowed a dramatic consolidation of code and simplification of most
aspects of Track/Route::roll() and Track/Route::no_roll(). in particular, see
Route::fill_buffers_with_input() which now concisely describes how we move data
from JACK port buffers into the BufferSet for all Route types (including Tracks).
this work was initially motivated by changing MIDI channel filtering so that we
can process capture and playback independently. there is now a very clean
pathway for this - see MidiTrack::roll() (NOTE: This needs implementing in the
no-roll case too - a TODO item).
the channel selector for MIDI tracks has been moved out of the track header and
is now accessible via the context menu. more work is likely here, to make it
(more) obvious to the user when filtering is going on.
|
|
of piano roll whether rolling or not
git-svn-id: svn://localhost/ardour2/branches/3.0@13679 d708f5d6-7413-0410-9779-e7cbd77b26cf
|
|
git-svn-id: svn://localhost/ardour2/branches/3.0@13615 d708f5d6-7413-0410-9779-e7cbd77b26cf
|
|
two parts, an RT-safe and RT-unsafe part. along the way, remove "do not record plugins" option which is just so 1999 and creates problems for various (all?) plugin APIs
git-svn-id: svn://localhost/ardour2/branches/3.0@13613 d708f5d6-7413-0410-9779-e7cbd77b26cf
|
|
unless punch in/out are enabled
git-svn-id: svn://localhost/ardour2/branches/3.0@13200 d708f5d6-7413-0410-9779-e7cbd77b26cf
|
|
record state if we are actively recording, not just if we are rec-enabled. this provides correct monitoring when punch in/out are enabled
git-svn-id: svn://localhost/ardour2/branches/3.0@13199 d708f5d6-7413-0410-9779-e7cbd77b26cf
|