Commit Graph

35228 Commits

Author SHA1 Message Date
Robin Gareus a742228463
Use "Wav (tagged)" as default export profile
Otherwise the first, alphabetically sorted, format is used,
which is currently (Amazon Music, normalize loudness).
2022-05-15 21:48:35 +02:00
Robin Gareus 8a927cc522
Only list tracks with audio-ports when exporting audio files 2022-05-15 21:48:28 +02:00
Robin Gareus d513d8b876
Do not allow dir-separators in session-template names
See also: 576f10b6f1
2022-05-15 19:53:12 +02:00
Robin Gareus a522a98118
Add API to query fixed delay line's delay time 2022-05-15 19:32:46 +02:00
Robin Gareus ae0aa50b6f
Fix MIDI delay-line (amend 25098ed)
Events in the delay-buffer must be shifted back every cycle.
Also in case of fixed-delay-lines events may not be in sequence
since events are only sorted at backend port-level.
2022-05-15 19:20:32 +02:00
Robin Gareus 576f10b6f1
Template [file]names cannot have dir-separators 2022-05-15 04:37:22 +02:00
Robin Gareus d55d3a7360
Save/load export timespan realtime setting 2022-05-15 02:20:19 +02:00
Robin Gareus 4577f86aa0
NO-OP: clang-format 2022-05-15 02:19:46 +02:00
itmuckel 498a3d90c5
Modernize region_view 2022-05-14 23:33:21 +02:00
itmuckel 13836bde44
Give muted regions cancelled speaker instead of '!' 2022-05-14 23:33:21 +02:00
Robin Gareus 86597d7e1c
NO-OP: re-indent, and cleanup 2022-05-14 23:32:26 +02:00
Ben Loftis 4339e3c729 temporarily remove effective_ripple_mark_start behavior
citations are needed to explain when&how this is useful

the definition of Ripple is "accommodate cut/insert/moves by moving all
 regions to the 'right' (later) of the operation by the same amount".

moving markers to the 'left' of the grabbed_region explicitly breaks the
 definition of ripple. it makes documentation hard.

furthermore, in a more complicated session with multiple tracks, this behavior
 ignores the regions on other tracks and the markers that still might be
 associated with them  (consider the case where you move the first region
 on track A but there are many prior regions on track B with markers over
 them)
2022-05-14 14:47:54 -05:00
Ben Loftis f7abe8dacd fix: RegionMotionDrag actions are always rippling to other tracks
* if we aren't in RippleAll, you should only ripple the regions
 on the same track as the grabbed region
2022-05-14 14:16:21 -05:00
Ben Loftis 0cfbc64e54 triggerbox: given no other info, assume a clip is 1,2,4,8 or 16 bars at 4/4
this solves the oft-recurring problem where we assign
 a beat-count of '3' or '7' because minipm  mis-detected the tempo,
 and that situation is vanishingly rare.  it's better to assume 4 or 8

the user always has the option to change the number of beats (and
 therefore the detected tempo) manually, for those clips that are
 in a different time signature.  but minibpm cannot be expected
 to help us there.

NOTE: this is a fallback to make things 'just work' lacking any other context.

* if the tempo is detected in the filename, we use that instead
* clips that were recorded to the timeline use that bpm+timesig
* in the future we can use file-metadata (acidized wave?) instead
* this is audio-only: midi files can have an embedded timesignature

but... given no other information, experience says the vast majority
of downloaded/purchased clips will be 1,2 or 4 bars at 4/4.
2022-05-14 14:16:21 -05:00
Paul Davis be5c64f737 temporal: NOOP - add blank line 2022-05-13 19:05:13 -06:00
Paul Davis 6f973af1e1 tempo end drag: make this work with new implementation 2022-05-13 19:05:13 -06:00
Paul Davis db17a46498 tempo twist drag: changes to work with new (old) implementation 2022-05-13 19:05:13 -06:00
Paul Davis 1ccda17504 temporal: add a new version of tempo twist based on pre-nutempo code 2022-05-13 19:05:13 -06:00
Paul Davis 60159acd33 temporal: slightly change const positioning in definition of ::stretch_tempo() 2022-05-13 19:05:13 -06:00
Paul Davis b0ff612572 temporal: add DEBUG_TRACE message 2022-05-13 19:05:13 -06:00
Paul Davis 4defa3ae8f temporal: fix logic bug in TempoMap::reset_starting_at() 2022-05-13 19:05:13 -06:00
Paul Davis c9b7f012e4 temporal: helpful comment for future readers 2022-05-13 19:05:13 -06:00
Paul Davis f0f8f15cce temporal: missing change from 072a7b17a22f 2022-05-13 19:05:13 -06:00
Paul Davis 51980b15cd temporal: split _omega into two values, for each time domain
omega can be computed from Beat or superclock duration. This gives rise to
different units for omega, and we must use the correct value in a given
context.

This commit also changes the way that the audio time omega is computed during
TempoMap::reset_starting_at()
2022-05-13 19:05:13 -06:00
Paul Davis f679cd6eab temporal: remove Rampable, change name of method to set end note types per minute
Rampable only existed to provide exclusive access to ::set_end() for the
TempoMap. More idiomatic C++ but now that _type has also gone away, so has
::set_ramped() and it really was not worth keeping it around.
2022-05-13 19:05:13 -06:00
Paul Davis 8770df611c temporal: remove TempoMap::_type concept
Ramped/Constant is really a function of start/end note_types_per_minute. Having
a separate member is really just caching it and leads to errors or risk thereof.
2022-05-13 19:05:13 -06:00
Paul Davis 43b3ec005f temporal: use new debug bit for debug output in reset_starting_at() 2022-05-13 19:05:13 -06:00
Paul Davis 5d22e522d1 temporal: add new debug bit for debug tracing just TempoMap::reset_starting_at() 2022-05-13 19:05:13 -06:00
Paul Davis a60412373a tempo map editing: re-enable stretch tempo drag 2022-05-13 19:05:13 -06:00
Paul Davis 45de3694cc temporal: add reimplemented version of 6.x's TempoMap::gui_stretch_tempo() 2022-05-13 19:05:13 -06:00
Paul Davis db9cc04230 temporal: remove debug output from TempoMap::reset_starting_at() 2022-05-13 19:05:13 -06:00
itmuckel 2a4ebd17d6
Save last route type 2022-05-13 23:07:49 +02:00
itmuckel 9178ca635a
Remove unused imports and modernize stateful.cc 2022-05-13 23:07:49 +02:00
itmuckel 77356c0ebb
Reformat and remove unused imports 2022-05-13 23:07:49 +02:00
Robin Gareus 9c9a7bbf97
Remove debug message 2022-05-13 21:02:37 +02:00
Ben Loftis 39f41e2357 fix midi-note Copy+Paste and Duplicate actions
* broken in 1fa7a7
2022-05-13 14:00:14 -05:00
Robin Gareus 3b13dc9b54
Remove unused method declaration 2022-05-13 19:38:12 +02:00
Robin Gareus f8aecc460c
Use new hard-stop API to stop transport before export 2022-05-13 19:38:11 +02:00
Robin Gareus 25098edfc1
Fix MIDI delaylines
MidiBuffer::read_from() clears the buffer, so events were not
accumulated into the delay-buffer.

This also includes a small optimization and comments for the
variable delayline.
2022-05-13 19:38:07 +02:00
Ben Loftis a899136cae Fix egregious playlist copy+paste thinko
* when you copy a Range into a playlist, the playlist's 'timeline' should
 begin at the start of the selected Range.  Regions should retain the
 offset they had from the Range's start.
2022-05-13 12:05:04 -05:00
Mads Kiilerich 2a2b2c8b36
Export dialog: update state after "Select All" and "Deselect All"
The state was inconsistent after using the "All" buttons, causing
confusing behaviour. Most visibly, the message "No timespan has been
selected!" message and the disabling of the "Export" button were not
cleared.

Fixed by making
ExportTimespanSelector::set_selection_state_of_all_timespans call
update_timespans and CriticalSelectionChanged , like for example
ExportTimespanSelector::update_range_name and
ExportTimespanSelectorMultiple::update_selection do.
2022-05-13 02:09:26 +02:00
Ben Loftis 41815f8d53 midi_region_view: use absolute_time_to_region_beats
* this fixes the location of the 'ghost note' that is shown
 when adding notes with the Draw tool
2022-05-12 12:15:53 -05:00
Ben Loftis 1fdfa53b9f region::absolute_time_to_region_beats() needs to incorporate start offset
* this fixes the Draw tool when adding notes;  if you tried to draw in
 a region with a trimmed front, the note would not get added in the correct
 location
2022-05-12 12:15:53 -05:00
luz paz 78f1205806 Fix typos in source foward(s)->forwards(s)
Fix source typos
2022-05-12 10:15:15 -04:00
luz paz b3c0143df7 Fix typos in source function`max_configurable_outputs`
Fixes source typo
2022-05-12 09:18:32 -04:00
Robin Gareus 40fa6e2023
Improve PBD::Semaphore performance
Skip syscall if no threads are waiting and decouple atomic
value from futex address so that FUTEX_WAIT does not fail.
2022-05-12 05:27:27 +02:00
Robin Gareus f849f3ce2c
Use futex semaphores on Linux only 2022-05-12 00:56:33 +02:00
Robin Gareus 13cac5c139
Grow Graph and RTTask MPMC queues as required
This fixes an issue if with sessions where a process-graph can
have more than 1024 routes to be processed concurrently.
2022-05-12 00:44:39 +02:00
Robin Gareus 5ca76789c5
Allow to query capacity of MPMC queue
This is in preparation to grow the queue as needed.
2022-05-12 00:40:31 +02:00
Robin Gareus c87a5cdcfd
Remove mutex from RTTaskList, use MPMC queue 2022-05-11 23:55:41 +02:00