13
0
Commit Graph

27739 Commits

Author SHA1 Message Date
acf26b03a6
FFT analysis: use actual latency
Ardour allows to override a plugin's reported latency. So far this
was not taken into account when plotting the phase/freq response.
2019-07-17 17:30:43 +02:00
45f1220aa5
Fix deadlock when removing routes (initialization issues)
_setup_chain needs to point to the unused graph-chain, and not
_current_chain. Otherwise Graph::clear_other_chain() waits forever.
2019-07-15 00:55:51 +02:00
53c677e08f
Remember MIDI-track note-range -- #7773
Previously only manual changes of the note-range using the scroomer.
The NoteRangeChanged() was ignored for implicit changes (e.g. while
recording, step-entry) and automatic-fit that didn't involve a drag
event.
2019-07-14 18:49:30 +02:00
18958af3d8
Remove cruft: unused callback 2019-07-14 18:49:25 +02:00
169e15483a Implement a derived function for 'GainMeter::redraw_metrics()'
I'm not sure why exactly but at this line in 'GainMeter::set_controls ()' :-

    model_connections, invalidator (*this), boost::bind (&GainMeter::redraw_metrics, this), gui_context()

MSVC will not allow us to pass a base class function to boost::bind(). I tried explicitly specifying the base class and I also tried making the function public / making it virtual etc but the only thing which works is to implement a derived function.

It's somehow related to changing the signal from 'TypeChanged' to 'MeterTypeChanged' but I don't entirely understand why... :-(
2019-07-13 13:57:57 +01:00
dc131da53b
Hide "Add MIDI Port" in the GUI if there is already one 2019-07-11 22:58:27 +02:00
c6740b7cb0
Prevent adding a 2nd MIDI input/output port
Ardour's Tracks/Routes are not capable of handing more than one
MIDI port per per route properly. Most Plugin standards don't support
this either.

However, at this point in time IO::ensure_ports_locked() is not
limited by this restriction!

It is still possible to indirectly add a 2nd MIDI data-buffer
and output-port via plugin pin-management, or simply plugins with
two MIDI output ports when using flexible I/O.
2019-07-11 22:57:34 +02:00
b7369f421f
Re-work process-graph to use lock-free queues
This removes the trigger_mutex which was used for exclusive access
of the work-queue for concurrent processing.
2019-07-10 20:39:27 +02:00
929ecf622b
Add lock-free multiple producer multiple reader queue 2019-07-10 20:21:06 +02:00
57c3eaacf6
Fix process-thread naming 2019-07-10 20:20:44 +02:00
e8c2e43dc4
Tweak dump-playlist script to indicate current playlist 2019-07-06 18:10:36 +02:00
e85c10256b
Add Lua binding to set/create track playlists 2019-07-06 18:09:27 +02:00
d35ee75c77
NO-OP: whitespace 2019-07-04 22:35:07 +02:00
83d54e79d3
Cleanup headless getopt 2019-07-04 22:34:04 +02:00
31b4bc9166
Delay headless startup, allow background threads to start 2019-07-04 22:23:42 +02:00
8f9a1e1cf4
Use exit-status macros for compatibility 3/3 2019-07-04 22:21:49 +02:00
e76e18af96
Use exit-status macros for compatibility 2/3 2019-07-04 22:21:35 +02:00
dbc0c54ced
Use exit-status macros for compatibility 1/3 2019-07-04 22:21:14 +02:00
bd8897686a
headless: Use direct x-thread wakeup instead of sleep/spin 2019-07-04 22:02:52 +02:00
9cfcb0bd92
Mixbus uses K14 (not K20) master meter by default (see also 297ed001d) 2019-07-02 20:18:26 +02:00
db2ed6ade5
Remove unused API -- there is no default backend. 2019-07-02 20:16:56 +02:00
dc4dc048a9
Improve headless Ardour somewhat
* Allow to exit cleanly (using access-action)
* Terminate when the backend is halted
* Handle various commandline arguments as advertised
  - print version
  - disable hardware optimization
  - set client-name
  - prevent port-connections
* Use JACK -- previously hardour only worked if
  Ardour was compiled with JACK as *only* backend.
  Other backends are listed before JACK, set_default_backend()
  never picks JACK unless it's the only one.
  Other backends need configuration, or EngineState from config.
  This is currently handled in the GUI's engine-dialog..
2019-07-02 20:16:48 +02:00
1801c33ee4
Consolidate headless startup scripts and make hardev work again
This fixes an issue with inconsistent startup scripts.
LD_LIBRARY_PATH was incomplete since at least 5.0 (5.12 is broken, too)
likewise ctrl surface path were outdated, etc.

Prefer to use `gtk2_ardour/ardev_common.sh.in` as the central
point to define environment variables for running Ardour from
the source-tree.
Other start scripts e.g. `vst/ardevst` already did this.
2019-07-02 17:33:56 +02:00
08f8b810d5
Remove non-existent backend-paths from start-script 2019-07-02 16:48:07 +02:00
297ed001d0
Mixbus/master is always using K20 by default
This only affects the meter-bridge, toolbar and editor track-header
(Mixbus' mixer is always using DPM, which is always enabled).
2019-07-02 16:12:06 +02:00
3630113414
LV2 support is not optional since 04ccd328dc 2019-06-24 21:52:27 +02:00
0bd6b0ee3d
NO-OP: documentation/comments 2019-06-24 15:09:54 +02:00
a3f8449595 Update to upstream ptformat 777686b (remove strndup && cleanup) 2019-06-24 22:54:45 +10:00
0a62d70a43 Revert "Huh?? I can't believe that MSVC doesn't support strndup() !!!"
This reverts commit 1a7a23a5ce.
2019-06-24 22:52:46 +10:00
1a7a23a5ce Huh?? I can't believe that MSVC doesn't support strndup() !!! 2019-06-23 15:52:59 +01:00
675759c167 Update references to ptfformat -> ptformat && fix api calls 2019-06-22 17:26:05 +10:00
f5524ddf37 ptformat: Update lib from legacy parser to new parser 6240b87 2019-06-22 17:26:05 +10:00
632ab8c421
NO-OP: whitespace 2019-06-21 00:46:23 +02:00
ad3d68b5b9
Show some Lua script buttons by default
This improves discoverability of edior action scripts
2019-06-21 00:44:33 +02:00
8a78b19e1b
Add Lua script to sort tracks by name 2019-06-21 00:43:29 +02:00
Johannes Mueller
3a2b577719 Honor the current start position when exporting chapter marks 2019-06-16 01:30:55 +02:00
Johannes Mueller
79db200bdb Some more frame -> sample changes (in scripts) 2019-06-16 01:30:34 +02:00
Johannes Mueller
9ddc47204a Some more frame -> sample changes (luabindings.cc) 2019-06-16 01:28:38 +02:00
ba495e2051 Add a device for X-touch + two X-touch compact devices.
This also works for X-Touch with x-Touch extenders.
2019-06-14 13:36:56 -05:00
ac4867089a Add mackie device for X-Touch + X-Touch Compact 2019-06-13 14:20:02 -05:00
a787b83f60
Add Yamaha NP-V80 midnam -- thanks to Rob v.d. Berg
upstream original:
https://github.com/rghvdberg/yamaha_np-v80.midnam
2019-06-13 20:51:21 +02:00
b37f30897d
Windows does in theory support hard-links
NB. this is just as unused as the POSIX link() test. Aardour
doesn't create hardlinks since version 3.0. At least it's now
consistently wrong on all platforms :)
2019-06-12 21:35:07 +02:00
Nikolaus Gullotta
989480ab84 mixbus should always copy imported files 2019-06-12 11:34:46 -05:00
d0624b1c04
Do not copy unneeded files to bundle /etc
Previously (Ardour3 buildstack) this was needed for fontconfing, gtk and
pango modules. these days we just compile --with-included-modules=yes.
2019-06-10 22:47:01 +02:00
53b13d718f
Initialize some uninitialized vars
This fixes meterbridge type changes, due to uninitialized
_suspend_menu_callbacks.
2019-06-10 00:34:31 +02:00
1391f49dbc
NO-OP: rename variable 2019-06-09 19:56:39 +02:00
9390f17f36
NO-OP: whitespace and comments 2019-06-09 19:56:36 +02:00
43fe5c0487
Update Push2 level-meter display (use new API)
The meter-type is now implicit set by route/meter-processor, common
to all UIs.
2019-06-09 19:56:33 +02:00
9f20631984
Update GUI: meter-type API and meter-type state changes
This removes all additional GUI side meter-type state.
The route's meter-processors is now responsible for providing
the type.

meter-type is now implicit for GainMeter, LevelMeter used by
meter-strips and mixer-strips.
2019-06-09 19:56:30 +02:00
cd5b0819bf
Consolidate meter-type state and API
In theory different UIs can show different meter-types, so it
can make sense to maintain the type in different places.
MeterType is a bit-set and PeakMeter implementation provides for this.

However, this is not being used, and the current implementation
was rather fragmented, cross-connected signals to keep types in sync,
allowed inconsistent meter-types in GUI and backend.

MeterType is now kept by meter itself, however it is still
saved/restored as part of the Route state.

N.B. This change breaks the API, various methods have been renamed
for consistency.
2019-06-09 19:56:15 +02:00