13
0
Commit Graph

13323 Commits

Author SHA1 Message Date
6120d4d43a
Improve RouteUI API consistency
This is an effective NO-OP
 * Some methods have been re-named to improve consistency
 * Duplicate function calls were removed:
   RouteUI::set_route() already updates mute/solo
   MixerStrip does not have to update it again
 * virtual methods have been protected
2020-03-02 19:18:57 +01:00
14c670869c
Fix polarity invert buttons (amend d6315618da)
ConfigurationChanged() is emitted after processors have been
reconfigured (e.g adding/removing a plugin).
The button state needs to be updated after setup.

Bfore d6315618da this worked because _route->io_changed()
is emitted before the processors are re-configured, and
phase_control()->Changed() triggered an update after that.

PS. The motivation for d6315618da are Mixbusses. They have no input
channels, but a Return processor before the polarity processor.
2020-03-02 19:18:50 +01:00
7f11270c96
Fix UI insert/send renaming
This fixes an issue when trying to rename a send or insert
to the current name (no-rename).

::rename_processor() checks if io_name_is_legal(),
Since the current name is already in use, a numeric-suffix
was added.
2020-03-02 17:58:03 +01:00
8d6f6266d2 unfinished fix for handling desktop/NSM specifying session to load
More work needed to fix requirement in StartupFSM that ::load_from_application_api()
is called before ::start()
2020-03-01 21:36:07 -07:00
dc195f265d
Fix Luadoc build (follow up 2e9ac80e9, 5794d21a) 2020-03-01 21:26:43 +01:00
2b13cfa67c no pre-release warning dialog if beyond pre0 2020-02-29 09:33:10 -07:00
003e68edd2
Display recent session-load errors in the GUI
Dumping errors to stderr only is not very useful. Particularly not
on Windows and MacOS.
Even though a user may not be able to address the issue, this
can lead to better reports vs just printing "corrupt state".
2020-02-28 07:32:17 +01:00
1af5f37e46
Restore visible automation lanes (#7914)
On session re-load only automation lanes with events were displayed,
regardless of visibility state. This allowed for inconsistent
state (menu showed them as visible even if they were not).
2020-02-28 02:25:57 +01:00
54911a0ee2
Fix duplicate control-ID when copying processors or proc state
Ideally we'd use a "retain ID when present", so that GUI object
state of automation lanes and inline controls will be retained.
2020-02-28 00:59:21 +01:00
8710a2d943
Dialog default to cancel (#7915)
There are various ways to cancel a dialog. Only checking for
RESPONSE_CANCEL is not sufficient. e.g. Esc causes a delete-event.

 * Gtk::RESPONSE_CLOSE
 * Gtk::RESPONSE_REJECT
 * Gtk::RESPONSE_DELETE_EVENT
 * Gtk::RESPONSE_CANCEL
 * Gtk::RESPONSE_NO

Among others this fixes "Clicking session > open,
then hitting ESC opens the currently selected folder and session"
2020-02-27 23:27:42 +01:00
e5c819956a
Punch/Loop GUI control sensitivity 2020-02-27 22:25:37 +01:00
André Nusser
d1302ae934
And removing even more unused forward declarations. 2020-02-26 20:18:58 +01:00
a886f2bfcb
Cleanup SourceList: remove unused copy/pasted region-list code 2020-02-25 16:17:00 +01:00
f158d2064d
NO-OP: whitespace 2020-02-25 16:17:00 +01:00
589437c74a
SourceList: Drop references as requested 2020-02-25 16:17:00 +01:00
3a9a9f247f
Clear import-status shared-ptr<> after use
Previously "Sequence files" set import_status.track and never
reset() the shared pointer. This resulted in various follow up
issues.
2020-02-25 02:37:52 +01:00
4262d701eb
Remove GUI thread x-run reset on engine re-start
This has been superseded by the previous commit, doing this
independently from the GTK GUI.
2020-02-24 22:22:09 +01:00
22e5374389 Always set the natural position timestamp when importing audio files.
If the file has a timestamp, it should be set in the region during import.
This keeps the BWF timestamp from being lost and allows the region context
menu item "Move to original Position" to work.

It does not affect where the region will be positioned during import. That
still follows the import dialog menu selection (playhead, session start,
etc). It just maintains data that the user can decided to use if needed.

This change also allows files to be imported to the source list and then
later placed on the timeline in the correct timestamped position.
2020-02-24 13:16:32 -06:00
7eb16db628
Default to device reported systemic latency 2020-02-24 04:25:42 +01:00
54c4d3adc5
Clean up top-level source tree
Collect architecture independent data in 'share' subfolder.
This also matches the install path
2020-02-23 16:21:55 +01:00
2945e6ee23 Foldback: Sync nav buttons when a new foldback bus is added 2020-02-22 16:56:44 -06:00
768cd1cb56
Allow to use websocket ctrl-surface from source-tree 2020-02-22 23:51:03 +01:00
4dc74813ef avoid setting midnam-model-name in GUI properties when there are no device modes for that model 2020-02-20 00:26:29 -07:00
7f2a59ca66
Fix Latency GUI numeric entry 2020-02-19 16:58:06 +01:00
4f9a91cab8 Prompt user when deleting a VCA (amends 01c6f5)
Editor::remove_tracks expected the VCA to be selected, but right-click does not force selection in a VCA strip.
2020-02-18 20:41:23 -06:00
d6315618da Enumerate the polarity buttons from the polarity processor itself, not the Input count. 2020-02-18 20:15:05 -06:00
01c6f55867 Prompt user before removing a VCA in the mixer window. 2020-02-18 20:14:00 -06:00
60a2406056
GUI Dialog to inform the user about missing files
So far this is only used for MIDI, missing audio files are
already handled by asking a user to locate them.
The same approach doesn't work for MIDI, since there cannot be
externally referenced (embedded) .mid files (since MIDI is destructive).
2020-02-18 01:29:35 +01:00
2ac90f5598
LV2: disable unofficial LV2UI_Request_Parameter
This API is not official, and the upcoming official API differs.
The source-code is left in-place since most of it will be
re-usable as-is, regardless.
2020-02-15 14:15:29 +01:00
5794d21a76
Fix cross-compile linking (arm-linux ld)
Explicitly specify required libraries (waf does no longer
forward .uselib dependencies of libraries used by .use).
This leads to undefined symbols.
2020-02-14 00:20:45 +01:00
72bf12219e
M: Make edit_aux_send insensitive
Mixbus does not have a working aux-panner and also no "Aux" button
on Busses.
2020-02-13 22:25:32 +01:00
f29e5ea7ab
Leave processor box sensitive when editing aux-sends
This is required to toggle the strip to revert from aux-view
to the main route using the aux-send processor itself.

Discuss:
Perhaps this should be reverted, and ProcessorBox::edit_aux_send()
be removed: It is currently possible to create various
inconsistent mixer-states.

* use "Aux" on a Bus, then double-click some Internal-Send to
  revert strips. But Aux remains active
* Removing sends while "Aux" is active does not disable Aux.

If the processor box was insensitive those issues won't be present.
However it is convenient to use double-click on the editor-mixer to
access a send's panner ...
2020-02-13 22:24:24 +01:00
0d1eb8c96c expand comment 2020-02-11 17:40:38 -07:00
a48a2b26de remove unnecessary code
There's no reason to store the first device mode in a gui property if the model is also not a gui property
2020-02-11 17:40:07 -07:00
9d60197ffb remove unnecessary code
If there's no GUI property for the MIDNAM model name, and the plugin has no MIDNAM, there's no reason to set the property to the default

It will pick up the default ("Generic") during update_patch_selector() calling into model_changed
2020-02-11 14:16:47 -07:00
ca28404a2a NOOP: line unwrapping and vertical spacing 2020-02-11 13:59:05 -07:00
de74cca6b8 further attempts to rationalize MIDNAM mess
Attempt to re-use GUI property for MIDNAM device mode, and if it doesn't exist, use the first from the model's device mode list.

Also require at least one device mode in the MIDNAM file (via assert) - consider anything else to be malformed
2020-02-11 13:41:44 -07:00
beaa6a7ae4 pt_import: Bump thread pool constant from 64 to 2048 to prevent import crash 2020-02-09 17:55:48 +11:00
d5c1ad805d NOOP: add whitespace/blank line 2020-02-07 12:20:11 -07:00
46277acb40 Fix incorrect assignment of MIDNAM device mode 2020-02-07 12:20:11 -07:00
e93150cb3f NOOP: remove line wrapping 2020-02-07 12:20:11 -07:00
8242478da5 try to fix awful confusion and misbehavior for plugin-provided MIDNAM situations
We do not store the MIDNAM model as a GUIObject property if the using the plugin-provided MIDNAM. Selecting a different MIDNAM for
the plugin should now result in that choice being saved/restored correctly.

This all feels crazily complicated, but I don't want to change more of the architecture at this time
2020-02-06 14:43:58 -07:00
55d158816e NOOP: avoid unnecessary and distracting line wrapping 2020-02-06 14:43:58 -07:00
39e0c0a084 add AxisView::remove_gui_property() 2020-02-06 14:43:58 -07:00
c791d5970f add GUIObjectState::remove_property() 2020-02-06 14:43:58 -07:00
Nikolaus Gullotta
a13fabf344 Resize session dialog back to initial height and width on "back"
This fixes an issue where the size of the window stayed much larger
than its content if there are no sessions in the session search path
after attempting to make a new session and then pressing "back"
2020-02-06 14:45:09 -06:00
ee43db8b54 revert/change part of a666429d12 so that user-selected non-plugin MIDNAM model names are still shown (they were already used) 2020-02-05 12:53:15 -07:00
be45193f3f fix old bug from 2007 (bbf4175713) in which a return statement was accidentally (presumably) dropped 2020-02-05 12:53:15 -07:00
44e55c501e
Add some const'ness 2020-01-30 23:35:37 +01:00
d72b44b5a4
Fix scripted/meta session templates 2020-01-30 18:09:01 +01:00
Andreas Müller
015d4d3642
Find fmt-binding in out-of-tree building
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2020-01-29 19:41:12 +01:00
eb7297e2fc
Remove duplicate separators from context menu 2020-01-28 23:38:02 +01:00
b21bab3a8c
Don't allow to deactivate master 2020-01-28 23:37:10 +01:00
6dfee0b1d2
Amend 87af9fb (fix context menu, don't allow to remove master) 2020-01-28 23:17:21 +01:00
a430f65aa3
Initialize monitor-section output button
When loading a session the monitor-connection is made before
the GUI is initialized, the output button did not reflect
the actual connection.
2020-01-28 22:58:14 +01:00
87af9fb820
Consolidate Mixer-strip sensitivity
* Use a single method to set mixer-strip widget sensitivity
* Update context-menu to only allow show actions that can
  currently be performed, depending on active/inactive state.
* Mark all control elements of in-active strips as insenstive
  except those required to re-enable the route.
* Also update processor-box and solo-button when showing Aux

Special case Mixbus. Mixbus already shows a "Insensitive" label,
and Mixbus-channelstrip element sensitivity remains to be
implemented before using this mechanism.
2020-01-28 22:22:57 +01:00
b2051d98fd
Clarify pending-state message
Previously this dialog was mainly used for crashes during
recording. Now it is also used for backup saves in general.
2020-01-28 17:29:36 +01:00
e6ce5a611c shortest note length after a drag-trim is 1 tick, not 1/512 beats 2020-01-28 00:06:12 -07:00
fd62b38f8d correct computation of new note length after a front-drag-trim 2020-01-28 00:05:44 -07:00
10978a2f58 rearrange MIDI preferences "tab" to include ports and remove Buffering 2020-01-28 00:05:05 -07:00
4148d2cee4 fix bad re-ordering in ARDOUR_UI::set_session() that changed when transport-related actions are set sensitive (compared to v5)
This specific change has broader scope than the bare minimum required - we could just move/replicate transport_ctrl.set_session()
after session_sensitive_actions have had their sensitivity set to true. But this "seems" like a more thorough solution,
in that it sets all relevant actions groups before doing anythng else.
2020-01-27 18:24:30 -07:00
7e899b4199
Restore engine state for auto-start 2020-01-27 22:27:29 +01:00
6aac8b2c8a
Fix another clang-scan warning 2020-01-27 03:32:18 +01:00
cf4d7387d2
Use a sensible min length for default session-duration
If the user tries to set the Start or End marker on an empty session,
apply some sensible defaults for the resulting session range.
2020-01-26 19:36:23 +01:00
cbfbe65128 disconnect from audio/MIDI setup dialog signal response when done with it 2020-01-25 10:27:46 -07:00
David Runge
2e9ac80e99
Towards waf python 2+3 support 2020-01-25 04:07:37 +01:00
dfe712c564
Consistent GTK Look/Feel
gtk/gtksettings.c uses different default themes for
Window and Linux/Mac which results in subtle layout differences,
In particular TreeView headers and Tabs.

"MS-Windows" style is hardcoded in gtk msw_rc_style.c
and ardour's clearlooks.rc starts with different defaults.

This forces the default style to a non-existent one.
(might also help with https://tracker.ardour.org/view.php?id=5605)
2020-01-25 03:56:10 +01:00
7c2ec72495
Revert "add styling specifics for TreeViews so that checkboxes are properly visible"
This reverts commit 82cf46d781.
2020-01-25 03:40:04 +01:00
70588baeac handle engine failure between audio/MIDI setup and end of plugin scan 2020-01-24 15:56:37 -07:00
13ecf633a3 after handling the first click on the audio/MIDI setup, mark it insensitive to prevent subsequent (dbl) clicks changing engine state 2020-01-24 15:56:37 -07:00
a416829379 make audio/MIDI setup dialog use ArdourDialog::_sensitive 2020-01-24 15:56:37 -07:00
f2ee30c0ec add ArdourDialog::set_ui_sensitive() to provide a way to mark an arbitrary ArdourDialog as "should not respond to user input" 2020-01-24 15:56:37 -07:00
9ee8b3f176 theme-ing: fix tooltip and knob surround colors on caineville,clear-gray themes 2020-01-24 15:56:55 -06:00
11d4d3455f theme-ing: replace missing feedback button color 2020-01-24 15:42:15 -06:00
639d9cc0bc theme-ing: fix generic-ui knob color, and remove knob surround gradients 2020-01-24 15:35:10 -06:00
cbbbf76934
Fix Eno discography 2020-01-24 21:15:57 +01:00
201d7cb2fd
Backport Mixbus change (offer gap as preference)
Mixbus defaults this to on (4px), Ardour to off (0px)
2020-01-24 01:42:05 +01:00
6f4f28928d Export Dialog: catch major changes, and mark the session dirty. Otherwise changes can be silently lost. 2020-01-23 17:16:41 -06:00
215d5d556f handle possible failure of a region rename 2020-01-23 14:25:38 -07:00
24f8a90278 use a better "legalize for path" method when exporting
The goal is to be compatible with filesystems everywhere
2020-01-23 14:25:38 -07:00
c8faadee4b Fit Selection (Vertical): if we cant fit all selected tracks, report that to the user. But still fit what we can. 2020-01-23 14:11:18 -06:00
142ce953da Split Select-All-Tracks into 2 appropriately named actions
Existing function select-all-tracks is now renamed select-all-visible-lanes, to match its behavior.

New function select-all-tracks will select all Tracks, as the name implies.

To maintain consistency for those users who actively used select-all-tracks,
  the default shortcut ctrl+t  will continue calling select-all-visible-lanes.
2020-01-22 10:33:15 -06:00
81c3bf175a
Keep track/bus number visible when disabling track 2020-01-22 01:45:18 +01:00
6914671736
Propagate ::route_active_changed() methods 2020-01-22 01:35:18 +01:00
Nikolaus Gullotta
db03860924 Fix sessions not building according to template
AFAICT, this was broken by either 5beeca2 or 242774e
2020-01-21 09:05:22 -06:00
d8d737adc4 Make it more obvious when a track is Inactive
Inactive tracks will now hide all controls and display only the track name
 in parenthesis.

Color-change is not sufficient by itself to distinguish an inactive track
 from an active one  (consider the case of just 2 tracks...)
2020-01-20 16:03:22 -06:00
7966d02534 Change tape-machine-mode to auto-input-does-talkback (gtk part) 2020-01-20 13:34:05 -06:00
42630f145a include a LocateTransportDisposition argument when Editor initially locates
Not clear if the editor really needs to make this call at all
2020-01-20 11:14:28 -07:00
cb825a61ba
Remember implicit InlineControl visibility 2020-01-19 00:42:00 +01:00
47767738b9 rename DoTheRightThing to RollIfAppropriate 2020-01-18 08:49:18 -07:00
3c00048b0c Session::request_locate() takes a tri-valued second argument for "roll-after-locate"
This allows callers to defer logic about auto-play/current rolling state and more to TransportFSM where it
can be cnentralized and is less ambiguous
2020-01-18 08:49:18 -07:00
0ad9c3de1a
Fix another stuck splash screen
Don't allow dialogs to re-create the splash only to hide it.
2020-01-17 18:52:33 +01:00
01c709ef0e Change default preferences as discussed on IRC today 2020-01-15 17:23:00 -06:00
a62df60760
Replace some Gtk:MessageDialog with Ardour's variant
This fixes some issues with stuck splash screen early on.
2020-01-15 22:08:42 +01:00
82cf46d781 add styling specifics for TreeViews so that checkboxes are properly visible 2020-01-14 17:53:55 -07:00
2d5a3013e0 fix 03c4335c1e to use the correct test for zero length
That commit used the dangerous Beats::operator== (int) comparison, which only campares the beat portion
2020-01-14 14:35:08 -07:00
f771679ade Fix thinkos in cubasish theme 2020-01-14 12:17:11 -06:00
06567c7b82 Recover caineville theme 2020-01-14 12:03:09 -06:00
a8a2f9df12 Recover clear_gray theme 2020-01-14 12:03:09 -06:00
2579e70f46 remove debug output 2020-01-13 23:19:52 -07:00
9f474953fd prevent everything except the name column from changing selection in EditorRoutes 2020-01-13 23:13:14 -07:00
659683c686 store some/most of the TreeViewColumn pointers for EditorRoutes in the parent object 2020-01-13 23:13:14 -07:00
bca825e515
NO-OP: whitespace 2020-01-14 00:52:24 +01:00
2c9b301912 Recover Unastudia theme. 2020-01-13 17:12:55 -06:00
70c53cba49 Recover cubasish theme 2020-01-13 17:12:55 -06:00
3f92b8152a Recover Blueberry Milk theme 2020-01-13 17:12:55 -06:00
cb156db99d Sort palette colors by name only 2020-01-13 17:12:55 -06:00
7f80883eb1 Add more clues to port themes to new paradigm 2020-01-13 17:12:55 -06:00
87f79b3891 Fix more default theme colors 2020-01-13 17:12:55 -06:00
ed5ec7cb3f Tweak the tooltip for PDC button 2020-01-13 17:12:55 -06:00
8112d6472e
Drop references held by any GUI Lua script after execution 2020-01-13 20:25:00 +01:00
fa2c935581
Fix re-packing of toolbar meter
This fixes a gtk-warning when loading a session from a
running instance:
IA__gtk_table_attach: assertion 'child->parent == NULL' failed"
2020-01-13 20:17:58 +01:00
868d752b4f Processor list should use the same bg color as other lists 2020-01-12 18:13:57 -06:00
6d62352673 Add missing theme elements, and fix some thinkos 2020-01-12 18:13:52 -06:00
30553a2675 Apply some missing widget names 2020-01-12 18:13:47 -06:00
66e24f3333
Fix preference pane to access for external-sync 2020-01-12 18:05:16 +01:00
6487d6c62b
Fix external timecode GUI display
Only show mis/matching TC if FPS has been detected and
timecode master is locked.
2020-01-12 18:04:12 +01:00
03c4335c1e fix drawing of zero-length notes
Note that the result is too narrow to be manipulated, though it can be moved
2020-01-11 10:57:21 -07:00
929bd7c8ac use Note::end_time() == numeric_limits<Beats>::max() as the indicator that a note is in-process w.r.t. recording
We used to use length() == 0, but this clashes with actual zero-length notes
2020-01-11 10:57:21 -07:00
Carl Hetherington
1f14a9d9a5 Scale the port matrix with the GUI/font-scaling setting. 2020-01-11 01:17:42 +01:00
a883afbd64
Clarify insert-time option 2020-01-10 18:59:09 +01:00
abc6f24d10
Stop engine for new session creation
This restores Ardour5 behavior and works around a missing "OK"
button in the engine-dialog.
2020-01-10 18:11:42 +01:00
afe52fbff5
Special case JACK, sample-rate cannot be changed for new sessions 2020-01-10 02:14:30 +01:00
242774eada
Allow to configure sample-rate of new sessions
When creating a session from the Editor (after Session > Close,
or directly via Session > New) the engine-dialog needs to be displayed
to allow configuring the sample-rate.

This also consolidates scripted session setup: meta_session_setup()
is now called from build_session(), instead of all callers.
2020-01-09 23:53:07 +01:00
0771717dd5
Remove unused variable 2020-01-09 18:21:48 +01:00
2ae327fa8f prevent MIDI note starts being drawn earlier than their region start 2020-01-08 10:22:08 -07:00
c59c46a70a
Mini-timeline, use explicit cairo-group to consolidate rendering 2020-01-08 04:24:51 +01:00
c6493aa81b
Fix samples_as_time_string formatting 2020-01-08 00:41:08 +01:00
f15297e24c
Amend 8a5cbb8: fix variable-names and comments 2020-01-07 01:14:42 +01:00
Nikolaus Gullotta
8a5cbb8510
Reenable the correct sort column and type when redisplaying regions 2020-01-06 16:08:55 -06:00
7570b9a594
Add Lua bindings for UIConfiguration variables 2020-01-06 01:30:19 +01:00
dba7421153
Allow public access to the editor-mixer-strip
This is currently used by Mixbus to sync visibility of switches on
the editor-mixer-strip with the main mixer.
2020-01-05 19:22:55 +01:00
dce09c6136
Pixel-pushing: editor-meter size and alignment
Previously the "reset peaks" button expanded to incredible height
when the GUI was scaled. Now the meter fills available space instead.
2020-01-04 23:36:17 +01:00
96316cb6b2
Unconditionally save instant.xml on session-close
This forces saving session-specific GUI settings (Playhead
position, zoom/scroll with stationary PH, window and pane
positions, etc.

While many GUI operations immediately cause an instant.xml
save, changing the playhead-pos in particular does not, nor
mark the session as modified.

This fixes an issue:
 1. open session
 2. move playhead
 3. close session
 4. re-open session, expect playhead at position from (2)
2020-01-02 19:08:26 +01:00
c07e13b7ac
Fix crash when X11 is not available for VST UIs
This should not happen -- VST gui_event_loop is only
started if LXVST_XDisplay is not NULL.
However the eventloop itself checks if LXVST_XDisplay is set,
so this might happen with headless builds that still have
access to a display, or due to some async event.
2020-01-01 21:56:12 +01:00
f427e38c31
Bump (C) year: the year of Ardour 2020-01-01 13:47:22 +01:00
b8460441fb restore early-return from fixup_bundle_environment() on macOS if not running from a bundle
Mistakenly removed while getting stdout/stderr logging to work
2019-12-30 10:36:04 -07:00
2f167e6163
Fix formatting samplecnt_t (aka int64_t aka long long int) 2019-12-30 16:05:25 +01:00
354995289d move Transport Masters prefs tab under Transport, with LTC and MTC as subtabs 2019-12-29 19:38:04 -07:00
49df7abd0b
NO-OP: whitespace 2019-12-27 19:35:03 +01:00
26cc05a1bf
Consolidate mini-timeline rendering 2019-12-27 19:35:02 +01:00
1809818c94
Preferences/Config changes for image-surface settings 2019-12-27 19:35:02 +01:00
b942eecc9c
Vkeybd: force release notes on panic
If key(s) are still being pressed, a key-repeat will re-trigger
the most recently pressed note (depending on keyboard settings).
2019-12-26 12:17:20 +01:00
b228dce1c1
Use weak-ptr for source added/removed signals (2/2) 2019-12-25 18:00:57 +01:00
24b46d1f75
Vkeybd: improve velocity dropdown usability
Limit velocity dropdown to a subset of most used values, but
allow to select any value using mouse-wheel
2019-12-25 13:15:32 +01:00
bc776eac97
Vkeybd: use ArdourWidgets for all GUI elements
Remove Gtk widgets and improve look&feel consistency.
2019-12-24 18:15:09 +01:00
799ec6a8f1 use new method in MidiPatchManager to use MIDNAM data when setting a MidiTimeAxisView 2019-12-23 10:27:00 -07:00
ecdbd1df92
Vkeybd: numeric only spinboxes for octave and velocity
based on a patch by Alex Mitchell
2019-12-19 23:02:19 +01:00
d0668721d5
Vkeybd simplification
* remove Y-axis dependent velocity (difference between
  black/white keys made this not very usable
* remove Bank/Patch selector (there are already three other
  Bank/Patch UIs
* move keyboard-layout selection into Preferences > MIDI
2019-12-19 18:57:40 +01:00
01291f3e0f
Vkeybd: re-layout, prepare config & patch pane removal 2019-12-19 18:45:49 +01:00
89ca6e151a
Vkeybd: add a mod-wheel 2019-12-19 18:45:49 +01:00
0aa3c58705
Remove VST plugin discovery option from first-start wizard
Because (a) it makes the startup seem "very long and complicated",
and (b) sometimes fails or crashes weirdly,
or (c) a plugin dialog gets hidden behind the main window, or ...

Overall the first impression of the program may be horrible when
the first step includes discovering VST plugins.
2019-12-18 15:04:41 +01:00
a9f6484816
Fix DSP load sorting with inactive plugins 2019-12-18 00:54:11 +01:00
9c6d9324bd
VKeybd: exponential pitch-wheel/bend interpolation 2019-12-17 16:47:46 +01:00
7fe9fb1f4e
Indicate current Disk-I/O setting 2019-12-17 01:53:33 +01:00
Nikolaus Gullotta
ce54e342ed
Add additional roll check in transport_record
Previously there was no check for roll in case Session::Enabled this
can cause issues with "latched-record-enable" and "transport-roll"
2019-12-16 13:06:04 -06:00
9ddc4fcce9
Vkeybd: fix octave up/down direction, speed up pitch-bend 2019-12-16 15:42:42 +01:00
322e6e08c4
Vkeybd: grab all key-events and use timer instead of key-repeat
This fixes an issue with arrow-keys (up/down, left/right). Those
were previously only handled when the Virtual Keyboard window itself
had focus.

Also key-repeat for pitch-bend is now ignored and a dedicated timer
is used to queue events. This fixes an issue with the first repeat
taking longer than successive ones, and makes this feature independent
of any desktop user settings.
2019-12-16 15:02:39 +01:00
2add730263
Vkeybd: Experiment with key-repeat for pitch-bend 2019-12-16 02:30:42 +01:00
6fa14a1b47
VKeybd: Pass on primary (Ctrl/Cmd) shortcuts
This allows Ctrl/Cmd+s (save) and Ctrl/Cmd+z (undo) etc shortcuts
to work, even though the virtual-keyboard is visible.
2019-12-15 20:34:14 +01:00
e1c0f99ef2
VKeybd: add Up/Down as alternative Pitch-bend shortcuts 2019-12-15 17:30:25 +01:00
f969d4fc31
Vkeybd: Add tooltip to pitchbend control 2019-12-15 14:06:00 +01:00
a31fde491a
VKeybd: Pitchebend sprung mode and keyboard-shortcuts
This unconditionally returns the pitch-bend wheel when used
by mouse-drag/drop.  Mouse-wheel retains the "wheel" mode.

<F1>-<F4> key-bindings have been added to jump to discrete values
2019-12-15 14:06:00 +01:00
1881d73f43
Remove unused API (no more unconditional splash pop-back) 2019-12-14 23:44:04 +01:00
2b55d6dce3
First batch of MessageDialog replacements 2019-12-14 23:44:01 +01:00
901bf1ab80
Add a MessageDialog wrapper that handles the splash-screen 2019-12-14 23:26:25 +01:00
d574b6ff36 Enable Menu > Quit to work again after startup on macOS 2019-12-14 10:36:31 -07:00
38f692f0c0 cleanup and recomment StartupFSM::load_from_application_api() 2019-12-14 10:27:44 -07:00
346c2ee3fe remove unnecessary calls to Application::ready 2019-12-14 10:27:10 -07:00
dd509d1eca move i/o redirect for macOS bundle before no_app_nap() and comment 2019-12-14 10:22:25 -07:00
ffc7bd122e emit Application::ready() at a suitable time during startup
This causes macOS to deliver an "openFile" event which allows us
to function correctly when started by a click on a .ardour file
2019-12-14 10:20:55 -07:00
ab7b5c6089 add safety tests inside ShuttleControl to deal with _session == 0 2019-12-14 09:58:53 -07:00
9743d75fc2 remove use of os_log() API from macOS
This enables building on earlier versions of that platform. It was only used for debugging anyway
2019-12-14 09:02:12 -07:00
b2071bd8ed
Use InlineControl Port Property
This replaces the special case of showing send-level controls
inline in the mixer-strip with a generic Controllable::InlineControl
property.
2019-12-14 15:51:09 +01:00
d4ad9e3486
Make BusSendLevel 1st class citizen (2/2) 2019-12-14 15:06:34 +01:00
d2facbf9c1
DSPLoad report: allow to sort plugins by load 2019-12-14 11:44:28 +01:00
01a68cc2a6
Increase contrast of Plugin DSP load report bar colors 2019-12-14 10:50:11 +01:00
40d266fc0e
Amend 561cf86919 commit (toolbar sensitivity) 2019-12-13 23:03:34 +01:00
ff3cc400ac allow setting debug flags via an environment variable (ARDOUR_DEBUG_FLAGS) 2019-12-13 13:14:15 -07:00
f009f10894 fix up stderr and stdout on macOS to write to log files in ~/Library/Preferences/PROGRAM_NAME 2019-12-13 13:14:15 -07:00
561cf86919
Fix session sensitivity of some toolbar controls 2019-12-13 16:33:12 +01:00
cc9f941488
VKeybd: shrink height when hiding config pane 2019-12-13 16:04:34 +01:00
5324587a80
Vkeybd: default to single-row QWERTY binding 2019-12-12 23:59:38 +01:00
c3a27fadae
NO-OP: some const correctness 2019-12-12 23:59:38 +01:00
f2170f0a2f
VKeybd: fix MacOS key-bindings 2019-12-12 23:59:37 +01:00
1b91615b2c fix startup FSM handling when pre-release dialog is shown AND cmdline session info is given 2019-12-12 13:33:11 -07:00
3437fec785 fix ASL logging/stdout+stderr when running from terminal in macOS 2019-12-12 13:33:11 -07:00
5f6b2d6843
Allow to bind initial Lua action via left-click 2019-12-12 20:53:18 +01:00
d226b63e70
Pre-seed Lua action-buttons 2019-12-12 20:53:17 +01:00
f78c659840 remove MIDI readahead parameter
We just don't do this anymore
2019-12-11 20:36:10 -07:00
a92dddda25
Fix automation dropdown menu-item active state
Extra XML/GUI has not been in use since ages.
Automation Lane visibility is saved as GUIObjectState.

This properly marks DropDown Menu items as active when a
Plugin Automation Lane is displayed
2019-12-12 03:02:48 +01:00
ff7fe6d4d6 when loading a session into a running instance, if the SR doesn't match the engine, stop engine and show dialog 2019-12-11 14:53:00 -07:00
debcb22697 NOOP: line merge 2019-12-11 14:53:00 -07:00
a660ab2584 Monitor Section: Add a spacer so the topmost buttons are not visually grouped with buttons in the editor toolbar. 2019-12-10 14:35:03 -06:00
50d118f8b1 Source List nomenclature: Whole files get imported to the SOURCE list. 2019-12-10 14:10:32 -06:00
7457fd2e27 Autostart must {try to} use the session sample-rate. There is no ambiguity here. 2019-12-09 16:49:15 -06:00
3c3b4b9a15 Suppress warnings in Gtk headers 2019-12-09 23:27:04 +01:00
0ac56f1582 Fix incorrect parameter type
This takes a bool.
2019-12-09 22:50:37 +01:00
319b029579 When a marker is selected, change the marker color in addition to the line color. 2019-12-09 07:49:30 -06:00
709a0c8d9b "revert" back to previous loop rect in editor color 2019-12-07 10:30:38 -07:00
e0f7514e82
Fix nested comments 2019-12-07 01:13:38 +01:00
c5e46ffd30
UI limitations for mp3 import 2019-12-06 18:19:01 +01:00
65b6f39e21
Undo habits of a Serif font lover 2019-12-05 23:33:27 +01:00
407c2bed63
VKeybd: grab and ignore some keys
With default QWERTY and QWERTZ layout some keys that are easily
accidentally pressed. Those triggered editor actions,
(e.g. "a" (audition), or "1" (edit-tool)) and are now ignored.
2019-12-05 22:13:34 +01:00
1b58cac046
Prefer wider/fatter Sans font
ArdourSans is now based on "Noto Sans"
https://fonts.google.com/specimen/Noto+Sans
(C) by Google - Apache License 2.0
2019-12-05 00:50:52 +01:00
f1f553a1b3
Reduce script button width
The default text is single digit hex number (0..c)
2019-12-05 00:45:23 +01:00
8f31f814b4
Allow using ArdourSans as optional default font 2019-12-04 22:59:51 +01:00
a46bbabdaf
Load and register ArdourSans font at application start 2019-12-04 19:01:44 +01:00
72bfc67027
Bundle a common Sans Font
ArdourSans is based on Oxygen from https://fonts.google.com/
Copyright (c) 2012, vernon adams (vern@newtypography.co.uk)
This Font Software is licensed under the SIL Open Font License, Version 1.1.
2019-12-04 19:01:20 +01:00
1f73668756
New approach for Lua bindings to avoid LuaBridge_API in GUI code
Declare DoubleArray in GUI context so that runtime uses the symbol
from the .exe (not the .dll).

This is mainly for the benefit of MSVC, that does not allow to use
LuaBridge_API in .exe
2019-12-03 17:55:37 +01:00
bfcadff73c
Amend 1caef183 (Windows Lua bindings) 2019-12-03 03:29:35 +01:00
1caef183bf
Fix Windows builds
This fixes a missing symbol error due to the weird way how
Windows maps the same, identical symbols using different addresses
in .dll and .exe.  Here specifically for

int luabridge::CFunc::vectorToArray<double, std::vector<double, std::allocator<double> > >(lua_State*)

which was added in 5e1a73a28c resulting in

gtk2_ardour/luainstance.cc error: explicit instantiation of 'static const void* luabridge::ClassInfo<T>::getStaticKey() [with T = std::vector<double>]' but no definition available [-fpermissive]
gtk2_ardour/luainstance.cc error: explicit instantiation of 'static const void* luabridge::ClassInfo<T>::getClassKey() [with T = std::vector<double>]' but no definition available [-fpermissive]
gtk2_ardour/luainstance.cc error: explicit instantiation of 'static const void* luabridge::ClassInfo<T>::getConstKey() [with T = std::vector<double>]' but no definition available [-fpermissive]
2019-12-03 02:27:44 +01:00
5fb83da69c
Use a detached window for Preferences at first run
Once a user explicitly attaches the Window as Tab, we
expect the user to know about tabbing, tab-cycling, related
window/tab actions, and relevant shortcuts.

Otherwise it can confusing:
https://discourse.ardour.org/t/cant-get-out-of-preferences/102147
2019-11-29 16:27:37 +01:00
ccefc64418
Reset paste-count, paste-offset on undo/redo
This fixes an workflow edge-case when undoing a paste in order
to paste at a different location on the same track or automation lane.
After undo, any accumulated paste-offset needs to be reset
2019-11-26 23:49:06 +01:00
1df47e9fb4
Remember Virtual-Keyboard window size and position 2019-11-24 18:20:49 +01:00
1a2665e25f redesign of declicking and fades around loop boundaries 2019-11-22 23:41:56 -07:00
c456006f82
Enable some key release event forwarding
This is needed for the virtual MIDI keyboard to trigger note-off events
2019-11-22 22:12:48 +01:00
ceee42f7af
Virtual MIDI keyboard, when visible, gets to handle keyboard input first 2019-11-22 22:11:55 +01:00
f7b3dffebe
Inform LV2 plugins about main window ID 2019-11-22 20:05:04 +01:00
6ee21fb77e
GUI: Use new boost::optional API
get_value_or() has been deprecated since boost 1.56
2019-11-21 17:49:20 +01:00
78d5e6af28 add mixer actions for toggle disk & input monitoring; bind to d and i in mixer bindings 2019-11-20 09:37:33 -07:00
7aaf212a9b
Fix Lua Pangolayout ellipsis width 2019-11-19 04:41:12 +01:00
7b733eb3f0
Consistent toolbar button height 2019-11-19 04:41:11 +01:00
605a87f402
Improve toolbar layout consistency
Directly pack Lua Script buttons into top-level table,
use same size-constraints.

Use consistent Lua Action button width, in particular for buttons 10..12.
prefer "a" instead of "10" for default numeric label
2019-11-19 04:41:06 +01:00
457ab6d35f put JACK time master option back in the menus 2019-11-15 16:04:58 -07:00
a666429d12
Fix MIDNAM device list for plugin-provided names 2019-11-13 23:00:55 +01:00
9b3ebd82ab
Tweak layout of Plugin-Preset dialog 2019-11-12 19:34:12 +01:00
39fa4103f7
Allow to override plugin-provided MIDNAM 2019-11-12 17:00:50 +01:00
a83c6badfe
Skip custom MIDNAM files in generic MTAV list 2019-11-12 06:29:05 +01:00
5b86ece17a
Indicate the numeric peak-hold is always digital-peak 2019-11-12 00:07:51 +01:00
383850d329
Prefs > Plugins > Scan should discover new plugins
First argument is `cache_only`. `false` means to discover news ones.
2019-11-10 22:33:46 +01:00
70442ae7e3
Ask xjadeo to use ArdourMono font for OSD 2019-11-09 06:34:31 +01:00
edf9478fda
Fix endless loop when drag/copy locked region 2019-11-09 06:00:02 +01:00
a8f9ba4a5e
Preview video frame when dragging 2019-11-09 06:00:01 +01:00
a701882e66
Add convenience methods to test for active drags 2019-11-09 05:59:55 +01:00
3cecc3d26b fix crash if Splash::pop_back_for() is called without splash on-screen 2019-11-08 16:57:11 -07:00
b79d47b1b5 fix crash caused by storing clock modes while loading a session
The store would delete any existing node of the same name,
which was the node being used to set the mode in the first
place.
2019-11-08 12:40:26 -07:00
eda27cc3de move all responsibility for autostart into StartupFSM and out of engine dialog 2019-11-06 17:35:30 -07:00
88c4158c03 remove unused API 2019-11-06 17:05:07 -07:00
f13c8f3d07 implement intended auto-start logic for startupFSM 2019-11-06 16:51:03 -07:00
d7b6d6e2c4 if user uses Ctrl/Cmd-w to close a dialog during startup, treat that as a request to exit 2019-11-06 16:32:46 -07:00
7dd7488872 Session should not be accessed when not there. 2019-11-06 08:30:11 -08:00
5ec9e0fa5e
Virtual-keyboard: momentary pedal (no toggle) 2019-11-03 17:50:25 +01:00
db08810164
Virtual-keyboard: "Tab" to sustain (still undocumented) 2019-11-02 23:56:40 +01:00
3e443bc237 improve operation of ARDOUR_UI::toggle_roll() for loop mode (particularly when loop-is-mode) 2019-11-02 16:32:18 -06:00
a855119bdd rename all Evoral source from .(hpp|cpp)$ to .(h|cc) 2019-11-02 16:32:18 -06:00
b83ef09947 various adjustments so that a MidiPlaylist gets re-rendered whenever it changes.
This may still be missing a few changes (i.e. they do not cause re-rendering)
2019-11-02 16:32:18 -06:00
0573e7cdf0 alter where note resolution happens when a re-rendering is scheduled for a MIDI track 2019-11-02 16:32:18 -06:00
cc949232fe Remove complicated panner theme logic. 2019-11-02 14:57:53 -05:00
9b7998e747
Fan-out multi-channel instruments to tracks (not busses) 2019-11-02 18:47:59 +01:00