13
0
Commit Graph

11874 Commits

Author SHA1 Message Date
974ecc0292 NO-OP sort class-keys (for windows builds, luabridge) 2016-10-04 21:50:37 +02:00
a51daedbe6 Vamp::Plugins::process Lua bindings 2016-10-04 21:31:29 +02:00
408e4abf79 use typedef'ed types (avoid comma in CPP macro) 2016-10-04 00:24:22 +02:00
c0e669f19c add static ClassKey for windows linking 2016-10-03 23:47:50 +02:00
f6b59676b5 cont'd work on Lua Vamp-plugin API 2016-10-03 18:26:16 +02:00
52b6ad1b96 enable LuaAPI::Vamp::analyze() callback 2016-10-03 05:13:41 +02:00
b55975a861 consistent VAMP includes
This resolves an ambiguity VampHost::Vamp::Plugin and Vamp::Plugin
2016-10-03 05:13:12 +02:00
330e69b565 Add Vamp-plugin Lua bindings (work in progress) 2016-10-03 03:52:51 +02:00
nick_m
af289cab62 Remove unused methods, add tests to ensure meter divisors don't mess with Beats.
- TempoMap::framepos_minus_beats() was only used by its test,
	  so don't build the test.
2016-10-02 03:55:18 +11:00
nick_m
48f48ccea8 Add MidiRegion _start to the list of things we leave alone on session load. 2016-10-01 11:28:09 +10:00
nick_m
bc38f2c489 Region pulse is no longer a property. 2016-10-01 11:13:41 +10:00
9bd86c2869 allow sending OSC from inline display UIs 2016-10-01 02:22:49 +02:00
nick_m
c26636b0ec Fix locking bug in tempo map. 2016-10-01 10:19:38 +10:00
ba4220b135 fix some compiler warnings (from mingw) 2016-09-30 13:07:53 -04:00
8d30580450 attempt to fix windows failed build by including pthread.h to get DEBUG_THREAD_SELF correctly defined 2016-09-30 12:52:07 -04:00
7701207123 push2:small logic fix for destructor, mostly to ensure that the track_mix layout is destroyed
Otherwise it is still connected to the ControlProtocol::StripableSelectionChanged signal, even though the
event loop specified in the connection has been destroyed.
2016-09-30 11:07:05 -05:00
1b830f2604 reorganize push 2 code and logic to better handle device arrival after program startup
Note: we do not handle device departure correctly yet, mostly because the shadow (pad) port has a retained
reference somewhere
2016-09-30 11:23:01 -04:00
8cff66c7e0 remove unused member variable 2016-09-30 11:23:01 -04:00
e71809dc04 push2 gui catches port registrations 2016-09-30 11:23:01 -04:00
4a159b817f remove useless code from push2 gui dialog 2016-09-30 11:23:01 -04:00
9480dc1c6a insufficient attempt to drop references to a shadow MIDI port 2016-09-30 11:23:01 -04:00
4950bdaf16 Accommodate newly introduced source(s) in our MSVC project (libardour) 2016-09-30 12:21:18 +01:00
85072e16aa Accommodate a header file that's been moved from gtk2_ardour into libardour 2016-09-30 08:21:37 +01:00
1fe19ead70 Accommodate newly introduced source(s) in our MSVC project (cairocanvas) 2016-09-30 08:20:14 +01:00
75f9a7cf11 don't include session-search paths with templates 2016-09-30 00:11:24 +02:00
99c8e51918 manually revert b9cab93fb1 and remove associated code.
For the last time, because of how GDK works, Keyboard::PrimaryModifier on MacOS MUST include MOD2 ***AND** META
2016-09-29 12:01:50 -04:00
5472498a50 enhance -D bindings output 2016-09-29 12:01:49 -04:00
d8291550e7 Rectangle is ambiguous on Windows
In file included from /usr/share/mingw-w64/include/windows.h:71:0,
                 from /home/ardour/win-stack-w32/include/pthread.h:198,
                 from /home/ardour/ardour-w32/libs/pbd/pbd/event_loop.h:29,
                 from /home/ardour/ardour-w32/libs/pbd/pbd/signals.h:42,
                 from /home/ardour/ardour-w32/libs/midi++2/midi++/parser.h:26,
                 from ../libs/surfaces/push2/mix.cc:30:

/usr/share/mingw-w64/include/wingdi.h:3049:67: note: candidates are: WINBOOL Rectangle(HDC, int, int, int, int)

In file included from ../libs/surfaces/push2/mix.cc:48:0:

/home/ardour/ardour-w32/libs/canvas/canvas/rectangle.h:30:48: note: class ArdourCanvas::Rectangle
2016-09-29 13:56:10 +02:00
0a9c12f250 MacOS [sic] required changes for Rect in Push 2 code 2016-09-28 17:24:14 -04:00
1aab360b7d remove unnecessary method 2016-09-28 17:23:52 -04:00
c8ae41d598 fix errors reported by pixman for meter redraws (and add more comments to help the coordinate challenged 2016-09-28 13:37:19 -05:00
67e415e14c make Ben's cool range select hack work with Push 2 2016-09-28 11:28:45 -05:00
e25a4371cb output more stuff to the error channel if/when a session fails to load/be created 2016-09-28 11:28:45 -05:00
6c4627b1b7 fix for push2 code on Windows (no random()) 2016-09-28 10:51:01 -05:00
b6e62c6654 move mode/scale/key definitions out of push2 code and into libardour; Aeolian is the same as Minor 2016-09-28 10:47:17 -05:00
nick_m
cd9c2cedfb Prevent overwriting of MidiRegion length and length_beats during session load.
- .
2016-09-29 01:27:42 +10:00
nick_m
fa350c7aca Remove bogus methods from MidiRegion. 2016-09-29 01:27:42 +10:00
nick_m
dcae6c42b6 Remove _length_pulse from MidiSource. 2016-09-29 01:27:42 +10:00
nick_m
8c6e9e15d4 Add headless-chicken session utility.
- provides an upgrade path for sessions affected by a nasty bug
	  present in some 5.0 - 5.3 MIDI sessions.
	  If testing from source, it can be run from the session_utils directory
	  using ./run ardour5-headless-chicken -h
2016-09-29 01:27:42 +10:00
cf8cc19449 allow to get custom/product/version independent cach dir 2016-09-28 13:13:56 +02:00
0fc4a61fa0 don't render push2 layouts to PNG 2016-09-27 15:42:36 -05:00
a6d4bb0432 add missing/moved files from push2 merge 2016-09-27 15:42:26 -05:00
bbc410dae8 push2: add code to render screen to PNG files for screenshot purposes 2016-09-27 14:59:32 -05:00
3a7cf72752 push2: tweak layout APIs etc. 2016-09-27 14:59:32 -05:00
db4edbf3b5 push2: tweak logic of master button 2016-09-27 14:59:32 -05:00
303358973f push2: improve logic of ::set_current_layout() to allow reset of same layout 2016-09-27 14:59:32 -05:00
0006f28511 push2: don't illuminate a button we do not use 2016-09-27 14:59:32 -05:00
5e6249b7b1 push2: null handle on failed open 2016-09-27 14:59:32 -05:00
81f2ed452b provide ArdourCanvas::Text::{width,height}() 2016-09-27 14:59:32 -05:00
0cd60747a5 push2: fix issue with solo/mute display when entering mix layout 2016-09-27 14:59:32 -05:00
33015a7173 push2: many improvements to track mix and mix layouts
Including meters and clocks
2016-09-27 14:59:32 -05:00
a5e112a73f push2: correct knob origin translation for drawing 2016-09-27 14:59:32 -05:00
df5bb70616 optimize canvas meter redrawing (as in the non-canvas version) 2016-09-27 14:59:32 -05:00
726c10b6ac correct comment 2016-09-27 14:59:32 -05:00
1c94f6490e bug fixes for vertically-drawn Canvas::Meter 2016-09-27 14:59:32 -05:00
fccd0da9c6 bug fixes for Canvas::Box 2016-09-27 14:59:32 -05:00
8be313932e use new canvas meter in push2 track mix layout 2016-09-27 14:59:32 -05:00
29b8072555 add canvas-based Meter object 2016-09-27 14:59:32 -05:00
85c1523611 add new Box container for Canvas.
API subject to change and improvement
2016-09-27 14:59:32 -05:00
ba82e673fd add variant of Rect::expand() that allows different amounts in each direction 2016-09-27 14:59:32 -05:00
5d43d2e43f don't do as much work if a Rectangle has no outline width or outline what values 2016-09-27 14:59:32 -05:00
f66f7ba136 make inclusion/exclusion of hidden children optional in Item::add_child_bounding_boxes 2016-09-27 14:59:32 -05:00
5672419fff add Item::add_front() 2016-09-27 14:59:32 -05:00
095bdb7d40 make Item::child_changed() virtual 2016-09-27 14:59:32 -05:00
e1fb7fe9fc working canvas meter code 2016-09-27 14:59:32 -05:00
7a0e2ceec0 first pass (incomplete) at canvas meters (in push2 context) 2016-09-27 14:59:32 -05:00
879b09d920 stop crashes from out-of-range values 2016-09-27 14:59:32 -05:00
7c82792a57 missing includes 2016-09-27 14:59:32 -05:00
feafcbf61d fix various aspects of knob function 2016-09-27 14:59:32 -05:00
7594e7644a vpot above metronome button controls click gain; master gain knob now works correctly 2016-09-27 14:59:32 -05:00
0f39f27375 fix issue with initial menu display 2016-09-27 14:59:32 -05:00
6d5878a926 leave a comment about port reconnection 2016-09-27 14:59:32 -05:00
0aaf2d1f34 clear filtered note map when entered drum mode 2016-09-27 14:59:32 -05:00
ae01ac2384 update pad colors when selected track colors chane 2016-09-27 14:59:32 -05:00
a9a3b71807 change handling of MIDI sysex incoming to be a little more efficient 2016-09-27 14:59:32 -05:00
44c0ea2095 fix assignment of palette colors by using white-balance = 126; also use ArdourCanvas color macros 2016-09-27 14:59:32 -05:00
48087c3161 update selection rect color when track color changes 2016-09-27 14:59:32 -05:00
acf586b058 add MidiByteArray::compare_n() 2016-09-27 14:59:31 -05:00
69a789c513 push2: make quantize and duplicate buttons do something useful 2016-09-27 14:59:31 -05:00
f35c5fd5a6 push2: master button now does something useful 2016-09-27 14:59:31 -05:00
3aa0676f70 push2: substantial improvements to track mix mode, and a few other details 2016-09-27 14:59:31 -05:00
f12150a1ed push2: always use a contrasting color when flashing played pads 2016-09-27 14:59:31 -05:00
cb340bf190 push2: when playing pads, flash all pad LEDs for the same note number for the pressed pad 2016-09-27 14:59:31 -05:00
0add64d4ab push2: fix color map store/lookup for rgba<=>color index mapping 2016-09-27 14:59:31 -05:00
9e1c7ccaf8 push2: don't send ScaleChanged unless something did actually change 2016-09-27 14:59:31 -05:00
33713d6f68 push2: reset pad colors when necessary 2016-09-27 14:59:31 -05:00
a4cd0d7dae push2: set and use selected track color for root notes on pads 2016-09-27 14:59:31 -05:00
06683b1bda header file now included in push2.h 2016-09-27 14:59:31 -05:00
13295cf060 use ArdourCanvas::Color not uint32_t for push2 color decls 2016-09-27 14:59:31 -05:00
87ab1625ff push2: volume pots now work like non-linear faders, as desired 2016-09-27 14:59:31 -05:00
6f2ac5d6ad push2: various changes in support of menus and scale mode 2016-09-27 14:59:31 -05:00
b6ecc56e7a push2: scale selection and display on video display now working 2016-09-27 14:59:31 -05:00
9cc40aafa0 push2: menu presentation now working 2016-09-27 14:59:31 -05:00
0610e1dc8d remove all pad + scale stuff from push2 gui 2016-09-27 14:59:31 -05:00
0613f8e3bd put change_alpha() into ArdourCanvas namespace as intended 2016-09-27 14:59:31 -05:00
216ce7bcb8 a slew of unconnected mostly minor tweaks to get Push2 support back to where it was...
... prior to using the canvas for the video screen
2016-09-27 14:59:31 -05:00
b835486170 tweaks and so forth to get first canvas-based rendering to Push2 display 2016-09-27 14:59:31 -05:00
8cc94e79ac push2: remove Knob::set_position() overload 2016-09-27 14:59:31 -05:00
7c9f3acc60 first compiling and theoretically correct version of Push2 canvas display.
Not tested with device at this point
2016-09-27 14:59:31 -05:00
2810e5619a push2: provide basic GUI control for pressure mode 2016-09-27 14:59:31 -05:00
b822d8be36 basic code to get/set pressure mode to/from the push2 2016-09-27 14:59:31 -05:00
6946bdc083 send a slightly more useful message if a control protocol's probe() method fails 2016-09-27 14:59:31 -05:00
f50d7cda25 additional i18n.h changes for push2 branch 2016-09-27 14:59:31 -05:00
7011ce23b1 fix required after rebase against master 2016-09-27 14:59:31 -05:00
313a0a7e90 push2: small change to work with a recent change in master 2016-09-27 14:59:31 -05:00
8fdf1669a7 push2: fix up issues with object lifetimes and signals during shutdown 2016-09-27 14:59:31 -05:00
ad7543c02f push2: track mix layout somewhat working 2016-09-27 14:59:31 -05:00
f20618ae19 push2: continued mix layout display refinement, plus scrolling fixes 2016-09-27 14:59:31 -05:00
11843e00ba continuing work on refining push2 mix layout 2016-09-27 14:59:31 -05:00
b830965288 push2: steps toward a more ableton-like layout in mix mode 2016-09-27 14:59:31 -05:00
4cc71d2966 push2: parameterize and centralize colors 2016-09-27 14:59:31 -05:00
79025e8c42 push2: small code improvements, avoiding intermediate variables 2016-09-27 14:59:31 -05:00
ccbe1797d6 push2: color palette management, and responding to 2 track properties in TrackMix layout 2016-09-27 14:59:31 -05:00
a4324d79a7 push2: add a little meat to the bones of the TrackMix layout (just a name, for now) 2016-09-27 14:59:31 -05:00
995f3f80bb push2: skeleton for track mix layout 2016-09-27 14:59:31 -05:00
2689458500 push2: rearrange and separate header file material 2016-09-27 14:59:31 -05:00
64d390ff13 push2: remove unneeded maps from Push2 object 2016-09-27 14:59:30 -05:00
c4602603b4 push2: make octave buttons actually work, with shift-press to reset to zero 2016-09-27 14:59:30 -05:00
6b080bf6ec stop using pitch bend strip for shuttle control (it sucks, and messes up using it for MIDI performance) 2016-09-27 14:59:30 -05:00
8e63685724 push2: cleanup layouts 2016-09-27 14:59:30 -05:00
14d80ec5f8 refactor Push2 GUI into modular "layouts" that encapsulate a given screen, its drawing and event handling 2016-09-27 14:59:30 -05:00
86578ea0cc push2: first somewhat operational versions of menus 2016-09-27 14:59:30 -05:00
b37531e04f push2: basics of 4x 4x4 percussive mode, similar to MPC (and vaguely to Live) 2016-09-27 14:59:30 -05:00
5e407406c4 ControlOnly port flag is gone 2016-09-27 14:59:30 -05:00
1c9fdc0ce8 add Session::get_physical_ports() to centralize "get physical ports but (maybe) ignore control-only (and MIDI Through) ports" 2016-09-27 14:59:30 -05:00
47ba20143e remove ControlOnly port flag, since it was essentially unusable 2016-09-27 14:59:30 -05:00
3cf92ee523 ignore control-only physical ports when building system bundles 2016-09-27 14:59:30 -05:00
bc1876a84b push2: use correct selection API 2016-09-27 14:59:30 -05:00
053207003b push2: passthru pitch bend, aftertouch and channel pressure from dem fancy pads! 2016-09-27 14:59:30 -05:00
c13e568ee8 push2: connect pad port to selected MIDI at protocol startup 2016-09-27 14:59:30 -05:00
d8de7962ca change bundling of Push 2 ports so that the implicit connection ports don't show up 2016-09-27 14:59:30 -05:00
b31df0db2c add bundle support to push2 2016-09-27 14:59:30 -05:00
581fe8a237 add MIDI bundles to Generic MIDI support so that the ports show up nicely in the grid 2016-09-27 14:59:30 -05:00
591e59dae4 add PortManager::port_is_control_only() and use it in PortManager::get_ports()
This allows us to avoid using "control-only" ports (e.g. Ableton Push 2 hardware ports) as inputs or outputs
2016-09-27 14:59:30 -05:00
0318d3cd64 add explanatory comment 2016-09-27 14:59:30 -05:00
5d4e1b3231 remove debug output 2016-09-27 14:59:30 -05:00
33a2995fd8 push2: save and restore push2 pad state, etc. 2016-09-27 14:59:30 -05:00
70477e6fed push2: almost fully operational ableton style pad mapping, etc 2016-09-27 14:59:30 -05:00
2aec2161f9 push2: initial sort of working pad remapping 2016-09-27 14:59:30 -05:00
597c737ab5 push2: get automatic pad connection to selected MIDI track working again 2016-09-27 14:59:30 -05:00
d19c9885ff push2: start of pad layout editing 2016-09-27 14:59:30 -05:00
afef816a7b push2: use a map for direct lookup of pad note 2016-09-27 14:59:30 -05:00
66453868cd push2: update GUI pad display when octave shift is used, or pad map is changed 2016-09-27 14:59:30 -05:00
eff67c8a8f push2: basics of octave shifting 2016-09-27 14:59:30 -05:00
915f937aa4 push2: add missing files 2016-09-27 14:59:30 -05:00
cf28d71783 push2: basic GUI dialog 2016-09-27 14:59:30 -05:00
6dbe3a1e3b post-rebase fixes 2016-09-27 14:59:30 -05:00
d1c024f4f9 move shadow port stuff from AsyncMIDIPort to MidiPort, where it belongs 2016-09-27 14:59:30 -05:00
67620c353f push2: connect first selected track to pad port (and disconnect).
Provisional. Lots of (fun) work to do here
2016-09-27 14:59:30 -05:00
3669096c05 expose AsyncMIDIPort::shadow_port() 2016-09-27 14:59:30 -05:00
0c1c7ec642 set latency range for shadow port.
Not tracked if parent/owner port changes latency
2016-09-27 14:59:30 -05:00
7f7a5f1c51 Flush shadow port buffer (to the backend port buffer) if filtering wrote anything. 2016-09-27 14:59:30 -05:00
74ae2c6ae6 Add additional flags when registering a shadow port. 2016-09-27 14:59:30 -05:00
483c408390 add two new port flags 2016-09-27 14:59:30 -05:00
1850510423 change PortManager API to allow specifying additional flags when registering a port 2016-09-27 14:59:30 -05:00
4e1d3f6416 remove declaration for non-existent method 2016-09-27 14:59:30 -05:00
eb43344cf6 use modified add_shadow_port API(); make pads flash when pressed 2016-09-27 14:59:30 -05:00
be1dff4aaa push2: fix one pad registration detail 2016-09-27 14:59:30 -05:00
8565d61444 change API for shadow ports and filters
Filter functor needs to be set before registering port, so provide it when adding the port.
2016-09-27 14:59:30 -05:00
62d2d86b88 add a shadow port for the Push 2 port, to allow us to filter pads (note on/off) to other parts of Ardour 2016-09-27 14:59:29 -05:00
8a06e6735d add initial implementation of a "shadow port" for AsyncMIDIPort.
The shadow port is a secondary port that can be used to allow others to get a copy of part, all or none of the MIDI
stream received by the owner (input) port.
2016-09-27 14:59:29 -05:00
1448be481f push2: splash screen
Coded while the paint prep dries in the sun
2016-09-27 14:59:29 -05:00
169cf294c5 push2: expose page right/left buttons for scrolling; use right/left for banking; mute+solo debugging in place 2016-09-27 14:59:29 -05:00
9321cbaf10 push2: stop segfaults when closing push2 support 2016-09-27 14:59:29 -05:00
3932f07b6b push2: numerous changes, including long press actions 2016-09-27 14:59:29 -05:00
8a26f02851 amend FaderPort code to use BasicUI::goto_start() with optional argument 2016-09-27 14:59:29 -05:00
4847544144 fix PresentationInfo::flag_match() to match type bits 2016-09-27 14:59:29 -05:00
d7a16786fc change API for BasicUI::goto_start() to use optional roll-after arg 2016-09-27 14:59:29 -05:00
38fbf3c302 change Session::goto_start() to take an argument to optionally roll after locate 2016-09-27 14:59:29 -05:00
f699773490 clear button states at startup *and* shutdown 2016-09-27 14:59:29 -05:00
2afb7f1a30 basic implementation of scrubbing via push2 touch strip 2016-09-27 14:59:29 -05:00
6691975031 gain automation implemented.
Push 2 is rather slow to send touch-end messages.
2016-09-27 14:59:29 -05:00
c26de72870 use encoders for gain control 2016-09-27 14:59:29 -05:00
f290be21ee use right-side buttons to goto_nth_marker() 2016-09-27 14:59:29 -05:00
ac9b5f872d add method (taken from GTK GUI) to goto_nth_marker() to BasicUI 2016-09-27 14:59:29 -05:00
93dd5414d6 beginning of stripable control; solo+mute mostly operational 2016-09-27 14:59:29 -05:00
c6faede00c add shift modifier support 2016-09-27 14:59:29 -05:00
98335084c7 turn on all buttons that be envisaged as useful in ardour (for now); add support for edit-range-from-playhead ops 2016-09-27 14:59:29 -05:00
3438003566 remove debug output 2016-09-27 14:59:29 -05:00
eadf9bbef1 light solo button, and do cancel_all_solo() when it is pressed 2016-09-27 14:59:29 -05:00
0e5ac13a04 use new shared cancel_all_solo() in Mackie code 2016-09-27 14:59:29 -05:00
40dd604dbc add correct implementation for cancel all solo to BasicUI 2016-09-27 14:59:29 -05:00
d407d09d9c pulse metronome led when enabled 2016-09-27 14:59:29 -05:00
a96b320e3d expand display contents to include TC & BBT clocks, plus button function and track indicators
So many possibilities, so little time. Really going to need a "native" widget kit before this is finished
2016-09-27 14:59:29 -05:00
5ae72d574c only 1 MIDI port needed; more button functionality 2016-09-27 14:59:29 -05:00
4991bf5a1a push2: working bidirectional communication, some transport control/display (LED only); some scrolling 2016-09-27 14:59:29 -05:00
96db13e1ba push2: working port i/o 2016-09-27 14:59:29 -05:00
67698b8232 push2: port registration, LED setup 2016-09-27 14:59:29 -05:00
e0be45de38 remove duplicate/unnecessary header inclusions 2016-09-27 14:59:29 -05:00
189173c1b1 various fixes for push2 support. Now setups video display when enabled 2016-09-27 14:59:29 -05:00
413fe2cf9a adjustments to build nascent push2 surface support 2016-09-27 14:59:29 -05:00
Ross Lagerwall
2203e03831 Match new[] with delete[] 2016-09-27 18:22:53 +01:00
6298246a00 fix detecting .flac format 2016-09-25 22:20:08 +02:00
8018bed0de add an option to exclude unused Audio Sources when archiving the session 2016-09-23 20:34:28 +02:00
f7cb5b1a6b fix a typo.
Really a no-op, AudioSource::length() ignores the position, and
for regular regions > 0 is equivalent to != 0
2016-09-23 18:46:34 +02:00
nick_m
080e7755a6 Remove _midi_regions_use_bbt_beats from Session, _start_pulse and _length_pulse from MidiRegion.
- _start/length_beats are now quarter notes regardless
	  of loaded session version.

	- also restores note colour update
2016-09-23 03:39:05 +10:00
b475fda66e PortManager::silence() should not clear data in AsyncMIDIPorts
This data was generated asynchronously and is not required to be "silenced"
the way that session data would be. Compare also to the similar tests for
sync-related MIDI ports
2016-09-21 23:02:38 -05:00
c21332df71 gain controls are supposed to be "gain-like" 2016-09-21 17:18:48 -05:00
c80e8727df report archive encoding progress 2016-09-21 13:04:25 +02:00
aeb1c71211 Add option to flac encode audio when archiving 2016-09-21 04:05:45 +02:00