nick_m [Thu, 8 Jun 2017 13:11:56 +0000 (23:11 +1000)]
Do not duplicate note id in copy constructor
This fixes selection undo after copy-dragging notes, but there
are probably other cases where duplicate note ids may cause problems.
nick_m [Thu, 8 Jun 2017 12:39:41 +0000 (22:39 +1000)]
Remove debugging from TempoTest::qnDistanceTestRamp ()
nick_m [Thu, 8 Jun 2017 12:18:57 +0000 (22:18 +1000)]
Fix uninitialised tempo section variable
Should fix 7390.
Robin Gareus [Thu, 8 Jun 2017 11:33:35 +0000 (13:33 +0200)]
Fix rec-box w/count-in
Since
478f26b2ad, transport_rolling() is only true when actually rolling.
Count-in is a no-roll process (don't move playhead, no playhead UI
position interpolation
55b8b448).
But transport isn't exactly stopped either (preparing to roll), so
during count-in transport_stopped() == transport_rolling() == false.
Robin Gareus [Thu, 8 Jun 2017 11:22:43 +0000 (13:22 +0200)]
Update LuaDialog example script to include File/Folder selection
Robin Gareus [Thu, 8 Jun 2017 11:22:00 +0000 (13:22 +0200)]
Add a file-chooser LuaDialog Widget
Paul Davis [Wed, 7 Jun 2017 16:14:44 +0000 (12:14 -0400)]
cut buffer must not mess around with libardour selection
Fixes range mode selection/cut/copy that would previously clear track selection
Damien Zammit [Wed, 7 Jun 2017 16:04:12 +0000 (02:04 +1000)]
a-EQ: DSP bugfix
Previously there were large spurious spikes in the signal when
the bandwidth parameter was adjusted on a pure sine tone
for the peaking circuits. This has been *greatly* reduced if not
eliminated by fixing a typo in two of the equations.
Len Ovens [Tue, 6 Jun 2017 14:35:24 +0000 (07:35 -0700)]
OSC: add optional paging to sends in select.
Nil Geisweiller [Sun, 4 Jun 2017 18:34:48 +0000 (21:34 +0300)]
Fix a-EQ when parameter changes are very slow
If the parameters change too slowly the filter may never get updated. Indeed,
in spite of v_f0, v_g or v_bw being updated, set_params may never be called,
thus v_filter never updated.
Daniel Sheeler [Fri, 2 Jun 2017 22:23:00 +0000 (17:23 -0500)]
add route dialog now has "Add" and "Add and Close" buttons. "Add" keeps dialog open so user can add multiple templates.
Robin Gareus [Sat, 3 Jun 2017 11:29:28 +0000 (13:29 +0200)]
Apply VCA master gain automation to Amp (Fader, Trim)
Robin Gareus [Sat, 3 Jun 2017 11:18:31 +0000 (13:18 +0200)]
Add infrastructure for evaluating VCA automation curves
Robin Gareus [Sat, 3 Jun 2017 10:31:59 +0000 (12:31 +0200)]
amend
67f9f6fd: no recursive ReaderLock
Robin Gareus [Sat, 3 Jun 2017 10:30:26 +0000 (12:30 +0200)]
add const-ness: Evaluating a curve does not change it.
Note that the ControlList's lock and cache are already mutable.
Robin Gareus [Sat, 3 Jun 2017 10:26:33 +0000 (12:26 +0200)]
Add a scratch buffer for automation.
Useful as temporary buffer: This allows a controllable to
get a master's automation-curve and combine it with its own
(gain, trim, send) automation buffer.
Robin Gareus [Fri, 2 Jun 2017 22:19:35 +0000 (00:19 +0200)]
NO-OP: whitespace
Robin Gareus [Fri, 2 Jun 2017 16:21:31 +0000 (18:21 +0200)]
Import Dialog is Window. Dialog Esc behavior needs to be emulated.
Robin Gareus [Thu, 1 Jun 2017 09:57:08 +0000 (11:57 +0200)]
Remove "Close" button from import-dialog (prefer WM close button)
Paul Davis [Wed, 31 May 2017 17:04:03 +0000 (13:04 -0400)]
if actively recording, prevent interaction between mouse and audio clock widget(s)
Len Ovens [Wed, 31 May 2017 15:38:55 +0000 (08:38 -0700)]
OSC: Some surfaces may use float for ssid. Accept this too.
Len Ovens [Wed, 31 May 2017 14:15:50 +0000 (07:15 -0700)]
OSC: check controllable exists before using
Robin Gareus [Tue, 30 May 2017 13:15:30 +0000 (15:15 +0200)]
Add Lua bindings for VCAs and VCAManager
Robin Gareus [Tue, 30 May 2017 13:13:37 +0000 (15:13 +0200)]
Prepare for automation control master
Basic infrastructure to allow VCA automation and Trim automation:
look up events during automation playback.
Robin Gareus [Mon, 29 May 2017 21:48:17 +0000 (23:48 +0200)]
Credit where credit is due
Robin Gareus [Mon, 29 May 2017 21:45:16 +0000 (23:45 +0200)]
NO-OP: whitespace
Daniel Sheeler [Sun, 28 May 2017 20:46:22 +0000 (15:46 -0500)]
duplicate routes start off unsoloed to avoid issues related to upstream / downstream buses
Paul Davis [Mon, 29 May 2017 19:35:03 +0000 (15:35 -0400)]
when creating a new session after working on one, the "Cancel" button should be a quit button.
This avoids ending up with a null Session pointer in the GUI (#7369)
Robin Gareus [Mon, 29 May 2017 11:37:06 +0000 (13:37 +0200)]
Allow export presets for 176.4KHz -- "Ardour6: music for bats"
Alexandre Prokoudine [Thu, 25 May 2017 23:47:21 +0000 (02:47 +0300)]
Update Russian translation
Tim Mayberry [Fri, 26 May 2017 00:50:08 +0000 (10:50 +1000)]
Use string concatenation and PBD::to_string in EventTypeMap::to_symbol()
Avoid using PBD::string_compose for serialization as correct behaviour depends
on the setting of the global C++ locale.
Tim Mayberry [Fri, 23 Sep 2016 13:05:44 +0000 (23:05 +1000)]
Remove normalization of property names from libpbd xml code
It may have been OK to add this code temporarily at this low level, but as it
was introduced in 2008, this change is made with the assumption that any
Sessions that were affected have been re-saved since then with corrected
property names and that "normalization" is no longer necessary.
Timing results before changes:
XMLTest::testPerfMediumXMLDocumentTiming
Create : Count: 10 Min: 30375 Max: 48253 Total: 431727 Avg: 43172 (43 msecs)
Write : Count: 10 Min: 42553 Max: 49163 Total: 453353 Avg: 45335 (45 msecs)
Read : Count: 10 Min: 70307 Max: 75987 Total: 734923 Avg: 73492 (73 msecs)
XMLTest::testPerfLargeXMLDocumentTiming
Create : Count: 10 Min: 154486 Max: 307856 Total:
2678989 Avg: 267898 (267 msecs)
Write : Count: 10 Min: 304273 Max: 343274 Total:
3169158 Avg: 316915 (316 msecs)
Read : Count: 10 Min: 496920 Max: 541394 Total:
5260410 Avg: 526041 (526 msecs)
Timing results after changes:
XMLTest::testPerfMediumXMLDocumentTiming
Create : Count: 10 Min: 21437 Max: 39749 Total: 348622 Avg: 34862 (34 msecs)
Write : Count: 10 Min: 42320 Max: 49989 Total: 446135 Avg: 44613 (44 msecs)
Read : Count: 10 Min: 63252 Max: 68389 Total: 660841 Avg: 66084 (66 msecs)
XMLTest::testPerfLargeXMLDocumentTiming
Create : Count: 10 Min: 113458 Max: 263225 Total:
2215595 Avg: 221559 (221 msecs)
Write : Count: 10 Min: 305439 Max: 339986 Total:
3150697 Avg: 315069 (315 msecs)
Read : Count: 10 Min: 447560 Max: 488121 Total:
4698903 Avg: 469890 (469 msecs)
Tim Mayberry [Thu, 25 May 2017 12:02:32 +0000 (22:02 +1000)]
Use correct property name in generic MIDI surface
Fixes restoring the feedback interval property, but as the mutator/setter
method doesn't seem to be used this change should have no affect.
Tim Mayberry [Thu, 25 May 2017 11:39:59 +0000 (21:39 +1000)]
Use correct names when setting MidiTrack properties
These were changed in the XMLProperty ctor and they now match the names used in
MidiTrack::set_state()
Tim Mayberry [Thu, 25 May 2017 11:06:36 +0000 (21:06 +1000)]
Remove attempt to retrieve invalid Meterbridge properties
The property names with underscores are "normalized" to replace the underscores
with hyphens in the XMLProperty constructor from within Meterbridge::get_state
and so have always been written with hyphens.
Tim Mayberry [Thu, 25 May 2017 10:52:34 +0000 (20:52 +1000)]
Use correct property names in Meterbridge::get_state()
These property names have been "normalized"/changed to use a hyphen in the
XMLProperty ctor since 2008. That is before the Meterbridge existed so there
should be no files existing that contain these properties with underscores.
Tim Mayberry [Thu, 25 May 2017 10:42:45 +0000 (20:42 +1000)]
Use correct property names for Editor transport controllable state
These are normalized in the PBD::XMLProperty ctor, which is why
Editor::get_transport_controllable_state() uses the hyphenated names to
retrieve the properties and will not result in any state format change.
Robin Gareus [Thu, 25 May 2017 12:10:14 +0000 (14:10 +0200)]
Always create a deep copy of MIDI regions when copying playlists.
Robin Gareus [Thu, 25 May 2017 11:48:55 +0000 (13:48 +0200)]
Pretty print control-outputs in generic-UI
Robin Gareus [Thu, 25 May 2017 11:36:33 +0000 (13:36 +0200)]
Implement basic AU parameter-printing
(don't leave buf uninitialized)
Robin Gareus [Thu, 25 May 2017 11:34:11 +0000 (13:34 +0200)]
Include ParameterDescriptor in read-only control output
Len Ovens [Wed, 24 May 2017 20:58:49 +0000 (13:58 -0700)]
OSC: fix return value for successful touch
Len Ovens [Wed, 24 May 2017 14:37:21 +0000 (07:37 -0700)]
OSC: Added lpf and hpf controls for freq,enable and slope
Len Ovens [Wed, 24 May 2017 00:16:42 +0000 (17:16 -0700)]
OSC add feedback for extra comp and eq controls
Len Ovens [Tue, 23 May 2017 22:14:31 +0000 (15:14 -0700)]
OSC - make /strip/list accept a parameter like everything else
John Emmas [Tue, 23 May 2017 08:28:44 +0000 (09:28 +0100)]
Accommodate recently removed source(s) in our MSVC project (gtk2_ardour)
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).
nick_m [Tue, 23 May 2017 01:41:36 +0000 (11:41 +1000)]
Sort tempo map after legacy sections have been assigned a pulse
nick_m [Mon, 22 May 2017 23:54:30 +0000 (09:54 +1000)]
Tempo sections with a BBT start XML node are never ramped
Tim Mayberry [Sun, 11 Dec 2016 23:20:36 +0000 (09:20 +1000)]
Remove unused header file in gtk2_ardour
Tim Mayberry [Tue, 16 May 2017 09:04:18 +0000 (19:04 +1000)]
Remove dead assignment in Editor::export_audio()
Tim Mayberry [Tue, 16 May 2017 01:04:37 +0000 (11:04 +1000)]
Use braces in BasicUI::jump_by_bars()
Tim Mayberry [Tue, 16 May 2017 00:49:05 +0000 (10:49 +1000)]
Use braces 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
Tim Mayberry [Tue, 16 May 2017 00:33:59 +0000 (10:33 +1000)]
Remove dead assignment in Editor::metric_get_bbt
Tim Mayberry [Tue, 16 May 2017 00:20:00 +0000 (10:20 +1000)]
Remove dead assignment in MiniTimeline::draw_edge
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.
Len Ovens [Sat, 20 May 2017 17:17:31 +0000 (10:17 -0700)]
OSC: Further fixes so multiple controls can touch at once.
Len Ovens [Sat, 20 May 2017 16:09:01 +0000 (09:09 -0700)]
OSC: fix c++98 mistake
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
Len Ovens [Fri, 19 May 2017 22:48:36 +0000 (15:48 -0700)]
OSC: Catch case of surface sending fader move before touch
Len Ovens [Thu, 18 May 2017 22:25:15 +0000 (15:25 -0700)]
OSC: Add fake timeout based touch
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.
Ben Loftis [Wed, 17 May 2017 20:53:14 +0000 (15:53 -0500)]
MCP: map the well-known EQ knobs more explicitly, not heuristically.
Len Ovens [Tue, 16 May 2017 02:37:39 +0000 (19:37 -0700)]
OSC: Add /strip/fader/touch
Len Ovens [Tue, 16 May 2017 01:40:48 +0000 (18:40 -0700)]
remove unused variable
Robin Gareus [Mon, 15 May 2017 20:49:37 +0000 (22:49 +0200)]
Set Display Name for OSX/macOS
Len Ovens [Mon, 15 May 2017 03:55:24 +0000 (20:55 -0700)]
OSC: added automation name feedback
Len Ovens [Sun, 14 May 2017 02:28:33 +0000 (19:28 -0700)]
OSC: combine two identical if() statements
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...
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.
Nil Geisweiller [Sat, 21 Jan 2017 22:38:54 +0000 (00:38 +0200)]
Support note name editing in midi list editor
André Nusser [Fri, 12 May 2017 09:51:58 +0000 (11:51 +0200)]
Fix compiler warning of unused variable.
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.
Edgar Aichinger [Sun, 14 May 2017 14:09:53 +0000 (16:09 +0200)]
one more update to german translation
Edgar Aichinger [Sun, 14 May 2017 13:29:27 +0000 (15:29 +0200)]
update german translation
Robin Gareus [Sun, 14 May 2017 13:15:10 +0000 (15:15 +0200)]
yet another stupid typo
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.
Robin Gareus [Sun, 14 May 2017 09:59:15 +0000 (11:59 +0200)]
Fix use-after free (signal after deleting group)
Robin Gareus [Sat, 13 May 2017 22:16:02 +0000 (00:16 +0200)]
Sanitize "well-known" ctrl API
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
Robin Gareus [Sat, 13 May 2017 18:33:04 +0000 (20:33 +0200)]
Fix typos (thanks edogawa)
Len Ovens [Sat, 13 May 2017 15:43:33 +0000 (08:43 -0700)]
The #end should be #endif
Ben Loftis [Sat, 13 May 2017 12:54:08 +0000 (07:54 -0500)]
More tweaks to FP8 layout for 32C
Ben Loftis [Sat, 13 May 2017 12:26:55 +0000 (07:26 -0500)]
Fix copy+paste error for mb32c filter freq.
Robin Gareus [Sat, 13 May 2017 00:02:17 +0000 (02:02 +0200)]
Update FP8: new controllables, clarify 32C bell-shape labels
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
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
Len Ovens [Fri, 12 May 2017 22:28:32 +0000 (15:28 -0700)]
Midi map for Alesis QX25
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
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
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).
Len Ovens [Fri, 12 May 2017 04:18:04 +0000 (21:18 -0700)]
OSC: GUI label change
Len Ovens [Fri, 12 May 2017 03:46:16 +0000 (20:46 -0700)]
OSC: Create new surface struct for ALL incoming messages
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.
Ben Loftis [Wed, 10 May 2017 16:31:03 +0000 (11:31 -0500)]
MCP: Mixbus32C: Restore missing filter controls to the Dyn page.
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.
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.
Ben Loftis [Fri, 5 May 2017 21:39:15 +0000 (16:39 -0500)]
Mackie MCP: Assign some F-keys for default user profile.
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.