ardour.git
4 years agoNew implementation for single-fader mackie devices (reverts b96d8e)
Ben Loftis [Tue, 22 Oct 2019 19:39:38 +0000 (14:39 -0500)]
New implementation for single-fader mackie devices (reverts b96d8e)

4 years agoVirtual-keyboard: add option to transpose
Robin Gareus [Mon, 21 Oct 2019 17:31:25 +0000 (19:31 +0200)]
Virtual-keyboard: add option to transpose

4 years agoNO-OP: whitespace
Robin Gareus [Mon, 21 Oct 2019 14:06:29 +0000 (16:06 +0200)]
NO-OP: whitespace

4 years agoNO-OP: whitespace
Robin Gareus [Mon, 21 Oct 2019 13:52:16 +0000 (15:52 +0200)]
NO-OP: whitespace

4 years agoVirtual-keyboard: cont'd initial development:
Robin Gareus [Mon, 21 Oct 2019 13:27:42 +0000 (15:27 +0200)]
Virtual-keyboard: cont'd initial development:

* Reset default note range to 0..127 for step-entry and other users
* Allow to print label "C-<n>" on keyboard
* Fix 6 octave note range
* Save/load user settings in virtual-keyboard window

4 years agoAllow calling Dropdown::set_active from a signal handler
Robin Gareus [Mon, 21 Oct 2019 12:58:59 +0000 (14:58 +0200)]
Allow calling Dropdown::set_active from a signal handler

This breaks a potential recursion when set_active() is called
from activate_item(). See also 88fc22610

4 years agoVirtual-Keyboard significant overhaul:
Robin Gareus [Mon, 21 Oct 2019 03:41:34 +0000 (05:41 +0200)]
Virtual-Keyboard significant overhaul:

* fix key-range off-by-one 0..127
* allow to shift octave
* allow to configure note range
* highlight grand-piano range and keyboard-shortcut range
* proper piano layout (black key offsets)
* add support for DVORAK keyboard layout

(still incomplete: settings are not yet saved/restored,
_piano_key_velocity should become a HSliderController, ...)

4 years agoAdd support for single-fader MCU devices: XTouch One and RuCo. (needs testing)
Ben Loftis [Mon, 21 Oct 2019 03:24:17 +0000 (22:24 -0500)]
Add support for single-fader MCU devices:  XTouch One and RuCo. (needs testing)

4 years agoVirtual-Keyboard: Fix use of scrollwheel on dropdowns
Robin Gareus [Sun, 20 Oct 2019 19:22:38 +0000 (21:22 +0200)]
Virtual-Keyboard: Fix use of scrollwheel on dropdowns

4 years agoAdd API to set select item from ArdourDropdown
Robin Gareus [Sun, 20 Oct 2019 19:21:57 +0000 (21:21 +0200)]
Add API to set select item from ArdourDropdown

This fixes an issue with scroll-wheel control which uses `get_active()`.
It work around an issue with gtkmm:

 const MenuItem* get_active () const
 void set_active (guint index)

and MenuList::activate_item() not emitting activate_item().

4 years agoVirtual-Keyboard: save/restore state
Robin Gareus [Sun, 20 Oct 2019 18:53:40 +0000 (20:53 +0200)]
Virtual-Keyboard: save/restore state

4 years agoVirtual-keyboard: add a pitch-bender
Robin Gareus [Sun, 20 Oct 2019 16:29:23 +0000 (18:29 +0200)]
Virtual-keyboard: add a pitch-bender

4 years agoVirtual-keyboard: add CCs, bank/patch selector
Robin Gareus [Sun, 20 Oct 2019 00:43:39 +0000 (02:43 +0200)]
Virtual-keyboard: add CCs, bank/patch selector

4 years agoIncrease black key length
Robin Gareus [Sat, 19 Oct 2019 13:42:35 +0000 (15:42 +0200)]
Increase black key length

4 years agoAdd/remove source(s) in our MSVC project (gtk2_ardour)
John Emmas [Sat, 19 Oct 2019 15:05:42 +0000 (16:05 +0100)]
Add/remove source(s) in our MSVC project (gtk2_ardour)

4 years agoUse conf.fatal for fatal configuration errors
David Robillard [Fri, 18 Oct 2019 23:42:56 +0000 (01:42 +0200)]
Use conf.fatal for fatal configuration errors

4 years agoFix Python3 incompatible syntax
David Robillard [Fri, 18 Oct 2019 23:37:30 +0000 (01:37 +0200)]
Fix Python3 incompatible syntax

4 years agoFix typo
David Robillard [Fri, 18 Oct 2019 23:33:51 +0000 (01:33 +0200)]
Fix typo

4 years agoFix typo in bc363f1258c4
Robin Gareus [Sat, 19 Oct 2019 00:15:13 +0000 (02:15 +0200)]
Fix typo in bc363f1258c4

4 years agoSpecial case "Virtual Keyboard" to be available as external input
Robin Gareus [Fri, 18 Oct 2019 21:40:40 +0000 (23:40 +0200)]
Special case "Virtual Keyboard" to be available as external input

4 years agoAllow to translate "Virtual Keyboard"
Robin Gareus [Fri, 18 Oct 2019 21:40:23 +0000 (23:40 +0200)]
Allow to translate "Virtual Keyboard"

reserved_io_names[] already uses a translatable string for this.

4 years agoCont'd work on Virtual-keyboard
Robin Gareus [Fri, 18 Oct 2019 15:26:25 +0000 (17:26 +0200)]
Cont'd work on Virtual-keyboard

* allow gtk_pianokeyboard to respond to y-axis click position
  and include MIDI velocity with note-on signal
* add configuration settings to virual-keyboard
  min/max velocity, keyboard-layout
* add a CC7 controller knob

4 years agoRemove redundant port-owner check
Robin Gareus [Fri, 18 Oct 2019 13:22:33 +0000 (15:22 +0200)]
Remove redundant port-owner check

Ports owned by Ardour are already filtered out by
PortManager::get_known_midi_ports() ->
PortManager::fill_midi_port_info_locked()

This change is in preparation for allowing to expose Ardour's
"Virtual MIDI Keyboard" keyboard (which is owned by Ardour).

4 years agoUse AsyncMIDIPort API
Robin Gareus [Fri, 18 Oct 2019 13:17:54 +0000 (15:17 +0200)]
Use AsyncMIDIPort API

4 years agoExpose virtual-keyboard port as async-port
Robin Gareus [Fri, 18 Oct 2019 13:16:43 +0000 (15:16 +0200)]
Expose virtual-keyboard port as async-port

4 years agofix two thinkos with startup sequence
Paul Davis [Fri, 18 Oct 2019 06:07:31 +0000 (00:07 -0600)]
fix two thinkos with startup sequence

1) audio/MIDI setup was being shown unnecessarily
2) could crash if entire startup sequence passed without any dialogs being necessary

4 years agoSuper basic Virtual-Keyboard UI
Robin Gareus [Fri, 18 Oct 2019 01:50:52 +0000 (03:50 +0200)]
Super basic Virtual-Keyboard UI

4 years agoAdd Virtual-Keyboard MIDI port
Robin Gareus [Fri, 18 Oct 2019 01:42:41 +0000 (03:42 +0200)]
Add Virtual-Keyboard MIDI port

4 years agoNO-OP: indent, tabs/whitespace fixes
Robin Gareus [Fri, 18 Oct 2019 01:40:52 +0000 (03:40 +0200)]
NO-OP: indent, tabs/whitespace fixes

4 years agoFix a rare EventList race-condition/crash
Robin Gareus [Thu, 17 Oct 2019 23:41:18 +0000 (01:41 +0200)]
Fix a rare EventList race-condition/crash

The GUI thread may modify fade-in/out while the butler-thread
reads audio.

e.g. select a Range and click delete.
---
Thread 0:: Dispatch queue: com.apple.main-thread
0   libsystem_pthread.dylib           0x00007fffd45924fc pthread_mutex_lock + 0
1   libglib-2.0.0.dylib               0x00000001085a9d2a g_mutex_lock + 26
2   libevoral.dylib                   0x0000000107fd0a49 PBD::Signal0<void, PBD::OptionalLastValue<void> >::operator()() + 57
3   libevoral.dylib                   0x0000000107fd486d Evoral::ControlList::clear() + 253
4   libardour.dylib                   0x00000001072ef9a5 ARDOUR::AudioRegion::set_fade_out(ARDOUR::FadeShape, long long) + 309
5   libardour.dylib                   0x00000001072f19ea ARDOUR::AudioRegion::recompute_at_end() + 122
6   libpbd.dylib                      0x00000001082993ff PBD::Stateful::resume_property_changes() + 191
7   libardour.dylib                   0x00000001076476af ARDOUR::Playlist::cut(long long, long long, bool) + 575
8   libardour.dylib                   0x0000000107646b5b ARDOUR::Playlist::cut_copy(boost::shared_ptr<ARDOUR::Playlist> (ARDOUR::Playlist::*)(long long, long long, bool), std::__1::list<ARDOUR::AudioRange, std::__1::allocator<ARDOUR::AudioRange> >&, bool) + 187
9   libardour.dylib                   0x0000000107647461 ARDOUR::Playlist::cut(std::__1::list<ARDOUR::AudioRange, std::__1::allocator<ARDOUR::AudioRange> >&, bool) + 33
10  Ardour.bin                        0x00000001065f0fa0 RouteTimeAxisView::cut_copy_clear(Selection&, Editing::CutCopyOp) + 592
11  Ardour.bin                        0x0000000106118a94 Editor::cut_copy_ranges(Editing::CutCopyOp) + 164
12  Ardour.bin                        0x0000000106116053 Editor::cut_copy(Editing::CutCopyOp) + 1587

Thread 20 Crashed:
0   libardour.dylib                   0x00000001072f4b19 ARDOUR::AudioRegion::body_range() const + 89
1   libardour.dylib                   0x00000001072bd318 ARDOUR::AudioPlaylist::read(float*, float*, float*, long long, long long, unsigned int) + 1176
2   libardour.dylib                   0x00000001072ac236 ARDOUR::AudioDiskstream::read(float*, float*, float*, long long&, long long, int, bool) + 854
3   libardour.dylib                   0x00000001072abbb8 ARDOUR::AudioDiskstream::overwrite_existing_buffers() + 392
4   libardour.dylib                   0x00000001077ef36a ARDOUR::Session::non_realtime_overwrite(int, bool&) + 186
5   libardour.dylib                   0x00000001077ed7f0 ARDOUR::Session::butler_transport_work() + 1696
6   libardour.dylib                   0x0000000107323425 ARDOUR::Butler::thread_work() + 149
7   libardour.dylib                   0x000000010732334f ARDOUR::Butler::_thread_work(void*) + 95

4 years agoAdd API to safely query timestamp of first/last control event
Robin Gareus [Thu, 17 Oct 2019 23:37:56 +0000 (01:37 +0200)]
Add API to safely query timestamp of first/last control event

Direct calls to back()->when or front()->when are not safe
when the list is concurrently modified, or empty.

4 years agoFix export w/o session-range (typo in 468731c14b9b)
Robin Gareus [Tue, 15 Oct 2019 21:17:48 +0000 (23:17 +0200)]
Fix export w/o session-range (typo in 468731c14b9b)

4 years agoNO-OP: whitespace
Robin Gareus [Tue, 15 Oct 2019 20:47:57 +0000 (22:47 +0200)]
NO-OP: whitespace

4 years agoFix crash for range-export and cleanup code
Robin Gareus [Tue, 15 Oct 2019 20:45:28 +0000 (22:45 +0200)]
Fix crash for range-export and cleanup code

ExportTimespanSelectorMultiple has one extra column at the start:
"selected". There are a total of 6 columns (0..5).

However ExportTimespanSelectorSingle lacks that column.
Selection is not needed and there are only 5 columns.

This lead to a copy/paste off-by one issue for
set_sort_column() w/ range_view.get_column(5) == NULL
when exporting ranges with a single range

4 years agoImprove multi-channel instrument listing
Robin Gareus [Tue, 15 Oct 2019 14:02:47 +0000 (16:02 +0200)]
Improve multi-channel instrument listing

4 years agoRemve unused header includes
Robin Gareus [Tue, 15 Oct 2019 13:30:33 +0000 (15:30 +0200)]
Remve unused header includes

4 years agoUse less-or-equal for configurable I/O chancount
Robin Gareus [Tue, 15 Oct 2019 13:29:18 +0000 (15:29 +0200)]
Use less-or-equal for configurable I/O chancount

4 years agoFix typos in AU channel-count calc
Robin Gareus [Tue, 15 Oct 2019 13:24:50 +0000 (15:24 +0200)]
Fix typos in AU channel-count calc

4 years agoShow max # of output for re-configurable I/O plugins
Robin Gareus [Tue, 15 Oct 2019 12:52:40 +0000 (14:52 +0200)]
Show max # of output for re-configurable I/O plugins

4 years agoAPI to count max multi-channel plugin outputs
Robin Gareus [Tue, 15 Oct 2019 12:47:11 +0000 (14:47 +0200)]
API to count max multi-channel plugin outputs

4 years agoFix/amend previous commit
Robin Gareus [Tue, 15 Oct 2019 12:20:52 +0000 (14:20 +0200)]
Fix/amend previous commit

4 years agoDisambiguate instrument plugin names:
Robin Gareus [Tue, 15 Oct 2019 12:09:02 +0000 (14:09 +0200)]
Disambiguate instrument plugin names:

* use cached ambiguity information from backend
* combine extra info in single bracket

4 years agoDetect plugin-name ambiguities
Robin Gareus [Tue, 15 Oct 2019 12:04:26 +0000 (14:04 +0200)]
Detect plugin-name ambiguities

4 years agoNO-OP: indent, comments and consistency
Robin Gareus [Tue, 15 Oct 2019 10:22:08 +0000 (12:22 +0200)]
NO-OP: indent, comments and consistency

4 years agoFix fan-out channel-assignment
Robin Gareus [Sun, 13 Oct 2019 21:12:15 +0000 (23:12 +0200)]
Fix fan-out channel-assignment

4 years agoShow (# outs) in instrument-selector menu when the instrument is multi-out.
Ben Loftis [Sun, 13 Oct 2019 18:26:44 +0000 (13:26 -0500)]
Show (# outs) in instrument-selector menu when the instrument is multi-out.

4 years agoRemove unused API declaration (removed in 789f08891b)
Robin Gareus [Sun, 13 Oct 2019 02:12:02 +0000 (04:12 +0200)]
Remove unused API declaration (removed in 789f08891b)

4 years agoPrototype categorized preset browser
Robin Gareus [Sun, 13 Oct 2019 02:09:35 +0000 (04:09 +0200)]
Prototype categorized preset browser

4 years agoremove Session::AudioMidiSetupRequired signal (no longer necessary)
Paul Davis [Sat, 12 Oct 2019 18:45:27 +0000 (12:45 -0600)]
remove Session::AudioMidiSetupRequired signal (no longer necessary)

4 years agoremove Session::AudioMidiSetupRequired signal (no longer necessary)
Paul Davis [Sat, 12 Oct 2019 18:45:18 +0000 (12:45 -0600)]
remove Session::AudioMidiSetupRequired signal (no longer necessary)

4 years agoremove Session::AudioMidiSetupRequired signal (no longer necessary)
Paul Davis [Sat, 12 Oct 2019 18:45:13 +0000 (12:45 -0600)]
remove Session::AudioMidiSetupRequired signal (no longer necessary)

4 years agoreintroduce code that can automatically connect to JACK under the right conditions
Paul Davis [Sat, 12 Oct 2019 18:10:10 +0000 (12:10 -0600)]
reintroduce code that can automatically connect to JACK under the right conditions

4 years agointerface range generated by internal_to_interface() may not span 0..1, so remove...
Paul Davis [Fri, 11 Oct 2019 23:09:39 +0000 (17:09 -0600)]
interface range generated by internal_to_interface() may not span 0..1, so remove asserts

4 years agoadd missing case
Paul Davis [Fri, 11 Oct 2019 23:03:50 +0000 (17:03 -0600)]
add missing case

4 years agodo not accidentally re-create splash
Paul Davis [Fri, 11 Oct 2019 20:44:30 +0000 (14:44 -0600)]
do not accidentally re-create splash

4 years agoenforce singleton nature of Splash a little more rigorously, and slightly rationalize...
Paul Davis [Fri, 11 Oct 2019 20:29:55 +0000 (14:29 -0600)]
enforce singleton nature of Splash a little more rigorously, and slightly rationalize it's use

4 years agocall parent ::on_response()
Paul Davis [Fri, 11 Oct 2019 19:53:48 +0000 (13:53 -0600)]
call parent ::on_response()

4 years agoremove responsibility for starting AudioEngine from Session
Paul Davis [Fri, 11 Oct 2019 16:25:08 +0000 (10:25 -0600)]
remove responsibility for starting AudioEngine from Session

4 years agoTheme-ing: Use sensible names instead of color 1..N
Ben Loftis [Thu, 10 Oct 2019 23:24:57 +0000 (18:24 -0500)]
Theme-ing: Use sensible names instead of color 1..N

Colors are assigned one of 6 major groups:

*Alert colors: Typically mute/solo/feedback/selections etc ... these should follow Ardour convention, only the saturation should change with themes.

*BG colors (empty spaces...)

*Contrast colors: Should contrast nicely against BG. Typically clocks, markers, panners and such.

*Black/White/Grays:  you can expect these to work with "any" BG.  Good for borders, separators, etc.

*Meter colors:  Typically green->yellow->red or similar.  Should follow Ardour conventions.

*Widget colors:  slight variations of the BG color.  This is where the creative choices are made.

NOTE to theme-ers:  Widgets should choose one of the colors based on FUNCTION.  If you want a red widget, choose "widget red",  not "alert red" or "meter color9"

4 years agoAdd/rename source(s) in our MSVC project (gtk2_ardour)
John Emmas [Fri, 11 Oct 2019 10:19:24 +0000 (11:19 +0100)]
Add/rename source(s) in our MSVC project (gtk2_ardour)

4 years agogoto preferred over reentrancy
Paul Davis [Fri, 11 Oct 2019 03:47:17 +0000 (21:47 -0600)]
goto preferred over reentrancy

4 years agofix error in startup sequence when command line argument is given and pre-release...
Paul Davis [Fri, 11 Oct 2019 03:37:50 +0000 (21:37 -0600)]
fix error in startup sequence when command line argument is given and pre-release dialog is shown

4 years agomove pre-release dialog into StartupFSM (and enlarge font sizing)
Paul Davis [Fri, 11 Oct 2019 03:24:52 +0000 (21:24 -0600)]
move pre-release dialog into StartupFSM (and enlarge font sizing)

4 years agocenter all(?) early-startup dialogs
Paul Davis [Fri, 11 Oct 2019 01:54:33 +0000 (19:54 -0600)]
center all(?) early-startup dialogs

4 years agofix up handling of audio/MIDI setup dialog and remove debug output
Paul Davis [Thu, 10 Oct 2019 22:51:51 +0000 (16:51 -0600)]
fix up handling of audio/MIDI setup dialog and remove debug output

4 years agomake error message very slightly more indicative of what might be happening when...
Paul Davis [Thu, 10 Oct 2019 22:51:28 +0000 (16:51 -0600)]
make error message very slightly more indicative of what might be happening when audioengine backend fails to start

4 years agomake EngineDialog behavior more appropriate for use in both startup and non-startup...
Paul Davis [Thu, 10 Oct 2019 22:50:57 +0000 (16:50 -0600)]
make EngineDialog behavior more appropriate for use in both startup and non-startup conditions

4 years agochanges to get startupFSM working (more) correctly
Paul Davis [Thu, 10 Oct 2019 21:25:30 +0000 (15:25 -0600)]
changes to get startupFSM working (more) correctly

4 years agoremove unused label and simplify return value/return path
Paul Davis [Thu, 10 Oct 2019 21:25:13 +0000 (15:25 -0600)]
remove unused label and simplify return value/return path

4 years agoNOOP: move brace
Paul Davis [Thu, 10 Oct 2019 21:24:49 +0000 (15:24 -0600)]
NOOP: move brace

4 years agomake ARDOUR_UI::load_session_from_startup_fsm() return a value, and use it
Paul Davis [Thu, 10 Oct 2019 21:24:20 +0000 (15:24 -0600)]
make ARDOUR_UI::load_session_from_startup_fsm() return a value, and use it

4 years agofix decl of method with const arg
Paul Davis [Thu, 10 Oct 2019 21:23:23 +0000 (15:23 -0600)]
fix decl of method with const arg

4 years agoadd StartupFSM::end() (empty for now) and remove unused states
Paul Davis [Thu, 10 Oct 2019 21:22:44 +0000 (15:22 -0600)]
add StartupFSM::end() (empty for now) and remove unused states

4 years agouse const argument when calling ::build_session()
Paul Davis [Thu, 10 Oct 2019 21:21:20 +0000 (15:21 -0600)]
use const argument when calling ::build_session()

4 years agoremove unused assignment
Paul Davis [Thu, 10 Oct 2019 20:35:03 +0000 (14:35 -0600)]
remove unused assignment

4 years agoremove two unused variables
Paul Davis [Thu, 10 Oct 2019 20:34:46 +0000 (14:34 -0600)]
remove two unused variables

4 years agomake BusProfile argument to new Session constructor be const (and in associated call...
Paul Davis [Thu, 10 Oct 2019 20:34:20 +0000 (14:34 -0600)]
make BusProfile argument to new Session constructor be const (and in associated call tree)

4 years agoNSM startup needs to call a different method due to API changes
Paul Davis [Thu, 10 Oct 2019 02:53:03 +0000 (20:53 -0600)]
NSM startup needs to call a different method due to API changes

4 years agomove copying demo sessions into NewUserWizard
Paul Davis [Thu, 10 Oct 2019 02:52:46 +0000 (20:52 -0600)]
move copying demo sessions into NewUserWizard

4 years agochanges to ARDOUR_UI to reflect new startupFSM and non-modal SessionDialog handling
Paul Davis [Thu, 10 Oct 2019 02:52:26 +0000 (20:52 -0600)]
changes to ARDOUR_UI to reflect new startupFSM and non-modal SessionDialog handling

4 years agomodify API of SessionDialog to reflect that it is never used with command line parame...
Paul Davis [Thu, 10 Oct 2019 02:51:14 +0000 (20:51 -0600)]
modify API of SessionDialog to reflect that it is never used with command line parameters anymore

4 years agoadd initial version of StartupFSM along with its owners/users
Paul Davis [Thu, 10 Oct 2019 02:50:34 +0000 (20:50 -0600)]
add initial version of StartupFSM along with its owners/users

4 years agoremove unnecessary template methods (replicated in libs/gtkmm2ext/doi.h
Paul Davis [Thu, 10 Oct 2019 02:32:46 +0000 (20:32 -0600)]
remove unnecessary template methods (replicated in libs/gtkmm2ext/doi.h

4 years agoadd SessionDialog::clear_name()
Paul Davis [Wed, 9 Oct 2019 03:48:11 +0000 (21:48 -0600)]
add SessionDialog::clear_name()

4 years agochange SessionDialog::meta_master_bus_profile() to be a static method
Paul Davis [Wed, 9 Oct 2019 03:40:14 +0000 (21:40 -0600)]
change SessionDialog::meta_master_bus_profile() to be a static method

4 years agoengine dialog should emit response and handle it, not just call its own response...
Paul Davis [Wed, 9 Oct 2019 03:30:00 +0000 (21:30 -0600)]
engine dialog should emit response and handle it, not just call its own response dialog

4 years agorename ArdourStartup to NewUserWizard and rename source file(s)
Paul Davis [Wed, 9 Oct 2019 03:29:47 +0000 (21:29 -0600)]
rename ArdourStartup to NewUserWizard and rename source file(s)

4 years agoprovide ArdourStartup with a Gtk::Dialog-like signal_response()
Paul Davis [Tue, 8 Oct 2019 17:39:16 +0000 (11:39 -0600)]
provide ArdourStartup with a Gtk::Dialog-like signal_response()

It is not a Dialog (instead, an Assistant which IS-A Window), but
we want to be able to interact with it as if it is.

Also remove unused singleton and session info cruft

4 years agoShow preset-browser button if annoted presets are available
Robin Gareus [Thu, 10 Oct 2019 22:13:07 +0000 (00:13 +0200)]
Show preset-browser button if annoted presets are available

4 years agoAdd a plugin-preset browser window
Robin Gareus [Thu, 10 Oct 2019 22:03:41 +0000 (00:03 +0200)]
Add a plugin-preset browser window

Previously preset-browser was only used instead of "generic control"
display if a plugin does not have any controls (but presets).

This allows for showing a dedicated window..

4 years agoPreset-Browser: highlight only unmodified presets
Robin Gareus [Thu, 10 Oct 2019 21:59:55 +0000 (23:59 +0200)]
Preset-Browser: highlight only unmodified presets

4 years agoNO-OP: whitespace
Robin Gareus [Thu, 10 Oct 2019 21:59:05 +0000 (23:59 +0200)]
NO-OP: whitespace

4 years agoAdd "List/Browse" vector icon
Robin Gareus [Thu, 10 Oct 2019 21:58:49 +0000 (23:58 +0200)]
Add "List/Browse" vector icon

4 years agoAdd API to check for plugin-presets with description
Robin Gareus [Thu, 10 Oct 2019 20:31:19 +0000 (22:31 +0200)]
Add API to check for plugin-presets with description

4 years agoadd constructor
Paul Davis [Tue, 8 Oct 2019 02:49:53 +0000 (20:49 -0600)]
add constructor

4 years agofix compiler warning about possible buffer size issue
Paul Davis [Tue, 8 Oct 2019 02:49:35 +0000 (20:49 -0600)]
fix compiler warning about possible buffer size issue

4 years agoStem-export: pre-select selected tracks/busses
Robin Gareus [Mon, 7 Oct 2019 13:19:36 +0000 (15:19 +0200)]
Stem-export: pre-select selected tracks/busses

4 years agoFix a translation issue (default value session-archive dropdown)
Robin Gareus [Mon, 7 Oct 2019 03:11:58 +0000 (05:11 +0200)]
Fix a translation issue (default value session-archive dropdown)

4 years agoSpecial case horizontal faders (pan to right)
Robin Gareus [Mon, 7 Oct 2019 03:11:33 +0000 (05:11 +0200)]
Special case horizontal faders (pan to right)

4 years agoInvert Pan-Azimuth (up means left)
Robin Gareus [Mon, 7 Oct 2019 03:07:55 +0000 (05:07 +0200)]
Invert Pan-Azimuth (up means left)

It's a well established convention that pan y-axis automation,
or vertical uses (top) +1 for left.

This special cases rotary knobs (and horizontal sliders) to retain
a clockwise movement (or movement to the right) for panning to the
right.