ardour.git
4 years agoAllow using ArdourSans as optional default font
Robin Gareus [Wed, 4 Dec 2019 21:59:51 +0000 (22:59 +0100)]
Allow using ArdourSans as optional default font

4 years agoClear AudioEngine Error at app start
Robin Gareus [Wed, 4 Dec 2019 18:02:16 +0000 (19:02 +0100)]
Clear AudioEngine Error at app start

4 years agoBundle ArdourSans with packages
Robin Gareus [Wed, 4 Dec 2019 18:02:00 +0000 (19:02 +0100)]
Bundle ArdourSans with packages

4 years agoLoad and register ArdourSans font at application start
Robin Gareus [Wed, 4 Dec 2019 18:01:44 +0000 (19:01 +0100)]
Load and register ArdourSans font at application start

4 years agoBundle a common Sans Font
Robin Gareus [Wed, 4 Dec 2019 18:01:20 +0000 (19:01 +0100)]
Bundle a common Sans Font

ArdourSans is based on Oxygen from https://fonts.google.com/
Copyright (c) 2012, vernon adams (vern@newtypography.co.uk)
This Font Software is licensed under the SIL Open Font License, Version 1.1.

4 years agoRemove cruft - amend 279faad7
Robin Gareus [Tue, 3 Dec 2019 21:02:46 +0000 (22:02 +0100)]
Remove cruft - amend 279faad7

4 years agoNew approach for Lua bindings to avoid LuaBridge_API in GUI code
Robin Gareus [Tue, 3 Dec 2019 16:55:37 +0000 (17:55 +0100)]
New approach for Lua bindings to avoid LuaBridge_API in GUI code

Declare DoubleArray in GUI context so that runtime uses the symbol
from the .exe (not the .dll).

This is mainly for the benefit of MSVC, that does not allow to use
LuaBridge_API in .exe

4 years agoAmend 1caef183 (Windows Lua bindings)
Robin Gareus [Tue, 3 Dec 2019 02:29:35 +0000 (03:29 +0100)]
Amend 1caef183 (Windows Lua bindings)

4 years agoLibardour part of 1caef18 (Windows Lua bindings)
Robin Gareus [Tue, 3 Dec 2019 01:29:37 +0000 (02:29 +0100)]
Libardour part of 1caef18 (Windows Lua bindings)

4 years agoFix Windows builds
Robin Gareus [Tue, 3 Dec 2019 01:27:44 +0000 (02:27 +0100)]
Fix Windows builds

This fixes a missing symbol error due to the weird way how
Windows maps the same, identical symbols using different addresses
in .dll and .exe.  Here specifically for

int luabridge::CFunc::vectorToArray<double, std::vector<double, std::allocator<double> > >(lua_State*)

which was added in 5e1a73a28c07 resulting in

gtk2_ardour/luainstance.cc error: explicit instantiation of 'static const void* luabridge::ClassInfo<T>::getStaticKey() [with T = std::vector<double>]' but no definition available [-fpermissive]
gtk2_ardour/luainstance.cc error: explicit instantiation of 'static const void* luabridge::ClassInfo<T>::getClassKey() [with T = std::vector<double>]' but no definition available [-fpermissive]
gtk2_ardour/luainstance.cc error: explicit instantiation of 'static const void* luabridge::ClassInfo<T>::getConstKey() [with T = std::vector<double>]' but no definition available [-fpermissive]

4 years agoAmend previous commit, fluidsynth tables
Robin Gareus [Mon, 2 Dec 2019 23:22:33 +0000 (00:22 +0100)]
Amend previous commit, fluidsynth tables

4 years agoUpdate to fluidsynth-2.1
Robin Gareus [Mon, 2 Dec 2019 22:58:15 +0000 (23:58 +0100)]
Update to fluidsynth-2.1

see https://github.com/FluidSynth/fluidsynth/releases/tag/v2.1.0

- new, less "ringing" reverb engine
- new, stereophonic chorus engine
- improved integrity checking of SoundFont modulators
...

4 years agoLua MIDI genertors
Robin Gareus [Sun, 1 Dec 2019 20:32:51 +0000 (21:32 +0100)]
Lua MIDI genertors

4 years agoAdd Lua typecast from C++ vector to C-Array
Robin Gareus [Sun, 1 Dec 2019 20:32:10 +0000 (21:32 +0100)]
Add Lua typecast from C++ vector to C-Array

This is useful for MIDI bytes amongst other things

4 years agoUse a detached window for Preferences at first run
Robin Gareus [Fri, 29 Nov 2019 15:27:37 +0000 (16:27 +0100)]
Use a detached window for Preferences at first run

Once a user explicitly attaches the Window as Tab, we
expect the user to know about tabbing, tab-cycling, related
window/tab actions, and relevant shortcuts.

Otherwise it can confusing:
https://discourse.ardour.org/t/cant-get-out-of-preferences/102147

4 years agoUpdate tomsloop script for A6 - Thanks to Tom Brand
Robin Gareus [Wed, 27 Nov 2019 23:54:30 +0000 (00:54 +0100)]
Update tomsloop script for A6 - Thanks to Tom Brand

4 years agoReset paste-count, paste-offset on undo/redo
Robin Gareus [Tue, 26 Nov 2019 22:49:06 +0000 (23:49 +0100)]
Reset paste-count, paste-offset on undo/redo

This fixes an workflow edge-case when undoing a paste in order
to paste at a different location on the same track or automation lane.
After undo, any accumulated paste-offset needs to be reset

4 years agoFix thread-safety issue in a-fluidsynth.
Stefan Westerfeld [Tue, 26 Nov 2019 10:22:04 +0000 (11:22 +0100)]
Fix thread-safety issue in a-fluidsynth.

This fix ensures that the a-fluidsynth "synth" object is not used in two
threads at the same time during midi event handling (run() in RT thread vs.
load_sf2() in worker thread), which could result in crashes.

4 years agoUpdate Lua scripts to use new transport request API
Robin Gareus [Tue, 26 Nov 2019 16:02:41 +0000 (17:02 +0100)]
Update Lua scripts to use new transport request API

4 years agofix crash when using Region > Loop
Paul Davis [Sun, 24 Nov 2019 18:32:34 +0000 (11:32 -0700)]
fix crash when using Region > Loop

4 years agoRemember Virtual-Keyboard window size and position
Robin Gareus [Sun, 24 Nov 2019 17:20:49 +0000 (18:20 +0100)]
Remember Virtual-Keyboard window size and position

4 years agoremove debug output
Paul Davis [Sat, 23 Nov 2019 22:54:34 +0000 (15:54 -0700)]
remove debug output

4 years agoremove debug output
Paul Davis [Sat, 23 Nov 2019 22:54:21 +0000 (15:54 -0700)]
remove debug output

4 years agotweak comment text
Paul Davis [Sat, 23 Nov 2019 22:54:09 +0000 (15:54 -0700)]
tweak comment text

4 years ago2nd part of fix for autoloop event removal when loop bounds are changed while looping
Paul Davis [Sat, 23 Nov 2019 22:53:54 +0000 (15:53 -0700)]
2nd part of fix for autoloop event removal when loop bounds are changed while looping

4 years agoremove debug message about LOCATE WITHOUT DECLICK. This behavior is normal and legal...
Paul Davis [Sat, 23 Nov 2019 22:52:49 +0000 (15:52 -0700)]
remove debug message about LOCATE WITHOUT DECLICK. This behavior is normal and legal when looping

4 years agofix incorrect removal of autoloop event when loop bounds are changed while looping
Paul Davis [Sat, 23 Nov 2019 22:52:05 +0000 (15:52 -0700)]
fix incorrect removal of autoloop event when loop bounds are changed while looping

4 years agofix locate-while-rolling
Paul Davis [Sat, 23 Nov 2019 22:51:30 +0000 (15:51 -0700)]
fix locate-while-rolling

4 years agofix startup crash if no loop range is defined
Paul Davis [Sat, 23 Nov 2019 20:37:00 +0000 (13:37 -0700)]
fix startup crash if no loop range is defined

4 years agomore tweaks to correctly (or more correctly) reload disk reader buffers when loop...
Paul Davis [Sat, 23 Nov 2019 07:09:46 +0000 (00:09 -0700)]
more tweaks to correctly (or more correctly) reload disk reader buffers when loop fade choice changes

4 years agoredesign of declicking and fades around loop boundaries
Paul Davis [Sat, 23 Nov 2019 06:41:56 +0000 (23:41 -0700)]
redesign of declicking and fades around loop boundaries

4 years agoEnable some key release event forwarding
Robin Gareus [Fri, 22 Nov 2019 21:12:48 +0000 (22:12 +0100)]
Enable some key release event forwarding

This is needed for the virtual MIDI keyboard to trigger note-off events

4 years agoVirtual MIDI keyboard, when visible, gets to handle keyboard input first
Robin Gareus [Fri, 22 Nov 2019 21:11:55 +0000 (22:11 +0100)]
Virtual MIDI keyboard, when visible, gets to handle keyboard input first

4 years agoSave VST paths after successful scan
Robin Gareus [Fri, 22 Nov 2019 19:06:43 +0000 (20:06 +0100)]
Save VST paths after successful scan

Ardour only saves Config when the session is saved.
When changing the VST Path and starting a plugin-scan the newly
discovered plugins would otherwise not be avalable unless
the session is explicitly saved after a scan.

4 years agoInform LV2 plugins about main window ID
Robin Gareus [Fri, 22 Nov 2019 19:05:04 +0000 (20:05 +0100)]
Inform LV2 plugins about main window ID

4 years agoAdd support for LV2/KX transient-ID option
Robin Gareus [Fri, 22 Nov 2019 19:01:32 +0000 (20:01 +0100)]
Add support for LV2/KX transient-ID option

4 years agoFix buffer-overflow when vari-speeding
Robin Gareus [Thu, 21 Nov 2019 22:37:31 +0000 (23:37 +0100)]
Fix buffer-overflow when vari-speeding

Session::process() can call split-cycle which offset the
buffer pointers. When vari-speeding at speed > 1.0, the
engine also splits the cycle every n_samples, to not exceed
the configured buffersize. This needs to take prior buffer
offsets into account.

4 years agoGUI: Use new boost::optional API
Robin Gareus [Thu, 21 Nov 2019 16:49:20 +0000 (17:49 +0100)]
GUI: Use new boost::optional API

get_value_or() has been deprecated since boost 1.56

4 years agoUse new boost::optional API
Robin Gareus [Thu, 21 Nov 2019 16:48:56 +0000 (17:48 +0100)]
Use new boost::optional API

get_value_or() has been deprecated since boost 1.56

4 years agoBump boost version requirement
Robin Gareus [Thu, 21 Nov 2019 16:43:32 +0000 (17:43 +0100)]
Bump boost version requirement

1.56 is needed for boost::optional::value_or

4 years agoFix multi-channel de-click
Robin Gareus [Thu, 21 Nov 2019 01:54:19 +0000 (02:54 +0100)]
Fix multi-channel de-click

_declick_amp gain needs to be reset for each channel before
the test (_declick_amp.gain() != target_gain) if de-clicking
is needed.

4 years agoadd mixer actions for toggle disk & input monitoring; bind to d and i in mixer bindings
Paul Davis [Wed, 20 Nov 2019 16:37:14 +0000 (09:37 -0700)]
add mixer actions for toggle disk & input monitoring; bind to d and i in mixer bindings

4 years agoFix declick offset position for multi-channel tracks
Robin Gareus [Tue, 19 Nov 2019 15:20:28 +0000 (16:20 +0100)]
Fix declick offset position for multi-channel tracks

4 years agoDiskReader::_declick_offs should only advance once per ::run() call
Paul Davis [Tue, 19 Nov 2019 04:38:46 +0000 (21:38 -0700)]
DiskReader::_declick_offs should only advance once per ::run() call

4 years agoDiskReader::_declick_amp needs to repeat the same work for each audio channel handled
Paul Davis [Tue, 19 Nov 2019 04:38:25 +0000 (21:38 -0700)]
DiskReader::_declick_amp needs to repeat the same work for each audio channel handled

4 years agofix transport FSM to stop first and declick later
Paul Davis [Tue, 19 Nov 2019 04:29:32 +0000 (21:29 -0700)]
fix transport FSM to stop first and declick later

4 years agosmall changes to make declick out triggered by just stopping
Paul Davis [Tue, 19 Nov 2019 03:47:47 +0000 (20:47 -0700)]
small changes to make declick out triggered by just stopping

4 years agoFix some script icons for non-square buttons
Robin Gareus [Tue, 19 Nov 2019 02:33:28 +0000 (03:33 +0100)]
Fix some script icons for non-square buttons

4 years agoFix Lua Pangolayout ellipsis width
Robin Gareus [Tue, 19 Nov 2019 02:19:08 +0000 (03:19 +0100)]
Fix Lua Pangolayout ellipsis width

4 years agoConsistent toolbar button height
Robin Gareus [Tue, 19 Nov 2019 01:52:35 +0000 (02:52 +0100)]
Consistent toolbar button height

4 years agoImprove toolbar layout consistency
Robin Gareus [Tue, 19 Nov 2019 01:47:11 +0000 (02:47 +0100)]
Improve toolbar layout consistency

Directly pack Lua Script buttons into top-level table,
use same size-constraints.

Use consistent Lua Action button width, in particular for buttons 10..12.
prefer "a" instead of "10" for default numeric label

4 years agounset _reversed whenever RTMidiBuffer gets ::clear()'ed
Paul Davis [Mon, 18 Nov 2019 22:38:18 +0000 (15:38 -0700)]
unset _reversed whenever RTMidiBuffer gets ::clear()'ed

4 years agoadd missing NULL check
Paul Davis [Mon, 18 Nov 2019 20:06:16 +0000 (13:06 -0700)]
add missing NULL check

4 years agoLatency compensation is independent of transport-logic
Robin Gareus [Mon, 18 Nov 2019 19:21:40 +0000 (20:21 +0100)]
Latency compensation is independent of transport-logic

This also fixes a concurrency issue when when non-realtime-stop
and graph-reorder or other rt-latency changes coincide.

4 years agouse reverse-reading of MIDI data in DiskReader
Paul Davis [Mon, 18 Nov 2019 19:01:26 +0000 (12:01 -0700)]
use reverse-reading of MIDI data in DiskReader

4 years agosupport backwards reading of MIDI from RTMidiBuffer
Paul Davis [Mon, 18 Nov 2019 18:40:59 +0000 (11:40 -0700)]
support backwards reading of MIDI from RTMidiBuffer

4 years agofix typo/thinko in logic to decide if MIDI buffers in DiskWriter require the butler...
Paul Davis [Mon, 18 Nov 2019 18:40:06 +0000 (11:40 -0700)]
fix typo/thinko in logic to decide if MIDI buffers in DiskWriter require the butler (to write to disk)

4 years agoFix automation lookup when rolling backwards
Robin Gareus [Mon, 18 Nov 2019 14:10:15 +0000 (15:10 +0100)]
Fix automation lookup when rolling backwards

4 years agoNO-OP: simplify code
Robin Gareus [Mon, 18 Nov 2019 14:09:43 +0000 (15:09 +0100)]
NO-OP: simplify code

find_next_ac_event, needs to find the next event *after* (but not
at) start.

std::upper_bound returns an iterator pointing to the first element
in the range [first, last) that is greater than value.
This is equivalent to using std::lower_bound an iterating until
finding the first element greater than.

4 years agoAutomation event lookup when rolling backwards
Robin Gareus [Mon, 18 Nov 2019 14:06:59 +0000 (15:06 +0100)]
Automation event lookup when rolling backwards

When rolling backwards we need to be able to find
the *next* event before "start".

4 years agoTweak LFO script
Robin Gareus [Sun, 17 Nov 2019 13:51:33 +0000 (14:51 +0100)]
Tweak LFO script

* thin automation to prevent too dense events
* add icon (cosine wave)

4 years agoremove debug output
Paul Davis [Sat, 16 Nov 2019 03:42:15 +0000 (20:42 -0700)]
remove debug output

4 years agofix questionable and not entirely intended change that was a part of dad47e445cb349
Paul Davis [Sat, 16 Nov 2019 03:40:23 +0000 (20:40 -0700)]
fix questionable and not entirely intended change that was a part of dad47e445cb349

4 years agobetter transport master behavior when working with sample-clock-synced transport...
Paul Davis [Fri, 15 Nov 2019 22:58:29 +0000 (15:58 -0700)]
better transport master behavior when working with sample-clock-synced transport masters

4 years agoimprove behavior when synced to JACK transport
Paul Davis [Fri, 15 Nov 2019 22:57:13 +0000 (15:57 -0700)]
improve behavior when synced to JACK transport

Heuristic and actions when a locate is needed are different for
JACK transport than TC

4 years agoimprove initial coordinate with JACK transport state
Paul Davis [Fri, 15 Nov 2019 22:54:41 +0000 (15:54 -0700)]
improve initial coordinate with JACK transport state

4 years agobetter debugging message
Paul Davis [Fri, 15 Nov 2019 22:52:20 +0000 (15:52 -0700)]
better debugging message

4 years agoconsolidate setting of "get roll after locate" in TFSM
Paul Davis [Fri, 15 Nov 2019 22:51:58 +0000 (15:51 -0700)]
consolidate setting of "get roll after locate" in TFSM

4 years agoNO-OP: move brace
Paul Davis [Fri, 15 Nov 2019 22:50:33 +0000 (15:50 -0700)]
NO-OP: move brace

4 years agowhen synced to JACK transport, transport requests go there first.
Paul Davis [Fri, 15 Nov 2019 22:50:05 +0000 (15:50 -0700)]
when synced to JACK transport, transport requests go there first.

4 years agofix behavior of Session::maybe_stop() when synced to JACK Transport
Paul Davis [Fri, 15 Nov 2019 22:49:08 +0000 (15:49 -0700)]
fix behavior of Session::maybe_stop() when synced to JACK Transport

4 years agomake comment more accurate
Paul Davis [Fri, 15 Nov 2019 22:48:29 +0000 (15:48 -0700)]
make comment more accurate

4 years agoconsolidate Session::locate() and Session::do_locate()
Paul Davis [Fri, 15 Nov 2019 22:47:29 +0000 (15:47 -0700)]
consolidate Session::locate() and Session::do_locate()

The first no longer needs to handle requests by passing them to
JACK transport

4 years agono need for MidiClockTransportMaster::starting() method
Paul Davis [Fri, 15 Nov 2019 22:16:50 +0000 (15:16 -0700)]
no need for MidiClockTransportMaster::starting() method

4 years agoimprove behavior of JACK transport sync callback.
Paul Davis [Fri, 15 Nov 2019 22:15:41 +0000 (15:15 -0700)]
improve behavior of JACK transport sync callback.

Do not call transport actions directly, just report back to JACK
on transport status.

4 years agoadd a bit of debugging to JACK transport code
Paul Davis [Fri, 15 Nov 2019 22:14:54 +0000 (15:14 -0700)]
add a bit of debugging to JACK transport code

4 years agofix resampling ratio when stopped (corner case - not typically called)
Paul Davis [Fri, 15 Nov 2019 22:14:09 +0000 (15:14 -0700)]
fix resampling ratio when stopped (corner case - not typically called)

4 years agomove DiskReader::inc_no_disk_output() into .cc to allow for easier debugging
Paul Davis [Fri, 15 Nov 2019 22:12:49 +0000 (15:12 -0700)]
move DiskReader::inc_no_disk_output() into .cc to allow for easier debugging

4 years agofix crash with -D slave caused by too-early use of a transport master's _port member
Paul Davis [Tue, 12 Nov 2019 01:23:22 +0000 (18:23 -0700)]
fix crash with -D slave caused by too-early use of a transport master's _port member

4 years agofix oddly damaged code (vs. 5.x) for EngineSlave core methods (JACK transport)
Paul Davis [Tue, 12 Nov 2019 01:22:45 +0000 (18:22 -0700)]
fix oddly damaged code (vs. 5.x) for EngineSlave core methods (JACK transport)

4 years agoeliminate hacky design for being able to deliver the correct time as JACK timebase...
Paul Davis [Tue, 12 Nov 2019 01:21:47 +0000 (18:21 -0700)]
eliminate hacky design for being able to deliver the correct time as JACK timebase master

4 years agofix up the creation & state restore of the TransportMasterManager
Paul Davis [Tue, 12 Nov 2019 01:02:37 +0000 (18:02 -0700)]
fix up the creation & state restore of the TransportMasterManager

4 years agoput JACK time master option back in the menus
Paul Davis [Tue, 12 Nov 2019 00:52:48 +0000 (17:52 -0700)]
put JACK time master option back in the menus

4 years agoAdd script to create LFO-like plugin automation
Daniel Appelt [Thu, 14 Nov 2019 09:08:13 +0000 (10:08 +0100)]
Add script to create LFO-like plugin automation

4 years agoFix cycle-end position when not rolling
Robin Gareus [Thu, 14 Nov 2019 20:50:00 +0000 (21:50 +0100)]
Fix cycle-end position when not rolling

When stopped start_sample == end_sample.
This fixes accidental automation lookup,
as well as plugin time/position information.

4 years agoRelax LV2 time-info re-transmission condition
Robin Gareus [Thu, 14 Nov 2019 20:37:14 +0000 (21:37 +0100)]
Relax LV2 time-info re-transmission condition

Allow beat (quarter-note count) to drift by 1/100 beat before re-sync.
This prevents excessive re-transmissions

4 years agoLV2 extension for host's time-scale vari-speed
Robin Gareus [Thu, 14 Nov 2019 20:15:30 +0000 (21:15 +0100)]
LV2 extension for host's time-scale vari-speed

Ardour 6 internally always runs at speed 1.0 (or -1.0, or stopped 0.0).
There is no vari-speed that scale "BPM" or "n_sample" time progression
per cycle.

Instead Ardour 6 vari-speed mechanism transparently re-samples I/O.
So process-time is scaled only relative to wall-clock time.

From a plugin's POV this is similar to "freewheeling": The plugin
processes data as if the host plays at speed 1.0. While the host
plays this data at a different rate.

Some plugins may like to be informed about the host's actual
playback rate.

Currently this is mainly for the benefit of github.com/x42/repitch.lv2.git

4 years agoInitialize uninitialized variables
Robin Gareus [Thu, 14 Nov 2019 19:03:22 +0000 (20:03 +0100)]
Initialize uninitialized variables

This also ensures that musical-time information is initially
transmitted to a plugin.

4 years agoAllow vari-speed slowdown down to 2%
Robin Gareus [Thu, 14 Nov 2019 18:39:48 +0000 (19:39 +0100)]
Allow vari-speed slowdown down to 2%

4 years agoFix MIDNAM device list for plugin-provided names
Robin Gareus [Wed, 13 Nov 2019 22:00:12 +0000 (23:00 +0100)]
Fix MIDNAM device list for plugin-provided names

4 years agoAmend previous commit - latch toggles only while rolling
Robin Gareus [Wed, 13 Nov 2019 21:14:19 +0000 (22:14 +0100)]
Amend previous commit - latch toggles only while rolling

4 years agoAutomation watch toggle buttons and enforce latch
Robin Gareus [Wed, 13 Nov 2019 21:02:07 +0000 (22:02 +0100)]
Automation watch toggle buttons and enforce latch

4 years agoRemove boolean automation special case
Robin Gareus [Wed, 13 Nov 2019 16:21:51 +0000 (17:21 +0100)]
Remove boolean automation special case

Previously setting a boolean-control to "write" and roll did not
create an automation-point.

The state was not correctly captured.
The boolean-control needed to be toggled explicitly to create
an automation point.

4 years agoFix automation-write when locating
Robin Gareus [Wed, 13 Nov 2019 15:57:28 +0000 (16:57 +0100)]
Fix automation-write when locating

When locating while writing automation, begin a new write-pass,
and add a guard point at the locate target position.

NB set_in_write_pass takes 3 arguments: (write_enable, add_point, when)
the last two default to false, 0.

4 years agoFix bool-automation anchor
Robin Gareus [Wed, 13 Nov 2019 15:53:46 +0000 (16:53 +0100)]
Fix bool-automation anchor

Typo sneaked in from ff2f93497...cc7de475f2

4 years agoTweak layout of Plugin-Preset dialog
Robin Gareus [Tue, 12 Nov 2019 18:34:12 +0000 (19:34 +0100)]
Tweak layout of Plugin-Preset dialog

4 years agoAllow to override plugin-provided MIDNAM
Robin Gareus [Tue, 12 Nov 2019 16:00:50 +0000 (17:00 +0100)]
Allow to override plugin-provided MIDNAM

4 years agoSkip custom MIDNAM files in generic MTAV list
Robin Gareus [Tue, 12 Nov 2019 05:29:05 +0000 (06:29 +0100)]
Skip custom MIDNAM files in generic MTAV list

4 years agoAdd API to query if a given MIDNAM is plugin-provided
Robin Gareus [Tue, 12 Nov 2019 05:28:02 +0000 (06:28 +0100)]
Add API to query if a given MIDNAM is plugin-provided

4 years agoIndicate the numeric peak-hold is always digital-peak
Robin Gareus [Mon, 11 Nov 2019 23:07:51 +0000 (00:07 +0100)]
Indicate the numeric peak-hold is always digital-peak