John Emmas [Fri, 27 Oct 2017 12:08:32 +0000 (13:08 +0100)]
Accommodate newly added/removed source(s) in our MSVC project (libpbd)
Robin Gareus [Thu, 26 Oct 2017 20:33:11 +0000 (22:33 +0200)]
Add a RAII SpinLock (using boost's spinlock)
Paul Davis [Thu, 26 Oct 2017 19:46:00 +0000 (15:46 -0400)]
NO-OP: whitespace cleanup
Paul Davis [Thu, 26 Oct 2017 19:45:16 +0000 (15:45 -0400)]
move mixbus-only variable declaration
Paul Davis [Thu, 26 Oct 2017 19:44:32 +0000 (15:44 -0400)]
remove unused variable
Paul Davis [Thu, 26 Oct 2017 19:44:09 +0000 (15:44 -0400)]
fix preprocessor error on some/many systems
Paul Davis [Thu, 26 Oct 2017 19:43:49 +0000 (15:43 -0400)]
switch from std::auto_ptr<> (deprecated) to boost::scoped_ptr<>
Paul Davis [Thu, 26 Oct 2017 19:43:31 +0000 (15:43 -0400)]
remove unused variable
Paul Davis [Thu, 26 Oct 2017 19:43:08 +0000 (15:43 -0400)]
switch from std::auto_ptr<> (deprecated) to boost::scoped_ptr<>
Paul Davis [Thu, 26 Oct 2017 19:41:47 +0000 (15:41 -0400)]
switch from std::auto_ptr<> (deprecated) to boost::scoped_ptr<>
Paul Davis [Thu, 26 Oct 2017 19:41:11 +0000 (15:41 -0400)]
remove unused variables
Paul Davis [Thu, 26 Oct 2017 19:41:01 +0000 (15:41 -0400)]
remove unused variable
Paul Davis [Thu, 26 Oct 2017 19:15:05 +0000 (15:15 -0400)]
optimization for track with zero audio channels should not short-circuit MIDI disk reading
Paul Davis [Thu, 26 Oct 2017 14:46:42 +0000 (10:46 -0400)]
remove unnecessary calls
Paul Davis [Thu, 26 Oct 2017 14:43:53 +0000 (10:43 -0400)]
allow hardev to work again
Paul Davis [Tue, 24 Oct 2017 22:08:40 +0000 (18:08 -0400)]
headless arval script
Len Ovens [Thu, 26 Oct 2017 06:00:41 +0000 (23:00 -0700)]
OSC: fix mixed types keeps from building on server
Len Ovens [Thu, 26 Oct 2017 04:55:02 +0000 (21:55 -0700)]
OSC: Provide click level control
Len Ovens [Thu, 26 Oct 2017 04:22:59 +0000 (21:22 -0700)]
OSC: add feedback for punch in/out, click and click level
Len Ovens [Wed, 25 Oct 2017 19:32:32 +0000 (12:32 -0700)]
OSC: add feedback for toggle_roll
Len Ovens [Wed, 25 Oct 2017 15:34:02 +0000 (08:34 -0700)]
OSC: fix monitor input/disk buttons so both can be on
Len Ovens [Wed, 25 Oct 2017 03:50:22 +0000 (20:50 -0700)]
OSC: fix /strip/receives to have the original ssid like /strip/sends
Len Ovens [Wed, 25 Oct 2017 03:34:40 +0000 (20:34 -0700)]
OSC: fix refresh surface
Len Ovens [Wed, 25 Oct 2017 00:28:35 +0000 (17:28 -0700)]
OSC: remove duplicate code.
Len Ovens [Tue, 24 Oct 2017 20:30:55 +0000 (13:30 -0700)]
OSC: cleaned up select
Len Ovens [Tue, 24 Oct 2017 19:44:09 +0000 (12:44 -0700)]
OSC: fix add and remove tracks to update without bank change.
Robin Gareus [Mon, 23 Oct 2017 17:21:04 +0000 (19:21 +0200)]
lv2 compat for liblilv < 1.10.0
Len Ovens [Mon, 23 Oct 2017 04:21:57 +0000 (21:21 -0700)]
OSC: fix various crash points
Olivier Humbert [Sun, 22 Oct 2017 21:59:00 +0000 (23:59 +0200)]
Update rc_option_editor.cc
Robin Gareus [Sat, 21 Oct 2017 15:27:44 +0000 (17:27 +0200)]
Detected boost using a compile-time check (works w/x-compile)
Robin Gareus [Sat, 21 Oct 2017 15:27:03 +0000 (17:27 +0200)]
Tweak
842d758e: selection & move into view
Use separate editor + mixer flags for moving selected tracks into view.
Changing selection in the Editor will only pan the mixer-view and vice-
versa. This fixes an issue with the track that is being clicked-on to
be moved out of view (due to groups)
John Emmas [Sat, 21 Oct 2017 10:23:05 +0000 (11:23 +0100)]
'Route::tape_drive_controllable()' needs to return something
Robin Gareus [Fri, 20 Oct 2017 17:08:48 +0000 (19:08 +0200)]
Don't move track into view due to indirect selection
This fixes an issue with grouped tracks, starting a [range] selection
on the bottom-most. Due to group-selection all tracks in the group
are selected. Previously this vertically-scrolled to move the
top-most into view, which could move the bottom-most out of view.
Robin Gareus [Fri, 20 Oct 2017 00:54:06 +0000 (02:54 +0200)]
Don't offer possible recursive VCA assignments in the GUI
Robin Gareus [Fri, 20 Oct 2017 00:45:50 +0000 (02:45 +0200)]
Add example script to assign VCAs
Robin Gareus [Fri, 20 Oct 2017 00:18:16 +0000 (02:18 +0200)]
Add Lua bindings for new VCA/Slavable API
Robin Gareus [Fri, 20 Oct 2017 00:13:23 +0000 (02:13 +0200)]
Prevent recursive VCA assignments
The GUI so far only prevents direct connections VCA 1 > VCA 2 > VCA 1,
but does not recurse VCA 1 > VCA 2 > VCA 3 > VCA 1
Robin Gareus [Thu, 19 Oct 2017 23:34:30 +0000 (01:34 +0200)]
Remove not implemented API
Robin Gareus [Thu, 19 Oct 2017 22:40:37 +0000 (00:40 +0200)]
Lua: Fix Slavable & Automatable inheritance
This allows to cast VCAs into Slavables.
Ben Loftis [Thu, 19 Oct 2017 16:53:08 +0000 (11:53 -0500)]
US2400: Mark controls dirty and send them from the periodic update thread.
Ben Loftis [Tue, 17 Oct 2017 18:27:08 +0000 (13:27 -0500)]
US2400: allow selecting the master bus. LED does not respond, though :(
Ben Loftis [Tue, 17 Oct 2017 14:20:18 +0000 (09:20 -0500)]
US2400: explicitly toggle switch state in some cases where everything should reset.
Ben Loftis [Sun, 15 Oct 2017 23:13:28 +0000 (18:13 -0500)]
US2400: map knobs for mixbus strips, when selected.
Len Ovens [Thu, 19 Oct 2017 15:46:55 +0000 (08:46 -0700)]
OSC: Cue observer simplified.
Len Ovens [Wed, 18 Oct 2017 22:29:52 +0000 (15:29 -0700)]
OSC: remove unused function.
Robin Gareus [Thu, 19 Oct 2017 14:57:12 +0000 (16:57 +0200)]
FP8: unhardcode IDs and strip-count
Robin Gareus [Wed, 18 Oct 2017 17:24:54 +0000 (19:24 +0200)]
Update GUI, use filename-extensions
Robin Gareus [Wed, 18 Oct 2017 17:22:23 +0000 (19:22 +0200)]
Consolidate session + template file extensions
Robin Gareus [Wed, 18 Oct 2017 15:53:02 +0000 (17:53 +0200)]
Fix g_stat() for 64bit windows/mingw64
Robin Gareus [Sat, 14 Oct 2017 15:00:45 +0000 (17:00 +0200)]
Save <UI> state for plugins only.
Only PluginInserts have UIs and PinMgs and unique IDs.
Other processors may not be saved explicitly, [re-]created
dynamically, change ID (eg. capturing processor) and clutter up
the list.
TODO: removing a processor should also remove its UI state.
Len Ovens [Tue, 17 Oct 2017 21:56:44 +0000 (14:56 -0700)]
OSC: Move observers to surface based for less traffic.
Damien Zammit [Sun, 15 Oct 2017 06:16:27 +0000 (17:16 +1100)]
editor_pt_import: Process wav indexes once only
Damien Zammit [Sun, 15 Oct 2017 06:12:38 +0000 (17:12 +1100)]
Update ptformat to upstream
72bd66b
- Fix a wrong assumption in the xor code
- Find start of wav list more consistently
- Fix long long constants
Len Ovens [Thu, 12 Oct 2017 20:18:21 +0000 (13:18 -0700)]
OSC: fix crash for wrong number of parameters in set_surface
Robin Gareus [Wed, 11 Oct 2017 23:49:05 +0000 (01:49 +0200)]
Fix pre-roll cycle-split
previously this worked as long as the cycle was only
needed to be split once.
Robin Gareus [Tue, 10 Oct 2017 20:12:37 +0000 (22:12 +0200)]
add missing lock (for audition + mon section)
Len Ovens [Sun, 8 Oct 2017 03:23:34 +0000 (20:23 -0700)]
OSC clean up route observer
John Emmas [Sat, 7 Oct 2017 09:11:12 +0000 (10:11 +0100)]
For 'Route::send_pan_azi_controllable()' (when building non-Mixbus) I'm assuming the intention was to return an empty object
(i.e. similar to 'Route::send_enable_controllable()')
Ben Loftis [Thu, 5 Oct 2017 15:54:46 +0000 (10:54 -0500)]
US2400: add us2400 files to repository.
Ben Loftis [Thu, 5 Oct 2017 15:47:32 +0000 (10:47 -0500)]
US2400: add us2400 to surfaces path, in ardev
Ben Loftis [Thu, 5 Oct 2017 15:03:09 +0000 (10:03 -0500)]
US2400: add us2400 to surfaces.
Ben Loftis [Thu, 5 Oct 2017 14:59:03 +0000 (09:59 -0500)]
US2400: send_pan_azimuth lookup function (currently mb-only)
Ben Loftis [Thu, 5 Oct 2017 14:55:32 +0000 (09:55 -0500)]
US2400: add debug bits
Robin Gareus [Wed, 4 Oct 2017 03:06:47 +0000 (05:06 +0200)]
Fix various edge-cases with session-archives
* prevent duplicate names when pulling-in external sources
* drop "origin" after including external sources
* don't include unused playlists
(they may reference sources that are not included)
* likewise exclude unused regions
Robin Gareus [Tue, 3 Oct 2017 22:35:29 +0000 (00:35 +0200)]
Clean up State API:
* Processor implement get_state(), classes derived from Processor
implement protected ::state() -- as documented in processor.h
* likewise for Route, Track: make ::state() a protected interface
* removal of "full_state", use explicit "template_save"
* use RAII/Unwind to skip saving automation-state
Robin Gareus [Tue, 3 Oct 2017 16:03:40 +0000 (18:03 +0200)]
Fix another hardcoded "tar.xz" -> ARDOUR::session_archive_suffix
Robin Gareus [Tue, 3 Oct 2017 01:09:25 +0000 (03:09 +0200)]
Fix session-archive file extension filter
Robin Gareus [Tue, 3 Oct 2017 00:20:33 +0000 (02:20 +0200)]
Update Session-Archive Dialog: add compression-option
Robin Gareus [Mon, 2 Oct 2017 23:56:17 +0000 (01:56 +0200)]
API change: expose session-archive compression-level
Robin Gareus [Mon, 2 Oct 2017 23:06:07 +0000 (01:06 +0200)]
Fix session-archive edge-cases, prepare uncompressed archives
* don't fork/clone midi regions (default snapshot)
* properly handle encoding embedded/external multi-channel files
* use dedicated file-extension (prepare for uncompressed archive)
Robin Gareus [Mon, 2 Oct 2017 18:40:44 +0000 (20:40 +0200)]
Prepare support for compression levels (archive + flac)
Robin Gareus [Mon, 2 Oct 2017 17:43:55 +0000 (19:43 +0200)]
Fix MIDI Automation interpolation options
Paul Davis [Mon, 2 Oct 2017 16:43:20 +0000 (12:43 -0400)]
use new CubicInterpolation API
Paul Davis [Mon, 2 Oct 2017 16:42:44 +0000 (12:42 -0400)]
change API and implementation for CubicInterpolation and Interpolation.
Also remove LinearInterpolation which is not used
Paul Davis [Mon, 2 Oct 2017 16:42:07 +0000 (12:42 -0400)]
remove cruft
Paul Davis [Mon, 2 Oct 2017 16:41:42 +0000 (12:41 -0400)]
DiskReader should do nothing at all if there are no channels
Paul Davis [Mon, 2 Oct 2017 16:41:17 +0000 (12:41 -0400)]
remove cruft
Paul Davis [Mon, 2 Oct 2017 16:40:15 +0000 (12:40 -0400)]
remove midi_interpolation member of DiskIOProcessor (was used only to call ::distance() method
Paul Davis [Mon, 2 Oct 2017 16:38:56 +0000 (12:38 -0400)]
NO-OP: comment format change and whitespace
Paul Davis [Mon, 2 Oct 2017 16:38:29 +0000 (12:38 -0400)]
remove cruft from DiskIOProcessor header
Paul Davis [Mon, 2 Oct 2017 16:37:20 +0000 (12:37 -0400)]
use constructor syntax
Paul Davis [Mon, 2 Oct 2017 16:36:52 +0000 (12:36 -0400)]
remove leftover cruft related to wrap buffers from DiskIOProcessor
Paul Davis [Mon, 2 Oct 2017 16:35:32 +0000 (12:35 -0400)]
tracks no longer need to be notified about speed changes
Robin Gareus [Sun, 1 Oct 2017 18:54:40 +0000 (20:54 +0200)]
set owner or disk-i/o processors
This fixes a race-condition. These plugins may be run w/o being
re-configured which sets the ownershi. currently debug msgs use
owner()->name()
Robin Gareus [Sun, 1 Oct 2017 02:00:50 +0000 (04:00 +0200)]
These are "Frames" :)
Robin Gareus [Sun, 1 Oct 2017 01:30:02 +0000 (03:30 +0200)]
Fix MIDI rec-region display
gui_feed_buffer is used for DiskWriter -> GUI notifications.
It was wrongly migrated from MidiDiskstream to DiskReader in
7fb6807
Robin Gareus [Sun, 1 Oct 2017 01:03:44 +0000 (03:03 +0200)]
Fix recording MIDI
- 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)
Robin Gareus [Sat, 30 Sep 2017 21:38:41 +0000 (23:38 +0200)]
Disk-writer: don't record immediate/oob events
Robin Gareus [Sat, 30 Sep 2017 21:30:52 +0000 (23:30 +0200)]
Make MIDI disk-reader a bit less buggy :)
* 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 ..
Robin Gareus [Sat, 30 Sep 2017 21:16:04 +0000 (23:16 +0200)]
Immediate-event/out-of-band injection update & tweak clearing buffers
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.
Robin Gareus [Sat, 30 Sep 2017 20:44:44 +0000 (22:44 +0200)]
MIDI debugging.
Robin Gareus [Sat, 30 Sep 2017 16:56:54 +0000 (18:56 +0200)]
Remove unused IO::process_input() API
This was only needed in order to run the meter on inputs when Ardour did
no processing at all.
Robin Gareus [Sat, 30 Sep 2017 16:54:47 +0000 (18:54 +0200)]
NO-OP, re-order code, put all *roll() methods next to each other.
Robin Gareus [Sat, 30 Sep 2017 16:53:02 +0000 (18:53 +0200)]
First part of consolidating ::roll(), ::no_roll()
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)
Robin Gareus [Sat, 30 Sep 2017 16:46:24 +0000 (18:46 +0200)]
remove unused Route::_silent
Robin Gareus [Sat, 30 Sep 2017 16:01:45 +0000 (18:01 +0200)]
Remove Input-meter special-case
Now that disk is no longer topper-most but a processor, the special
case is no longer needed.
Robin Gareus [Sat, 30 Sep 2017 14:48:30 +0000 (16:48 +0200)]
Re-initialize MMC devices when the preference is enabled
Robin Gareus [Sat, 30 Sep 2017 14:45:45 +0000 (16:45 +0200)]
Towards fixing no_roll()
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.
Robin Gareus [Sat, 30 Sep 2017 11:10:17 +0000 (13:10 +0200)]
Fix thinko in
8139becb -- route split cycle
Individual Routes cannot split the process-cycle in no_roll(); roll()
by themselves. Each of the calls will flush output buffers (and offset
port-buffers). If a route feeds another route the inputs of the other
route will only see partial data.
Robin Gareus [Sat, 30 Sep 2017 03:35:12 +0000 (05:35 +0200)]
Disk-reader don't silence buffers when not rolling
Doing so may clear out-of-band data which is injected into the
data-stream.