ardour.git
7 years agoAccommodate recently removed source(s) in our MSVC project (gtk2_ardour)
John Emmas [Tue, 23 May 2017 08:28:44 +0000 (09:28 +0100)]
Accommodate recently removed source(s) in our MSVC project (gtk2_ardour)

7 years agoRemove old jack_utils.h header that was moved to the JACK backend
Tim Mayberry [Tue, 23 May 2017 04:27:50 +0000 (14:27 +1000)]
Remove old jack_utils.h header that was moved to the JACK backend

Also remove a related test that has not been part of the unit tests since the
move (years).

7 years agoSort tempo map after legacy sections have been assigned a pulse
nick_m [Tue, 23 May 2017 01:41:36 +0000 (11:41 +1000)]
Sort tempo map after legacy sections have been assigned a pulse

7 years agoTempo sections with a BBT start XML node are never ramped
nick_m [Mon, 22 May 2017 23:54:30 +0000 (09:54 +1000)]
Tempo sections with a BBT start XML node are never ramped

7 years agoRemove unused header file in gtk2_ardour
Tim Mayberry [Sun, 11 Dec 2016 23:20:36 +0000 (09:20 +1000)]
Remove unused header file in gtk2_ardour

7 years agoRemove dead assignment in Editor::export_audio()
Tim Mayberry [Tue, 16 May 2017 09:04:18 +0000 (19:04 +1000)]
Remove dead assignment in Editor::export_audio()

7 years agoUse braces in BasicUI::jump_by_bars()
Tim Mayberry [Tue, 16 May 2017 01:04:37 +0000 (11:04 +1000)]
Use braces in BasicUI::jump_by_bars()

7 years agoUse braces in BasicUI::jump_by_seconds()
Tim Mayberry [Tue, 16 May 2017 00:49:05 +0000 (10:49 +1000)]
Use braces in BasicUI::jump_by_seconds()

7 years agoUse correct variable in BasicUI::jump_by_seconds
Tim Mayberry [Tue, 16 May 2017 00:41:39 +0000 (10:41 +1000)]
Use correct variable in BasicUI::jump_by_seconds

7 years agoRemove dead assignment in Editor::metric_get_bbt
Tim Mayberry [Tue, 16 May 2017 00:33:59 +0000 (10:33 +1000)]
Remove dead assignment in Editor::metric_get_bbt

7 years agoRemove dead assignment in MiniTimeline::draw_edge
Tim Mayberry [Tue, 16 May 2017 00:20:00 +0000 (10:20 +1000)]
Remove dead assignment in MiniTimeline::draw_edge

7 years agoFix failure to laod old tempo maps
nick_m [Mon, 22 May 2017 19:30:39 +0000 (05:30 +1000)]
Fix failure to laod old tempo maps

I suspect this happened after an api change.
Now, just use the position pair instead of a whole new variable.

7 years agoOSC: Further fixes so multiple controls can touch at once.
Len Ovens [Sat, 20 May 2017 17:17:31 +0000 (10:17 -0700)]
OSC: Further fixes so multiple controls can touch at once.

7 years agoOSC: fix c++98 mistake
Len Ovens [Sat, 20 May 2017 16:09:01 +0000 (09:09 -0700)]
OSC: fix c++98 mistake

7 years agoFix libhid compile with /recent/ libc (GNU_SOURCE)
Robin Gareus [Sat, 20 May 2017 10:38:49 +0000 (12:38 +0200)]
Fix libhid compile with /recent/ libc (GNU_SOURCE)

- strtok_r
- strdup
- wcsdup

7 years agoOSC: Catch case of surface sending fader move before touch
Len Ovens [Fri, 19 May 2017 22:48:36 +0000 (15:48 -0700)]
OSC: Catch case of surface sending fader move before touch

7 years agoOSC: Add fake timeout based touch
Len Ovens [Thu, 18 May 2017 22:25:15 +0000 (15:25 -0700)]
OSC: Add fake timeout based touch

7 years agoMCP: Fix issue with strip "select" buttons that stayed stuck on.
Ben Loftis [Wed, 17 May 2017 20:55:43 +0000 (15:55 -0500)]
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.

7 years agoMCP: map the well-known EQ knobs more explicitly, not heuristically.
Ben Loftis [Wed, 17 May 2017 20:53:14 +0000 (15:53 -0500)]
MCP: map the well-known EQ knobs more explicitly, not heuristically.

7 years agoOSC: Add /strip/fader/touch
Len Ovens [Tue, 16 May 2017 02:37:39 +0000 (19:37 -0700)]
OSC: Add /strip/fader/touch

7 years agoremove unused variable
Len Ovens [Tue, 16 May 2017 01:40:48 +0000 (18:40 -0700)]
remove unused variable

7 years agoSet Display Name for OSX/macOS
Robin Gareus [Mon, 15 May 2017 20:49:37 +0000 (22:49 +0200)]
Set Display Name for OSX/macOS

7 years agoOSC: added automation name feedback
Len Ovens [Mon, 15 May 2017 03:55:24 +0000 (20:55 -0700)]
OSC: added automation name feedback

7 years agoOSC: combine two identical if() statements
Len Ovens [Sun, 14 May 2017 02:28:33 +0000 (19:28 -0700)]
OSC: combine two identical if() statements

7 years agoIt might not be obvious why... but 'ARDOUR::ControlProtocol::name()' needs to be...
John Emmas [Mon, 15 May 2017 13:46:34 +0000 (14:46 +0100)]
It might not be obvious why... but 'ARDOUR::ControlProtocol::name()' needs to be a virtual function

Basically, libardour is calling functions from libardour_cp and vice versa. For example, libardour needs 'ARDOUR::ControlProtocol::name()' whereas ardour_cp needs 'ARDOUR::Route::soloed()' and various others. Ordinarily, this would require each library to get built before the other one! :-(

To get around this (in MSVC at least) one of the libraries must be forced to use late binding (e.g. by declaring its functions as 'virtual'). It looks like this is already being done for most of the other functions from 'ARDOUR::ControlProtocol', so let's do it for this function too...

7 years agoFix out-of-bounds waveform image rendering. 5.9
Robin Gareus [Sun, 14 May 2017 18:37:58 +0000 (20:37 +0200)]
Fix out-of-bounds waveform image rendering.

With large sample-rates and high-zoom-level the minimal request-size
or at least 1/10sed can exceed the max image size supported by cairo.
e.g. @192kSPS;  100ms = 19200 samples.
 * 1 sample/pixel, * 2 (left/right) = 38400px > 2^15px.

7 years agoSupport note name editing in midi list editor
Nil Geisweiller [Sat, 21 Jan 2017 22:38:54 +0000 (00:38 +0200)]
Support note name editing in midi list editor

7 years agoFix compiler warning of unused variable.
André Nusser [Fri, 12 May 2017 09:51:58 +0000 (11:51 +0200)]
Fix compiler warning of unused variable.

7 years agoAdd note name parser to convert to midi note number
Nil Geisweiller [Fri, 12 May 2017 18:27:56 +0000 (21:27 +0300)]
Add note name parser to convert to midi note number

Supports i18n, is case and whitespace insensitive for more resilent parsing.

7 years agoone more update to german translation
Edgar Aichinger [Sun, 14 May 2017 14:09:53 +0000 (16:09 +0200)]
one more update to german translation

7 years agoupdate german translation
Edgar Aichinger [Sun, 14 May 2017 13:29:27 +0000 (15:29 +0200)]
update german translation

7 years agoyet another stupid typo
Robin Gareus [Sun, 14 May 2017 13:15:10 +0000 (15:15 +0200)]
yet another stupid typo

7 years agoFix double "Tape" in Record Mode drop down when adding new track.
André Nusser [Sun, 14 May 2017 09:28:18 +0000 (11:28 +0200)]
Fix double "Tape" in Record Mode drop down when adding new track.

This bug probably also lead to "Tape" being shown in mixbus even
though it should not.

7 years agoFix use-after free (signal after deleting group)
Robin Gareus [Sun, 14 May 2017 09:59:15 +0000 (11:59 +0200)]
Fix use-after free (signal after deleting group)

7 years agoSanitize "well-known" ctrl API
Robin Gareus [Sat, 13 May 2017 22:16:02 +0000 (00:16 +0200)]
Sanitize "well-known" ctrl API

7 years agoOSC: make /*/automation more generic so other controls can be easily added
Len Ovens [Sat, 13 May 2017 17:15:02 +0000 (10:15 -0700)]
OSC: make /*/automation more generic so other controls can be easily added

7 years agoFix typos (thanks edogawa)
Robin Gareus [Sat, 13 May 2017 18:33:04 +0000 (20:33 +0200)]
Fix typos (thanks edogawa)

7 years agoThe #end should be #endif
Len Ovens [Sat, 13 May 2017 15:43:33 +0000 (08:43 -0700)]
The #end should be #endif

7 years agoMore tweaks to FP8 layout for 32C
Ben Loftis [Sat, 13 May 2017 12:54:08 +0000 (07:54 -0500)]
More tweaks to FP8 layout for 32C

7 years agoFix copy+paste error for mb32c filter freq.
Ben Loftis [Sat, 13 May 2017 12:26:55 +0000 (07:26 -0500)]
Fix copy+paste error for mb32c filter freq.

7 years agoUpdate FP8: new controllables, clarify 32C bell-shape labels
Robin Gareus [Sat, 13 May 2017 00:02:17 +0000 (02:02 +0200)]
Update FP8: new controllables, clarify 32C bell-shape labels

7 years agoamend efc2660f, well-known stripable controls:
Robin Gareus [Fri, 12 May 2017 23:54:27 +0000 (01:54 +0200)]
amend efc2660f, well-known stripable controls:

* consistent hpf/lpf controllables (actually hi/lo bell in 32C)
* HPT, LPF frequencies are exposed as EQ band
* don't expose filter ctrl for mixbuses/master

7 years agoUpdate Session::writable() during Session::save_as() when switching to copy
Tim Mayberry [Fri, 12 May 2017 22:57:58 +0000 (08:57 +1000)]
Update Session::writable() during Session::save_as() when switching to copy

Loading a read only Session then making a copy with Save As and switch was
not allowing new Session to be saved as writable state was not updated.

Resolves: #7352

7 years agoMidi map for Alesis QX25
Len Ovens [Fri, 12 May 2017 22:28:32 +0000 (15:28 -0700)]
Midi map for Alesis QX25

7 years agochange ControlProtocolManager protocol mutex into a RW lock.
Paul Davis [Fri, 12 May 2017 19:09:40 +0000 (20:09 +0100)]
change ControlProtocolManager protocol mutex into a RW lock.

Probably not gaining much in terms of contention, but there's really no reason to be using a mutex

7 years agodon't actually use a method from libardourcp inside libardour; use a PBD::Signal...
Paul Davis [Fri, 12 May 2017 16:49:09 +0000 (17:49 +0100)]
don't actually use a method from libardourcp inside libardour; use a PBD::Signal to avoid linker issues

7 years agoRemove cfgtool, it's not useful anymore
Robin Gareus [Fri, 12 May 2017 14:34:49 +0000 (16:34 +0200)]
Remove cfgtool, it's not useful anymore

cfgtool was used to dump the current config defaults into ./system_config
on the system it runs. It was manually invoked (usually on Linux) and
hence produced incorrect settings for Windows and OSX variants.

Since ea4bbcf5 Ardour binaries bundle a minimal empty system_config,
and the built-in defaults are used (correct for every platform).

7 years agoOSC: GUI label change
Len Ovens [Fri, 12 May 2017 04:18:04 +0000 (21:18 -0700)]
OSC: GUI label change

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