13
0
Commit Graph

10676 Commits

Author SHA1 Message Date
nick_m
898764c513 Tempo ramps - possible fix for loading bjbjb's session, remove insane level 3 map solver. 2016-05-27 23:38:14 +10:00
nick_m
10d08a3be6 Tempo ramps - remove erroneous (for now) #ifdef 2016-05-27 23:38:14 +10:00
nick_m
663814bf22 Tempo ramps - tempo marks use mvc-style copy drag, don't crash if two successive ramped tempos are the same :| 2016-05-27 23:38:14 +10:00
nick_m
c5790b1cb6 Tempo ramps - fix dragging audio-locked meters across each other. 2016-05-27 23:38:14 +10:00
nick_m
96cf262c23 Tempo ramps - meters can be dragged across each other.
- also removes some fairly silly code,
2016-05-27 23:38:14 +10:00
nick_m
3048758369 Tempo ramps - copy-drag meters works again.
- meter drags now use mvc style.
2016-05-27 23:38:13 +10:00
nick_m
3d07cd79e1 Tempo ramps - api change, remove some code. 2016-05-27 23:38:13 +10:00
nick_m
89f022cb53 Tempo ramps - rename - should be a no-op. 2016-05-27 23:38:13 +10:00
nick_m
8efbbd2bdd Tempo ramps - fix bug revealed by test. also small rename. 2016-05-27 23:38:13 +10:00
nick_m
8063b1ce3c Tempo ramps - make ramp test more challenging. 2016-05-27 23:38:13 +10:00
nick_m
d3f0e65199 Tempo ramps - tempo related tests pass, add ramp test. 2016-05-27 23:38:13 +10:00
nick_m
b71235519a Tempo ramps - remove more code. 2016-05-27 23:38:13 +10:00
nick_m
7490c86141 Tempo ramps - neaten code layout. 2016-05-27 23:38:13 +10:00
nick_m
c8fe6733cd Tempo ramps - fix some silly code. 2016-05-27 23:38:13 +10:00
nick_m
324e51c734 Tempo ramps - calculate bars correctly when setting meter position. 2016-05-27 23:38:13 +10:00
nick_m
2c25913d26 Tempo ramps - fix thinko in a could-be-more-efficient manner.
- some form of 'no time' now functions correctly between audio locked meters.
2016-05-27 23:38:13 +10:00
nick_m
dd212ea4af Tempo ramps - set correct beat on audio locked meters. 2016-05-27 23:38:13 +10:00
nick_m
094aa816df Tempo ramps - multiple audio-locked meters are go.
- more or less
2016-05-27 23:38:13 +10:00
nick_m
b341e6cfaa Tempo ramps - more clarity i hope take 2. 2016-05-27 23:38:13 +10:00
nick_m
26dd31c3a1 Tempo ramps - hopefully better overview. 2016-05-27 23:38:13 +10:00
nick_m
6f5e8a885e Tempo ramps - more code reorganization, almost audio-locked meter nirvana. 2016-05-27 23:38:13 +10:00
nick_m
bc44f9bcaf Rampo Temps - remove nonsense. 2016-05-27 23:38:13 +10:00
nick_m
c2705363cf Tempo ramps -update audio-locked meter bbt correctly, a bit more explanation. 2016-05-27 23:38:13 +10:00
nick_m
5d37fc6e36 Tempo ramps - more multi audio-locked meter work, code reorganisation. 2016-05-27 23:38:13 +10:00
nick_m
d7de12428b Tempo gramps - fix compilatoin? 2016-05-27 23:38:13 +10:00
nick_m
66df7486b3 Tempo damps - fix compilation 2016-05-27 23:38:13 +10:00
nick_m
26bbffda7f Tempo cramps - do not allow tempos to share the same frame. 2016-05-27 23:38:13 +10:00
nick_m
7cb5fca27b Tempo camp - clarify comments. 2016-05-27 23:38:13 +10:00
nick_m
29700068d7 Tempo ramps - improvements from static analysis. 2016-05-27 23:38:13 +10:00
nick_m
f974f40611 Tempo ramps - fix meter drag finished bug. 2016-05-27 23:38:13 +10:00
nick_m
a9714de9b9 Tempo ramps - tempo drags respect the snap modifier. add some documentation. 2016-05-27 23:38:13 +10:00
nick_m
354567e5a7 Tempo ramps - switch MusicLocked tempos to beat-based dragging. fix various bugs wrt future-snapped tempo drags 2016-05-27 23:38:12 +10:00
nick_m
a2797f4d38 Tempo ramps - use correct meter when snapping to the future. 2016-05-27 23:38:12 +10:00
nick_m
daa07ce6e0 Tempo ramps - tempos now musically snap to their future. 2016-05-27 23:38:12 +10:00
nick_m
16197654d1 Tempo bambi - clean up. 2016-05-27 23:38:12 +10:00
nick_m
15f8f371c3 Tempo rampo - tempo tick lines no longer assume constant tempo. 2016-05-27 23:38:12 +10:00
nick_m
a7df009de7 Tempo ramps - avoid sending negative beats to the BFC. 2016-05-27 23:38:12 +10:00
nick_m
cb43d485fa Tempo ramps - another approach to first meter/tempo.
- first tempo is glued to first meter position as they are now
	  both locked to AudioTime.
	- all existing audio-locked tempos to the left of the first meter
	  are made inactive. all to the right are made active.
2016-05-27 23:38:12 +10:00
nick_m
69b6379b23 Tempo ramps - pressing constraint modifier keys during tempo drag changes tempo with vertical movement, incorporating beat constraint (if present).
- makes it easy to find suitable accelerandos for hit points in conjunction
	  with playhead position, beat-locked tempos and initial meter frame.
2016-05-27 23:38:12 +10:00
nick_m
187122ce5b Tempo ramps - towards having multiple audio-locked meters again.
- also speeds up meter dragging
2016-05-27 23:38:12 +10:00
nick_m
e4dfd23d2e Tempo ramps - bbt_time() speedup, more meter dragging performance improvements. 2016-05-27 23:38:12 +10:00
nick_m
591a2026c0 Tempo rmps - amend last commit, speeding up dragging of audio-locked meters quite a bit. 2016-05-27 23:38:12 +10:00
nick_m
3f3ad715ef Tempo ramps - minor cleanup. 2016-05-27 23:38:12 +10:00
nick_m
3c2ad63de7 Tempo ramps - complete 'music locked meters are now positioned using beats' transition. 2016-05-27 23:38:12 +10:00
nick_m
33e98186e4 Tempo ramps - small bug fixes/cleanup. 2016-05-27 23:38:12 +10:00
nick_m
99efddb050 Tempo ramps - various bug fixes (meter drag undo, incorrect copy) 2016-05-27 23:38:12 +10:00
nick_m
58d4889ad3 Tempo ramps - music-locked meters now use beats rather than pulses as their reference.
- fixes many problems with a non-zero audio-locked first meter.
2016-05-27 23:38:12 +10:00
nick_m
ba3ae54f51 Tempo ramps - clean up negative beat handling in beats_to_bbt_locked () 2016-05-27 23:38:12 +10:00
nick_m
cab7335d58 Tempo ramps - fix crash with simplest case. 2016-05-27 23:38:12 +10:00
nick_m
1c1bf4a06b Tempo ramps - show grid when dragging first meter. 2016-05-27 23:38:11 +10:00
nick_m
b47bb55226 Tempo ramps - improve music-locked meter drags, improve dump().
- dump now shows cross-calculation of tempo positions.
2016-05-27 23:38:11 +10:00
nick_m
a58f862640 Tempo ramps - fix constant tempos (again). 2016-05-27 23:38:11 +10:00
nick_m
9def5caeaf Tempo ramps - code cleanup 2016-05-27 23:38:11 +10:00
nick_m
f16089ba88 Tempo ramps - allow moving the first meter if audio locked.
- strangely broken wrt the grid, but kind-of works.
2016-05-27 23:38:11 +10:00
nick_m
17a6cda89a Tempo ramps - fix incorrect handling of unsloveable maps. 2016-05-27 23:38:11 +10:00
nick_m
b415b59f79 Tempo ramps - respect tempo note type and meter note divisor correctly.
- tempo and meter position is now pulse-based,
	  although meter still has a beat for convenience.
2016-05-27 23:38:11 +10:00
nick_m
a47359c382 Tempo ramps - fix erroneous tempo_at_frame(), use correct type for offsets. 2016-05-27 23:38:11 +10:00
nick_m
d3c24fe0ca Tempo ramps - midi notes resize when dragged, misc bug fixes. 2016-05-27 23:38:11 +10:00
nick_m
8fce08610a Tempo ramps - snap uses audio-locked meter offsets.
- fixes much of the fallout from the previous commit.
2016-05-27 23:38:11 +10:00
nick_m
ec791c8dd4 Tempo ramps - hook up tempo display, a new approach to audio-locked meters
- audio locked meters define an offset which is used for all public
	  TempoMap methods while the internal map remains contiguous.
	  Probably a few unexpected consequences here, but seems to work mostly.
2016-05-27 23:38:11 +10:00
nick_m
3a2ff0a4a7 Tempo ramps - new (old) map solving strategy. 2016-05-27 23:38:11 +10:00
nick_m
7e408b38d8 Tempo ramps - comment out debugging 2016-05-27 23:38:11 +10:00
nick_m
acf7c2592a Tempo ramps -consolidate code, add precision check for tempo metrics. 2016-05-27 23:38:11 +10:00
nick_m
4d9b6a4ced Tempo ramps - fix various thinkos. 2016-05-27 23:38:11 +10:00
nick_m
278ad73259 Tempo ramps - check for impossible locations tempo dialog bbt entry. reorganise code. 2016-05-27 23:38:11 +10:00
nick_m
36ec551a8a Tempo ramps - fix music-locked meter drags. 2016-05-27 23:38:11 +10:00
nick_m
eeb20bc392 Tempo ramps - grid now follows dragging meter section. 2016-05-27 23:38:11 +10:00
nick_m
a0558694df Tempo ramps - audio-locked meters have a bbt of 1|1|0
- possibly lots going wrong with this due to multiple occurences
	  of 1|1|0.
2016-05-27 23:38:11 +10:00
nick_m
6ecef52d76 Tempo ramps - meter sections drag again. 2016-05-27 23:38:11 +10:00
nick_m
b4f0695780 Tempo ramps - comment and tidy. 2016-05-27 23:38:11 +10:00
nick_m
989089a4e9 Tempo ramps - add method to handle beat-based tempo reordering. clean code. 2016-05-27 23:38:11 +10:00
nick_m
aa95ffbc97 Tempo ramps - change some prototypes, rename some methods. 2016-05-27 23:38:11 +10:00
nick_m
96b511e221 Tempo ramps - fix ordering glitches when dragging tempos. 2016-05-27 23:38:11 +10:00
nick_m
9a766c56f9 Tempo ramps - fix comments. 2016-05-27 23:38:11 +10:00
nick_m
8225d7cc6f Tempo ramps - fix constant tempo thinko. 2016-05-27 23:38:11 +10:00
nick_m
7493a27a1f Tempo ramps - fix return of constant tempo, experimentally use _at_tempo() methods. 2016-05-27 23:38:11 +10:00
nick_m
452e484faf Tempo ramps - rework mouse dragging of tempo marks, derive beat_at_tempo() and tempo_at_beat(). 2016-05-27 23:38:11 +10:00
nick_m
38df1063d3 Tempo ramps - re-enabe audio-locked meter sections, fix more locking errors. 2016-05-27 23:38:10 +10:00
nick_m
77abc08d6f Tempo ramps - fix crash-causing locking errors. clean up code a bit. 2016-05-27 23:38:10 +10:00
nick_m
474784c8ba Tempo ramps - setting bbt of an audio-locked tempo marker in the tempo dialog works. 2016-05-27 23:38:10 +10:00
nick_m
0f81899280 Tempo ramps - fixes bbt wrt frame-locked tempo sections in the tempo dialog 2016-05-27 23:38:10 +10:00
nick_m
c4fe85dd7c Tempo ramps - fix thinko 2016-05-27 23:38:10 +10:00
nick_m
b8b6d562a4 Tempo ramps - restore bbt settings in tempo dialog for audio-locked tempo markers
- see comments
2016-05-27 23:38:10 +10:00
nick_m
c98e008745 Tempo ramps - code cleanup
- what was i thinking?
2016-05-27 23:38:10 +10:00
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
2b53558e66 remove misspelled unused define 2016-05-23 02:29:55 +02:00
afc1186759 NO-OP indent 2016-05-22 19:36:54 +02:00
39ba60aaef Make sure MSVC knows which version of 'floor()' we want 2016-05-22 15:53:16 +01:00
9ad096b611 Dummy Backend evolution
- pretty port-names for Dummy generators: show frequency
- add 1/3 Octave spaced sine-wave generator
2016-05-21 22:38:39 +02:00
489cef0913 Revert "debug unconfiged plugins"
This reverts commit 125e2014aa.
2016-05-21 17:54:34 +02:00
eb35ba1d95 fix assert/crash if unknown processor's I/O mismatches
This can happen on OS X. Audio Units did not have
a MIDI bypass. Ardour adds an implicit bypass and existing
"unknown/missing" plugins after the instrument will see
a different i/o config.
2016-05-21 17:54:13 +02:00
742ebe9975 const'ness -- just because 2016-05-21 16:24:30 +02:00
298abc5c8c "biquadratic" needs no camelcase - fixes API doc. 2016-05-21 16:23:35 +02:00
50d6f146f4 allow lua to access array at an offset 2016-05-21 15:55:14 +02:00
53c188beb3 keep DSP state variables finite. 2016-05-21 15:55:14 +02:00
b0200b23f2 Accommodate the fact that 'msvc_resources.rc.in' got moved to a new path 2016-05-21 10:33:18 +01:00
331d9f7154 live signal analysis is for the processor -- not the plugin(s) inside 2016-05-21 00:01:11 +02:00
d7e590f9c8 add lua DSP transfer function calculation 2016-05-20 23:14:51 +02:00
125e2014aa debug unconfiged plugins 2016-05-20 17:34:37 +02:00
77f3518571 add midi-bypass to re-configurable-i/o instruments 2016-05-19 16:29:23 +02:00
eda4662e15 fix lua instrument plugins 2016-05-19 16:29:20 +02:00