Phil
69067b9d99
add plugin support for mackie units
...
Main features: Plugin (Select & Edit)
1. Plugin Select: When a track is selected that has PluginInserts, pushing the "Plug-In" button on a mackie will list these across the strips. Clicking a vpot of a strip enables editing the parameters of this selected plugin.
2. Plugin Edit: When a Plugin is selected for editing, the input parameters of the plugin are shown across the channel strips and the vpot is assigned the corresponsing AutomationControl for the parameter.
Minor features
- When the number of plugins or the number of parameters exceeds the number of strips available on the surface, one can flip through "pages" of views using the Cursor Left and Right keys (this logic I took from http://www.emagic.de/media/support/content/manuals/LogicControl_en.pdf )
- When in the Plugin Select mode, rearranging the plugins in the mixer strip is reflected on the surface.
- When in Plugin Edit mode, rearranging the plugins in the mixer strip still retains the edit view of the selected plugin (rearranging does not take away the current subview)
- When removing a plugin in the mixer strip, this is reflected in Plugin Select, while the view jumps to Pan/Surround (the None subview) when in Plugin Edit mode.
- Removing a track resets the subview to None
- When in a Subview that is track-specific (Track, EQ, Send, Plug-In, Inst), selecting a different track retains the subview but updates the channel displays and vpot assignments accordingly. When in Plugin Edit mode for track A, and track B is selected, it changes to Plugin Select mode for track B (if plugins are present).
2020-04-07 14:35:09 -06:00
bf894d80fb
NO-OP: remove unused #includes
2020-03-21 19:46:38 +01:00
3e77680a57
surfaces transport hotfix: surfaces should query the transport state via BasicUI, when possible
2020-02-23 09:02:25 -06:00
444ef73c7d
fix up apparent design thinkos in Mackie key binding handler
2020-02-20 12:53:57 -07:00
ef5fddd8b5
MCU: fix pan_azimuth direction by setting Rotary flag.
2020-02-20 12:25:51 -06:00
06b2eb1c27
Explicitly use OSX
...
Previously this was inherited via PBD.
On MacOS/X, this adds
"-undefined dynamic_lookup -flat_namespace"
and various "-framework .." options to linkflags
Without this flag, .dylibs fail to link usually because
of missing `-lintl` (Undefined symbols: "_libintl_dgettext")
On other systems this is a NO-OP:
CFLAGS_OSX, CXXFLAGS_OSX and LINKFLAGS_OSX
are only set on the darwin platform.
2020-01-25 04:07:41 +01:00
60ccbcf9cc
use a local version (copy) of the G_SOURCE_FUNC macro, since it is not available in the GTK+ version we use for the official build stack
2019-12-30 09:49:23 -07:00
3ee08bbae7
Revert "fix a cast warning (as recommended in GTK+ docs"
...
This reverts commit af30a6f001
because it breaks OSX/MacOS builds:
libs/surfaces/mackie/mackie_control_protocol.cc:945: error: 'G_SOURCE_FUNC' was not declared in this scope
2019-12-30 16:00:22 +01:00
e46e6f12a3
use new BasicUI and Session API to deal with transport state
2019-12-29 18:43:51 -07:00
af30a6f001
fix a cast warning (as recommended in GTK+ docs
2019-12-29 18:43:51 -07:00
d4e023e1cb
Make BusSendLevel 1st class citizen (1/2)
...
Equivalent to Gain and Trim (gain-coefficient, not dB) and use
it for Sends.
2019-12-14 15:06:23 +01:00
a855119bdd
rename all Evoral source from .(hpp|cpp)$ to .(h|cc)
2019-11-02 16:32:18 -06:00
496e6f2a4c
New implementation for single-fader mackie devices (reverts b96d8e)
2019-10-22 14:39:38 -05:00
b96d8e7ffa
Add support for single-fader MCU devices: XTouch One and RuCo. (needs testing)
2019-10-20 22:24:32 -05:00
52021bc3ca
Consistent use of abort() /* NOTREACHED */
...
This fixes some static analysis warnings:
PBD::fatal transmitter needs to be connected to a function
that aborts. This is usually the case with GUI
2019-09-18 05:57:26 +02:00
365f6d6337
Update plugins/addons GPL boilerplate and (C) from git log
2019-08-03 15:53:18 +02:00
3e7e89db8f
Fix some actions that moved from Common to Editor.
2019-05-13 09:20:17 -05:00
Johannes Mueller
5b7bcec529
Use ActionModel API in the Control Surfaces that can make use of it
2019-04-20 15:25:32 +02:00
50e8c4d529
Expose Latch automation mode to MCUs
2019-04-01 22:28:07 +02:00
cf2fa0ae84
fix Mackie available action menu
2019-03-20 13:05:35 -07:00
94d859e30d
ActionManager::get_all_actions() no longer includes <Actions> in the paths it returns, part 2 (surface support)
2019-03-20 11:15:34 -07:00
23a98e5f4d
remove references to "Editor_menus" which is an action that no longer exists
2019-02-16 13:12:45 -07:00
56e950b189
rename Main_menu action to Main menu
...
So that if it ever does show up in a list, it looks nice
2019-02-16 13:05:41 -07:00
8f9e63575f
Clarify which version of 'ActionManager::get_action()' we're calling
...
For MSVC, the parameter 'false' (i.e. 0) can be considered as either a bool or a pointer - so it'll map to both declarations of ActionManager::get_action()
2019-01-14 14:14:23 +00:00
91ed9840d0
do not crash if an unknown action is used by Mackie Control support
2019-01-11 12:39:07 -06:00
00df619d21
use ActionManager namespace, rather than ActionMap objects
2018-12-10 08:34:01 -05:00
b519434744
Adapt our remaining MSVC projects for 'boost::atomic' (in case it later gets extended to the other libs)
...
Stage 2 of 3 (more to follow)
2018-09-30 09:06:25 +01:00
Albert Graef
65693a72a2
MCP: Fix up the feedback for the view selection buttons.
2018-09-27 11:31:13 -04:00
Albert Graef
38bccabeca
MCP: Allow the current bank to move right one channel even if this results in a partial bank.
...
Rationale: This change is trivial, but Ardour's behavior of refusing to move right one channel unless a full bank remains has been there for a long time, and there are probably good reasons for it. This design was likely conceived when all MCP-compatible devices had banks of 8 faders anyway. However, with the advent of affordable single-strip devices like the X-Touch ONE it becomes a real issue.
Single-strip devices can only access the first channel in the current bank, so relaxing this restriction is the easiest way to enable such devices to access all strips, while still maintaining the usual bank size of 8. Note that maintaining a bank size of 8 is beneficial even with single-strip devices for several reasons:
- It allows use of the bank switch buttons to flip through a large number of strips more quickly.
- It maintains compatibility with existing device descriptions. E.g., the X-Touch ONE can be used with the existing X-Touch device description without any ado.
- Most importantly, it maintains compatibility with other MCP-compatible controllers which do have 8 strips and may be connected to Ardour at the same time. E.g., one might want to use an X-Touch Mini, or even a full-size X-Touch along with the X-Touch ONE in some use cases. Changing the bank size to 1 affects all connected MCP devices, so you'd rather keep the bank size to 8 in such scenarios. (Ardour should preferably have separate bank size settings for each connected MCP device, but that isn't possible right now since only one MCP device description can be active at the same time.)
2018-09-27 11:31:13 -04:00
Albert Graef
936f6814ac
MCP: Fix up the feedback for the bank left/right buttons.
2018-09-27 11:31:13 -04:00
79f01bc889
Initial changes needed for building Mixbus (with MSVC) as version 5
...
(Mixbus itself will probably need extra changes)
2018-09-10 07:14:59 +01:00
510a0314cf
move select-all-tracks,deselect-all,invert-selection to be global actions (and bindings)
2018-08-24 10:08:08 -04:00
b9c9777b9a
When building with MSVC, allow for the fact that Mixbus and Ardour can be using different versions of the SESSION_FILE format
2018-02-15 09:03:32 +00:00
6f019faaa0
Accommodate the change from libtimecode to libtemporal
2018-02-14 10:02:11 +00:00
b1d7eabf54
iCon device tweaks: faster timecode display refresh rate. Submitted by Michal Barhon.
2018-02-10 22:43:53 -06:00
ff319ce63f
Resolve -Wreorder in qcon code.
2018-02-10 22:43:42 -06:00
ea1740d65f
MSVC only allows static class members to be initialised in the class declaration
2018-02-03 14:58:45 +00:00
3aacdd79ae
Fixes for the iCON Qcon mcp device - LED rings. Submitted by Michal Barhon : mbarhon@seznam.cz
2018-02-02 09:27:37 -06:00
ae3d9deefb
Support for the iCON Qcon mcp device - sysex strings. Submitted by Michal Barhon.
2018-02-01 14:39:59 -06:00
30b087ab3d
globally change all use of "frame" to refer to audio into "sample".
...
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-18 12:39:17 -04:00
03e99e9866
fix longstanding compiler warning
2017-09-18 11:40:53 -04:00
2d60a69c2d
Consolidate ctrl surface code
2017-08-05 01:28:11 +02:00
b5e0b5b09f
PortManager::unregister_port() must be called with process lock
...
This fixes "Failed to register <surface> port" when re-loading a session.
2017-07-28 20:15:15 +02:00
fde0e293a3
Remove unused "mark" parameter from stop_touch() API
2017-07-24 01:59:18 +02:00
1138b62fb8
amend 5e5f7a55; re-add wrongly removed variable
2017-06-23 18:15:50 +02:00
66a3dd7ded
MCU: Remove use of AutomationType as ID, part two.
...
This may need some small tweaks for MB channelstrip to set
print-format (like LV2 plugins would) for cases where the default
value_as_string() differs.
2017-06-23 17:39:20 +02:00
5e5f7a55ee
MCU: Remove use of AutomationType as ID, part one.
2017-06-23 17:39:20 +02:00
d3738b087e
MCP: Fix issue with strip "select" buttons that stayed stuck on.
...
* Depending on individual strips to watch the selection property is prone to failure.
* Stripable_selection_changed() is called when a selection operation is completed.
2017-05-17 15:55:43 -05:00
60cc2823f3
MCP: map the well-known EQ knobs more explicitly, not heuristically.
2017-05-17 15:53:14 -05:00
3d26a29e8a
Sanitize "well-known" ctrl API
2017-05-14 00:17:11 +02:00
eb3f50e15c
change the way ControlProtocols (control surfaces) are notified and handle Stripable selection changes
...
The Editor continues to notify them, but via a direct call to ControlProtocolManager, not a signal.
The CP Manager calls the ControlProtocol static method to set up static data structures holding
selection info for all surfaces and then notifies each surface/protocol that selection has changed.
2017-05-12 14:51:39 +01:00
efc2660fec
MCP: Mixbus32C: Restore missing filter controls to the Dyn page.
2017-05-12 15:44:01 +02:00
8ba868e933
MCU: F-keys are reserved only for user-defined actions; no need for explicit handling.
2017-05-12 15:43:55 +02:00
e6e2b6800e
MCP: Momentarily light buttons when they are used to trigger a defined action.
...
*This is mainly for F-keys
*If a button is not assigned an action, it will not light,
hopefully indicating to the user that it is unmapped.
2017-05-12 15:43:52 +02:00
6f298b1a83
Mackie control panel: display the profile name when any button action is changed.
2017-05-12 15:43:44 +02:00
0c035778e1
libardour now has CoreSelection object to manage selection status of Stripables and AutomationControls
2017-05-05 18:56:25 +01:00
1680811dbf
Use XMLNode::get_property API in Mackie DeviceInfo class
2017-04-19 09:36:54 +10:00
77b4e041ac
Use XMLNode::get/set_property API in mackie Surface class
2017-04-19 09:36:54 +10:00
86f403cbbd
Use XMLNode::get/set_property API in MackieControlProtocol class
2017-04-19 09:36:54 +10:00
9554dd4445
Use XMLNode::get/set_property API in mackie surface DeviceProfile class
2017-04-19 09:36:54 +10:00
d64ca9be08
Properly expose "well known" comp_redux output.
2017-04-12 21:14:50 +02:00
febd1d5c88
remove misleading/incorrect comment
...
The previously-commented code is precisely what gets invoked
when solo state changes, and had nothing to do with actually
changing solo state in any way.
2017-02-24 10:18:57 +01:00
b5dbfc9931
leave a ToDo note for the mackie surface
2017-02-17 04:02:15 +01:00
8243aeb3a1
remove debugging stacktrace from mackie code
2017-02-09 12:47:25 +01:00
bb74bba1c7
mackie: catch data on what presentation info aspects changed; don't change banks on a PI change
2017-02-01 10:27:34 +01:00
9e7652ca62
debugging with markk: stacktrace on bank switch in mackie code
2017-01-31 20:12:04 +01:00
6f66fbbf73
remove recently added MackieControl DEBUG_TRACE msgs
2017-01-31 19:16:50 +01:00
1c9df390bc
stop DEBUG_TRACE for MackieControl crashing in some conditions
2017-01-31 19:16:35 +01:00
0d72fe65a2
mackie: use "markN" for new markers, like the GUI (not "markerN")
2017-01-31 18:24:39 +01:00
7c517f6566
mackie: check modifier bits for button AFTER identifying possibly remapped button ID
2017-01-31 18:08:44 +01:00
efd222afe9
mackie: more debug tracing
2017-01-31 17:52:59 +01:00
58c1ff368c
mackie: more debug tracing
2017-01-31 17:48:49 +01:00
9dc2ef28be
mackie: more debug tracing for remapped buttons
2017-01-31 17:43:33 +01:00
8f13d33efe
Revert "mackie: make profile-mapped keys maybe actually do something"
...
This reverts commit 0d7f88afbd
.
2017-01-31 17:37:45 +01:00
de189721e8
Revert "mackie: improve previous commit - use button_id not button.bid() to make remapping work"
...
This reverts commit 16804e20c8
.
2017-01-31 17:37:23 +01:00
16804e20c8
mackie: improve previous commit - use button_id not button.bid() to make remapping work
2017-01-31 17:31:10 +01:00
0d7f88afbd
mackie: make profile-mapped keys maybe actually do something
2017-01-31 17:23:45 +01:00
404686d258
more mackie debug tracing
2017-01-31 17:05:30 +01:00
88dae1c766
improvement to last loop button commit for MCP
2017-01-31 16:29:22 +01:00
f55ebf26bd
mackie support should use BasicUI::loop_toggle()
2017-01-31 16:10:23 +01:00
41aaee6fe9
fix action names in Mackie code after Editor=>Control migration
2017-01-28 18:51:03 +01:00
c8892f411a
MCP GUI make surface numbering the same as port numbering and more explanatory.
2017-01-28 09:35:42 -08:00
390ce9bc4f
mackie surface support changes actions recently moved to Common/*
2017-01-28 18:20:49 +01:00
c3d0af413a
MCP fix issue 7219 get GUI to show main surface for right port
2017-01-27 21:44:40 -08:00
1de584961a
NO-OP; Backport changes from Mixbus branch
2016-11-27 22:54:23 +01:00
0e5ac13a04
use new shared cancel_all_solo() in Mackie code
2016-09-27 14:59:29 -05:00
e0be45de38
remove duplicate/unnecessary header inclusions
2016-09-27 14:59:29 -05:00
0ff233d234
Update our MSVC project files to generate the most recent Ardour session file format (ver 5) rather than the older v3 format
2016-08-30 07:15:00 +01:00
cf52d6e4b4
enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.h
2016-07-14 14:45:23 -04:00
08bd0da509
use Session::cancel_all_solo()
2016-07-13 14:33:43 -04:00
3c58a674c5
mackie: fix behaviour of clear solo button
2016-07-13 13:43:20 -04:00
44fcbd988c
mackie: ensure that the strip where select was pressed ends up as the first_selected_stripable
2016-07-06 21:40:29 -04:00
2047ee527c
restore/extend/simplify ControlProtocol API to allow tracking of selection
2016-07-06 13:39:10 -04:00
291aec468f
use session stripable selection API
...
and remove old ControlProtocol signals to talk to GUI etc.
2016-07-04 12:45:53 -04:00
21bf61d559
MackieControl: in sends subview, if there are no sends for a vpot, drop the controllable for the vpot
2016-06-12 08:44:34 -04:00
beafe2be6e
fix MCP Cancel button "escape" action
2016-06-12 08:43:24 -04:00
a8d7b0fca3
redesign/reimplement selection knowledge in MackieControlProtocol object
...
strips listen to Stripable::presentation_info().PropertyChange, and forward selected status changes
to the MCP object
2016-06-12 08:19:16 -04:00
4717080aee
reduce verbosity of -D mackie in the presence of continued handshaking/keepalive messages.
2016-06-12 08:18:01 -04:00
2d4358ddb5
Various changes to PresentationInfo and a small consolidation of sorters.
...
The semantics for sorting PresentationInfo are up to the caller, not the
PresentationInfo object, so operator<() was removed and callers specifically
invoke ::order() for sorting.
2016-06-10 13:57:18 -04:00
3eaa6c0389
remove certain ControlProtocol signals related to stripable selection
...
includes change to Mackie support so that strips listen for PropertyChange
on the stripables they represent, no global selection change used anymore.
2016-06-10 13:57:18 -04:00
91ad3ef81d
don't connect to individual PresentationInfo signals per Stripable; we only reorder strips once, when the global signal arrives
2016-06-05 16:33:02 -04:00
dfcc8fd547
Stripable signals moved to PresentationInfo
2016-06-05 16:33:02 -04:00
ee0f073e8d
move from PresentationInfo::global_order() to PresentationInfo::order
2016-06-03 15:15:39 -04:00
f03f2e5c3f
use new record safe control in surface support
2016-05-31 15:30:45 -04:00
28afaebdc4
fix SNAFU in which Stripable::rec_enable_control() was incorrectly defined as ::recenable_control()
...
Make Mackie support code use the Stripable to access the rec-enable control while we're here
2016-05-31 15:30:45 -04:00
0d9433aef6
remove no-effect handling of route active-status change in Mackie Control code
2016-05-31 15:30:43 -04:00
186209c03c
fix crash in mackie code caused by assumption that all Stripables have meters
2016-05-31 15:30:43 -04:00
4b0a235f91
manually fix rebase/merge issues for Mackie Control support
2016-05-31 15:30:42 -04:00
4b7bbacaaa
make mackie surfaces aware of VCAs
2016-05-31 15:30:42 -04:00
c34ad3a723
convert Mackie Control Surface support to use Stripable, not Route
2016-05-31 15:30:42 -04:00
8346fab567
remove irrelevant, out of date and incorrect comment
2016-05-31 15:30:42 -04:00
e0ff70cf86
first vaguely working version using PresentationInfo
...
remote control ID and "order keys" have been removed.
2016-05-31 15:30:42 -04:00
5b5e64d860
remove Route::listening_via_monitor()
...
This is better tested with direct use of the solo_control and
Config->get_solo_controls_are_listen_controls()
2016-05-31 15:30:41 -04:00
653ae4acd6
universal change in the design of the way Route/Track controls are designed 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
2016-05-31 15:30:40 -04:00
4b36593106
fix faderport and mackie to use route AutomationControls to be notified about solo/mute changes
2016-05-31 15:30:40 -04:00
aee283f056
use redesigned Route and VCA object architecture/API
2016-05-31 15:30:39 -04:00
b0200b23f2
Accommodate the fact that 'msvc_resources.rc.in' got moved to a new path
2016-05-21 10:33:18 +01:00
672528baf4
fix shared_ptr<Route> management in Mackie support so that deleted routes are destroyed
2016-05-07 13:36:04 -04:00
17ace643e4
OMNIBUS COMMIT: prefer const XMLNode::property method (and provide a real one)
2016-05-04 23:09:45 -04:00
40aa4cfe06
Modify our MSVC projects to build liblua as a DLL rather than a static lib
2016-04-04 16:40:20 +01:00
ba78359129
prepare for update to waf 1.8
...
uselib is no longer implicit (inherited by .use). This is still incomplete,
some uselibs for non-linux variants may be missing.
bld.is_defined("HAVE_XXX") also no longer works and will have to be
changed (I think to bld.env["HAVE_XXX"]) in countless places.
2016-02-28 21:16:44 +01:00
d3634c5779
Accommodate 'lua' search paths in various projects where they're needed
...
(i.e. so that MSVC can find header files from lua).
2016-02-27 16:29:55 +00:00
bc487bb4b0
replicate the remove-all-trailing whitespace commit(s) in master
2016-02-22 15:31:24 -05:00
379bc35948
update Mackie code to use new API to get all actions
2016-02-22 15:31:24 -05:00
67e19c177f
radically change Keyboard/Binding API design to disconnect Gtk::Action lookup from binding definition
...
We need this because we need binding information/objects before all
Actions have been defined.
2016-02-22 15:31:24 -05:00
f519edbe8e
fix segfault in libardour unit-tests (possible crash in mackie sf)
2016-02-20 20:26:34 +01:00
a1d2c13077
mackie: if device type is unknown, make -D mackie show that
2016-02-07 10:28:07 -05:00
80a678de28
handle Mackie control device type ID = 0x6 (Behringer X-Touch Compact)
2016-02-07 10:28:07 -05:00
09921e1d76
Mackie: shift+marker needs to remove marker. moved session-range to shift+solo.
...
Originally cbbd87f50b in mixbus/master
2016-02-06 15:47:27 -05:00
5516e3bdd2
mackie: better fix for
2016-02-06 14:24:06 -05:00
3b1d1675de
mackie: stop crashes when switching to X-Touch Compact device
2016-02-05 17:59:29 -05:00
ff14f4d63c
Mackie Protocol: more fixes for aac6a5
2016-02-04 11:44:23 -06:00
1b5931a028
Mackie Protocol: fixes for aac6a5
2016-02-04 11:17:45 -06:00
37d6265e13
mackie: try to improve logic and management of device profiles
2016-02-04 11:24:26 -05:00
d3081fd816
mackie: reverse previous profile editor changes; allow profile to define anything except plain and shift actions.
...
For Fn keys we also allow plain and shift definitions
2016-02-04 11:24:26 -05:00
aefa63aaa6
mackie: radically shrink down the profile editor
...
We only expose user control over Fn keys and only the shift modifier
2016-02-04 11:24:26 -05:00
23b1944bea
Mackie protocol: set-session-from-edit-range moved to shift+marker
2016-02-04 09:30:37 -06:00
aac6a59071
Mackie Protocol: Move buttons to more accurately reflect default mcp legends.
...
Modifiers are only modifiers (no actions directly on modifiers).
Punch indicators moved to Drop/Replace.
Added Save, Undo, Cancel (select none) and Enter (select all tracks)
Fixed click button.
Up&Down buttons now move the selected track up & down.
2016-02-03 18:11:21 -06:00
10a11492dd
mackie: fix gain control display
2016-02-03 17:27:14 -05:00
eeff08aac4
mackie: use bus shortname in send subview.
...
Also slightly tighten route name display
2016-02-03 17:27:01 -05:00
7f82e7769f
zero more stuff out when leaving subview mode
2016-02-03 17:25:28 -05:00
dc4daa892d
Mackie Protocol: Show dB values for Mixbus "Send" levels.
...
No sense rewriting it now, but the correct way to approach
this stuff is to pass in the control, and use
the appropriate one of: interface, internal, or user values.
in this case, get_user would have returned dB for both Ardour and Mixbus sends.
2016-02-03 13:48:56 -06:00
b4a9bf5878
Mackie Control: Save old bank before we change it to new.
2016-02-02 18:41:49 -08:00
fea89a7f9b
fix compiler warning
2016-02-02 18:30:51 -05:00
8df1baa659
Fix for previous commit
2016-02-02 16:14:00 -06:00
ea08354c17
fix for knob scaling
2016-02-02 15:47:05 -06:00
99a53ed7f0
Mackie Control: Fix Flip mode getting confused if subview is not sends.
2016-02-02 09:38:55 -08:00
7229dccb3b
Mackie Control: Shift/Select now toggles individual channels within group. Makes this the same as other grouped controls.
2016-02-02 09:03:27 -08:00
a7775559c1
Mackie Control: remove Shift/select zeros fader.
2016-02-02 08:55:36 -08:00
abb151b8b0
Mackie Control: Moved encoder fine modifier from Control to Shift (Shift will be only modifier)
2016-02-02 08:49:16 -08:00