ardour.git
7 years agoOSC: Create new surface struct for ALL incoming messages
Len Ovens [Fri, 12 May 2017 03:46:16 +0000 (20:46 -0700)]
OSC: Create new surface struct for ALL incoming messages

7 years agochange the way ControlProtocols (control surfaces) are notified and handle Stripable...
Paul Davis [Fri, 12 May 2017 13:51:31 +0000 (14:51 +0100)]
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.

7 years agoMCP: Mixbus32C: Restore missing filter controls to the Dyn page.
Ben Loftis [Wed, 10 May 2017 16:31:03 +0000 (11:31 -0500)]
MCP: Mixbus32C: Restore missing filter controls to the Dyn page.

7 years agoMCU: F-keys are reserved only for user-defined actions; no need for explicit handling.
Ben Loftis [Mon, 8 May 2017 15:12:13 +0000 (10:12 -0500)]
MCU: F-keys are reserved only for user-defined actions; no need for explicit handling.

7 years agoMCP: Momentarily light buttons when they are used to trigger a defined action.
Ben Loftis [Mon, 8 May 2017 13:13:49 +0000 (08:13 -0500)]
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.

7 years agoMackie MCP: Assign some F-keys for default user profile.
Ben Loftis [Fri, 5 May 2017 21:39:15 +0000 (16:39 -0500)]
Mackie MCP: Assign some F-keys for default user profile.

7 years agoMackie control panel: display the profile name when any button action is changed.
Ben Loftis [Fri, 5 May 2017 21:38:19 +0000 (16:38 -0500)]
Mackie control panel: display the profile name when any button action is changed.

7 years agoOSC: also init unsaved params on session load.
Len Ovens [Thu, 11 May 2017 20:58:25 +0000 (13:58 -0700)]
OSC: also init unsaved params on session load.

7 years agoOSC: Initialize all surface struct values on creation
Len Ovens [Thu, 11 May 2017 17:51:40 +0000 (10:51 -0700)]
OSC: Initialize all surface struct values on creation

7 years agore-order per-object and global selection change signals
Paul Davis [Thu, 11 May 2017 17:28:49 +0000 (18:28 +0100)]
re-order per-object and global selection change signals

7 years agoOSC: Actually set feedback on first /strip/command
Len Ovens [Thu, 11 May 2017 15:21:00 +0000 (08:21 -0700)]
OSC: Actually set feedback on first /strip/command

7 years agoTweak/fix splash screen event-loop
Robin Gareus [Thu, 11 May 2017 12:20:33 +0000 (14:20 +0200)]
Tweak/fix splash screen event-loop

Prevent possible endless loop in Splash::display() and handle
some related edge-cases and race conditions WRT expose_done
and is_visible().

7 years agoNO-OP: whitespace
Robin Gareus [Thu, 11 May 2017 11:44:17 +0000 (13:44 +0200)]
NO-OP: whitespace

7 years agocontext click on marker > loop range should set loop range
Paul Davis [Thu, 11 May 2017 12:16:07 +0000 (13:16 +0100)]
context click on marker > loop range should set loop range

7 years agoemit per-Stateful PropertyChanged signal when Stripables become selected
Paul Davis [Thu, 11 May 2017 09:04:07 +0000 (10:04 +0100)]
emit per-Stateful PropertyChanged signal when Stripables become selected

7 years agoOSC: fix manual port setting to take effect on first incoming message
Len Ovens [Wed, 10 May 2017 21:13:47 +0000 (14:13 -0700)]
OSC: fix manual port setting to take effect on first incoming message

7 years agoFix another possible case of illegal use of reserved port-names
Robin Gareus [Wed, 10 May 2017 18:28:47 +0000 (20:28 +0200)]
Fix another possible case of illegal use of reserved port-names

Session::io_name_is_legal() is used for Routes and Processors:
Route::set_name(), ProcessorBox::rename_processor() and
and Route::ensure_track_or_route_name() -- it is not used for actual
I/O objects.

7 years agoFix reserved ports:
Robin Gareus [Wed, 10 May 2017 18:24:28 +0000 (20:24 +0200)]
Fix reserved ports:

* "Click" is not translated
* add auditioner and FaderPort ctrl surfaces.

7 years agoOSC: bind should be boost::bind
Len Ovens [Wed, 10 May 2017 16:56:45 +0000 (09:56 -0700)]
OSC: bind should be boost::bind

7 years agoOSC: Automation feedback should match command
Len Ovens [Wed, 10 May 2017 16:42:48 +0000 (09:42 -0700)]
OSC: Automation feedback should match command

7 years agoOSC: change function name to be better description
Len Ovens [Wed, 10 May 2017 16:21:19 +0000 (09:21 -0700)]
OSC: change function name to be better description

7 years agoOSC: simplify code.
Len Ovens [Wed, 10 May 2017 14:10:44 +0000 (07:10 -0700)]
OSC: simplify code.

7 years agoRemove ambiguity to keep MSVC happy
John Emmas [Wed, 10 May 2017 11:22:57 +0000 (12:22 +0100)]
Remove ambiguity to keep MSVC happy

NB: Do we really need 'floor()' here?? (we seem to be multiplying integers)

7 years agoSelection::get_stripables() needs to recurse into an Automatable's child Automatables...
Paul Davis [Wed, 10 May 2017 07:52:33 +0000 (08:52 +0100)]
Selection::get_stripables() needs to recurse into an Automatable's child Automatables when looking for for an Automation Control

It also needs renaming (to come)

7 years agoresolve ambiguity
Robin Gareus [Wed, 10 May 2017 03:00:03 +0000 (05:00 +0200)]
resolve ambiguity

7 years agoEnums are not Classes in C++98
Robin Gareus [Wed, 10 May 2017 02:29:41 +0000 (04:29 +0200)]
Enums are not Classes in C++98

7 years agoArdourButton: Pick up initial action sensitivity
Robin Gareus [Tue, 9 May 2017 22:15:44 +0000 (00:15 +0200)]
ArdourButton: Pick up initial action sensitivity

e.g. monitor-section show/hide button

7 years agoRemember Monitor-section state (show/hide, attached/detached)
Robin Gareus [Tue, 9 May 2017 16:32:04 +0000 (18:32 +0200)]
Remember Monitor-section state (show/hide, attached/detached)

7 years agoBump VST param-name length limit to 128 bytes and centralize definition
Robin Gareus [Tue, 9 May 2017 19:58:50 +0000 (21:58 +0200)]
Bump VST param-name length limit to 128 bytes and centralize definition

The official VST spec says 8 bytes, JUCE uses 24 + 1, and there's
anecdotal evidence that some VSTs use up to 100 (which apparently works
in many hosts).

7 years agoOSC: Fix select fader automation play feedback as well fixes issue #7160
Len Ovens [Tue, 9 May 2017 21:10:49 +0000 (14:10 -0700)]
OSC: Fix select fader automation play feedback as well fixes issue #7160

7 years agoOSC: Get gain feedback to show with automation Play.
Len Ovens [Tue, 9 May 2017 20:38:57 +0000 (13:38 -0700)]
OSC: Get gain feedback to show with automation Play.

7 years agoOSC: Add Automation mode feedback to /strip
Len Ovens [Tue, 9 May 2017 19:40:20 +0000 (12:40 -0700)]
OSC: Add Automation mode feedback to /strip

7 years agoOSC: removed letter automation modes to not conflict with feedback
Len Ovens [Tue, 9 May 2017 18:52:21 +0000 (11:52 -0700)]
OSC: removed letter automation modes to not conflict with feedback

7 years agoOSC: Propagate return value so debug shows errors
Len Ovens [Tue, 9 May 2017 16:05:30 +0000 (09:05 -0700)]
OSC: Propagate return value so debug shows errors

7 years agoOSC: set Automation mode for fader
Len Ovens [Tue, 9 May 2017 14:49:26 +0000 (07:49 -0700)]
OSC: set Automation mode for fader

7 years agoOSC: automation mode get strip (step 2)
Len Ovens [Mon, 8 May 2017 21:08:10 +0000 (14:08 -0700)]
OSC: automation mode get strip (step 2)

7 years agoOSC: Add framework for /*/automation mode
Len Ovens [Mon, 8 May 2017 17:54:43 +0000 (10:54 -0700)]
OSC: Add framework for /*/automation mode

7 years agoArdour does support VST's audioMasterGetProductString, return true;
Robin Gareus [Tue, 9 May 2017 14:31:42 +0000 (16:31 +0200)]
Ardour does support VST's audioMasterGetProductString, return true;

7 years agoiterator std::set::erase (iterator) is C++11
Robin Gareus [Mon, 8 May 2017 14:30:54 +0000 (16:30 +0200)]
iterator std::set::erase (iterator) is C++11

7 years agoLimit clock displays to 30days (720hours) by default.
Robin Gareus [Mon, 8 May 2017 10:37:17 +0000 (12:37 +0200)]
Limit clock displays to 30days (720hours) by default.

This prevents various edge-cases of selection-clocks (eg. unbound range
selection after start-range; and makes it near impossible to roll-over
2^63 using GUI operations)

7 years agofix copy-n-paste error
Paul Davis [Mon, 8 May 2017 10:03:35 +0000 (11:03 +0100)]
fix copy-n-paste error

7 years agofix logic when removing routes
Paul Davis [Mon, 8 May 2017 09:56:24 +0000 (10:56 +0100)]
fix logic when removing routes

Selection change and re-order signals are distinct.

7 years agoremove misc. debug output
Paul Davis [Mon, 8 May 2017 09:40:11 +0000 (10:40 +0100)]
remove misc. debug output

7 years agowhen removing a Route from Session, remove it from CoreSelection and signal that...
Paul Davis [Mon, 8 May 2017 09:36:46 +0000 (10:36 +0100)]
when removing a Route from Session, remove it from CoreSelection and signal that change if necessary

7 years agowhen removing Stripables from CoreSelection by ID, be sure to remove all possible...
Paul Davis [Mon, 8 May 2017 09:36:04 +0000 (10:36 +0100)]
when removing Stripables from CoreSelection by ID, be sure to remove all possible entries in the Selection

A Stripable may have itself plus zero-to-N automation controls in
CoreSelection.

7 years agoallow Session to call Session::remove_stripable_by_id()
Paul Davis [Mon, 8 May 2017 09:35:10 +0000 (10:35 +0100)]
allow Session to call Session::remove_stripable_by_id()

7 years agowhen a Route is removed, don't bother triggering a sync-presentation-info-from-treevi...
Paul Davis [Mon, 8 May 2017 09:33:37 +0000 (10:33 +0100)]
when a Route is removed, don't bother triggering a sync-presentation-info-from-treeview because it isn't necessary

Also, don't update mixer selection unless selection actually changed

7 years agowhen a Route is removed, don't bother triggering a sync-presentation-info-from-treevi...
Paul Davis [Mon, 8 May 2017 09:31:59 +0000 (10:31 +0100)]
when a Route is removed, don't bother triggering a sync-presentation-info-from-treeview because it isn't necessary

7 years agoUpdate Japanese translation
Hiroki Inagaki [Sun, 7 May 2017 20:19:09 +0000 (13:19 -0700)]
Update Japanese translation

7 years agoSemaphores need to have a unique name -- fixes #7341
Robin Gareus [Sun, 7 May 2017 00:02:30 +0000 (02:02 +0200)]
Semaphores need to have a unique name -- fixes #7341

On Windows (and OSX) semaphores are named. If the name matches an existing
semaphore, it is re-used and not re-initialized. In case of multiple
LV2-plugins each with a worker-thread this can lead to a deadlock.

7 years agoreally fix opening session-archives -- amend 1f80f059be
Robin Gareus [Sat, 6 May 2017 20:05:26 +0000 (22:05 +0200)]
really fix opening session-archives -- amend 1f80f059be

7 years agoFix opening session-archives
Robin Gareus [Sat, 6 May 2017 16:31:18 +0000 (18:31 +0200)]
Fix opening session-archives

7 years ago-Wnon-virtual-dtor
Robin Gareus [Sat, 6 May 2017 13:41:22 +0000 (15:41 +0200)]
-Wnon-virtual-dtor

7 years agoNO-OP: whitespace and FSF address
Robin Gareus [Sat, 6 May 2017 13:11:53 +0000 (15:11 +0200)]
NO-OP: whitespace and FSF address

7 years agoFactor RMS normalization by sqrt(2); match sine peak
Robin Gareus [Sat, 6 May 2017 13:09:05 +0000 (15:09 +0200)]
Factor RMS normalization by sqrt(2); match sine peak

7 years agoAccommodate newly introduced source(s) in our MSVC project (gtk2_ardour)
John Emmas [Sat, 6 May 2017 12:35:06 +0000 (13:35 +0100)]
Accommodate newly introduced source(s) in our MSVC project (gtk2_ardour)

7 years agoAccommodate newly introduced source(s) in our MSVC project (libardour)
John Emmas [Sat, 6 May 2017 12:34:39 +0000 (13:34 +0100)]
Accommodate newly introduced source(s) in our MSVC project (libardour)

7 years agoMSVC won't allow us to erase an item referenced by const_iterator
John Emmas [Sat, 6 May 2017 12:33:38 +0000 (13:33 +0100)]
MSVC won't allow us to erase an item referenced by const_iterator

7 years agoThe new class 'ARDOUR::CoreSelection' needs to be exportable (since it gets used...
John Emmas [Sat, 6 May 2017 12:32:20 +0000 (13:32 +0100)]
The new class 'ARDOUR::CoreSelection' needs to be exportable (since it gets used outside of libardour)

7 years agoOSC: make some more paths work with or without a parameter.
Len Ovens [Fri, 5 May 2017 15:58:49 +0000 (08:58 -0700)]
OSC: make some more paths work with or without a parameter.

7 years agoOSC: remove debug output.
Len Ovens [Fri, 5 May 2017 05:01:07 +0000 (22:01 -0700)]
OSC: remove debug output.

7 years agopart two of add missing files from selection development branch(es)
Paul Davis [Fri, 5 May 2017 18:26:10 +0000 (19:26 +0100)]
part two of add missing files from selection development branch(es)

7 years agoadd missing files from selection development branch(es)
Paul Davis [Fri, 5 May 2017 18:25:35 +0000 (19:25 +0100)]
add missing files from selection development branch(es)

7 years agoEditor::axis_view_by_control() needs to explore child tracks, now that Selection...
Paul Davis [Fri, 5 May 2017 17:06:51 +0000 (18:06 +0100)]
Editor::axis_view_by_control() needs to explore child tracks, now that Selection is relying on it

7 years agomaintain CoreSelection order in GUI track selection
Paul Davis [Fri, 5 May 2017 15:34:32 +0000 (16:34 +0100)]
maintain CoreSelection order in GUI track selection

7 years agouse CoreSelection for track selection
Paul Davis [Fri, 5 May 2017 11:31:49 +0000 (12:31 +0100)]
use CoreSelection for track selection

7 years agolibardour now has CoreSelection object to manage selection status of Stripables and...
Paul Davis [Fri, 5 May 2017 11:31:21 +0000 (12:31 +0100)]
libardour now has CoreSelection object to manage selection status of Stripables and AutomationControls

7 years agoextend PBD::ID API to allow construction and operator== using uint64_t
Paul Davis [Fri, 5 May 2017 11:18:06 +0000 (12:18 +0100)]
extend PBD::ID API to allow construction and operator== using uint64_t

This is theoretically dangerous, because a PBD::ID is supposed to be unique, and this new constructor
cannot guarantee that. However, the same danger already exists with the std::string-based constructor

7 years agoFP8: use new libardour API
Robin Gareus [Fri, 5 May 2017 14:48:11 +0000 (16:48 +0200)]
FP8: use new libardour API

7 years agoMove special-cased FP8 mute-state into libardour
Robin Gareus [Fri, 5 May 2017 14:47:25 +0000 (16:47 +0200)]
Move special-cased FP8 mute-state into libardour

7 years agoFP8: ignore inactive muted tracks w/mute-clear
Robin Gareus [Fri, 5 May 2017 13:36:08 +0000 (15:36 +0200)]
FP8: ignore inactive muted tracks w/mute-clear

7 years agoFP8: solo+mute undo
Robin Gareus [Fri, 5 May 2017 13:26:52 +0000 (15:26 +0200)]
FP8: solo+mute undo

Eventually this should be moved into libardour: Mixer undo history.
the tentative solution is specifically ifdef'ed FP8_MUTESOLO_UNDO.

7 years agoFix converting v4 monitor state -- amend 8a6d30377
Robin Gareus [Fri, 5 May 2017 12:31:19 +0000 (14:31 +0200)]
Fix converting v4 monitor state -- amend 8a6d30377

It looks like MonitorControl::_monitoring is unused and should be removed.
The actual value is Evoral::Control::_user_value

7 years agoremove cruft (unused UI::ui_scale)
Robin Gareus [Fri, 5 May 2017 11:59:48 +0000 (13:59 +0200)]
remove cruft (unused UI::ui_scale)

7 years agofix ruler scaling -- #7226
Robin Gareus [Fri, 5 May 2017 11:58:59 +0000 (13:58 +0200)]
fix ruler scaling -- #7226

7 years agoOSC: personal monitoring, fix crash and minor bugs
Len Ovens [Thu, 4 May 2017 22:50:24 +0000 (15:50 -0700)]
OSC: personal monitoring, fix crash and minor bugs

7 years agofix/amend previous commit.
Robin Gareus [Thu, 4 May 2017 21:06:52 +0000 (23:06 +0200)]
fix/amend previous commit.

7 years agoDon't save "end-is-free" with templates
Robin Gareus [Thu, 4 May 2017 21:00:21 +0000 (23:00 +0200)]
Don't save "end-is-free" with templates

7 years agoLua bindings for "end-is-free" (automatic session-end location marker)
Robin Gareus [Thu, 4 May 2017 19:08:17 +0000 (21:08 +0200)]
Lua bindings for "end-is-free" (automatic session-end location marker)

7 years agoScaleable group-tabs: use Pango to layout text, scale with UI #7331
Robin Gareus [Thu, 4 May 2017 17:15:18 +0000 (19:15 +0200)]
Scaleable group-tabs: use Pango to layout text, scale with UI #7331

7 years agoScale scommer and piano-keyboard width with GUI
Robin Gareus [Thu, 4 May 2017 15:22:43 +0000 (17:22 +0200)]
Scale scommer and piano-keyboard width with GUI

7 years agoConvert old v4 Track monitoring session-state (untested)
Robin Gareus [Thu, 4 May 2017 15:19:55 +0000 (17:19 +0200)]
Convert old v4 Track monitoring session-state (untested)

7 years agoUpdate Tempo Tapping:
Robin Gareus [Thu, 4 May 2017 14:12:26 +0000 (16:12 +0200)]
Update Tempo Tapping:

* Allow tap with keyboard (Space, Enter)
* Ignore double-clicks (2nd rapid event skewed calculation)

7 years agoOSC: Add /jog/mode/name
Len Ovens [Thu, 4 May 2017 04:38:52 +0000 (21:38 -0700)]
OSC: Add /jog/mode/name

7 years agoOSC: Fix puctuation
Len Ovens [Thu, 4 May 2017 04:36:58 +0000 (21:36 -0700)]
OSC: Fix puctuation

7 years agoOSC: arrange modes in a more logical order.
Len Ovens [Thu, 4 May 2017 01:19:45 +0000 (18:19 -0700)]
OSC: arrange modes in a more logical order.

7 years agoOSC: Add multimode /jog command
Len Ovens [Wed, 3 May 2017 23:31:46 +0000 (16:31 -0700)]
OSC: Add multimode /jog command

7 years agoNO-OP: whitespace
Robin Gareus [Wed, 3 May 2017 22:43:40 +0000 (00:43 +0200)]
NO-OP: whitespace

7 years agoThe return of explicit exclusive solo.
Robin Gareus [Wed, 3 May 2017 22:42:07 +0000 (00:42 +0200)]
The return of explicit exclusive solo.

7 years agoMIDI learn on ctrl + middle-click only (not ctrl + other mods + btn2).
Robin Gareus [Wed, 3 May 2017 22:35:56 +0000 (00:35 +0200)]
MIDI learn on ctrl + middle-click only (not ctrl + other mods + btn2).

This fixes various other operations that use ctrl + btn2.
e.g. ctrl+alt+btn2 temporary all un/solo/mute.

7 years agoLua bindings to set group color
Robin Gareus [Wed, 3 May 2017 15:47:16 +0000 (17:47 +0200)]
Lua bindings to set group color

7 years agoGUI update: migrate group-color into the session (not GUI state)
Robin Gareus [Wed, 3 May 2017 15:46:58 +0000 (17:46 +0200)]
GUI update: migrate group-color into the session (not GUI state)

7 years agoMove RouteGroup color into libardour.
Robin Gareus [Wed, 3 May 2017 15:36:35 +0000 (17:36 +0200)]
Move RouteGroup color into libardour.

This allows to change it from scripts and surfaces and consolidates code.

7 years agoNO-OP: whitespace
Robin Gareus [Wed, 3 May 2017 13:03:23 +0000 (15:03 +0200)]
NO-OP: whitespace

7 years agoOSC scrub, fix numbers to work with usec rather than msec.
Len Ovens [Mon, 1 May 2017 20:53:03 +0000 (13:53 -0700)]
OSC scrub, fix numbers to work with usec rather than msec.

7 years agoOSC: fix scrub to not use boost ptime.
Len Ovens [Mon, 1 May 2017 20:45:47 +0000 (13:45 -0700)]
OSC: fix scrub to not use boost ptime.

7 years agoOSC: add /scrub function
Len Ovens [Mon, 1 May 2017 14:08:02 +0000 (07:08 -0700)]
OSC: add /scrub function

7 years agoMake -A open action list in a browser instead of command terminal.
Len Ovens [Sun, 30 Apr 2017 05:47:24 +0000 (22:47 -0700)]
Make -A open action list in a browser instead of command terminal.

7 years agoTime flies
Robin Gareus [Sat, 29 Apr 2017 23:22:05 +0000 (01:22 +0200)]
Time flies

7 years agoFix copy/paste typos in --help
Robin Gareus [Sat, 29 Apr 2017 23:21:41 +0000 (01:21 +0200)]
Fix copy/paste typos in --help