Commit graph

19846 commits

Author SHA1 Message Date
Robin Gareus
d3e736f7d3
Consistent audio/MIDI monitor modes
Now that both Audio And MIDI tracks support all three record
modes. Monitoring should be consistent. When recording
"Sound on Sound" does cue monitoring, while "layered" (opaque).
and "non-layered" monitors only the input.

Two differences remain: (1) when not recording MIDI tracks still
monitor both Input and Disk (unless Non-layered is set), and
a final special case is that MIDI tracks always monitor input
as fallback. the latter ties in with (2) audio tracks can
use hardware monitoring.
2022-12-07 22:49:08 +01:00
Paul Davis
4beca98e28 temporal: fix various incorrect uses of ::samples() in audio time arithmetic
It is a wonder that this has not caused more visible issues since 7.0
2022-12-07 11:13:49 -07:00
Robin Gareus
e28e079c9f
Consolidate Export Format/Spec comparision 2022-12-07 17:56:07 +01:00
Robin Gareus
1005fc5716
Allow to import opus files 2022-12-07 13:36:57 +01:00
Robin Gareus
85a1c463e5
Add Lua method to show system env
`for v in ARDOUR.LuaAPI.env():iter() do print(v) end`
2022-12-07 00:28:21 +01:00
Paul Davis
716501defa potential fix for "/bus/... master ..." target in MIDI binding maps failing 2022-12-06 11:11:08 -07:00
Robin Gareus
89d8dc26dd
Resolve export format ambiguities
This fixes an issue when switching formats.
ExportFormatDialog::update_selection iterates e.g. WAV BWV.
If BWV was selected and a user selects WAV the following happpens

1. WAV is selected
2. BWV is deselected
3. Since BWF and WAV are the same format, ExportFormatManager
   deselects WAV
2022-12-06 17:30:43 +01:00
Robin Gareus
d2212cbfb9
Add 24kHz as export rate, and limit opus to 8,24,48 per spec 2022-12-06 06:35:44 +01:00
Robin Gareus
c8b39094ca
Opus has no sample-formats 2022-12-06 06:35:40 +01:00
Robin Gareus
4d05c7add9
Map sndfile/opus quality to bitrate 2022-12-06 06:35:15 +01:00
Robin Gareus
211ff64e7d
Prepare for ogg/opus encoding 2022-12-05 23:43:34 +01:00
Paul Davis
c505024a4b temporal: when resetting the map, position BBT markers in beat time (and stop reset there) 2022-12-05 10:01:49 -07:00
Paul Davis
12b672492e tempomap: fix and improve efficiency and readability in ::get_grid() 2022-12-05 10:01:49 -07:00
Robin Gareus
8f257e1b2e
Thin MIDI automation when combining regions #9117 2022-12-04 12:12:12 +01:00
Robin Gareus
ddf894a1dd
Attempted fix for idle_drop_window random crashes (2/2) 2022-12-03 19:27:53 +01:00
Robin Gareus
1736b1d424
Avoid .sh file extension 2022-12-03 15:03:44 +01:00
Robin Gareus
30efb2f178
NO-OP: clang-format 2022-12-03 14:46:45 +01:00
Robin Gareus
2338e25d31
Fix automation thinning
For consistency, samples need to be used a unit.
Currently the calculated area is orders of magnitude larger
than the default thinning_factor (20).
2022-12-03 14:46:45 +01:00
John Emmas
1592b95031 Minor change - incorrect return type (in Windows build) 2022-12-03 12:21:12 +00:00
Robin Gareus
a3fdb544ee
Fix copying MIDI regions w/automation
This fixes a bug introduced in d06a0d9c9d. The MIDI data
has to be written first, otherwise the CC-event do not exit
and MidiModel::source_interpolation_changed() crashes.
2022-12-02 21:44:22 +01:00
Robin Gareus
753d395bb3
NO-OP: add comment for mdns 2022-12-02 18:01:21 +01:00
Robin Gareus
7d928bf265
Announce OSC via mDNS 2022-12-02 17:34:10 +01:00
Robin Gareus
c53b19c039
Add zeroconf/mdns support 2022-12-02 17:32:11 +01:00
Robin Gareus
aae15e3c90
Fix Wreorder, initialize variables 2022-12-02 13:13:13 +01:00
Robin Gareus
23a0efc286
Indicate error when parsing session fails 2022-11-29 20:00:15 +01:00
Paul Davis
e3dc0a24f2 canvas ruler: use second font description appropriately 2022-11-29 10:09:39 -07:00
Paul Davis
d77db816de temporal: reimplement and tweak API of TempoMap::get_grid()
There were many logical errors in the previous implementation. This one is
simpler to read, and appears to work much better.

It also allows the caller to specify the quarter-note subdivision to use when
generating the grid, rather than choosing only between some bar modulo or
quarter notes.
2022-11-29 10:09:39 -07:00
Paul Davis
a124062fa2 temporal: move_tempo() must use beats (timesig dependent) not quarters 2022-11-29 10:09:39 -07:00
Paul Davis
1f4717d93b temporal: reset map requires a BBT-sorted map, not audio time 2022-11-29 10:09:39 -07:00
Paul Davis
a817142676 NO-OP: extend debug trace output in superclock_at (BBT_Time) 2022-11-29 10:09:39 -07:00
Paul Davis
8299778d26 temporal: slightly change internal API for omega (ramp) computation 2022-11-29 10:09:39 -07:00
Paul Davis
d9ed0f0d2e temporal: use muldiv_round to avoid overflow in TempoMetric::superclocks_per_grid() 2022-11-29 10:09:39 -07:00
Paul Davis
883527ba3e temporal: add Meter::round_to_beat() 2022-11-29 10:09:39 -07:00
Robin Gareus
a7d2718aa4
ALSA: use dedicated device reservation for probing
It can happen that the main AlsaAudioBackend::_device_reservation
is still busy while I/O devices are set. In this case a
dedicated AlsaDeviceReservation needs to be used which can fail
silently.

A common example is disconnecting a USB device while it is in
use. The Halted signal can show the session dialog, which calls
set_input_device_name before the device reservation of the
unplugged device terminated.
2022-11-29 17:34:45 +01:00
Robin Gareus
3f4feb6cc8
ALSA: fix autostart when using different I/O devices
ALSA backend modified the internal state when different devices
were used, re-assigning one (usually input-device) to "None"
when it's resampled. This lead to EngineHints not matching the
EngineState, and autostart was disabled, and a dialog
"Engine I/O device has changed since you last opened this session."
2022-11-29 06:39:50 +01:00
Robin Gareus
842f4517de
Fix session-archive of stereo files #9122
Archiving creates a dedicated mono file for each Source.
When the original session has (embedded) stereo files, the
channel needs to be temporarily set to 0.
2022-11-28 00:40:17 +01:00
Robin Gareus
03575011b5
Retain ctime/mtime when encoding file for archiving 2022-11-27 14:11:05 +01:00
Robin Gareus
580179272d
NO-OP: cleanup duplicate X_ escape 2022-11-27 01:59:01 +01:00
Robin Gareus
d06a0d9c9d
Copy MIDI Source properties when cloning MIDI Regions 2022-11-27 01:58:58 +01:00
Robin Gareus
bc6a9609ff
Address some Wmissing-prototypes in qm-dsp 2022-11-26 16:23:52 +01:00
Robin Gareus
a63e1add6d Remove unused config variables 2022-11-25 20:10:33 +01:00
Paul Davis
d0fb7ae18a avoid duplicate BBT points in grid 2022-11-22 18:09:46 -07:00
Gon Solo
1cf6886775
std::iterator is deprecated in C++17, use bidirectional_iterator_tag 2022-11-22 19:49:41 +01:00
Robin Gareus
4cd01a5f6e
Fix soundcloud curl callback
This also addresses C++17 compatibility.
2022-11-22 17:52:40 +01:00
Paul Davis
fe386e51b1 incomplete comments - just say no 2022-11-21 18:34:13 -07:00
Paul Davis
c7cf4d96e0 confusing comments - just say no 2022-11-21 18:33:17 -07:00
Paul Davis
a84d3e04c4 tests: add new test to check that tempo map reset changes beat time correctly 2022-11-21 18:18:21 -07:00
Paul Davis
f5887b978d tempo map: when resetting, set beat/quarter positions as well as audio positions
introducing a new time signature that uses non-quarter notes as the denominator
will move the beat position a given BBT time (since the middle "B" of BBT
refers to "beats" given by the denominator, not quarters).
2022-11-21 18:18:21 -07:00
Robin Gareus
c8711aacc6
Import MIDI markers direct to the source (3/4) 2022-11-22 01:46:00 +01:00
Robin Gareus
4f4b931ccc
Add import_markers option (1/4) 2022-11-22 01:44:53 +01:00