Commit Graph

9774 Commits

Author SHA1 Message Date
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
7d06651a5c Tempo ramps - fix compilation 2016-05-27 23:38:12 +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
e82c997b3d Tempo ramps - remove double calls to RegionView::set_duration() and MidiRegionView::redisplay_model()
- massively improves note redrawing performance when dragging tempos
	  and audio-locked meters,
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
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
d3c24fe0ca Tempo ramps - midi notes resize when dragged, misc bug fixes. 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
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
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
989089a4e9 Tempo ramps - add method to handle beat-based tempo reordering. clean code. 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
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
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
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
28127b1768 Tempo ramps - Remove the tick walk, store c_func, document the approach. 2016-05-27 23:38:10 +10:00
nick_m
a2495cdff3 Tempo ramps - fix more namespace confusion 2016-05-27 23:38:10 +10:00
nick_m
bdef9b2466 Tempo ramps - fix constant tempo assumption wrt midi ghost note. 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
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
ba0cfe81a4 Tempo ramps - massively speed up dragging of tempo marks. 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
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
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
Robin Gareus
9678be9b6a fix clang compile 2016-05-26 01:52:34 +02:00
Robin Gareus
ad7295f5e1 use updated API from prev. commit 2016-05-25 17:59:28 +02:00
Robin Gareus
925501c851 don't clear export-channel selection when switching presets 2016-05-25 13:53:21 +02:00
Robin Gareus
4cd82846b7 fix script button sensitivity 2016-05-25 03:17:53 +02:00
Robin Gareus
cec449871e fix region gain via range tool
Moving the mouse over another region's gain line changed
clicked_regionview.  clicked_regionview is used along with range-time
when initiating an AutomationRangeDrag.
2016-05-25 02:46:57 +02:00
Robin Gareus
b487954722 fix menu order: consistent for region and range bounce 2016-05-25 02:28:41 +02:00
Robin Gareus
f42fc3e45d hide Freesound tab (until it gets fixed) 2016-05-24 22:45:47 +02:00
Robin Gareus
ac7df69b49 rec-safe GUI 2016-05-24 21:30:33 +02:00
Robin Gareus
cfee8ac852 fix UI wire display to not coalesce views for non-linear i/o. 2016-05-24 18:18:26 +02:00
Robin Gareus
2074dbdbe2 freeze thread is not detached and needs to be joined 2016-05-24 03:33:11 +02:00
Robin Gareus
cd5cd2f8f2 cont'd work & fix bug introduced in 03660573e
not every code path using InterthreadProgressWindow unsets cancel
after creating the Window.
2016-05-24 03:33:02 +02:00
Robin Gareus
6605b52c17 centralize rec-en sensitivity & prepare for rec-safe 2016-05-24 03:01:27 +02:00
Robin Gareus
bc05c56fba add missing include 2016-05-23 03:50:43 +02:00
Robin Gareus
f03252cf88 possible fix or workaround[?] for pt track-name encoding 2016-05-23 00:05:02 +02:00
Robin Gareus
fd56c33f20 import audio/midi at "session start by default
Too many users report they import their first tracks and can't find them.

Previous default was "at file timestamp". If a file has no timestamp,
the import dialog shows "00:00:00:00" but in absence of a timestamp,
Editor::add_sources() first checks target tracks and adds add it after
the last region, then falls back to use preferred edit position as
insert point.

In the rare case where a file has timestamps it may show up a few hours
in the future.

conclusion: import-at-timestamp is not a good default.
2016-05-22 22:13:03 +02:00