13
0
Commit Graph

11127 Commits

Author SHA1 Message Date
a1bff57695 lua MidiBuffer bindings 2016-07-11 03:04:29 +02:00
5156b8aeb5 White space fix only. (Spaces to tabs) 2016-07-10 08:20:05 -07: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
5780e44993 add raw midi buffer binding 2016-07-10 14:45:58 +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
0c2a5dc0b2 better safe than sorry 2016-07-09 18:34:27 +02: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
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
828cb52f86 Fail properly when adding a new audio locked meter's tempo. 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
nick_m
4acd365e42 AudioPlaylist doesn't double-notify that contents have changed if bounds have changed. 2016-07-10 02:18:37 +10:00
nick_m
5afe2993bd Remove extra ContentsChanged signal on tempo map change. 2016-07-10 02:18:37 +10:00
nick_m
447f9ee062 Exact beat for added regions. 2016-07-10 02:18:37 +10:00
nick_m
3b4a406ba1 Only update midi regions having a playlist after tempo map change, fix 0 length regions from drawing tool. 2016-07-10 02:18:37 +10:00
nick_m
4bdbe77414 Avoid the use of dynamic_cast in TempoMap for performance improvement.
- review / comment would be appreciated here.
2016-07-10 02:18:37 +10:00
nick_m
8e99b59af5 Make TempoMap::bbt_at_frame() more efficient.
- should be a no-op
2016-07-10 02:18:37 +10:00
nick_m
95ba43916f Improve performance of automation range moves. 2016-07-10 02:18:37 +10:00
nick_m
7a6efaaf3d Quick fix to get trim working again (bahaving oddly during trim right now) 2016-07-10 02:18:37 +10:00
nick_m
9f61f8a5b0 Complete the task of Playlist::flush_notifications () 2016-07-10 02:18:36 +10:00
nick_m
c6f2095fb7 Improve the performance of TempoMap::frame_at_beat ().
- should be a no-op
2016-07-10 02:18:36 +10:00
nick_m
0e63fa65b5 Remove frame conversion for MidiRegionView::note_in_region_range(), speed up tempo dilation 2016-07-10 02:18:36 +10:00
nick_m
93c24e4433 Paste uses exact beats. rework _start_beats calculation in copy-with-offset ctor. 2016-07-10 02:18:36 +10:00
nick_m
94e0a15325 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.
2016-07-10 02:18:36 +10:00
nick_m
2d5238d875 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.
2016-07-10 02:18:36 +10:00
0d050de94e 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.
2016-07-09 17:42:58 +02:00
b64a6b658e handle internal-sends from audio to midi busses 2016-07-09 13:51:52 +02:00
20e216afcc commence testing 2016-07-09 11:55:05 +02:00
56c4eebfdd 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
2016-07-09 04:42:21 +02:00
49c9569039 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.
2016-07-09 02:17:00 +02:00
09c4c51335 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.
2016-07-09 02:00:27 +02:00
820f99d484 Make Delivery::run more Datatype-agnostic
Note that checking the number of output ports is not needed because
IO::copy_to_outputs() will stop if there are less ports of the right
type than buffers (or even none).
2016-07-09 01:21:27 +02:00
d6534eb143 Assert that nobody calls IO::copy_to_output with empty bufs
IO::copy_to_output() crashed if there was no channel to copy from. Since
all callers seem to check before calling, just assert() that it is not
the case.
2016-07-09 01:21:27 +02:00
ac923be7af fix port-sort order for good.
TODO find out how to make std::set::find() work with custom sort order,
as std::find may only be O(N) and not O(log (N)).
2016-07-08 21:37:42 +02:00
97b1725023 OSC: Add well known controls for pan and compressor 2016-07-08 11:54:37 -07:00
f84a7605d8 pre-sort port-names 2016-07-08 20:44:21 +02:00
b7dc66c903 untested hack for AU multi-bus outputs which are not explicitly listed 2016-07-08 20:29:39 +02:00