In theory the GUI is single threaded and registration of
events happens only when a plugin GUI is constructed or
destroyed (which happens in the GUI thread).
Except it seems that if a plugin uses reference counting,
un-registration can happen later.
When closing a session without loading or creating a new one,
Ardour's main window and menu are accessible.
Menu > Session > Properties : crash w/o a session
Menu > Window > Transport Masters : any interaction causes a crash.
Some plugins correct their own size when resized which can lead
to endlessly growing GUIs. In particular this issue exists
if Ardour's plugin-toolbar forces a plugin to grow in size to fill
the allocated space. While the plugin aims for fixed aspect-ratio.
This will need a proper solution involving VST's checkSizeConstraint,
however GTK+2 does not have an appropriate API...
Users should be able to see the playlist they're about to switch to
while the dialog is up. Additionally, if the user cancels, the change
should be nullified and the original playlist used.
Fixes issue where the export dmeo noise level was not being applied
correctly because ExportFormatDialog::update_demo_noise_selection was
not being called
This adds a few exceptions to the general preference
"Sound MIDI notes as they are being selected in the editor".
* Select all no longer plays _all_ notes.
* Remain silent when selection is inverted or a range is selected.
* Play no sound when a saved selection is restored on session load.
Simply removing the items from the rec_mon_table still leaves
a space since the table itself is still packed and the
global-vpacker uses a spacing of 2px.
So the rec-mon table has to be unpacked. explicit hide/show
calls in set_route() are also not helpful since the widget is
managed by a VisibilityGroup.
On tracks the bottom row of each mixer-strip has three buttons.
Two are provided by the gain-meter (automation, meter-point),
and the size of those is set in GainMeterBase (current 15x15px).
The track-group button size was left unspecified.
The master-bus only has the gain-meter buttons, and hence was
less tall compared to tracks.
Previously the bindings were given to the Region/* equivalents and made insensitive if there was no selected region.
Given that we have specific actions for nudge-playhead-*, and the ones in Region/ will always work on regions
if there are any selected regions, this provides a better set of possible actions, even if the naming is not
totally consistent.
This supersedes 0708cdb6b4, an explicit `name_label.show()`
is not needed. The inactive label was missing an explicit call
to show.
This also fixes MIDI track MIDNAM Selector visibility
When ripple moving a region all the subsequent regions will be moved, next
region in the playlist after the dragged one first, last region of the playlist
last.
Thus, when an automation point is ripple moved along a region past the starting
point of the next region, it will be moved again along with the next region as
the move of the next region occurs after moving the automation point.
This fix reverses the sequence of the ripple moves, last region in the playlist
will be moved first, the next after the dragged one, last. So no temporary
overlap of regions will occur.
* use dedicated sort-order (fix issue with order being forgotten
when results are filtered)
* add support for recent and most-used plugins
* add a text-entry search filter for favorites
* remove tag-filter drop-down
* ignore v5 instant.xml plugin sort order
The ShouldLoad() signal is handled by flush_pending(). This is the first
time that normal application flow can be interrupted in ::starting()
after app->ready().
This calls ::load_from_application_api(), which in turn calls
startup_fsm->handle_path(). This sets off the complete initalization
process, loading the session, and concludes with ::sfsm_response(),
where there is a call to `delete startup_fsm;`
Previously execution continued in StartupFSM::start() which caused a
crash.
This can happen if the recent sessions file has new lines with no
characters on it which can be the direct loading sessions with wacky
names. For example, one that has a carriage return or newline in it.
This is used with string_compose ("detach-%1") etc,
and "preferences" may be translated by gtk or 3rd party translations
(Ardour itself only has upper-case "Preferences" as translatable
string)
See also 72af571f0c, ATAV for Processors cannot be identified by
Parameter alone. STAV uses a std::map<Evoral::Parameter, ..>
that is only valid for unique parameters.
The map cannot store Evoral::Parameter(PluginAutomation)
because it its not unique.
This fixes an issue with using
StripableTimeAxisView::_automation_tracks
for PluginAutomation. The latter is indexed per-plugin in
RouteTimeAxisView::processor_automation
Evoral::Parameter(PluginAutomation) is only unique per plugin,
and hence cannot be used in STAV.
Actually I'm not an author of this theme. I've decided to try... if there is no objection. Added comments to < Color > section.
I use this picture as a reference:
In the original file there was an excess line (176) - deleted in new version:
176 <ColorAlias name="lua action button: fill" alias="theme:bg"/>
177 <ColorAlias name="lua action button: fill" alias="widget:bg"/>
a screenshot:
update_video_timeline() is called after destroying the
video_timeline instance at exit.
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1 __GI_abort () at abort.c:79
#2 __assert_fail_base at assert.c:92
#3 __GI___assert_fail at assert.c:101
#4 Editor::update_video_timeline(bool) (this=0x55a10a25a060, flush=false) at ../gtk2_ardour/editor_videotimeline.cc:57
#5 Editor::visual_changer(Editor::VisualChange const&) (this=0x55a10a25a060, vc=...) at ../gtk2_ardour/editor.cc:4746
#6 Editor::idle_visual_changer() (this=0x55a10a25a060) at ../gtk2_ardour/editor.cc:4687
#7 Editor::_idle_visual_changer(void*) (arg=0x55a10a25a060) at ../gtk2_ardour/editor.cc:4645
#8 g_main_context_dispatch () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#9 () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#10 g_main_loop_run () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#11 gtk_main () at /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#12 Gtkmm2ext::UI::run(Receiver&) (this=0x55a105ababe0, old_receiver=...) at ../libs/gtkmm2ext/gtk_ui.cc:293
#13 main(int, char**) (argc=1, argv=0x7fffcd806dc8) at ../gtk2_ardour/main.cc:437
Special cases to load-or-create session via NSM_Client::command_open
This bypasses most of the startup-FSM for NSM. Either a session
is loaded or created. JACK is mandatory.
Translators: if the msgid looks like foo|bar then in general the foo is just
there to provide context to clarify the potentially ambiguous nature of bar.
The translated form should not contain the foo or the |
Deleting the group first, directly removes child items
without triggering Canvas::item_changed() for every item.
This significantly speeds up closing sessions (or deleting tracks)
with lots of automation events.
Resampling or copying files during import can take a long time.
If a save, or pending save is called while importing,
it is postponed until after import has completed.
Corrected colors closer to a5.12 version (compared with existing a6 theme). Added comments to < Color > section.
In the original file there was an excess line (177) - deleted in new version:
177 <ColorAlias name="lua action button: fill" alias="theme:bg"/>
178<ColorAlias name="lua action button: fill" alias="widget:bg"/>
video:
https://vimeo.com/419410940
++more contrasting&bright (compared with existing theme). Added comments to < Color > section.
In the original file there was an excess line (177) - deleted in new version:
177 <ColorAlias name="lua action button: fill" alias="theme:bg"/>
178<ColorAlias name="lua action button: fill" alias="widget:bg"/>
video:
https://vimeo.com/419249079
++more contrasting&bright (compared with existing theme). Added comments to < Color > section.
In the original file there was an excess line (177) - deleted in new version:
177 <ColorAlias name="lua action button: fill" alias="theme:bg"/>
178 <ColorAlias name="lua action button: fill" alias="widget:bg"/>
2min video:
https://vimeo.com/416959800
This removes expensive markup parsing and directly sets
timecode and delta-time as plain text. The Labels use the
main clock's color schema, and dedicated ArdourMono font.
Use Fonts and Color to help discriminate columns:
Values that come from the TC Master are now in black boxen (ToDo: use gtk theming)
Reduce the number of columns, to improve legibility:
Consolidate the Slave's current TC chase value and Delta (offset from Ardour current TC)
Consolidate the last message received, and how recently it was received
Remove Collect checkboxes (just disconnect the port if you don't want it to run)