Robin Gareus [Tue, 12 Jul 2016 14:42:29 +0000 (16:42 +0200)]
a-reverb prototype (based on setBfree b_reverb)
Robin Gareus [Tue, 12 Jul 2016 13:21:23 +0000 (15:21 +0200)]
re-classify bundled lua scripts
* search by author:
- "Ardour Team" for "ready to use" plugins
- "Ardour Lua Task Force" = example plugins
* search by Category
- use "Example" for DSP plugins (except instruments)
Paul Davis [Tue, 12 Jul 2016 14:27:19 +0000 (10:27 -0400)]
do not show windows derived from ArdourDialog at startup.
See code comment for more details
Paul Davis [Tue, 12 Jul 2016 13:42:34 +0000 (09:42 -0400)]
when using toggle-editor-and-mixer, if current tab is neither, go to mixer first.
This makes using Alt-m (the default binding) feel a lot more sensible
Paul Davis [Tue, 12 Jul 2016 13:17:55 +0000 (09:17 -0400)]
remove pointless version of Stripable::set_presentation_order()
Robin Gareus [Tue, 12 Jul 2016 12:38:19 +0000 (14:38 +0200)]
fix a a-eq ttl typo
Robin Gareus [Tue, 12 Jul 2016 12:38:05 +0000 (14:38 +0200)]
add mouse interaction to inline display
Paul Davis [Tue, 12 Jul 2016 12:20:46 +0000 (08:20 -0400)]
fix simple but fatal mistake in defining PBD::Controllable::Flags enums.
This error caused the flags to be saved as an empty string, thus losing all state when the session is reloaded
Robin Gareus [Tue, 12 Jul 2016 11:44:55 +0000 (13:44 +0200)]
fix compilation with lv2 < 1.10 (lv2 extended)
Robin Gareus [Tue, 12 Jul 2016 02:02:33 +0000 (04:02 +0200)]
more compact generic knob-ui layout
Robin Gareus [Tue, 12 Jul 2016 02:01:56 +0000 (04:01 +0200)]
a-eq tweaks:
* shorten e-eq Hz display (no decimals)
* use 16:9 aspect inline display
* fix a compiler warning
Julien "_FrnchFrgg_" RIVAUD [Mon, 11 Jul 2016 22:13:01 +0000 (00:13 +0200)]
Make MIDI monitor a pass-through for audio and midi
MIDI monitor only accepted midi data and output that same data. That was
logical for a MIDI plugin, but a consequence is that automatic pin
configuration makes MIDI monitors opaque to audio data, which means
drag'n'dropping a MIDI monitor for debugging purposes can suddenly cut
audio, or even change the channel count if strict I/O is enabled.
Improve the MIDI monitor so that it passes through all incoming data
unchanged.
Robin Gareus [Mon, 11 Jul 2016 23:46:17 +0000 (01:46 +0200)]
update MIDIEvent lua bindings/example
Len Ovens [Mon, 11 Jul 2016 23:00:14 +0000 (16:00 -0700)]
OSC: finish feedback for well known controls. Simplify some others.
Robin Gareus [Mon, 11 Jul 2016 20:53:13 +0000 (22:53 +0200)]
remove debug output
Robin Gareus [Mon, 11 Jul 2016 20:36:00 +0000 (22:36 +0200)]
add a convenient lua forward mapped buffers method
Robin Gareus [Mon, 11 Jul 2016 20:22:17 +0000 (22:22 +0200)]
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.
Robin Gareus [Mon, 11 Jul 2016 16:57:04 +0000 (18:57 +0200)]
add _FrnchFrgg_ to credits
Julien "_FrnchFrgg_" RIVAUD [Mon, 11 Jul 2016 15:39:59 +0000 (17:39 +0200)]
Improve MIDI monitor
Robin Gareus [Mon, 11 Jul 2016 14:57:02 +0000 (16:57 +0200)]
remove implicit labels from a-eq
Robin Gareus [Mon, 11 Jul 2016 14:55:28 +0000 (16:55 +0200)]
add a MTC/sysex test sequence
Julien "_FrnchFrgg_" RIVAUD [Mon, 11 Jul 2016 13:29:56 +0000 (15:29 +0200)]
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.
Robin Gareus [Mon, 11 Jul 2016 11:42:42 +0000 (13:42 +0200)]
fix OSX compilation (flat namespace)
reference to 'Rect' is ambiguous
..../CarbonCore.framework/Headers/MacTypes.h defines
typedef struct Rect
Robin Gareus [Mon, 11 Jul 2016 01:46:33 +0000 (03:46 +0200)]
tweak generic plugin knob-widgets
remove label, use tooltip (saves space, more compact layout)
Robin Gareus [Mon, 11 Jul 2016 01:45:13 +0000 (03:45 +0200)]
extend ArdourKnob ToolTips
allow to set/change tooltip-prefix and set a "printer" in preparation
for properly using the Knob in Plugin UIs
Robin Gareus [Mon, 11 Jul 2016 01:05:43 +0000 (03:05 +0200)]
elaborate documented raw audio/midi buffer lua example
Robin Gareus [Mon, 11 Jul 2016 01:04:29 +0000 (03:04 +0200)]
lua MidiBuffer bindings
nick_m [Sun, 10 Jul 2016 17:53:36 +0000 (03:53 +1000)]
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.
Len Ovens [Sun, 10 Jul 2016 15:20:05 +0000 (08:20 -0700)]
White space fix only. (Spaces to tabs)
Robin Gareus [Sun, 10 Jul 2016 14:48:38 +0000 (16:48 +0200)]
refine lua-script documentation
Robin Gareus [Sun, 10 Jul 2016 13:59:50 +0000 (15:59 +0200)]
NO-OP whitespace
Robin Gareus [Sun, 10 Jul 2016 13:56:18 +0000 (15:56 +0200)]
add a single-element ring-buffer write function
Robin Gareus [Sun, 10 Jul 2016 13:30:41 +0000 (15:30 +0200)]
remove reference "const int32_t&" -> const int32_t"
this simplifies lua-bindings and also let's the compiler worry about
constant primitive types.
Robin Gareus [Sun, 10 Jul 2016 13:01:29 +0000 (15:01 +0200)]
complete ringbuffer bindings
Robin Gareus [Sun, 10 Jul 2016 12:46:41 +0000 (14:46 +0200)]
add a raw midi buffer plugin example
Robin Gareus [Sun, 10 Jul 2016 12:45:58 +0000 (14:45 +0200)]
add raw midi buffer binding
Robin Gareus [Sun, 10 Jul 2016 12:08:24 +0000 (14:08 +0200)]
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.
Robin Gareus [Sun, 10 Jul 2016 02:02:02 +0000 (04:02 +0200)]
fix plugin bypass -- thinko in
54d8def6
Robin Gareus [Sun, 10 Jul 2016 01:20:35 +0000 (03:20 +0200)]
towards export latency compensation
Robin Gareus [Sun, 10 Jul 2016 00:40:24 +0000 (02:40 +0200)]
align stem-export (raw track outputs (with and w/p processing)
Paul Davis [Sat, 9 Jul 2016 22:19:27 +0000 (18:19 -0400)]
possible fix for off-by-one issue with MIDI binding maps etc.
Paul Davis [Sat, 9 Jul 2016 21:53:17 +0000 (17:53 -0400)]
fix initialization order
Paul Davis [Sat, 9 Jul 2016 21:15:17 +0000 (17:15 -0400)]
const bool METHOD() const makes no sense
Julien "_FrnchFrgg_" RIVAUD [Thu, 7 Jul 2016 17:17:16 +0000 (19:17 +0200)]
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.
Julien "_FrnchFrgg_" RIVAUD [Thu, 7 Jul 2016 17:12:23 +0000 (19:12 +0200)]
update_io_button: store input() or output() in a variable
This avoids repeating "if (for_input)" checks.
Robin Gareus [Sat, 9 Jul 2016 16:31:40 +0000 (18:31 +0200)]
better safe than sorry
nick_m [Sat, 9 Jul 2016 16:11:36 +0000 (02:11 +1000)]
Revert incorrect 'optimisation' from
4f7a4cd2333.
- fixes regression in stacked layering display.
nick_m [Sat, 9 Jul 2016 15:50:38 +0000 (01:50 +1000)]
Minimise duplicate calls to CairoWidget::set_dirty() in the editor summary.
- many regions may be changed by one operation.
nick_m [Thu, 7 Jul 2016 16:45:07 +0000 (02:45 +1000)]
Edit note dialog fixes.
- position display is session-relative
- Add missing undo to note edit.
nick_m [Thu, 7 Jul 2016 12:37:28 +0000 (22:37 +1000)]
Always set the musical position in Region::recompute_position_from_lock_style().
nick_m [Tue, 5 Jul 2016 18:36:48 +0000 (04:36 +1000)]
Fix missing note divisor when creating regions, ensure an existing musical time is not altered.
nick_m [Tue, 5 Jul 2016 16:03:06 +0000 (02:03 +1000)]
Midi note resizing uses exact beat.
nick_m [Tue, 5 Jul 2016 14:18:09 +0000 (00:18 +1000)]
Use exact beat when adding midi notes.
nick_m [Mon, 4 Jul 2016 15:11:48 +0000 (01:11 +1000)]
Simplify Editor::mouse_add_new_meter_event() a bit.
nick_m [Mon, 4 Jul 2016 15:10:14 +0000 (01:10 +1000)]
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.
nick_m [Sun, 3 Jul 2016 15:45:41 +0000 (01:45 +1000)]
Fix long-standing spelling bug.
- should be a no-op.
nick_m [Sun, 3 Jul 2016 15:21:36 +0000 (01:21 +1000)]
Fix missing tempi recompute, improve adding meter/tempo failure.
nick_m [Sun, 3 Jul 2016 15:12:55 +0000 (01:12 +1000)]
Stop passing references to things that may disappear when a metric section is replaced.
nick_m [Fri, 1 Jul 2016 19:38:25 +0000 (05:38 +1000)]
Fail properly when adding a new audio locked meter's tempo.
nick_m [Fri, 1 Jul 2016 19:35:27 +0000 (05:35 +1000)]
Check meter/tempo section exists in copy drag.
nick_m [Fri, 1 Jul 2016 17:06:49 +0000 (03:06 +1000)]
Indicate meter frame even when adding a music-locked meter from the gui.
nick_m [Fri, 1 Jul 2016 17:04:55 +0000 (03:04 +1000)]
Fix broken meter manipulation in exact_beat.
nick_m [Tue, 28 Jun 2016 19:23:52 +0000 (05:23 +1000)]
Back to using exact beats for midi region start_beats calculation when trimming.
- seems to work quite well, but not tested on live recording.
nick_m [Tue, 28 Jun 2016 18:06:33 +0000 (04:06 +1000)]
Fix bad comment.
nick_m [Tue, 28 Jun 2016 17:46:26 +0000 (03:46 +1000)]
Use frame-based (non-exact) beat calculation to set new start in midi region trim.
nick_m [Tue, 28 Jun 2016 15:19:59 +0000 (01:19 +1000)]
Experimental patch to ensure playback buffer bounds use minimal beat->frame rounding.
nick_m [Sun, 26 Jun 2016 18:35:16 +0000 (04:35 +1000)]
AudioPlaylist doesn't double-notify that contents have changed if bounds have changed.
nick_m [Sun, 26 Jun 2016 18:31:25 +0000 (04:31 +1000)]
AudioRegionView - don't do coverage frames unless we're in stacked mode.
nick_m [Sun, 26 Jun 2016 18:29:41 +0000 (04:29 +1000)]
Editor region list only updates columns that have changed,
nick_m [Sat, 25 Jun 2016 20:22:09 +0000 (06:22 +1000)]
Remove extra ContentsChanged signal on tempo map change.
nick_m [Sat, 25 Jun 2016 13:28:05 +0000 (23:28 +1000)]
Make bbt ruler visible in default session.
nick_m [Fri, 24 Jun 2016 19:22:57 +0000 (05:22 +1000)]
Fix note trimming over tempo changes, correct note length properly when resizing midi region.
nick_m [Fri, 24 Jun 2016 16:54:37 +0000 (02:54 +1000)]
Restore earlier midi region trim display.
nick_m [Fri, 24 Jun 2016 14:36:58 +0000 (00:36 +1000)]
Exact beat for added regions.
nick_m [Fri, 24 Jun 2016 14:34:59 +0000 (00:34 +1000)]
Only update midi regions having a playlist after tempo map change, fix 0 length regions from drawing tool.
nick_m [Fri, 24 Jun 2016 14:08:40 +0000 (00:08 +1000)]
Avoid the use of dynamic_cast in TempoMap for performance improvement.
- review / comment would be appreciated here.
nick_m [Fri, 24 Jun 2016 14:05:23 +0000 (00:05 +1000)]
Use Note::set (Rect) for speed improvement when rendering notes.
nick_m [Fri, 24 Jun 2016 14:04:04 +0000 (00:04 +1000)]
Add Note::set (Rect) for optimisation purposes (minimise begin/end changes)
nick_m [Tue, 21 Jun 2016 14:50:49 +0000 (00:50 +1000)]
Temporary work-around for note colour.
nick_m [Tue, 21 Jun 2016 13:58:30 +0000 (23:58 +1000)]
Make TempoMap::bbt_at_frame() more efficient.
- should be a no-op
nick_m [Tue, 21 Jun 2016 13:55:28 +0000 (23:55 +1000)]
Show correct bbt representation of region length in region list.
- fixes single-tempo assumption.
nick_m [Tue, 21 Jun 2016 12:04:06 +0000 (22:04 +1000)]
Improve performance of automation range moves.
nick_m [Mon, 20 Jun 2016 14:50:23 +0000 (00:50 +1000)]
Quick fix to get trim working again (bahaving oddly during trim right now)
nick_m [Sun, 19 Jun 2016 18:21:33 +0000 (04:21 +1000)]
Fix ordering thinko in note selected colour.
nick_m [Sun, 19 Jun 2016 16:41:52 +0000 (02:41 +1000)]
Complete the task of Playlist::flush_notifications ()
nick_m [Sun, 19 Jun 2016 16:32:30 +0000 (02:32 +1000)]
Performance - don't redisplay model immediately in MidiRegionView::enable_display ().
- allows MidiRegionView::reset_width_dependent_items () to do it
as intended (i think).
nick_m [Sun, 19 Jun 2016 15:04:23 +0000 (01:04 +1000)]
Performance tweak - NoteBase doesn't recalculate colour as often.
- not sure if we can store this atm.
nick_m [Sun, 19 Jun 2016 15:01:26 +0000 (01:01 +1000)]
Improve midi model redraw performance by caching colours.
nick_m [Sun, 19 Jun 2016 14:06:56 +0000 (00:06 +1000)]
Improve the performance of TempoMap::frame_at_beat ().
- should be a no-op
nick_m [Sat, 18 Jun 2016 16:48:48 +0000 (02:48 +1000)]
Use mostly beat-based calculation for displayed midi note position.
nick_m [Sat, 18 Jun 2016 13:24:05 +0000 (23:24 +1000)]
Remove frame conversion for MidiRegionView::note_in_region_range(), speed up tempo dilation
nick_m [Thu, 16 Jun 2016 17:20:37 +0000 (03:20 +1000)]
Paste uses exact beats. rework _start_beats calculation in copy-with-offset ctor.
nick_m [Wed, 15 Jun 2016 14:18:27 +0000 (00:18 +1000)]
Exact beat - provide audio->music mapping for region split.
- for those not in the know, this series provides a way to
remove the temporal distortion introduced when using an
audio frame-based gui for music-locked objects.
In short, the gui uses an audio frame representation to move
objects. It displays the object using frame_at_beat(), quantizing
the time value to audio frames. This is fine until the user selects
that frame but expects it to be interpreted as a beat.
Thus beat_at_frame() would not produce the user-expected beat
(temporal quantization error of up to 0.5 audio samples).
This is one method of mapping audio time to music time accurately.
nick_m [Mon, 13 Jun 2016 17:21:52 +0000 (03:21 +1000)]
Make some musical operations on music-locked regions operate in beats.
- use exact beats to determine frame position.
- see comments in tempo.cc for more.
- this hasn't been done for split yet, but dragging and
trimming are supported.
Robin Gareus [Sat, 9 Jul 2016 15:42:58 +0000 (17:42 +0200)]
move latency-recompute into dedicated thread.
this fixes an issue with jack1 and jack_latency_recompute() since must not
send a server request from inside the server callback.
Robin Gareus [Sat, 9 Jul 2016 11:51:52 +0000 (13:51 +0200)]
handle internal-sends from audio to midi busses
Robin Gareus [Sat, 9 Jul 2016 09:55:05 +0000 (11:55 +0200)]
commence testing
Robin Gareus [Sat, 9 Jul 2016 02:42:21 +0000 (04:42 +0200)]
move LatencyChanged detection from Plugin to Processor (plugin-insert)
* support all Plugin APIs (not implementation specific)
* also check for latency changes when plugins are hard en/disabled
Julien "_FrnchFrgg_" RIVAUD [Sat, 9 Jul 2016 00:17:00 +0000 (02:17 +0200)]
Make MIDI busses possible targets of internal sends
The session only added an internal return to new audio busses, and so
only those were proposed in the "New Aux Send" list. Also add the return
to new midi busses, now that internal sends know how to deal with midi.
Julien "_FrnchFrgg_" RIVAUD [Sat, 9 Jul 2016 00:00:27 +0000 (02:00 +0200)]
Make internal sends aware of non-audio data
When most internal sends are created, they are given a panner shell
which is then responsible for audio dispatch. Other data types were left
there without handling them at all. Ensure that all available data is
sent provided the internal send has enough outgoing buffers.