13
0
Commit Graph

30441 Commits

Author SHA1 Message Date
5ae0039e5b
Don't allow to run Linux installer on other unices
e.g. on MacOS, BUNDLE_DIR variable is not set correctly, resulting
in the whole hard drive content being copied to /opt
2020-07-16 20:38:51 +02:00
c6b87972b1
Remove unused libsmf seconds/time API
This significantly speeds up parsing MIDI files with complex
tempo-maps. e.g. "Black MIDI Trilogy_2.mid" has 24134 Tempo
changes. Prior to this commit parsing that file took over 5 minutes.
now it loads in under one seconds (libsmf only; libardour still
add overhead, and now needs about 30-40 seconds, previously
it took about 10 mins).

The problem was that every call to `smf_track_add_event_pulses()`
calls `seconds_from_pulses()` which calls `smf_get_tempo_by_seconds()`
which iterates over the tempo-map:

  for every midi-event { for ever tempo until that midi-event {..} }

This does not scale to 3.5M events and 24k tempo-changes.
2020-07-16 18:38:03 +02:00
ba7db8759b
SMF: remove unused variable (from 803dab7d87) 2020-07-16 18:35:43 +02:00
9fcb51de2e
Use signed int for atomic operations part II -- #8314 2020-07-16 18:07:14 +02:00
803dab7d87
SMF: various backports from libsmf PR7
see also https://github.com/stump/libsmf/pull/7

* Fix validity checks of escaped data
* Handle non-EOT-terminated tracks.
* Fix buffer overflow on tempo change event
* Fix memory leaks in case loading fails
* Fix a logic errors in extract_escaped_event()
* Fix the assertion problem `is_sysex_byte(status)`
* Make libsmf more tolerant to malformed MIDI files.
  (fixes import of files generated by NoteEdit)
2020-07-16 18:00:40 +02:00
23e6dd5f6b
NO-OP: backport some libsmf doc and warnings 2020-07-16 17:58:04 +02:00
43158047ed
SMF: use glib macros for endian conversion 2020-07-16 17:57:59 +02:00
6d950d15ba
Use signed int for atomic operations -- #8314 2020-07-16 16:13:21 +02:00
baa8cd1b52
Fix LV2 buffersize option interface
https://lv2plug.in/doc/html/group__options.html specifies
a NULL terminated array of options (not a single option).

Since the call is the "instantiation" LV2 threading class, and
a single fixed value is passed with a direct call into the
plugin, using a stack-allocated LV2_Options_Option is sufficient.
2020-07-16 15:57:42 +02:00
4b1a41ff53
Add a tool to test-load SMF 2020-07-13 21:45:04 +02:00
398101ad92
Add cross-fade and A/B switch plugins 2020-07-13 00:53:45 +02:00
c03f3d81a6
Allow Lua DSP scripts to override strict-i/o
This is handy for 1in, 2out plugins or 2in, 1in out (and multiples
thereof).
2020-07-13 00:52:59 +02:00
9d7ca1dfa9
Remove debug message 2020-07-12 21:44:46 +02:00
89a7c41175 Likely fix for occasional crash in editor_regions::region_changed() 2020-07-12 12:05:23 -05:00
472e8a0d7b When copying a Range of MIDI, special-case the midi start+end in beats. This will likely get cleaner after nutempo. 2020-07-12 11:18:22 -05:00
Iurie Nistor
4e6a15938c
double click to expand / contract the track 2020-07-12 16:09:07 +02:00
f89ef872dd
Increase a-fluidsynth polyphony 2020-07-12 06:33:34 +02:00
9d390f38bf
Cache MIDI generator port latency
This reduces excessive, expensive calls to get_connected_latency_range()
2020-07-12 01:50:01 +02:00
ce47898639
Queue latency updates for initial connection
This may fix an issue with latency not being set correctly
on initial session-load (more common with Mixbus/JACK).
2020-07-12 01:48:45 +02:00
1796ee60b2
Clean up b5e479df and expose API to queue latency-updates 2020-07-12 00:38:56 +02:00
b5e479dfc3
Handle JACK latency callbacks in sync with process thread #8304
This is only relevant with JACK, where different implementations
use threads for the latency callback.

With jack 2, jack_port_register() blocks and the jack_latency_callback
arrives in a different thread: https://pastebin.com/mitGBwpq
with jack 1 the callback arrives in sync

In either case this usually happens while
_adding_routes_in_progress == true and Ardour holds the process-lock,
because jack2 can process in parallel with reconfiguring latency

See also 1983f56592
2020-07-12 00:15:26 +02:00
97025cf5a3
Improve debug message (tracking down JACK latency updates) 2020-07-11 23:38:44 +02:00
156c1e354a
Fix recursive locks when removing procs with a sidechain - #8301
When removing a plugin-insert that has a sidechain on a bus
that is implicitly soloed the following happens:

 * Route::remove_processor() takes a  WriterLock(_processor_lock)
 * The sidechain input is disconnected
 * Route::sidechain_change_handler() is called which calls
 * Route::input_change_handler()
 * Since the route is implicitly soloed, propagation is attempted
   which calls
 * Route::direct_feeds_according_to_reality()
   which takes ReaderLock(_processor_lock)

Recursive locks, reader-lock after writer-lock don't cause
a deadlock, releasing the reader-lock effectively also
releases the writer-lock...
2020-07-11 22:10:43 +02:00
68082abc22
Fix track-header visibility for inactive tracks
This supersedes 0708cdb6b4, an explicit `name_label.show()`
is not needed. The inactive label was missing an explicit call
to show.

This also fixes MIDI track MIDNAM Selector visibility
2020-07-10 18:16:18 +02:00
c398d85f0b
Disabled routes do not have a label that can be edited 2020-07-10 17:47:10 +02:00
Iurie Nistor
0708cdb6b4
Show name when audio track is inactive 2020-07-10 17:44:04 +02:00
Vincenzo Reale
759ba6a7c9 Editing about.cc 2020-07-10 00:28:16 +02:00
edfca68494
Auto write-activate automation in latch mode
This allows to use of control-surfaces without touch-sensitivity
or mouse-wheel to write automation on demand (until transport stop).
2020-07-09 22:33:09 +02:00
ce8846d13f
Fix polygon redrawing -- #8148
Polygons used PolyLine::render() to render the path.
However since 7bb8ca1e76, the PolyLine path is constrained
(for automation lanes), and closed shaped polygons were not
always completely redrawn.
2020-07-09 02:10:28 +02:00
4d76388b8d
Remove no-inplace check from rt-context
This may fix a crash due to concurrency when _in_map changes
while the plugin runs and calls ::check_inplace()
2020-07-08 22:49:50 +02:00
Adam Bark
c8e92338ff Emphasise beat lines; fix issue 8156
"grid line micro" and "grid line minor" colours were the same so it was
difficult to tell where in a bar you were when zoomed in.
2020-07-07 12:06:26 -06:00
Johannes Mueller
9b2228d6fd Fix ripple moving automation points
When ripple moving a region all the subsequent regions will be moved, next
region in the playlist after the dragged one first, last region of the playlist
last.

Thus, when an automation point is ripple moved along a region past the starting
point of the next region, it will be moved again along with the next region as
the move of the next region occurs after moving the automation point.

This fix reverses the sequence of the ripple moves, last region in the playlist
will be moved first, the next after the dragged one, last. So no temporary
overlap of regions will occur.
2020-07-07 19:39:16 +02:00
d99dd1e3ec
Fix auto-play when locating via drag/click in the editor 2020-07-07 18:53:42 +02:00
308d138144
Fix audible blibs due to inconsistent monitor state -- #8275
It is possible that Route::monitoring_state() returns
  (MonitoringDisk | MonitorSilence)

This lead to various cases where there were is a direct comparison
(ms == MonitoringDisk). DiskReader::run tests for MonitoringDisk
to check if the buffer needs to be zeroed while locating.

Likewise Route::process_output_buffers() also explicitly tests
for both MonitoringDisk and MonitoringDisk.

The issue was likely introduced in fbe8075117 (although
it may have been possible in earlier version when using hardware
monitoring as well).
2020-07-07 18:53:36 +02:00
5209fbd6fe
Remove outdated translation of ancient man page 2020-07-06 21:38:05 +02:00
812efddda8
Update man-page
This was done semi-automatically starting with
```
help2man -N -n "digital audio workstation" \
         --version-string=6 \
         -o ardour.1 gtk2_ardour/ardev
```

and then manually replacing "ardev" with "ardour" as well as
various upper-case and all-caps variants thereof.
2020-07-06 21:36:12 +02:00
Vincenzo Reale
2379b2a5cf
Italian translation update 2020-07-06 20:28:02 +02:00
06b71a50a1 Revert "clear PostTransportStop from post_transport_work immediately after Session::non_realtime_stop() has finished its work"
This reverts commit 132aae385a.

This commit was not properly thought out, and may not even have addressed a real problem.
2020-07-06 11:33:53 -06:00
187e2521fb remove debug message 2020-07-05 18:08:58 -06:00
132aae385a clear PostTransportStop from post_transport_work immediately after Session::non_realtime_stop() has finished its work 2020-07-05 17:48:16 -06:00
c1226eca73 add more info to DEBUG_TRACE output 2020-07-05 17:48:16 -06:00
1ceb153037 fix "Loop Range" in marker context menu 2020-07-05 17:48:16 -06:00
eaf88040cc NO-OP: add missing braces 2020-07-05 17:48:16 -06:00
0c7895298d Add Dotted option to a-delay, because dotted intervals cannot be expressed via the integer Divisor param 2020-07-05 15:24:38 -05:00
6af2f4e127 Report Boxy and Flat button styles to LV2 plugins (extends 1ecaff) 2020-07-05 15:22:43 -05:00
caprenter
b09d17ebc8
Adds a midi map for the M-Audio Oxygen 25 3rd Gen controller
The existing midi map for the M-Audio Oxygen controller did not work for me.
I note that my controller says 3rd Gen on the back
I used the documentation: https://manual.ardour.org/using-control-surfaces/generic-midi/midi-binding-maps/ to create a new map.
I think adding it to the rest of the files might be better than overwriting the old one, but happy for others to decide.
Maps the transport control buttons on the device only. They are labelled C10 to C15 on the controller, and map to 113 to 118 in the file.
2020-07-05 19:34:27 +02:00
ad6de3c233 when carrying out MIDI editing operations, be sure to act only once per Model when the selection involves non-forked copies
Still can fail if the non-forked copies have been modified enough, but user should not multi-select them in that instance
2020-07-02 23:15:10 -06:00
b4c71a5afe add action created a few months ago to global Track menu to toggle layer display 2020-07-02 14:50:12 -06:00
8f8099d8cc respond to changes in UI ellipsize track name mode 2020-07-01 12:17:43 -06:00
acd948a00c fix incorrect ellipsize option value 2020-07-01 12:17:43 -06:00