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