b67965f499
temporal: add the entire _points list to output of TempoMap::dump()
2021-11-17 12:16:38 -07:00
f0cd3b5c0c
editor: when the tempo map changes, update the per-thread pointer
...
TempoMap::use() merely returns the current per-thread tempo map
pointer; if a change is signalled, we should force an update
of the per-thread ptr via TempoMap::fetch()
2021-11-17 12:16:38 -07:00
8a59f3fe8e
temporal: fix issue with removal of tempo, meter and bartime points
...
The correct algorithm is to traverse the type-specific list of points,
find the point (if any) whose time matches that of the argument (because
we do not allow multiple points of the same type at the same time), and
then use that discovered point from the _points list.
This approach is required because the actual argument may no longer be
in the tempo map (due to a change made by another thread). The lack of
sync, however, needs investigation.
2021-11-17 12:16:38 -07:00
4d5cf43789
triggerbox: use correct API to track tempo
2021-11-17 12:16:38 -07:00
dd4e495d90
audioclock: use correct call for "right now" tempo display
2021-11-17 12:16:38 -07:00
2735022357
audio_clock: fix uninitalized variable
2021-11-17 12:16:38 -07:00
5b5ca546e0
temporal: fix incorrect implementation of TempoMap::tempo_map()
...
std::lower_bound() is not appropriate here. We need to find the first
TempoPoint after the given time, then return the one before that.
2021-11-17 12:16:38 -07:00
e7e44351cc
temporal: move implementation of quarters_per_minute_at() into .cc file
2021-11-17 12:16:38 -07:00
a0e134e1b3
temporal: update comment on a method that suggest not using it; provide TempoMap::quarters_per_minute_at ()
2021-11-17 12:16:38 -07:00
4f3bf37680
temporal: implement a faster method to lookup TempoPoint
...
There is no reason to build a TempoMetric if you only need the Tempo
2021-11-17 12:16:38 -07:00
5105083394
triggerbox: first pass at using "realtime" rubberband rather than pre-stretch
2021-11-17 12:16:38 -07:00
e1b2a24221
Fix error message (include plugin ID)
2021-11-17 18:46:29 +01:00
83225886a1
Fix gcc4 builds ('EEXIST' was not declared in this scope)
2021-11-15 19:12:00 +01:00
8c632c8446
temporal: allow negative timecnt_t to be used when constructing a timepos_t
...
Negative positions are legal and should be handled by higher level logic
2021-11-14 15:22:53 -07:00
d9b9f4f588
Waveform: work around empty peakfile edge-case
...
(gdb) p peak.max
$5 = -1
(gdb) p peak.min
$6 = 1
2021-11-14 23:11:19 +01:00
8e89325bee
Waveform: scope-like smooth waveform
...
* Draw antialised waveform if waveform is monotonic
* Fix center-line position (span at most height - 1),
* Remove invalid "side-lines" that were previously
drawn around spikes.
* Do not linearly center min/max when drawing log-scale
* Fix offset of lower outline and clip indicators
2021-11-14 22:28:55 +01:00
70a07eec48
Waveview: properly draw 1px outline
2021-11-14 22:28:55 +01:00
3f69e8e329
MIDI Import: implement missing SMFSource::update_length
...
Provides intended behavior: imported midi region length should be rounded to the nearest beat
ToDo: add options to round to Bar/Beat/None ?
2021-11-14 14:25:31 -06:00
f6adf9c897
MIDI Import: gtk part
2021-11-14 08:21:00 -06:00
58033262ae
MIDI Import: Support for separating the channels of a Type1 midifile track(s)
2021-11-13 16:23:15 -06:00
0733b2d9e2
SMF: Often files don't have Track+Instr names. Make something up to avoid file collisions.
2021-11-13 15:54:11 -06:00
35312dc85c
SMF: API change: report format (0,1 or2) and total channels used
2021-11-13 15:54:11 -06:00
4c472ca1c5
TriggerSlot: Remove Queued menu-item (for now)
2021-11-13 15:54:11 -06:00
4eeb5afa92
Fix false positive "missing AU Blacklist" message
...
See d6e4e0fb35
for an explanation
2021-11-12 23:34:07 +01:00
85fc3d5629
add missing file
2021-11-10 21:16:27 -07:00
4f58a92c6d
show trigger/slot selection
2021-11-10 17:51:04 -07:00
a9949f20e6
basic architecture for Trigger selection
...
This is all done in the GUI, using GUI objects. THe primary goal
here is to allow actions to be applied to selected triggers, so
there's no real need for a trigger aspect to libardour (core)
selection.
2021-11-10 16:37:15 -07:00
91a28b78c4
modify and extend both Session and TriggerBox API to allow better transport control
...
This allows a stop transport request to first stop all active triggers and then stop the transport
2021-11-10 15:55:58 -07:00
4b5fbeb455
remove unused variable
2021-11-10 11:55:32 -07:00
0d96753364
remove unused variable
2021-11-10 11:55:20 -07:00
c4b189336e
triggerbox: threaded ::set_region() implementation
2021-11-10 08:45:38 -07:00
431b7c0d4e
triggerbox: more work on ringbuffer request queue for trigger thread
2021-11-09 22:36:51 -07:00
38bf55a1fd
triggerbox: basic skeleton for an i/o and stretch thread
2021-11-09 21:47:15 -07:00
7e80111d92
Canvas: Fix notification to parent of show/hide status
...
This was changed in fc9840f2a9
to hard code a "false" argument describing
whether or not the child bbox had changed. This causes the parent to not
recompute its own bounding box when a child is shown/hidden, which is
incorrect. We now force it to true, which may be overkill for some purposes,
but at worst will just force an unnecessary bbox re-computation and nothing
more.
2021-11-09 08:49:21 -07:00
605daf23f2
add default bindings for note shortening
2021-11-06 10:21:31 -06:00
8cfdd0ca5b
add actions to provide access to note-shortening
2021-11-06 09:49:39 -06:00
7fca55eeb5
Fix placement of drawn MIDI notes.
...
Important logic from 6.9 was either missing or incorrectly implemented. New
version is much simpler - we just use the RoundDownMaybe mode of round_to_bbt()
to ensure that the note start is always within the current grid even if the
mouse is more than halfway "through" it.
2021-11-04 18:27:02 -06:00
2d9eb6ec81
Fix error in drawing length of ghost MIDI notes in note drawing mode
2021-11-04 18:25:45 -06:00
859d43855e
triggerbox: functional handling of MIDI region editing -> trigger re-render/reload
2021-11-04 14:00:16 -06:00
efdd3e86c3
remove unused variable
2021-11-04 13:59:43 -06:00
af2af29c95
remove Kiwi constraint-based packing code from canvas library and users (GUI version)
2021-11-04 11:25:56 -06:00
0f0c5c7039
remove Kiwi constraint-based packing code from canvas library and users (library version)
2021-11-04 11:25:30 -06:00
a9adc3c5c6
triggerbox: flesh out Request mechanism
...
Still no actually active requests
2021-11-04 11:16:22 -06:00
b0176c21fb
triggerbox: skeleton for requests sent to a TriggerBox (to change state)
2021-11-04 09:50:34 -06:00
241948635b
new session event type for triggering scene changes
2021-11-03 22:58:17 -06:00
0c5d41039a
more scene triggering actions
2021-11-03 18:44:31 -06:00
79baafde15
triggerbox: allow access to default number of triggers per box (and change type)
2021-11-03 18:44:18 -06:00
62c80e1430
Add the definition of Session::AfterConnect
2021-11-03 15:18:59 -06:00
62f9edfc07
Remove TransportMasterManager::reconnect_ports().
...
PortManager::reconnect_ports() covers all ports, and this method was only
used directly after a call to PortManager::reconnect_ports().
2021-11-03 15:15:54 -06:00
4ea2fdd5bd
Fix internal (aux) send to call ::use_target() when Session::AfterConnect is emitted
2021-11-03 15:07:46 -06:00