13
0
Commit Graph

9290 Commits

Author SHA1 Message Date
nick_m
9511c9c86f Add tooltips to user config preferences. clean up combo ordering. 2015-10-20 00:53:30 +11:00
nick_m
4dcd22fadf Update ContrilList debug output. 2015-10-20 00:53:29 +11:00
nick_m
cc7de475f2 Amend last connit - don't use a bool to represent a double. 2015-10-20 00:53:28 +11:00
nick_m
ff2f934977 Fix incorrect initial point when recording toggled automation. 2015-10-20 00:53:28 +11:00
nick_m
ffed94d89b Automation - more toggled controller twiddling. 2015-10-20 00:53:28 +11:00
nick_m
1648000108 Automation - fix occasional inverted bool state after write. 2015-10-20 00:53:28 +11:00
nick_m
9c102fa8d2 Make automation record undo per pass rather than per touch. 2015-10-20 00:53:28 +11:00
nick_m
877b258c74 Toggled automation fixes.
- don't attempt to insert two points on toggle.
	- remove forced touch->write mode change on toggle
	- initial state still wrong, but works much better overall.
2015-10-20 00:53:27 +11:00
nick_m
17294ab9ec Make control point selection more consistent.
- disallow simultaneous events via ControlList::editor_add ()
	- clicking on an automation line selects the points that define it.
	- don't 'flash' a region selection when using mousedraw mode.
	- cp click selection resembles region selection.
	- region gain points respect snap modifier (a la automation points).
2015-10-20 00:53:27 +11:00
03df442d0e remove cruft 2015-10-19 15:44:46 +02:00
48f91c6ef4 Add Audio Tracks and Busses too. 2015-10-18 19:55:56 -07:00
0185c9f25a Added Midi Tracks View mode. 2015-10-18 18:13:16 -07:00
6ff50d2140 fix OS X system detection (amend 66704ee) 2015-10-18 23:19:52 +02:00
38efd580b2 libs/* changes use new AppleUtility Library 2015-10-18 23:03:13 +02:00
66704eefcb alternative new version of the AppleUtility library 2015-10-18 23:03:13 +02:00
f7e3117c3b Only display Trim for tracks that have Trim. On the way:
-fixed flip mode.
	-fixed no controlable for vpot or fader
2015-10-18 07:38:40 -07:00
André Nusser
a958770abd Remove all the now unused functions in the MidiModel class. 2015-10-17 22:12:55 -04:00
André Nusser
bd02a7f817 Add Transpose class that can be used by apply_midi_note_edit_op. 2015-10-17 22:12:55 -04:00
André Nusser
66f18914b2 Split transpose in MidiModel into two functions. 2015-10-17 22:12:54 -04:00
a5dcccae60 disable auto-return with external sync #6577 2015-10-18 02:03:40 +02:00
5461b50cdb Assign Global view to get back to Mixer. 2015-10-17 16:23:46 -07:00
f53dc5945e extend session-save dirty-flag logic
Snapshot and continue working on current session incorrectly marks 
the session as clean.
2015-10-16 20:54:15 +02:00
2c9666e0ee API to add system-specific file chooser shortcuts 2015-10-16 19:06:21 +02:00
a51ea6cf2e fix crash when creating subgroup-bus - fixes #6642
the actual issues is in the connection management:
bundle.cc:323: void ARDOUR::Bundle::connect(): Assertion `N == other->nchannels().n_total()' failed.

That could be resolved. However, combining tracks without panners will
almost never do what the user really wants, so this case has been 
disabled for now.
2015-10-15 17:47:02 +02:00
b00d75adf6 add safety checking when setting up DEBUG bits 2015-10-15 08:59:11 -04:00
159d23be9f fix deadlock when removing subgroup bus w/sends.
...and potentially other route removals that involve
processor changes.
2015-10-15 13:50:19 +02:00
79142a262e prepare better solution of Glib's << operator 2015-10-15 11:22:35 +02:00
8d46cc99fe Fix a problem where VST automation data wasn't getting written (if the adjustments were made from the plugin's own controls) 2015-10-14 14:54:27 +01:00
334cc37e1b Reduced delay in last commit/10 2015-10-14 05:55:10 -07:00
1f85691870 fix MCP ports hang on device change and multi-surface device reconnect. 2015-10-13 22:19:36 -07:00
53a28c230a mackie support omnibus patch
Fixes all kinds of miscellaneous issues with MCP. Also removes several theoretical pan modes, replace "Tracks"
pan mode with "Trim", and takes a tiny step towards view modes
2015-10-13 15:34:53 -04:00
2d27009410 fix registration of automation type enums 2015-10-13 15:33:39 -04:00
0043dc38a3 introduce separate-meters concept for Mackie.
Devices like the SSL Nucleus have meters displayed separately from their 55x2 display
2015-10-13 10:04:58 -04:00
3169ac0444 fix the design of Mackie XML state management 2015-10-13 07:33:27 -04:00
fbdb4c602e more corrections for mackie GUI layout 2015-10-13 07:33:27 -04:00
ef08cd6e4a move incorrectly packed touch sensitivity slider for Mackie GUI 2015-10-13 07:33:27 -04:00
6ec38e9193 remove last ofstream 2015-10-13 09:55:53 +02:00
8e83ca5753 Only flip if not already in desired state. Fixes fader jerk on banking. 2015-10-12 13:52:10 -07:00
1eb1391cfd expose terminal, rather than just physical, MIDI ports in Mackie GUI 2015-10-12 14:42:49 -04:00
d4e0e8e963 make MCP port buttons work 2015-10-12 13:36:22 -04:00
79113144ef Correct wrong value on LCD strip when fader is touched (fixs #6619 from Petr Vejsada) 2015-10-11 23:24:14 -07:00
796e404819 Don't use old session connections on MCP device change, Solves crash on device change. 2015-10-11 22:27:13 -07:00
104f43ad37 Fix MCP extension number and get master on right surface. 2015-10-11 21:37:04 -07:00
27f57cde9a fix crashes due to glib ignored EDEADLK.
Taking a readlock after a writelock in the same thread should result
in a deadlock, yet pthread on Linux returns EDEADLK and continues.
glib-2.42.0 ignores EDEADLK and assumes the lock was taken. Releasing
the lock later causes issues: "Calling g_rw_lock_writer_unlock() on a 
lock that is not held by the current thread leads to undefined behaviour."

The issue at hand: 
 AudioStreamView::redisplay_track()
 -> foreach_region()                       #<< WriteLock
 -> add_region_view()
 ...
 -> AudioRegionView::create_one_wave()
 -> RegionView::update_coverage_frames 
 -> Playlist::top_unmuted_region_at()      #<< ReadLock

All current users of Playlist::foreach_region() are in the GUI
and AFAICT read-only (display regions, update visuals)
2015-10-12 02:11:04 +02:00
f8875df18f Several changes to Mackie support. Breaks existing Mackie state on disk but not
in any way that causes problems, just loss of pre-existing connectivity.

1. retain state of current device (and serialize to disk) when switching
devices, and restore that state when switching back to it.
2. fix port and surfacenaming.
3. fix bundle assembly so that all ports (for multi-surface combos) work.
4. rationalize master position numbering
5. add small sleep before starting device handshake after reconnection. This
is ugly but seems to be necessary, unfortunately.
2015-10-11 12:01:27 -04:00
6faec91dd9 Force Flip normal before Bank (fixes #6630) 2015-10-10 19:59:29 -07:00
7535947eb1 Display parameter that matches mode. 2015-10-10 19:40:28 -07:00
965b135842 numerous changes to Mackie support, generally offering better robustness 2015-10-10 17:14:30 -04:00
7c58b4de5f coreaudio: reset freewheeling after export
fixes lively with session-fadeout
2015-10-10 02:42:13 +02:00
9b5a071c33 varied and wide changes to get input and output combos closer to working 2015-10-09 14:01:22 -04:00
7e771c9fdc move location where port handling stops during Mackie::Surface destructor 2015-10-09 11:12:28 -04:00
6acd51d48e NOOP: whitespace/indent fix 2015-10-09 11:11:36 -04:00
03018aeefb add TrimAutomation to list of possible pot parameters for routes 2015-10-09 11:11:15 -04:00
d700576171 remove unused and useless stuff relating to bundles inside Mackie::Strip
What was someone (Paul? John ?) thinking?
2015-10-09 11:10:44 -04:00
9c7139e505 set up control_by_parameter map in a Mackie::Strip so that subsequent array-syntax lookup does not crash 2015-10-09 11:09:47 -04:00
f74eab854a 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
2015-10-09 11:08:33 -04:00
cdd415cdaf 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
2015-10-09 11:05:55 -04:00
268d53f502 remove unused PortManager::port_name_prefix_is_unique() method 2015-10-09 07:39:08 -04:00
6bcbace73a add device-info specific component to Mackie GUI to allow direct wiring of MIDI ports (non-functional) 2015-10-08 21:55:38 -04:00
8338fd8ac6 add DeviceChanged signal to MCP and make surface lock mutable for use in const methods.
Also add nth_surface() API to MackieControlProtocol
2015-10-08 21:55:38 -04:00
36088b53b1 add new API to access AsyncMIDIPort members of Mackie Surface port 2015-10-08 21:55:38 -04:00
bda0ba173c for an ipMIDI surface, make the GSource used for input hold the only reference on the GUIChannel. 2015-10-08 21:55:37 -04:00
7e10c21468 make Mackie::Surface keep a reference to the input source+channel and clean up in destructor 2015-10-08 21:55:37 -04:00
ce03b02a79 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
2015-10-08 21:55:37 -04:00
fcc7595882 remove declaration of undefined (and necessarily unused) method from PortManager 2015-10-08 21:55:37 -04:00
33fe33f268 fix initialization sequence for ipMIDI Mackie surfaces 2015-10-08 15:28:37 -04:00
0c448c387b fix crash when switching from regular MIDI to ipMIDI Mackie surface 2015-10-08 15:28:21 -04:00
d3efef7f5c fix logic to reshow strip "name" after a message display 2015-10-08 14:58:28 -04:00
02181174c3 remove debugging display of message on MCP device 2015-10-08 14:51:27 -04:00
49be513bfa fix rebase conflicts left over after pull 2015-10-08 13:40:00 -04:00
0cb1c7b58c lots of changes to try to get the Mackie Control display be more useful and usable 2015-10-08 12:51:44 -04:00
4677d047a5 more mackie strip redisplay renames, and add a global block to redisplays\n 2015-10-08 12:51:18 -04:00
0f978a90f4 subtle rework/rename of per-strip revert-to-vpot-display code 2015-10-08 12:50:05 -04:00
4a1790b75e remove unused per-surface button timer 2015-10-08 12:50:05 -04:00
ffe06f7d3e fix region "valid-transient" property 2015-10-08 18:24:45 +02:00
014f8a582f windows compatible paths for analysis 2015-10-08 18:21:07 +02:00
ef169ce2ff fix Vamp Onset Detector. 2015-10-08 16:18:39 +02:00
4e39f13991 fix return value for transient load 2015-10-08 15:26:38 +02:00
fc6b965ad0 renice DLL info messages 2015-10-08 13:43:32 +02:00
d1d5f7f311 use g_open for DLL arch test 2015-10-08 13:43:32 +02:00
b5ea1b23b4 detect VST arch only during discovery (not scan) 2015-10-08 13:43:31 +02:00
6899bd7c15 Add Trim to Mackie controls. 2015-10-07 21:36:16 -07:00
c9658134ce add button time and explicit bank switching to MCP support 2015-10-07 15:13:03 -04:00
bcbb14f581 Added use click emphasis toggle (libs/ardour) 2015-10-07 19:34:39 +02:00
ce9b271a92 track Mackie MIDI port connection status as primary trigger for handshake with device 2015-10-07 13:17:49 -04:00
7675739f45 use C++ for PortManager::make_port_name_relative() 2015-10-07 13:17:49 -04:00
14932d1b86 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
2015-10-07 14:36:32 +02:00
44f1f0caf4 fix exclusive solo group-override 2015-10-07 14:21:30 +02:00
96b45d4909 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.
2015-10-07 14:21:29 +02:00
5fd4ee3ef1 Fix handling of Sysex messages with WinMME midi driver 2015-10-07 21:48:56 +10:00
2e8fb9207e print VST blacklist filename (for good measure) 2015-10-07 03:28:02 +02:00
477d1f3f42 implement solo group override 2015-10-07 01:44:02 +02:00
87026c871a add missing include 2015-10-06 21:32:55 +02:00
2237389112 renice code. RAII rocks. 2015-10-06 20:18:02 +02:00
e78f0fe526 CPPUNIT workaround for mingw/wine/windows 2015-10-06 20:10:42 +02:00
e73fa8413e add a "reset all solo state" safeguard 2015-10-06 20:05:38 +02:00
ce30132a89 fix initial AFL/PFL state after session-load 2015-10-06 19:10:25 +02:00
83d8db3925 add missing semicolon 2015-10-06 18:55:49 +02:00
2af78143c1 more debugging for MIDI input via WinMME 2015-10-06 12:42:01 -04:00
ef35ee5d43 detect windows DLL architecture 2015-10-06 18:16:12 +02:00