13
0
Commit Graph

10492 Commits

Author SHA1 Message Date
nick_m
6d6ccaa839 Tempo ramps - all public TempoSection position parameters are session-relative. 2016-05-27 23:38:10 +10:00
nick_m
c7ff67004a Tempo ramps - fix messed up meter section state, audio-locked tempos ignore the bbt setting in the tempo dialog for now. 2016-05-27 23:38:10 +10:00
nick_m
d7ec204bf6 Tempo ramps - comment new meter section behaviour. 2016-05-27 23:38:10 +10:00
nick_m
0660705fdc Tempo ramps - fix changing to constant tempo 2016-05-27 23:38:10 +10:00
nick_m
bc42dea451 Tempo ramps - first stab at metric marks locked to frames or beats.
- pretty much untested.
2016-05-27 23:38:10 +10:00
nick_m
d8549c6ff5 Tempo ramps - demystify comments a bit. 2016-05-27 23:38:10 +10:00
nick_m
895bbbba11 Tempo ramps - minor optimisation and comment clarification. 2016-05-27 23:38:10 +10:00
nick_m
28127b1768 Tempo ramps - Remove the tick walk, store c_func, document the approach. 2016-05-27 23:38:10 +10:00
nick_m
f72eef1651 Tempo ramps - use consistent naming for _locked methods, use enum_2_string for TempoSection::Type. 2016-05-27 23:38:10 +10:00
nick_m
36f04367df Tempo ramps - fix crazy compilable namespace thinko 2016-05-27 23:38:10 +10:00
nick_m
d14c660261 Tempo ramps - fix save/restore of region position_lock_style. 2016-05-27 23:38:10 +10:00
nick_m
87d49cd6ec Tempo ramps - api rename, fix various meter and tempo dialog bugs. 2016-05-27 23:38:10 +10:00
nick_m
885f1fd684 Tempo ramps - update midi regions and locations when dragging tempo.
- also make locations and regions use a double beat rather than bbt for musical position.
2016-05-27 23:38:10 +10:00
nick_m
772683d2df Tempo ramps - improve the performance of recompute_map(). 2016-05-27 23:38:10 +10:00
nick_m
2f5b6b6b85 Tempo ramps - clean up TempoSection, fix thinko in position function. 2016-05-27 23:38:10 +10:00
nick_m
70cb8719df Tempo ramps - replace ugly bootstrapping code in TempoMap::frame_time() with new api.
- also fix some type confusion.
2016-05-27 23:38:10 +10:00
nick_m
458036b894 Tempo ramps - meter sections work again.
- also fix *some* of the more hackish code in this branch.
2016-05-27 23:38:10 +10:00
nick_m
5c6e18e6a0 Tempo ramps - remove the concept of bars from tempo sections.
- this helps where tempo and meter have a somewhat circular
	  dependency.

MetricSection now has a musical position expressed in beats (a double).
MeterSection still has a bbt, but it really isn't needed as we have
enough information to discover the number of bars at a given beat without it.
TempoSection now has a hack to enable loading of legacy sessions, which will
ultimately be a lot cleaner than the current code.

Removing bars from tempo sections also allows us to place them
at arbitrary frames (implemented here).
2016-05-27 23:38:09 +10:00
nick_m
41c8b534b7 Tempo ramps - amend previous commit. 2016-05-27 23:38:09 +10:00
nick_m
8d007e8a77 Tempo ramps - fix many problems wrt dragging tempos over each other.
- also preparation for metric lock style and meter bug fix.
2016-05-27 23:38:09 +10:00
nick_m
feece53838 Tempo ramps - fix odd display when dragging one tempo past another.
- also preparations for removal of beat limitation on tempos
	- some code clean ing
2016-05-27 23:38:09 +10:00
nick_m
ba0cfe81a4 Tempo ramps - massively speed up dragging of tempo marks. 2016-05-27 23:38:09 +10:00
nick_m
db77ca99a1 Tempo ramps - don't use methods we don't need to use.
- more room for improvement here
2016-05-27 23:38:09 +10:00
nick_m
340bd42c62 Tempo ramps - allow live updating of tempo markers.
- all a bit slow, but should be ok once we can lock
	  markers to frames.
2016-05-27 23:38:09 +10:00
nick_m
7898435d3f Tempo ramps - define_one_bar() delivers constant tempo.
- also some renaming and code review
2016-05-27 23:38:09 +10:00
nick_m
9eeccf0c17 Tempo ramps - port audio unit and midi clock slave.
- untested.
2016-05-27 23:38:09 +10:00
nick_m
2d649ceac1 Tempo ramps - get tests to comile again. 2016-05-27 23:38:09 +10:00
nick_m
af07762f98 Tempo ramps - play nicely with legacy sessions. 2016-05-27 23:38:09 +10:00
nick_m
6dac0e0f14 Fis inability to make the first tempo section constant tempo. 2016-05-27 23:38:09 +10:00
nick_m
dbfe991cd8 Tempo ramps - fix changing from const to ramp in the gui.
- also fixes some midi mouse over problems
	- start using replacements for frames_per_bar() frames_per_beat() etc.
2016-05-27 23:38:09 +10:00
nick_m
0d0e458dde tempo ramps - fix dumb iterator error. thanks robin. 2016-05-27 23:38:09 +10:00
nick_m
6cb752dc15 Tempo ramps - locking debugging. 2016-05-27 23:38:09 +10:00
nick_m
7fc3b0c34c Initial stab at tempo ramps.
Replaces the list of points in TempoMap with TempoSection functions, which
compute tempo-at or tick-at time relative to tempo section start.
TempoMap consults them additively to determine things like bbt_time(),
frame_time() get_grid() etc.
This has a marked effect on scrolling speed along with the code simplification
in the places it has been attempted.

Several things are broken here.
Currently every ramp except the last one is an exponential ramp. this may
be simple to fix :).
Mouse-over midi grid doesn't match mouse click grid. should also be simple.

Many things seem to work, but their accuracy should be in question until
each area has been addressed.
2016-05-27 23:38:09 +10:00
94187e66a2 add a test-sequence for polyphonic pressure 2016-05-27 12:12:00 +02:00
56471fd352 ensure that amp/fader is present on every route 2016-05-26 15:42:33 +02:00
00967a1982 take read-lock when saving processor order 2016-05-26 15:05:06 +02:00
eadc2ca88a fix maths thinko 2016-05-26 10:44:13 +02:00
602344f0c5 ticks are not affected by metrum 2016-05-26 02:22:10 +02:00
d6d5903a24 fix Audio Unit BBT 2016-05-26 02:20:32 +02:00
cf6f9627e4 update VST audioMasterGetTime
* don't use a static struct. this fixes a concurrency issue with flags
  and valid values
* send kVstTransportChanged IFF there is an actual change
* set system time
* send loop location
2016-05-26 01:04:43 +02:00
1d48648a73 fix timecode update after locate.
Various session rt-events set "_send_timecode_update" to true,
but at the same time queue post-transport-work.

The timecode-update is generated, but due to pending transport work
session->silent() is true and the timecode was never sent.
2016-05-25 19:20:09 +02:00
6c502b8315 allow to configure transient detection sensitivity
NB. this does not yet re-analyze regions when the config changes
and is hence also not [yet] exposed in the GUI.
2016-05-25 17:52:50 +02:00
5550eebe2f fix MTC alignment 2016-05-25 17:13:09 +02:00
f34722bf49 treat different normalization settings as different formats 2016-05-25 14:24:13 +02:00
80cc70966c missing local export config is not an error 2016-05-25 13:56:11 +02:00
cab6ae7137 backend check for rec-safe (only allow to lock if not armed) 2016-05-24 21:31:10 +02:00
a525055ce0 additional in-place check 2016-05-24 18:04:29 +02:00
1f17784ac5 fix potential undefined DnD behavior for external drags
dragging from the tree-view (e.g. favorite sidebar or plugin-manager)
will not set _drag_source.
drag-motion may wrongly interpret it as "re-order".
2016-05-24 17:58:24 +02:00
7aa85887da more inter-thread progress fixes; slight change of semantics:
Background thread now *must* set "done" as last step. (they already do
since various error conditions don't result in "done")

This fixes a race: background thread Session::write_one_track() sets "done"
to true. Editor::freeze_route () continues, sets current_interthread_info
to NULL. thread continues and tries to set current_interthread_info.done
before terminating -> Crash.

This also ensures that singleton threads created with
"pthread_create_and_store" remain unique.
2016-05-24 03:33:08 +02:00
207d9c81db some more route related lua bindings 2016-05-23 21:55:49 +02:00