Paul Davis [Sat, 14 Nov 2015 15:35:07 +0000 (10:35 -0500)]
expose count widgets for duplicate track dialog
Paul Davis [Sat, 14 Nov 2015 15:29:50 +0000 (10:29 -0500)]
partial dialog to control track duplication
Robin Gareus [Fri, 13 Nov 2015 23:36:19 +0000 (17:36 -0600)]
linux installer tweak:
check architecture before gcc4/5 compat
Paul Davis [Fri, 13 Nov 2015 21:14:42 +0000 (16:14 -0500)]
initial/partial implementation of duplicate track/bus
Paul Davis [Fri, 13 Nov 2015 21:14:09 +0000 (16:14 -0500)]
substantial part of infrastructure required for track/bus duplication
This includes removing the removal of ID values in XML, and its replacement with
thread-local forcing of ID resets, implemented in a previous commit
Paul Davis [Fri, 13 Nov 2015 21:12:53 +0000 (16:12 -0500)]
fix return value from Route::save_as_template()
nick_m [Fri, 13 Nov 2015 16:14:23 +0000 (03:14 +1100)]
Fix #6673 - another prematurely closed undo transaction.
- add_midi_region used to commit, resulting in
_region->set_position() adding a command when there was
no current transaction. The sub-bug here was that repeatedly
calling set_position() on the new region resulted in nonsensical
automation movement after the drag.
nick_m [Fri, 13 Nov 2015 16:05:53 +0000 (03:05 +1100)]
Ardour::Region - add method required to fix #6673.
Robin Gareus [Thu, 12 Nov 2015 15:49:40 +0000 (09:49 -0600)]
fix edge-case in Dummy-backend random number generator initialization
Paul Davis [Thu, 12 Nov 2015 15:24:41 +0000 (10:24 -0500)]
provide a mechanism to force ID regeneration/reset in PBD::Stateful when settingthe ID object from XML or string sources
Paul Davis [Thu, 12 Nov 2015 14:46:14 +0000 (09:46 -0500)]
remove requirement for transport speed to be 1.0 when generating click (metronome)
This is experimental and may not work
Tim Mayberry [Sat, 7 Nov 2015 05:26:27 +0000 (15:26 +1000)]
Use XMLNode::remove_child_and_delete in Stateful::add_extra_xml
As the node being replaced has been added with XMLNode::add_child_nocopy the
node also needs to be deleted or a memory leak occurs.
Tim Mayberry [Fri, 6 Nov 2015 12:16:27 +0000 (22:16 +1000)]
Use constructor initialization list in Stateful class
Tim Mayberry [Fri, 6 Nov 2015 10:04:48 +0000 (20:04 +1000)]
Replace spaces with tabs in pbd/stateful.h
Paul Davis [Mon, 9 Nov 2015 13:24:35 +0000 (08:24 -0500)]
more correct semantics for reserved IO name checking
Paul Davis [Sun, 8 Nov 2015 03:23:23 +0000 (22:23 -0500)]
slightly improved fix for reserved name handling
Paul Davis [Sun, 8 Nov 2015 03:15:59 +0000 (22:15 -0500)]
don't force rename of reserved route/IO names if the name isn't taken yet
Len Ovens [Sat, 7 Nov 2015 03:28:24 +0000 (19:28 -0800)]
Mackie Control: Initialize vpot assignment on start-up.
Len Ovens [Sat, 7 Nov 2015 00:18:13 +0000 (16:18 -0800)]
Mackie Control: Add send functionality to vpot assign section.
John Emmas [Fri, 6 Nov 2015 08:22:58 +0000 (08:22 +0000)]
Add some newly introduced sources to our MSVC project (libardour)
Paul Davis [Wed, 4 Nov 2015 22:53:15 +0000 (17:53 -0500)]
Merge branch 'chaot4-feature_open_dialog_before_chat'
André Nusser [Mon, 2 Nov 2015 21:51:45 +0000 (22:51 +0100)]
Show info dialog when opening chat via Help -> Chat.
This should clarify for users that in IRC you post your question and
wait, and not leave after a few minutes.
Paul Davis [Wed, 4 Nov 2015 22:52:10 +0000 (17:52 -0500)]
Merge branch 'chaot4-f_overwrite_dialog_improvement'
André Nusser [Sun, 1 Nov 2015 21:24:02 +0000 (22:24 +0100)]
Remove explicit positioning of overwrite_file_dialog.
ArdourDialog takes care of this.
André Nusser [Sun, 1 Nov 2015 21:23:01 +0000 (22:23 +0100)]
Fix ordering of buttons in midi export dialog.
[Cancel] [Save] instead of [Save] [Cancel].
André Nusser [Sun, 1 Nov 2015 20:00:05 +0000 (21:00 +0100)]
Improve behavior of overwrite_file_dialog.
- Make overwrite file dialogs transient.
- Cancelling the overwrite dialog doesn't close initial dialog.
André Nusser [Sun, 1 Nov 2015 20:56:09 +0000 (21:56 +0100)]
no-op; reordering of class forward declarations in editor.h.
Paul Davis [Wed, 4 Nov 2015 22:50:24 +0000 (17:50 -0500)]
Merge branch 'chaot4-fix_duplicate_fencepost_error'
André Nusser [Wed, 28 Oct 2015 21:09:39 +0000 (22:09 +0100)]
Fix fencepost error in duplicate_some_regions. Adapt start position.
André Nusser [Wed, 28 Oct 2015 21:06:46 +0000 (22:06 +0100)]
Make duplicate start at position, not position + 1. (libs part)
Paul Davis [Wed, 4 Nov 2015 22:49:24 +0000 (17:49 -0500)]
Merge branch 'chaot4-fix_click_gain_entry_enter'
André Nusser [Wed, 4 Nov 2015 22:10:27 +0000 (23:10 +0100)]
Let Entry of FaderOption react on ENTER and allow only numerical input.
This enables setting click gain and solo gain in the preferences using
the text field. -- fixes #6668
Paul Davis [Wed, 4 Nov 2015 12:58:10 +0000 (07:58 -0500)]
add required header
Robin Gareus [Tue, 3 Nov 2015 18:20:00 +0000 (19:20 +0100)]
libardour wrapper for EBUr128 VAMP plugin
Robin Gareus [Tue, 3 Nov 2015 06:51:39 +0000 (07:51 +0100)]
add basic VAMP plugin for EBUr128 analysis
FeatureSet will be extended to report detailed analysis.
Robin Gareus [Tue, 3 Nov 2015 07:02:22 +0000 (08:02 +0100)]
GUI checkbox to disable plugins
for the benefit of Windows and OSX users and everyone else who does
not run Ardour from the commandline.
Robin Gareus [Tue, 3 Nov 2015 18:16:06 +0000 (19:16 +0100)]
update midi channel button display when mode changes
nick_m [Mon, 2 Nov 2015 18:25:15 +0000 (05:25 +1100)]
Clean up selection history in Editor destructor.
nick_m [Mon, 2 Nov 2015 17:18:09 +0000 (04:18 +1100)]
AutomationList::set_automation_state () only needs a memento for toggled.
John Emmas [Mon, 2 Nov 2015 11:27:43 +0000 (11:27 +0000)]
Class 'PhaseControllable' needs to be importable since it gets referenced outside of libardour
Specifically, 'PhaseControllable::channel()' and 'PhaseControllable::set_channel()' get called from 'mackie/strip.cc'
At some point we might also need to do this for the related classes (SoloControllable and MuteControllable) although it doesn't seem to be needed right at this moment.
Robin Gareus [Mon, 2 Nov 2015 04:15:55 +0000 (05:15 +0100)]
fix crash when cleaning up canvas items
Backport from Mixbus. In Ardour this does not currently matter
since there is no top-level canvas destroyed top-down.
...
Editor::session_going_away
MixerStrip::~MixerStrip
MixbusStripCanvas::~MixbusStripCanvas
ArdourCanvas::GtkCanvas::~GtkCanvas
ArdourCanvas::Canvas::~Canvas
ArdourCanvas::Root::~Root
ArdourCanvas::Container::~Container
ArdourCanvas::Item::~Item
ArdourCanvas::Item::clear_items
GtkCanvas::item_going_away()
queue_draw_item_area()
..expose can take place async to garbage collection: crash in one of the
items.
Len Ovens [Mon, 2 Nov 2015 03:25:45 +0000 (19:25 -0800)]
Don't handle possible phase change if no audio channels in mackie control
Len Ovens [Sun, 1 Nov 2015 23:30:36 +0000 (15:30 -0800)]
Fix Mackie surface phase control for flip and more than one audio channel.
Len Ovens [Sun, 1 Nov 2015 21:35:02 +0000 (13:35 -0800)]
Added Phase control mackie controls as part of the Trim (track) vpot assignment.
nick_m [Sun, 1 Nov 2015 18:34:09 +0000 (05:34 +1100)]
Fix missing undo for record mute automation.
nick_m [Sun, 1 Nov 2015 15:12:54 +0000 (02:12 +1100)]
Clean up _before XMLNode in AutomationList if no automation write occurred.
nick_m [Sun, 1 Nov 2015 12:21:08 +0000 (23:21 +1100)]
Automation watch sets position for new write pass when transport stopped.
nick_m [Sun, 1 Nov 2015 12:13:40 +0000 (23:13 +1100)]
Revert starting write pass only in write mode when transport located.
nick_m [Sat, 31 Oct 2015 19:06:31 +0000 (06:06 +1100)]
Grey out unavailable note context menu items rather than hiding them.
nick_m [Sat, 31 Oct 2015 18:22:55 +0000 (05:22 +1100)]
Clarify context menu for midi notes.
- right click on a note selects it if unselected or selection empty.
- note_context_menu is shown as described in #6348
nick_m [Sat, 31 Oct 2015 14:43:13 +0000 (01:43 +1100)]
Add comment to MRV snap workaround.
nick_m [Fri, 30 Oct 2015 19:02:54 +0000 (06:02 +1100)]
Fix snap modifiers not working on notes when grid is set to off.
nick_m [Fri, 30 Oct 2015 16:54:18 +0000 (03:54 +1100)]
Handle paste from non-toggled to boolean automation track.
- sort-of fixes #6431
Robin Gareus [Fri, 30 Oct 2015 14:54:54 +0000 (15:54 +0100)]
suspend timers while flushing the gtk-event queue.
This fixes an issues where Ardour never completes to flush the GUI event
queue due to rapid updates for meters and similar events.
ARDOUR_UI::load_session() never returned and the complete session
ran inside Gtkmm2ext::UI::flush_pending(), this later causes a crash
at exit.
as side effect, this also speeds up session load.
Robin Gareus [Fri, 30 Oct 2015 14:50:46 +0000 (15:50 +0100)]
RAII Timer Suspend wrapper
Robin Gareus [Fri, 30 Oct 2015 14:50:12 +0000 (15:50 +0100)]
add API to suspend timers signal emission.
nick_m [Fri, 30 Oct 2015 12:43:09 +0000 (23:43 +1100)]
"End" -> "end" in end point trim command name.
nick_m [Fri, 30 Oct 2015 10:14:16 +0000 (21:14 +1100)]
Use automation line's frame of reference for y position.
- removes the need for 'pixel hunting' wrt NAME_HIGHLIGHT_SIZE.
- new control points generated by clicking on a line are placed
where the verbose canvas cursor says they are.
nick_m [Thu, 29 Oct 2015 17:01:44 +0000 (04:01 +1100)]
Dont do duplocate calls to MidiRegionView::trim_front_ending () in TrimDrag.
- fixes #6658
- also leaves undo history alone if point trim does nothing.
nick_m [Thu, 29 Oct 2015 13:01:33 +0000 (00:01 +1100)]
Fix reversed ratio in last commit.
nick_m [Thu, 29 Oct 2015 12:37:01 +0000 (23:37 +1100)]
Start line drag using canvas y coords.
- fixes #5759
Robin Gareus [Wed, 28 Oct 2015 20:25:01 +0000 (21:25 +0100)]
rework
dbf28e3 (hidden parameters)
Robin Gareus [Wed, 28 Oct 2015 18:00:59 +0000 (19:00 +0100)]
note to self: at least test compilation before git push.
Robin Gareus [Wed, 28 Oct 2015 17:58:46 +0000 (18:58 +0100)]
don't display hidden automation-controls.
Robin Gareus [Wed, 28 Oct 2015 13:11:17 +0000 (14:11 +0100)]
fix JACK/windows compilation
Robin Gareus [Wed, 28 Oct 2015 13:09:13 +0000 (14:09 +0100)]
fix embedding AU/carbon UIs
the UI shows top/left (not centered, no resize) more detail work to come.
Robin Gareus [Wed, 28 Oct 2015 13:02:57 +0000 (14:02 +0100)]
Revert "potential fix for some AU plugin UIs not displaying"
This reverts commit
e8fe35d96ed13f3df0e2f03e2f347e908064a31d.
Robin Gareus [Wed, 28 Oct 2015 03:06:14 +0000 (04:06 +0100)]
notify LV2 GUIs about port-changes when loading presets
Robin Gareus [Wed, 28 Oct 2015 00:19:44 +0000 (01:19 +0100)]
use weak-jack's jack_port_rename wrapper
This avoids "[ERROR]: JACK: jack_port_set_name: deprecated".
if libjack does not have jack_port_rename(), weak_libjack.def provides
a fallback using jack_port_set_name().
Robin Gareus [Tue, 27 Oct 2015 22:11:45 +0000 (23:11 +0100)]
potential fix for some AU plugin UIs not displaying
looks like not all AU plugin GUIs redraw themselves if
[win setAutodisplay:1] is unnot.
A user reported that some Waves plugins and Shattered Glass 32bit AUs
are blank in 4.4 on 32bit OSX.
see also
5eefdf7 and earlier AU/API changes.
Robin Gareus [Tue, 27 Oct 2015 19:53:51 +0000 (20:53 +0100)]
another log-scale automation fix
nick_m [Tue, 27 Oct 2015 18:33:43 +0000 (05:33 +1100)]
LineDrag fixes wrt initial drag position and display of y value.
nick_m [Tue, 27 Oct 2015 16:14:10 +0000 (03:14 +1100)]
AutomationLine::drag_motion () returns any clamped fractions correctly.
nick_m [Tue, 27 Oct 2015 15:46:03 +0000 (02:46 +1100)]
Fix incorrectly placed control points (y-axis). fixes #6647.
- also use the return from AutomationLine::drag_motion () in
anticipation of it correctly reporting its clamping to
AutomationRangeDrag.
Robin Gareus [Tue, 27 Oct 2015 10:34:12 +0000 (11:34 +0100)]
linux-package: add gcc5 suffix to the file-name
Robin Gareus [Tue, 27 Oct 2015 10:15:34 +0000 (11:15 +0100)]
fun with valgrind
Robin Gareus [Mon, 26 Oct 2015 12:32:51 +0000 (13:32 +0100)]
and another LV2-1.0.0 compat ifdef
Robin Gareus [Mon, 26 Oct 2015 12:24:23 +0000 (13:24 +0100)]
amend
311adde (LV2-1.0.0 compat)
Robin Gareus [Sun, 25 Oct 2015 16:46:39 +0000 (17:46 +0100)]
properly translatable plural forms
Len Ovens [Sun, 25 Oct 2015 15:22:02 +0000 (08:22 -0700)]
Changed MCP trim detection to match method used in GUI.
nick_m [Sat, 24 Oct 2015 18:26:44 +0000 (05:26 +1100)]
Markers use the selection change stack.
nick_m [Sat, 24 Oct 2015 17:12:38 +0000 (04:12 +1100)]
Amend last commit.
nick_m [Sat, 24 Oct 2015 17:07:19 +0000 (04:07 +1100)]
Set a larger minimum size for recent session scrollers.
Robin Gareus [Fri, 23 Oct 2015 21:34:21 +0000 (23:34 +0200)]
back to mjpeg (revert
2cb511e and
3f157f9) for now
There is anecdotal evidence that using mpeg4 as codec leads to issues
(xjadeo indexes and gets stuck at 99%, likely in libavcodec).
The main motivation for using mpeg4 is/was windows/VFAT 2GB file limit
and improved video quality. This will have to be revisited.
Robin Gareus [Fri, 23 Oct 2015 21:28:25 +0000 (23:28 +0200)]
Delete SystemExec in the main process thread.
Robin Gareus [Fri, 23 Oct 2015 21:27:15 +0000 (23:27 +0200)]
fix crash on SystemExec::Terminate
if Terminated() connects in the same thread and deletes the class itself
the closure in interposer_thread() can fail.
nick_m [Fri, 23 Oct 2015 17:59:57 +0000 (04:59 +1100)]
Relative snap for markers.
- also removes many uninitialised variable warnings in
editor_drag.cc found by cppcheck.
Robin Gareus [Fri, 23 Oct 2015 16:58:17 +0000 (18:58 +0200)]
add ifdefs for LV2-1.0.0 compat
nick_m [Fri, 23 Oct 2015 14:19:00 +0000 (01:19 +1100)]
ResizeNoteDrag selection click behaves as NoteDrag's does.
nick_m [Fri, 23 Oct 2015 13:07:03 +0000 (00:07 +1100)]
Clear point selection when uniquely selecting a note.
- Also fix selection undo when creating notes w/control
in MouseContent mode.
Len Ovens [Thu, 22 Oct 2015 22:30:34 +0000 (15:30 -0700)]
Make mackie control view mode save bank for all modes.
Also moved duplicated code to one function.
Robin Gareus [Thu, 22 Oct 2015 19:05:20 +0000 (21:05 +0200)]
mime-type definition is version independent.
File glob "*.ardour" -> application/x-ardour is defined in ardour.xml
nick_m [Thu, 22 Oct 2015 17:03:16 +0000 (04:03 +1100)]
Use lwrcase_dirname for desktop file names and substitutions.
Robin Gareus [Thu, 22 Oct 2015 16:07:55 +0000 (18:07 +0200)]
set executable and icon name in desktop-file
Also opt for version-agnostic mime-type (file-format version
is independent of program-version and of file-extension)
Tim Mayberry [Thu, 22 Oct 2015 11:56:02 +0000 (21:56 +1000)]
Remove GhostRegion::CatchDeletion signal to reduce session close times
Currently when a GhostRegion is deleted by its "parent" RegionView it emits the
static GhostRegion::CatchDeletion signal which is connected to the
RegionView::remove_ghost method of every RegionView instance.
With a static GhostRegion::CatchDeletion signal a particular test session
causes 31 Million calls of RegionView::remove_ghost on Session deletion and the
session takes 70 seconds to close with a debug build.
The lifetime of a ghost region is tied to both the TimeAxisView(TAV) and
RegionView(RV) in that when a RegionView is deleted all GhostRegion instances
associated with the RegionView should be deleted or when a TimeAxisView is
deleted all ghost regions that are contained in the view should be deleted.
This means that there needs to be notification between GhostRegion and both
classes. Instead of using a signal for this as we know there are only two
listeners and GhostRegion already holds a reference to the TimeAxisView, also
take a reference to the parent RegionView in the GhostRegion constructor and
use it to notify the RegionView when GhostRegion destructor is called so it can
drop any references it holds.
Using a direct function call in the GhostRegion destructor to notify the
TimeAxisView and RegionView "parents" brings the unload/close time down for the
test session from 70 seconds to 4.5 seconds.
The GhostRegion also references canvas items that are added to the TimeAxisView
canvas group or at least a canvas group that it manages. So when the
TimeAxisView is destroyed and the canvas group that is the parent of those
items is destroyed, the GhostRegion's canvas items will also be
deleted/destroyed by the parent canvas item/group. This means the GhostRegions
must be destroyed when the TimeAxisView they are contained in is destroyed or
there will be dangling references to canvas items that have already been
deleted and trying to delete them again will be bad.
Tim Mayberry [Mon, 19 Oct 2015 10:51:01 +0000 (20:51 +1000)]
Enable i18n for info/error messages in MidiPatchManager
Tim Mayberry [Mon, 19 Oct 2015 10:23:33 +0000 (20:23 +1000)]
Only parse additional Session midnam files on Session load
When loading a Session add the Session patchfiles directory to the
MidiPatchManager search path and only process/parse the files for that
directory rather than refreshing/reparsing all the files. Similarly for unload,
just unload the devices that are from the Session specific midnam files instead
of removing the path and refreshing/reparsing all the files.
This will not remove the "system" midnam files as they are always added first
and duplicates from the session patchfiles directory are ignored.
Tim Mayberry [Mon, 19 Oct 2015 10:18:16 +0000 (20:18 +1000)]
Store the file path when constructing MidiNameDocument
This is so we can compare and see if we have already parsed the file
Tim Mayberry [Mon, 19 Oct 2015 04:52:48 +0000 (14:52 +1000)]
Decouple Session from MidiPatchManager and reduce parsing of midnam xml files
The MidiPatchManager only requires a reference to the session to get the path
to the Session midnam directory so change it so that the path is passed to
MidiPatchManager::add_search_path on Session construction and removed on
Session Destruction. This will also make it easier to test and reduce compile
times etc.
For the common case where the Session doesn't have a Session specific midnam
patch files directory(for instance a new session) it won't cause a refresh and
reparsing of all the midnam files. This saves about 2 seconds to load a Session
on my machine(fast machine with SSD), or about half the time spent in the
Session constructor for a new session.
There is still going to be that initial cost of parsing the midnam files when
the first session is created after starting Ardour. Options to remove that
would be to parse the files asynchronously and or use a faster xml
parser(eventually), neither of which seem worth doing at this stage.
This change will cause a performance regression for the uncommon case where a
Session with Session specific midnam files is unloaded and then another Session
with Session specific midnam files is loaded as it will cause the common midnam
files in midi_patch_path to be parsed twice(unload and load).
Tim Mayberry [Mon, 19 Oct 2015 04:46:50 +0000 (14:46 +1000)]
Add PBD::Searchpath::contains method to check if a Searchpath contains a path