Robin Gareus [Sat, 10 Oct 2015 00:42:13 +0000 (02:42 +0200)]
coreaudio: reset freewheeling after export
fixes lively with session-fadeout
Paul Davis [Fri, 9 Oct 2015 18:01:22 +0000 (14:01 -0400)]
varied and wide changes to get input and output combos closer to working
Paul Davis [Fri, 9 Oct 2015 15:12:28 +0000 (11:12 -0400)]
move location where port handling stops during Mackie::Surface destructor
Paul Davis [Fri, 9 Oct 2015 15:11:36 +0000 (11:11 -0400)]
NOOP: whitespace/indent fix
Paul Davis [Fri, 9 Oct 2015 15:11:15 +0000 (11:11 -0400)]
add TrimAutomation to list of possible pot parameters for routes
Paul Davis [Fri, 9 Oct 2015 15:10:44 +0000 (11:10 -0400)]
remove unused and useless stuff relating to bundles inside Mackie::Strip
What was someone (Paul? John ?) thinking?
Paul Davis [Fri, 9 Oct 2015 15:09:47 +0000 (11:09 -0400)]
set up control_by_parameter map in a Mackie::Strip so that subsequent array-syntax lookup does not crash
Paul Davis [Fri, 9 Oct 2015 15:08:33 +0000 (11:08 -0400)]
fix behaviour of AsyncMIDIPort so that large amounts of data are handled well.
Increased the size of the FIFO that acts as the intermediate between writers and the MidiBuffer. Changed
implementation of ::write() to notice if MidiBuffer::push_back() fails, and then just leave data queued
for subsequent calls to ::flush_output_fifo().
Note: the logic here will be broken by invalid events/data, which ALSO cause MidiBuffer::push_back() to
return false. That needs fixing
Paul Davis [Fri, 9 Oct 2015 15:05:55 +0000 (11:05 -0400)]
tweaks to MidiBuffer::push_back() variants
1. there's no reason to make the same logic checks in both the Event and 3-arg variants when the Event
version simply calls the 3-arg variant
2. the Event version returned true under all conditions, even if the 3-arg part had failed to push
the Event data into the buffer. It now returns true or false, as intended.
3. remove debug output if a MidiBuffer is full during ::push_back(). The cases where this matters
emit output of their own, or simply remain silent and queue data later
Paul Davis [Fri, 9 Oct 2015 11:39:08 +0000 (07:39 -0400)]
remove unused PortManager::port_name_prefix_is_unique() method
Paul Davis [Fri, 9 Oct 2015 01:55:31 +0000 (21:55 -0400)]
add device-info specific component to Mackie GUI to allow direct wiring of MIDI ports (non-functional)
Paul Davis [Fri, 9 Oct 2015 01:54:40 +0000 (21:54 -0400)]
add DeviceChanged signal to MCP and make surface lock mutable for use in const methods.
Also add nth_surface() API to MackieControlProtocol
Paul Davis [Fri, 9 Oct 2015 01:53:42 +0000 (21:53 -0400)]
add new API to access AsyncMIDIPort members of Mackie Surface port
Paul Davis [Fri, 9 Oct 2015 01:53:05 +0000 (21:53 -0400)]
for an ipMIDI surface, make the GSource used for input hold the only reference on the GUIChannel.
Paul Davis [Fri, 9 Oct 2015 01:23:48 +0000 (21:23 -0400)]
make Mackie::Surface keep a reference to the input source+channel and clean up in destructor
Paul Davis [Fri, 9 Oct 2015 01:21:44 +0000 (21:21 -0400)]
in a CrossThread object, ensure destruction of the channel and source used on Posix
The source holds a reference to the channel; both must be unref'ed/destroyed in order to
fully clean up resources
Paul Davis [Thu, 8 Oct 2015 20:02:27 +0000 (16:02 -0400)]
remove declaration of undefined (and necessarily unused) method from PortManager
André Nusser [Fri, 9 Oct 2015 00:05:41 +0000 (02:05 +0200)]
Fix wrong 'Import to Region List' default on first call. -fixes #6631
Paul Davis [Thu, 8 Oct 2015 19:28:37 +0000 (15:28 -0400)]
fix initialization sequence for ipMIDI Mackie surfaces
Paul Davis [Thu, 8 Oct 2015 19:28:21 +0000 (15:28 -0400)]
fix crash when switching from regular MIDI to ipMIDI Mackie surface
Paul Davis [Thu, 8 Oct 2015 18:58:28 +0000 (14:58 -0400)]
fix logic to reshow strip "name" after a message display
Paul Davis [Thu, 8 Oct 2015 18:51:27 +0000 (14:51 -0400)]
remove debugging display of message on MCP device
Paul Davis [Thu, 8 Oct 2015 17:40:00 +0000 (13:40 -0400)]
fix rebase conflicts left over after pull
Paul Davis [Thu, 8 Oct 2015 16:49:58 +0000 (12:49 -0400)]
lots of changes to try to get the Mackie Control display be more useful and usable
Paul Davis [Wed, 7 Oct 2015 22:15:25 +0000 (18:15 -0400)]
more mackie strip redisplay renames, and add a global block to redisplays\n
Paul Davis [Wed, 7 Oct 2015 22:06:43 +0000 (18:06 -0400)]
subtle rework/rename of per-strip revert-to-vpot-display code
Paul Davis [Wed, 7 Oct 2015 21:48:54 +0000 (17:48 -0400)]
remove unused per-surface button timer
Robin Gareus [Thu, 8 Oct 2015 16:24:45 +0000 (18:24 +0200)]
fix region "valid-transient" property
Robin Gareus [Thu, 8 Oct 2015 16:21:07 +0000 (18:21 +0200)]
windows compatible paths for analysis
Robin Gareus [Thu, 8 Oct 2015 14:18:39 +0000 (16:18 +0200)]
fix Vamp Onset Detector.
Robin Gareus [Thu, 8 Oct 2015 13:26:38 +0000 (15:26 +0200)]
fix return value for transient load
André Nusser [Wed, 7 Oct 2015 21:56:14 +0000 (23:56 +0200)]
Fix "Select All * Edit Point" when used as shortcut. -fixes #6626
Robin Gareus [Thu, 8 Oct 2015 11:42:31 +0000 (13:42 +0200)]
renice DLL info messages
Robin Gareus [Thu, 8 Oct 2015 11:40:37 +0000 (13:40 +0200)]
use g_open for DLL arch test
Robin Gareus [Thu, 8 Oct 2015 11:40:23 +0000 (13:40 +0200)]
detect VST arch only during discovery (not scan)
Len Ovens [Thu, 8 Oct 2015 04:36:16 +0000 (21:36 -0700)]
Add Trim to Mackie controls.
Paul Davis [Wed, 7 Oct 2015 19:12:09 +0000 (15:12 -0400)]
add button time and explicit bank switching to MCP support
Robin Gareus [Wed, 7 Oct 2015 17:37:56 +0000 (19:37 +0200)]
allow to use non-emphasis regardless of custom samples
Damien Zammit [Wed, 7 Oct 2015 16:25:29 +0000 (03:25 +1100)]
Added use click emphasis toggle (gtk2_ardour)
Damien Zammit [Wed, 7 Oct 2015 16:24:21 +0000 (03:24 +1100)]
Added use click emphasis toggle (libs/ardour)
Paul Davis [Wed, 7 Oct 2015 17:17:42 +0000 (13:17 -0400)]
track Mackie MIDI port connection status as primary trigger for handshake with device
Paul Davis [Wed, 7 Oct 2015 17:16:22 +0000 (13:16 -0400)]
use C++ for PortManager::make_port_name_relative()
Robin Gareus [Wed, 7 Oct 2015 13:50:55 +0000 (15:50 +0200)]
fix crash on 2nd Lock
Robin Gareus [Wed, 7 Oct 2015 13:39:32 +0000 (15:39 +0200)]
add missing include
Robin Gareus [Wed, 7 Oct 2015 13:29:00 +0000 (15:29 +0200)]
fix solo-group override
Robin Gareus [Wed, 7 Oct 2015 12:36:32 +0000 (14:36 +0200)]
allow to load huge VST plugin states -fixes #6623
by default libxml has a XML_MAX_TEXT_LENGTH of 10M
with base64 encoding that allows at most 2.5MB state.
set XML_PARSE_HUGE to read large sessions
Robin Gareus [Wed, 7 Oct 2015 12:25:33 +0000 (14:25 +0200)]
amend prev commit.
Robin Gareus [Wed, 7 Oct 2015 12:19:59 +0000 (14:19 +0200)]
update solo button callback semantics
override-group toggles current group state (not disables groups)
Robin Gareus [Wed, 7 Oct 2015 12:19:23 +0000 (14:19 +0200)]
fix crash for solo btn2 + primary-mod
Robin Gareus [Wed, 7 Oct 2015 11:08:53 +0000 (13:08 +0200)]
fix exclusive solo group-override
Robin Gareus [Wed, 7 Oct 2015 08:42:28 +0000 (10:42 +0200)]
only subdivide plugin-cycle when automation is playing
PluginInsert::automation_run() subdivides plugin-run on every
control-port automation event (without splitting the process cycle).
libevoral has no automation-control context, hence this function
must be implemented by Automatable.
Tim Mayberry [Wed, 7 Oct 2015 11:44:25 +0000 (21:44 +1000)]
Fix handling of Sysex messages with WinMME midi driver
Robin Gareus [Wed, 7 Oct 2015 01:28:02 +0000 (03:28 +0200)]
print VST blacklist filename (for good measure)
Robin Gareus [Tue, 6 Oct 2015 23:44:02 +0000 (01:44 +0200)]
implement solo group override
Robin Gareus [Tue, 6 Oct 2015 19:32:55 +0000 (21:32 +0200)]
add missing include
Robin Gareus [Tue, 6 Oct 2015 18:18:02 +0000 (20:18 +0200)]
renice code. RAII rocks.
Robin Gareus [Tue, 6 Oct 2015 18:10:42 +0000 (20:10 +0200)]
CPPUNIT workaround for mingw/wine/windows
Robin Gareus [Tue, 6 Oct 2015 18:06:25 +0000 (20:06 +0200)]
cancel-solo always clears all solo-state, just in case.
Robin Gareus [Tue, 6 Oct 2015 18:05:38 +0000 (20:05 +0200)]
add a "reset all solo state" safeguard
Robin Gareus [Tue, 6 Oct 2015 17:10:25 +0000 (19:10 +0200)]
fix initial AFL/PFL state after session-load
Robin Gareus [Tue, 6 Oct 2015 16:53:30 +0000 (18:53 +0200)]
add missing semicolon
Paul Davis [Tue, 6 Oct 2015 16:41:49 +0000 (12:41 -0400)]
more debugging for MIDI input via WinMME
Robin Gareus [Tue, 6 Oct 2015 16:15:57 +0000 (18:15 +0200)]
detect windows DLL architecture
Robin Gareus [Tue, 6 Oct 2015 15:33:33 +0000 (17:33 +0200)]
remove newly unused code
Robin Gareus [Tue, 6 Oct 2015 15:30:32 +0000 (17:30 +0200)]
propagate solo/iso when disconnecting ports.
Paul Davis [Tue, 6 Oct 2015 15:01:58 +0000 (11:01 -0400)]
add more debugging to portaudio/MME MIDI backend
Robin Gareus [Tue, 6 Oct 2015 12:40:51 +0000 (14:40 +0200)]
Do not restore engine state if we don't have control
When connecting to already running jack, display jack's buffersize
correctly.
Robin Gareus [Tue, 6 Oct 2015 12:14:44 +0000 (14:14 +0200)]
more solo propagation fixes.
handle cases Track(s) -> Bus1 -> Bus2
Robin Gareus [Tue, 6 Oct 2015 10:19:58 +0000 (12:19 +0200)]
fix implicit mute display
Robin Gareus [Tue, 6 Oct 2015 10:03:20 +0000 (12:03 +0200)]
"Solo Lock" only locks explicit solo (not implicit).
fixes issue:
Track -> Bus
1) solo track -> implicit Bus solo
2) Solo-Lock Bus
3) un-solo track -> Bus is stuck w/implicit solo on
Robin Gareus [Tue, 6 Oct 2015 09:57:16 +0000 (11:57 +0200)]
Solo-Isolate has no effect on solo propagation.
'Isolate' means that when another track is solo'd the isolated
track won't mute.
Tim Mayberry [Tue, 6 Oct 2015 03:24:53 +0000 (13:24 +1000)]
Fix WinMME midi driver shutdown with sysex enabled
midiInReset triggers the sysex callback to tell the application that it has
finished with the buffer. Calling midiInAddBuffer results in an infinite loop
so just return during shutdown.
Tim Mayberry [Sat, 3 Oct 2015 11:54:50 +0000 (21:54 +1000)]
Include button number in canvas button press/release debug info
Tim Mayberry [Sat, 3 Oct 2015 06:22:19 +0000 (16:22 +1000)]
Remove an unnecessary boolean argument in jack utils
Specify latency in JackCommandLineOptions instead
Tim Mayberry [Sat, 3 Oct 2015 05:49:55 +0000 (15:49 +1000)]
Stop engine when clicking back button in latency measurement tab of EngineControl dialog
The engine is started when you switch to latency measurement tab but it isn't
stopped if you just click the back button without measuring for latency.
Tim Mayberry [Sat, 3 Oct 2015 04:38:34 +0000 (14:38 +1000)]
Remove unused methods in ARDOUR_UI for starting/stopping engine
Tim Mayberry [Sat, 3 Oct 2015 04:09:45 +0000 (14:09 +1000)]
Add EngineControl::stop_engine method to show errors when stopping engine
This replaces using ARDOUR_UI::disconnect_from_session which is only used by the
EngineControl class. ARDOUR_UI::disconnect_from_session also disconnects from
the AudioEngine::Halted signal which seems unnecessary as Halted is not emitted
when stopping the engine and calling update_sample_rate() which is already
handled when the AudioEngine::Stopped signal is emitted.
Tim Mayberry [Sat, 3 Oct 2015 01:40:34 +0000 (11:40 +1000)]
Handle all errors when starting backend in EngineDialog
Tim Mayberry [Fri, 2 Oct 2015 12:25:04 +0000 (22:25 +1000)]
Align switch statement with case labels to reduce indentation in EngineDialog
Tim Mayberry [Sat, 3 Oct 2015 01:22:58 +0000 (11:22 +1000)]
Initialize AudioEngine::last_backend_error() to the default error string
Currently the last backend error string is only set when calling
AudioBackend::start. Errors that occur when calling other AudioBackend methods
like AudioBackend::set_buffer_size do not set the last backend error string.
So until all the required AudioBackend methods return an ErrorCode and
last_backend_error() can be removed just set it to a default string.
Until all errors that occur are correctly indicated by returning an error code
there will still be situations where last_backend_error() is not indicative of
the true error. For instance AudioEngine::start is called and it fails but
returns a valid error code so last_backend_error() is set, then some other
engine/backend method is called that fails and as last_backend_error is not
set the GUI will display the incorrect error message.
Tim Mayberry [Sat, 3 Oct 2015 01:20:37 +0000 (11:20 +1000)]
Update sample rate and CPU load in status bar when AudioEngine stopped
Tim Mayberry [Sat, 3 Oct 2015 01:18:51 +0000 (11:18 +1000)]
Show DSP/CPU load of 0.0% when AudioEngine isn't running
Robin Gareus [Tue, 6 Oct 2015 00:53:06 +0000 (02:53 +0200)]
fix implicit solo on disconnect - fixes #6308
Robin Gareus [Mon, 5 Oct 2015 23:28:33 +0000 (01:28 +0200)]
forward "disconnect all", partial fix for #6308
Robin Gareus [Mon, 5 Oct 2015 20:41:37 +0000 (22:41 +0200)]
fix typo in prev. commit
Robin Gareus [Mon, 5 Oct 2015 20:37:41 +0000 (22:37 +0200)]
fix typo
Robin Gareus [Mon, 5 Oct 2015 20:10:58 +0000 (22:10 +0200)]
use quotes for in-tree pbd/glib wrapper include
Robin Gareus [Mon, 5 Oct 2015 20:01:30 +0000 (22:01 +0200)]
remove unused fstream includes
Robin Gareus [Mon, 5 Oct 2015 19:51:52 +0000 (21:51 +0200)]
remove ofstream from gtk2ardour
Robin Gareus [Mon, 5 Oct 2015 19:43:44 +0000 (21:43 +0200)]
remove i/ofstream from libardour
except:
* audio-unit (ifstream is known to work on OSX)
* evoral curve algorithm debugger
* cycle-timer debug code
* export_handler's CDMarker -> TODO
Robin Gareus [Mon, 5 Oct 2015 19:14:54 +0000 (21:14 +0200)]
replace i/ofstream for plugin statues
Robin Gareus [Mon, 5 Oct 2015 19:14:37 +0000 (21:14 +0200)]
remove unused API (and ifstream)
Paul Davis [Mon, 5 Oct 2015 16:24:08 +0000 (12:24 -0400)]
try enabling windows MME MIDI sysex support
Paul Davis [Mon, 5 Oct 2015 16:23:51 +0000 (12:23 -0400)]
only use HUI heartbeat with HUI devices
Robin Gareus [Mon, 5 Oct 2015 15:12:13 +0000 (17:12 +0200)]
fix case where NORM_USER (su) changes dirs.
Robin Gareus [Mon, 5 Oct 2015 14:17:49 +0000 (16:17 +0200)]
NOOP, remove trailing tabs/whitespace.
Robin Gareus [Mon, 5 Oct 2015 12:19:32 +0000 (14:19 +0200)]
SiP and "solo overrides mutes" tweak:
Only Explicit solos should override mutes.
Robin Gareus [Mon, 5 Oct 2015 11:27:22 +0000 (13:27 +0200)]
tweak linux package debug-symbol stripping
Robin Gareus [Sun, 4 Oct 2015 22:27:48 +0000 (00:27 +0200)]
allow grouped AFL/PFL with excl. solo
Robin Gareus [Sun, 4 Oct 2015 22:08:55 +0000 (00:08 +0200)]
fix various stuck-solo cases:
* solo groups
* cancel-solo
* SIP <> AFL/PFL changes
The optimized plural-form route_solo_changed() relied on the false
premise that solo-groups and port-connections are disjoint sets.
-=-
e.g. "cancel all solo" calls set_solo(get_routes(), false);
Since All routes are affected, the "non_solo_change" set is empty, and
no changes were propagated up/downstream.
Routes that indirectly change state as group-members, wrongly end up in
the "non_solo_change" list instead of the "solo_change" list.
If a route feeds another in the same group, no changes were propagated.