summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-10-21Virtual-keyboard: add option to transposeRobin Gareus
2019-10-21NO-OP: whitespaceRobin Gareus
2019-10-21NO-OP: whitespaceRobin Gareus
2019-10-21Virtual-keyboard: cont'd initial development:Robin Gareus
* 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
2019-10-21Allow calling Dropdown::set_active from a signal handlerRobin Gareus
This breaks a potential recursion when set_active() is called from activate_item(). See also 88fc22610
2019-10-21Virtual-Keyboard significant overhaul:Robin Gareus
* 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, ...)
2019-10-20Add support for single-fader MCU devices: XTouch One and RuCo. (needs testing)Ben Loftis
2019-10-20Virtual-Keyboard: Fix use of scrollwheel on dropdownsRobin Gareus
2019-10-20Add API to set select item from ArdourDropdownRobin Gareus
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().
2019-10-20Virtual-Keyboard: save/restore stateRobin Gareus
2019-10-20Virtual-keyboard: add a pitch-benderRobin Gareus
2019-10-20Virtual-keyboard: add CCs, bank/patch selectorRobin Gareus
2019-10-20Increase black key lengthRobin Gareus
2019-10-19Add/remove source(s) in our MSVC project (gtk2_ardour)John Emmas
2019-10-19Use conf.fatal for fatal configuration errorsDavid Robillard
2019-10-19Fix Python3 incompatible syntaxDavid Robillard
2019-10-19Fix typoDavid Robillard
2019-10-19Fix typo in bc363f1258c4Robin Gareus
2019-10-18Special case "Virtual Keyboard" to be available as external inputRobin Gareus
2019-10-18Allow to translate "Virtual Keyboard"Robin Gareus
reserved_io_names[] already uses a translatable string for this.
2019-10-18Cont'd work on Virtual-keyboardRobin Gareus
* 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
2019-10-18Remove redundant port-owner checkRobin Gareus
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).
2019-10-18Use AsyncMIDIPort APIRobin Gareus
2019-10-18Expose virtual-keyboard port as async-portRobin Gareus
2019-10-18fix two thinkos with startup sequencePaul Davis
1) audio/MIDI setup was being shown unnecessarily 2) could crash if entire startup sequence passed without any dialogs being necessary
2019-10-18Super basic Virtual-Keyboard UIRobin Gareus
2019-10-18Add Virtual-Keyboard MIDI portRobin Gareus
2019-10-18NO-OP: indent, tabs/whitespace fixesRobin Gareus
2019-10-18Fix a rare EventList race-condition/crashRobin Gareus
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
2019-10-18Add API to safely query timestamp of first/last control eventRobin Gareus
Direct calls to back()->when or front()->when are not safe when the list is concurrently modified, or empty.
2019-10-15Fix export w/o session-range (typo in 468731c14b9b)Robin Gareus
2019-10-15NO-OP: whitespaceRobin Gareus
2019-10-15Fix crash for range-export and cleanup codeRobin Gareus
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
2019-10-15Improve multi-channel instrument listingRobin Gareus
2019-10-15Remve unused header includesRobin Gareus
2019-10-15Use less-or-equal for configurable I/O chancountRobin Gareus
2019-10-15Fix typos in AU channel-count calcRobin Gareus
2019-10-15Show max # of output for re-configurable I/O pluginsRobin Gareus
2019-10-15API to count max multi-channel plugin outputsRobin Gareus
2019-10-15Fix/amend previous commitRobin Gareus
2019-10-15Disambiguate instrument plugin names:Robin Gareus
* use cached ambiguity information from backend * combine extra info in single bracket
2019-10-15Detect plugin-name ambiguitiesRobin Gareus
2019-10-15NO-OP: indent, comments and consistencyRobin Gareus
2019-10-13Fix fan-out channel-assignmentRobin Gareus
2019-10-13Show (# outs) in instrument-selector menu when the instrument is multi-out.Ben Loftis
2019-10-13Remove unused API declaration (removed in 789f08891b)Robin Gareus
2019-10-13Prototype categorized preset browserRobin Gareus
2019-10-12remove Session::AudioMidiSetupRequired signal (no longer necessary)Paul Davis
2019-10-12remove Session::AudioMidiSetupRequired signal (no longer necessary)Paul Davis
2019-10-12remove Session::AudioMidiSetupRequired signal (no longer necessary)Paul Davis