Commit graph

11871 commits

Author SHA1 Message Date
Robin Gareus
db2d238cec Update prototype API (3f739738) for windows/dll compat
memory allocated by a .dll must be free()d by the given dll.
2016-10-30 17:39:55 +01:00
Robin Gareus
0ea9270a4b avoid C++11 (and remove debug output) 2016-10-30 04:51:31 +01:00
Robin Gareus
3f73973806 Prototype LV2 extension for plugins to provide Midnams 2016-10-29 19:57:43 +02:00
Robin Gareus
f8167ebe20 Prepare for the day when MTAV does no longer force-override InstrumentInfo 2016-10-29 19:57:43 +02:00
Robin Gareus
0332c127cd Allow to dynamically un/load Midnam Patches 2016-10-29 19:57:43 +02:00
Robin Gareus
06700cb2f4 Allow to construct a XML tree from a text buffer 2016-10-29 19:57:43 +02:00
Robin Gareus
5ed764178a Fix crash with empty patch-names.
An empty text will not produce a bounding box.
2016-10-29 19:57:43 +02:00
Robin Gareus
c5d4900ea4 a-fluidsynth: fix off-by one. Assign all MIDI channels if possible 2016-10-29 19:57:43 +02:00
Len Ovens
9d63002d2f OSC: Slow down data storm at surface refresh 2016-10-29 10:56:44 -07:00
Len Ovens
82d3842656 OSC: Add names/fader value to master and monitor. 2016-10-28 17:34:17 -07:00
Len Ovens
e631119092 OSC: simplify int sends too. 2016-10-28 15:05:40 -07:00
Len Ovens
d802c982cb OSC: More simplification - floats this time. 2016-10-28 14:42:56 -07:00
Len Ovens
4eb2da491f OSC: simplify Global feedback (remove repetitive code) 2016-10-28 13:45:30 -07:00
Robin Gareus
8de0788f7b yet another waf/HIDAPI tweak 2016-10-27 15:57:47 +02:00
Tim Mayberry
8d70b76059 Fix restoration of key bindings assigned to Windows+key, bug #7037
Windows key generates Mod4+Super (at least with the version of Gdk we use on
linux) so for bindings using the Windows key to work, GDK_SUPER_MASK has to be
added to modifier mask.
2016-10-26 12:03:17 +10:00
Robin Gareus
0e65852901 Desperate hack to align master-bus on export.
Another 90% solution which hopefully gives us another year :(
see comments Session::start_audio_export() for explanation.
2016-10-25 22:33:37 +02:00
nick_m
927b16aa53 don't mix framepos with quarter notes when calculating _start frames.
- quarter note precision is greater than the frame-based
	  _position. using it as a reference may cause a rounding error
	  if the region is locked to MusicTime.

	- also fixes a _start position bug when trimming midi regions.

	- we really need a better api for this kind of thing.

	- in combination with the previous two patches, this should fix
	  various missing first note issues.
2016-10-25 04:36:34 +11:00
nick_m
dfb0868847 make MidiRegion::start/length_beats() const. 2016-10-25 04:15:50 +11:00
nick_m
ce3ae4cdc9 remove unnecessary rounding from MidiSource::midi_read()
- we already have start_beats, so don't try to recalculate
	  something similar for the position comparison.
2016-10-25 04:14:14 +11:00
nick_m
20d02c4c68 expand on existing tempo tests. 2016-10-25 04:02:58 +11:00
nick_m
509d938b04 Don't recalculate region beat position on session load, fix AudioTime thinko. 2016-10-25 03:59:13 +11:00
Len Ovens
5743013ae4 OSC fix debug logic for catchall messages 2016-10-23 19:00:20 -07:00
Len Ovens
dd015e09a7 OSC Accept int in first parameter in path commands as well as float. 2016-10-23 18:45:25 -07:00
Robin Gareus
53e9337eba Fix HIDAPI optional (python: False vs 'False') 2016-10-24 00:51:51 +02:00
Robin Gareus
c78824aef5 Include hidapi library 2016-10-23 22:53:10 +02:00
Robin Gareus
57d1f68cd6 Introduce "virtual" async MIDI ports
This allows to flush an async MIDI port's ringbuffer at cycle-start,
to makes its data available as "input/source" during process(), while
collecting data in the background for the next cycle.

This facilitates virtual MIDI Ports for eg. Control Surface Pads:
output from a surface, input to Ardour channels.
2016-10-23 22:25:40 +02:00
Robin Gareus
7e861bd12e NO-OP: whitespace 2016-10-23 22:18:07 +02:00
Robin Gareus
7c8ab05c09 Don't add initial points for MIDI-CC
eg. import a .mid that has a CC later in the file.
Arodur wrongly added an initial point, effectively moving the event
backwards to "0" (no virgin territory)
2016-10-23 14:21:24 +02:00
Paul Davis
6866359c48 when fetching MIDI ports for bundles and auto-connection, ignore control-only (and "virtual") MIDI ports
"virtual" is a placeholder name for ALSA sequencer MIDI through ports
2016-10-21 16:32:46 -04:00
Paul Davis
fb200cfbb9 remove debug output 2016-10-21 16:31:53 -04:00
Paul Davis
235c1f9adb infrastructure for save/restore of MIDI port user-provided information 2016-10-20 16:34:52 -04:00
Paul Davis
12c558f62e tweak logic for MIDI input follows selection 2016-10-20 16:34:52 -04:00
Paul Davis
8ac97d55c9 slight improvements in logic for midi-input-follows-selection 2016-10-19 23:17:39 -04:00
Paul Davis
72c8ab0103 add PortManager::disconnect (std::string const&) 2016-10-19 23:17:08 -04:00
Paul Davis
f96b698234 infrastructure for MIDI-input-follows-selection 2016-10-19 17:49:35 -04:00
Paul Davis
0a8ab08e5f basics of following MIDI track selection and rewiring input 2016-10-19 17:49:35 -04:00
Paul Davis
d0b2767856 NOOP: whitespacing tweak 2016-10-19 17:49:35 -04:00
Paul Davis
8c911234e6 basics of managing a list of port names for MIDI-input-follows-selection 2016-10-19 17:49:35 -04:00
Robin Gareus
1cc561bf74 Use official LV2 state:StateChanged URI
http://lv2plug.in/git/cgit.cgi/lv2.git/commit/?id=dbb18d82136d43eec435e321bffa835ba5776d6e
2016-10-19 19:45:53 +02:00
Robin Gareus
56711b99c9 Work around OSX MIDI devices that send no timestamps 2016-10-19 19:45:53 +02:00
Paul Davis
d29d93f4cd fix retrieval of port properties (metadata) when the value has no type 2016-10-18 16:46:33 -04:00
nick_m
715b178130 Improve bbt ruler drawing performance for large time ranges.
- when the timeline displays many bars, zoom/autoscroll
	  speed is improved by calculating the bbt ruler scale first
	  then requesting a suitably scaled grid.
2016-10-19 03:56:43 +11:00
David Robillard
208cb967e5 Warn about skipped MIDI events
This can occur when the MIDI readahead time is too low and events get
pushed into the MidiRingBuffer after the corresponding read.  In this
case, skip_to() gets called (as it does before every read) and the
events are silently dropped.

This is a Very Bad Thing(TM), so warn about it.  I am not sure which
other scenarios can skip events that aren't problematic, but there's
probably some.  A more sophisticated detection/reporting (or maybe even
dynamic reconfiguration) scheme would be nice here, but some false
positive messages are at least better than silently failing to play
notes and the like.
2016-10-17 20:22:26 -04:00
David Robillard
94f8b7b8f2 Clean up MIDI debugging output 2016-10-17 20:22:26 -04:00
Paul Davis
69cbcb84a6 spelling corrections from Jaromír Mikeš <mira.mikes@seznam.cz>
Corresponds to https://anonscm.debian.org/cgit/pkg-multimedia/ardour.git/tree/debian/patches/0070-spelling.patch
2016-10-17 17:57:39 -04:00
Paul Davis
c43046320b reset peak meters used in push2 when stripable goes away 2016-10-17 15:58:39 -04:00
Paul Davis
687ac2d294 remove unused variable 2016-10-17 15:58:39 -04:00
Nathan Stewart
84c66c75db Initialize uninitialized member variables in ctor - warning suppression 2016-10-17 15:58:39 -04:00
Robin Gareus
3e32a00a52 fast region export -- don't call process() 2016-10-17 21:35:00 +02:00
Paul Davis
8519677a24 fix potentially crash-inducing race condition by removing event loops' x-thread channel from an event loop when it is destroyed 2016-10-17 14:48:15 -04:00