13
0
Commit Graph

21558 Commits

Author SHA1 Message Date
4537f5fb20 proper semantics for variable port-count
Ardour takes the closest pin/port match yet still offers a plugin with
variable i/o access to all port-buffers.

the "reported" (user visible) pin-count now defaults to the actual
selected configuration (precise) and lua_dsp_configure() can
override it.
2016-07-11 22:22:17 +02:00
10d11e0544 add _FrnchFrgg_ to credits 2016-07-11 18:57:04 +02:00
2d32b50a3f Improve MIDI monitor 2016-07-11 17:39:59 +02:00
1f7f7f8597 remove implicit labels from a-eq 2016-07-11 16:58:53 +02:00
b65cb37d24 add a MTC/sysex test sequence 2016-07-11 16:58:53 +02:00
1f08503ada Add a new MIDI monitor plugin
This plugin lets through all incoming MIDI events, and also shows the
latest ones in a human-readable format directly on the mixer strip. The
user can choose the font size and the number of recent events displayed,
as well as whether to print values in decimal or hexadecimal, and
whether to print system events.
2016-07-11 15:29:56 +02:00
2f535e3410 fix OSX compilation (flat namespace)
reference to 'Rect' is ambiguous
..../CarbonCore.framework/Headers/MacTypes.h defines
typedef struct Rect
2016-07-11 13:42:42 +02:00
1a59019d33 tweak generic plugin knob-widgets
remove label, use tooltip (saves space, more compact layout)
2016-07-11 03:46:33 +02:00
d43d220f1f extend ArdourKnob ToolTips
allow to set/change tooltip-prefix and set a "printer" in preparation
for properly using the Knob in Plugin UIs
2016-07-11 03:45:13 +02:00
bcfe7c2daa elaborate documented raw audio/midi buffer lua example 2016-07-11 03:05:43 +02:00
a1bff57695 lua MidiBuffer bindings 2016-07-11 03:04:29 +02:00
nick_m
b8a7ee001b Fix potential infinite loop in TempoCurve::set_position()
- it was previously possible for frame_step to be zero for tempo sections with
	  a short duration, resulting in endlessly adding 0 to current_frame.
2016-07-11 03:53:36 +10:00
5156b8aeb5 White space fix only. (Spaces to tabs) 2016-07-10 08:20:05 -07:00
4bb54f4128 refine lua-script documentation 2016-07-10 16:48:38 +02:00
7745a37394 NO-OP whitespace 2016-07-10 15:59:50 +02:00
7dfd39e708 add a single-element ring-buffer write function 2016-07-10 15:56:18 +02:00
140258d8ab remove reference "const int32_t&" -> const int32_t"
this simplifies lua-bindings and also let's the compiler worry about
constant primitive types.
2016-07-10 15:30:41 +02:00
cb2c459302 complete ringbuffer bindings 2016-07-10 15:01:29 +02:00
77fa4462f9 add a raw midi buffer plugin example 2016-07-10 14:46:41 +02:00
5780e44993 add raw midi buffer binding 2016-07-10 14:45:58 +02:00
8ff46aa9c6 re-layout import dialog (better fit for narrow screens)
The instrument dropdown can be very wide (depending on available synths)
and combined with other dropdowns and the copy-checkbox in a single row,
the min. width was well above 1400px.
2016-07-10 14:08:24 +02:00
509ce07c28 fix plugin bypass -- thinko in 54d8def6 2016-07-10 04:02:02 +02:00
a4a246b41d towards export latency compensation 2016-07-10 03:21:29 +02:00
0a52b325f4 align stem-export (raw track outputs (with and w/p processing) 2016-07-10 03:21:29 +02:00
7c13a16589 possible fix for off-by-one issue with MIDI binding maps etc. 2016-07-09 18:19:27 -04:00
1f3e49e8ee fix initialization order 2016-07-09 17:53:17 -04:00
57f74fbf13 const bool METHOD() const makes no sense 2016-07-09 17:15:17 -04:00
9389ee1e96 Better heuristics for guessing the primary type of an input or output
In order to choose which port name to display (if any) in the button,
MixerStrip::update_io_button() first chose a primary type for the input
or output. It was AUDIO in all cases, except if the route was a
MidiTrack where the primary type was MIDI.

In the latter case, it enabled the following code of update_io_button()
to show the MIDI sources feeding the MidiTrack rather than showing an
unhelpful dash.

But this simple heuristic has several shortcommings:
 - Going further, tracks and busses will probably loose strong types so
   the approach is not future-proof;
 - It doesn't take midi busses into account, yet there is no reason for
   them to be handled differently than midi tracks;
 - It falls short when the midi track contains a synthesiser and is
   meant to output audio.

Improve the heuristics by choosing the data type as follows:
 A) If there are connected audio ports, consider audio as primary type.
 B) Else, if there are connected midi ports, consider midi as primary type.
 C) If there are audio ports, consider audio as primary type.
 D) Else, if there are midi ports, consider midi as primary type.

These new heuristics give the same results for audio tracks and busses
(whose audio inputs have not been removed), and the same result for the
input of midi tracks (again, provided the inputs have not been tampered
with). It improves the situation for inputs of midi busses, and output
of midi tracks and busses, especially when synthesisers are in use.
2016-07-09 21:08:16 +02:00
35b4cb91d2 update_io_button: store input() or output() in a variable
This avoids repeating "if (for_input)" checks.
2016-07-09 21:08:16 +02:00
0c2a5dc0b2 better safe than sorry 2016-07-09 18:34:27 +02:00
nick_m
0e2ed90cfc Revert incorrect 'optimisation' from 4f7a4cd233.
- fixes regression in stacked layering display.
2016-07-10 02:18:38 +10:00
nick_m
23da9acf7e Minimise duplicate calls to CairoWidget::set_dirty() in the editor summary.
- many regions may be changed by one operation.
2016-07-10 02:18:38 +10:00
nick_m
a44c8b96ae Edit note dialog fixes.
- position display is session-relative

	- Add missing undo to note edit.
2016-07-10 02:18:38 +10:00
nick_m
703150d365 Always set the musical position in Region::recompute_position_from_lock_style(). 2016-07-10 02:18:38 +10:00
nick_m
8a676d2bd4 Fix missing note divisor when creating regions, ensure an existing musical time is not altered. 2016-07-10 02:18:38 +10:00
nick_m
5f0ab71989 Midi note resizing uses exact beat. 2016-07-10 02:18:38 +10:00
nick_m
11f002ddc4 Use exact beat when adding midi notes. 2016-07-10 02:18:38 +10:00
nick_m
99653ae2ca Simplify Editor::mouse_add_new_meter_event() a bit. 2016-07-10 02:18:38 +10:00
nick_m
33dab757ee Tempo map updates.
- cleanup audio-locked meter removal code

	- recompute and warn if map is left unsolved due to adding a metric

	- handle corner case wrt overlapping audio-locked musical sections.
2016-07-10 02:18:38 +10:00
nick_m
49159e9585 Fix long-standing spelling bug.
- should be a no-op.
2016-07-10 02:18:37 +10:00
nick_m
7a6f8abc1d Fix missing tempi recompute, improve adding meter/tempo failure. 2016-07-10 02:18:37 +10:00
nick_m
0bdbe56cf1 Stop passing references to things that may disappear when a metric section is replaced. 2016-07-10 02:18:37 +10:00
nick_m
828cb52f86 Fail properly when adding a new audio locked meter's tempo. 2016-07-10 02:18:37 +10:00
nick_m
39b70ceced Check meter/tempo section exists in copy drag. 2016-07-10 02:18:37 +10:00
nick_m
180445c18c Indicate meter frame even when adding a music-locked meter from the gui. 2016-07-10 02:18:37 +10:00
nick_m
f4ec7f12d1 Fix broken meter manipulation in exact_beat. 2016-07-10 02:18:37 +10:00
nick_m
e40604f6bd Back to using exact beats for midi region start_beats calculation when trimming.
- seems to work quite well, but not tested on live recording.
2016-07-10 02:18:37 +10:00
nick_m
e4a163e2fa Fix bad comment. 2016-07-10 02:18:37 +10:00
nick_m
6612b73033 Use frame-based (non-exact) beat calculation to set new start in midi region trim. 2016-07-10 02:18:37 +10:00
nick_m
f1802667ba Experimental patch to ensure playback buffer bounds use minimal beat->frame rounding. 2016-07-10 02:18:37 +10:00