ardour.git
6 years ago"Selected" is a PresentationInfo Property.
Robin Gareus [Sat, 5 Aug 2017 19:12:52 +0000 (21:12 +0200)]
"Selected" is a PresentationInfo Property.

This fixes MIDI Input follows MIDI track selection (and maybe other
issues) and hopefully breaks nothing else (most places subscribe to
both Stripable::PropertyChanged and PresentationInfo::PropertyChanged).

6 years agoFix Track/Bus dialog name-entry default
Robin Gareus [Sat, 5 Aug 2017 17:11:57 +0000 (19:11 +0200)]
Fix Track/Bus dialog name-entry default

Changing the track-type to add changes the name which marked the
name-entry as "edited by user", even though it was Ardour itself
which changed the name.

6 years agoamend bc46a7e2e9; fix blind coding typos
Robin Gareus [Sat, 5 Aug 2017 14:17:31 +0000 (16:17 +0200)]
amend bc46a7e2e9; fix blind coding typos

6 years agoamend f4c76f89d3a; fix blind coding typos
Robin Gareus [Sat, 5 Aug 2017 14:03:17 +0000 (16:03 +0200)]
amend f4c76f89d3a; fix blind coding typos

6 years agoPortAudio backend RT-safe MIDI buffer allocation
Robin Gareus [Sat, 5 Aug 2017 13:35:31 +0000 (15:35 +0200)]
PortAudio backend RT-safe MIDI buffer allocation

6 years agoCoreaudio backend RT-safe MIDI buffer allocation
Robin Gareus [Sat, 5 Aug 2017 13:21:51 +0000 (15:21 +0200)]
Coreaudio backend RT-safe MIDI buffer allocation

6 years agoALSA backend RT-safe MIDI buffer allocation
Robin Gareus [Sat, 5 Aug 2017 13:03:06 +0000 (15:03 +0200)]
ALSA backend RT-safe MIDI buffer allocation

6 years agoUpdate backend API: read-only MIDI input buffers
Robin Gareus [Sat, 5 Aug 2017 13:04:05 +0000 (15:04 +0200)]
Update backend API: read-only MIDI input buffers

6 years agofull integration of beatbox test app into ardour tree+build system
Paul Davis [Sat, 5 Aug 2017 06:03:43 +0000 (02:03 -0400)]
full integration of beatbox test app into ardour tree+build system

Plus a few attempts at catching note on/off quantization stuff

6 years agoRevert 542d021f, fix number of DSP threads
Robin Gareus [Sat, 5 Aug 2017 00:43:15 +0000 (02:43 +0200)]
Revert 542d021f, fix number of DSP threads

The main process-callback does not participate in DSP computation

6 years agoConsolidate ctrl surface code
Robin Gareus [Fri, 4 Aug 2017 23:27:41 +0000 (01:27 +0200)]
Consolidate ctrl surface code

6 years agoAdd API to set thread-priority (for ctrl-surfaces)
Robin Gareus [Fri, 4 Aug 2017 22:54:34 +0000 (00:54 +0200)]
Add API to set thread-priority (for ctrl-surfaces)

6 years agoReduce DSP thread priority (main-i/o > midi i/o > computation)
Robin Gareus [Fri, 4 Aug 2017 22:31:34 +0000 (00:31 +0200)]
Reduce DSP thread priority (main-i/o > midi i/o > computation)

6 years agoadd tempo adjustment
Paul Davis [Fri, 4 Aug 2017 22:09:31 +0000 (18:09 -0400)]
add tempo adjustment

6 years agoexpose more internal state
Paul Davis [Fri, 4 Aug 2017 21:40:55 +0000 (17:40 -0400)]
expose more internal state

6 years agochange superclock ticks per second (no need for 11,13,17)
Paul Davis [Fri, 4 Aug 2017 21:40:35 +0000 (17:40 -0400)]
change superclock ticks per second (no need for 11,13,17)

6 years agoremove some debug output
Paul Davis [Fri, 4 Aug 2017 21:40:13 +0000 (17:40 -0400)]
remove some debug output

6 years agofix bbox compilation after integration into tree
Paul Davis [Fri, 4 Aug 2017 21:26:42 +0000 (17:26 -0400)]
fix bbox compilation after integration into tree

6 years agonew mini, standalone MIDI beatbox/live looper
Paul Davis [Fri, 4 Aug 2017 21:19:36 +0000 (17:19 -0400)]
new mini, standalone MIDI beatbox/live looper

This is for experiments with loop sequencing, MIDI region generation and superclock stuff

6 years agoNO-OP: whitespace
Robin Gareus [Fri, 4 Aug 2017 14:26:37 +0000 (16:26 +0200)]
NO-OP: whitespace

6 years agoGraph profiling: allow to override max DSP thread count & calc avg.
Robin Gareus [Fri, 4 Aug 2017 14:26:26 +0000 (16:26 +0200)]
Graph profiling: allow to override max DSP thread count & calc avg.

6 years agoCoreAudio: Set MachThread RT Priority
Robin Gareus [Fri, 4 Aug 2017 01:12:29 +0000 (03:12 +0200)]
CoreAudio: Set MachThread RT Priority

6 years agoDummyBackend: allow changing SPP
Robin Gareus [Fri, 4 Aug 2017 01:39:27 +0000 (03:39 +0200)]
DummyBackend: allow changing SPP

6 years agoSNAFU. Allow changing engine buffer-size while running
Robin Gareus [Fri, 4 Aug 2017 01:36:03 +0000 (03:36 +0200)]
SNAFU. Allow changing engine buffer-size while running

6 years agoUpdate sv.po
Kristoffer Grundström [Fri, 4 Aug 2017 00:23:35 +0000 (02:23 +0200)]
Update sv.po

6 years agoUpdated Swedish language
Kristoffer Grundström [Sun, 26 Feb 2017 15:42:33 +0000 (16:42 +0100)]
Updated Swedish language

Signed-off-by: Kristoffer Grundström <hamnisdude@gmail.com>
6 years agoRough-in an qm-barbeattracker Lua example
Robin Gareus [Thu, 3 Aug 2017 23:56:50 +0000 (01:56 +0200)]
Rough-in an qm-barbeattracker Lua example

6 years agoFix typo in Lua Vamp API
Robin Gareus [Thu, 3 Aug 2017 23:27:46 +0000 (01:27 +0200)]
Fix typo in Lua Vamp API

6 years agoAllow calling IO::silence for yet unregistered ports (Click)
Robin Gareus [Thu, 3 Aug 2017 21:54:26 +0000 (23:54 +0200)]
Allow calling IO::silence for yet unregistered ports (Click)

6 years agoSome more assert() debugging
Robin Gareus [Thu, 3 Aug 2017 21:37:38 +0000 (23:37 +0200)]
Some more assert() debugging

6 years agoIgnore cycle-start/end for unregistered ports
Robin Gareus [Thu, 3 Aug 2017 17:16:33 +0000 (19:16 +0200)]
Ignore cycle-start/end for unregistered ports

Should fix a race during Session::destroy(), Port::PortDrop
which unregisters ports with the backend, but the actual port instance
will still exist.

The engine does no longer have a session-pointer and only calls
CycleStart(); CycleEnd() to clear port-buffers. Trying to clear
and already unregistered Port will crash.

6 years agoimprove 1a288ddd, destroy IO after disconnecting from signals.
Robin Gareus [Thu, 3 Aug 2017 16:52:39 +0000 (18:52 +0200)]
improve 1a288ddd, destroy IO after disconnecting from signals.

This does not completely fix the race-condition. The GUI
(e.g. connection-manager) may still hold a shared-ptr reference.

6 years agoFix Session > New (cancel retains the current session if any)
Robin Gareus [Thu, 3 Aug 2017 16:43:41 +0000 (18:43 +0200)]
Fix Session > New (cancel retains the current session if any)

6 years agoFix crash when cleaning up w/o destroying session
Robin Gareus [Thu, 3 Aug 2017 16:43:12 +0000 (18:43 +0200)]
Fix crash when cleaning up w/o destroying session

- Control-protocols may transmit data during cleanup
 (e.g. reset surface), and need the Audio-engine to do so.
- destroying the ControlProtocolManager w/o the Session calling
 ::drop_protocols(), lead to a double free.

6 years agoOSC: Fix to make sure buses created with Ardour 4.7 sessions show up
Len Ovens [Thu, 3 Aug 2017 16:07:58 +0000 (09:07 -0700)]
OSC: Fix to make sure buses created with Ardour 4.7 sessions show up

6 years agoAccommodate newly introduced source(s) in our MSVC project (gtk2_ardour)
John Emmas [Thu, 3 Aug 2017 06:49:28 +0000 (07:49 +0100)]
Accommodate newly introduced source(s) in our MSVC project (gtk2_ardour)

6 years agoprevent duplicate playlist-names when re-naming #7438
Robin Gareus [Thu, 3 Aug 2017 00:04:39 +0000 (02:04 +0200)]
prevent duplicate playlist-names when re-naming #7438

6 years agoUpdate clear_gray-ardour.colors
cooltehno [Mon, 19 Jun 2017 04:20:33 +0000 (07:20 +0300)]
Update clear_gray-ardour.colors

6 years agoUpdate caineville-ardour.colors
cooltehno [Mon, 19 Jun 2017 04:12:08 +0000 (07:12 +0300)]
Update caineville-ardour.colors

6 years agoOSC: Add command to select Master
Len Ovens [Wed, 2 Aug 2017 17:43:13 +0000 (10:43 -0700)]
OSC: Add command to select Master

6 years agoFix some more crashes at session-close
Robin Gareus [Tue, 1 Aug 2017 21:27:34 +0000 (23:27 +0200)]
Fix some more crashes at session-close

PortDrop unregisters backend ports, the backend will return a NULL
buffer-pointer, but the I/O object still exists (Metronome, LTC)

AudioBuffer::_data == 0

#0  msvcrt!memset () from C:\Windows\System32\msvcrt.dll
#1  ARDOUR::AudioBuffer::silence (this=0x2c410710, len=256, offset=0) at ../libs/ardour/audio_buffer.cc:88
#2  ARDOUR::AudioPort::cycle_end (this=0x34918730, nframes=256) at ../libs/ardour/audio_port.cc:66
#3  ARDOUR::PortManager::cycle_end (this=this@entry=0x23342770, nframes=nframes@entry=256)
[process callback w/o session]

6 years agoFix LTC encoder removal
Robin Gareus [Tue, 1 Aug 2017 15:48:42 +0000 (17:48 +0200)]
Fix LTC encoder removal

Fixed a crash if an x-run or graph-reorder happens after the LTC encoder
has been destroyed (possible at session-close or after disabling
the encoder).  This also fixes duplicate callbacks in case the
encoder was re-enabled times in an active session.

6 years agoFix Linux packaging to deal with jackd -RC versions
Robin Gareus [Tue, 1 Aug 2017 14:32:58 +0000 (16:32 +0200)]
Fix Linux packaging to deal with jackd -RC versions

6 years agoFix ATAV GUI property cleanup
Robin Gareus [Tue, 1 Aug 2017 14:32:31 +0000 (16:32 +0200)]
Fix ATAV GUI property cleanup

AutomationTimeAxisView::state_id() requires a stripable
(stripable == automatable + parameter OR  stripable + control)

6 years agoOSC: expand plugin_descriptor to split into smaller OSC messages (issue #0007433)
Len Ovens [Tue, 1 Aug 2017 14:23:27 +0000 (07:23 -0700)]
OSC: expand plugin_descriptor to split into smaller OSC messages (issue #0007433)

6 years agoOSC: add param to plugin_list response which indicates plugin enable state (OnkelDead)
Len Ovens [Tue, 1 Aug 2017 14:04:59 +0000 (07:04 -0700)]
OSC: add param to plugin_list response which indicates plugin enable state (OnkelDead)

6 years agoMore Russian translation updates
Petr Semiletov [Mon, 31 Jul 2017 21:50:27 +0000 (00:50 +0300)]
More Russian translation updates

6 years agoFix erroneous changes in the previous updates, translate more into Russian
Alexandre Prokoudine [Mon, 31 Jul 2017 21:18:08 +0000 (00:18 +0300)]
Fix erroneous changes in the previous updates, translate more into Russian

6 years agoSignal wish to show inline display in gui by lv2:optionalFeature
Johannes Mueller [Sun, 23 Jul 2017 19:10:07 +0000 (21:10 +0200)]
Signal wish to show inline display in gui by lv2:optionalFeature

... in .ttl file rather than by extension_data() in code. That's more in the
spirit of LV2.

6 years agoTweaking the a-comp inline display a bit. Make it more skinny.
Johannes Mueller [Sat, 22 Jul 2017 08:17:17 +0000 (10:17 +0200)]
Tweaking the a-comp inline display a bit. Make it more skinny.

6 years agoIndicate whether to show plugin's inline display in GUI
Johannes Mueller [Fri, 21 Jul 2017 12:51:57 +0000 (14:51 +0200)]
Indicate whether to show plugin's inline display in GUI

This is currently done by an extension data similarly to
LV2_INLINEDISPLAY__interface.

6 years agoSimplified inline display if the channel strip is not wide enough
Johannes Mueller [Thu, 13 Jul 2017 19:28:17 +0000 (21:28 +0200)]
Simplified inline display if the channel strip is not wide enough

If the width of the display area is below 200 px, we switch from the graph
display to displaying only two bars, one for output level and one for gain
reduction. In the bar mode we also visualize threshold and ratio.

6 years agoHonor attack and release parameters in a-comp's inline graph
Johannes Mueller [Thu, 13 Jul 2017 15:23:16 +0000 (17:23 +0200)]
Honor attack and release parameters in a-comp's inline graph

6 years agoIndicate gain reduction in a-comp
Johannes Mueller [Thu, 13 Jul 2017 13:35:12 +0000 (15:35 +0200)]
Indicate gain reduction in a-comp

6 years agoShow range -60 .. +10 dBFS in acomp's inline display
Robin Gareus [Thu, 13 Jul 2017 21:05:49 +0000 (23:05 +0200)]
Show range -60 .. +10 dBFS in acomp's inline display

6 years agoSet makeup to 0.f when bypassed also in stereo version
Johannes Mueller [Sun, 25 Jun 2017 07:54:05 +0000 (09:54 +0200)]
Set makeup to 0.f when bypassed also in stereo version

6 years agoAdjust the indication of the treshold value by the makup gain.
Johannes Mueller [Sun, 18 Jun 2017 22:06:10 +0000 (00:06 +0200)]
Adjust the indication of the treshold value by the makup gain.

When lifting the compressor curve by the makeup gain value the actual
treshold (the level when the curve kinks in) is also lifted. Therefore we need
to adjust the dashed line indicating the threshold as well as the level when
the color gradient to show compression kicks in.

6 years agoAlso the stereo version needs to set need_expose
Johannes Mueller [Sun, 18 Jun 2017 21:56:23 +0000 (23:56 +0200)]
Also the stereo version needs to set need_expose

6 years agoShow a-comp's makeup grain in inline rendering
Johannes Mueller [Sun, 18 Jun 2017 21:41:23 +0000 (23:41 +0200)]
Show a-comp's makeup grain in inline rendering

6 years agoSome abstractions to make the display look good in the plugin gui
Johannes Mueller [Thu, 20 Jul 2017 22:37:07 +0000 (00:37 +0200)]
Some abstractions to make the display look good in the plugin gui

6 years agoDisplay the inline display in the generic plugin gui
Johannes Mueller [Thu, 20 Jul 2017 22:36:40 +0000 (00:36 +0200)]
Display the inline display in the generic plugin gui

6 years agoPut plugin inline display into a freely available class ...
Johannes Mueller [Thu, 20 Jul 2017 21:28:52 +0000 (23:28 +0200)]
Put plugin inline display into a freely available class ...

... and let ProcessorBox::PluginInlineDisplay inherit from it.

6 years agoFix typo
Robin Gareus [Mon, 31 Jul 2017 12:26:39 +0000 (14:26 +0200)]
Fix typo

6 years agoOSC: Make stripname refresh in automation play mode as well.
Len Ovens [Mon, 31 Jul 2017 14:55:09 +0000 (07:55 -0700)]
OSC: Make stripname refresh in automation play mode as well.

6 years agoOSC: fix VCAs try to connect to controls it does not have.
Len Ovens [Mon, 31 Jul 2017 01:34:56 +0000 (18:34 -0700)]
OSC: fix VCAs try to connect to controls it does not have.

6 years agoSome session cleanup fixes (delete slave, take lock for lua)
Robin Gareus [Sun, 30 Jul 2017 23:48:28 +0000 (01:48 +0200)]
Some session cleanup fixes (delete slave, take lock for lua)

6 years agoMore Russian translation updated and fixes
Petr Semiletov [Sun, 30 Jul 2017 14:31:55 +0000 (17:31 +0300)]
More Russian translation updated and fixes

6 years agoUpdate Russian translation
Alexandre Prokoudine [Sun, 30 Jul 2017 14:35:21 +0000 (17:35 +0300)]
Update Russian translation

6 years agoVCA master-strip: drop gain-control reference
Robin Gareus [Sun, 30 Jul 2017 02:51:25 +0000 (04:51 +0200)]
VCA master-strip: drop gain-control reference

6 years agoRemove an unused variable
Robin Gareus [Sun, 30 Jul 2017 00:41:02 +0000 (02:41 +0200)]
Remove an unused variable

6 years agoBinding Proxy: Drop references as requested.
Robin Gareus [Sun, 30 Jul 2017 00:40:45 +0000 (02:40 +0200)]
Binding Proxy: Drop references as requested.

6 years agoTurn AutomationCtrl into a SessionHandleRef
Robin Gareus [Sun, 30 Jul 2017 00:34:14 +0000 (02:34 +0200)]
Turn AutomationCtrl into a SessionHandleRef

This fixes a crash with GUI elements which are only deleted during GUI
Idle and hold a Reference to a Controllable,
The session is already destroyed at that point:

ARDOUR::CoreSelection::remove_control_by_id(PBD::ID const&)
ARDOUR::AutomationControl::~AutomationControl()
ARDOUR::SlavableAutomationControl::~SlavableAutomationControl()
ARDOUR::MonitorControl::~MonitorControl()
boost::detail::sp_counted_base::destroy()
boost::detail::sp_counted_impl_p<AudioGrapher::Interleaver<float>::Input>::dispose()
boost::detail::sp_counted_base::release()
boost::detail::shared_count::~shared_count()
boost::shared_ptr<PBD::Controllable>::~shared_ptr()
boost::shared_ptr<PBD::Connection>::~shared_ptr()
ArdourWidgets::BindingProxy::~BindingProxy()
ArdourWidgets::ArdourButton::~ArdourButton()
VCAMasterStrip::~VCAMasterStrip()
int idle_delete<VCAMasterStrip>(VCAMasterStrip*)

6 years agoNO-OP: name-change (_list and _lock are also used in other places)
Robin Gareus [Sun, 30 Jul 2017 00:27:52 +0000 (02:27 +0200)]
NO-OP: name-change (_list and _lock are also used in other places)

Derived classes need to explicitly specify namespace and class
to avoid ambiguities (even for private members)

6 years agoRussian po updates, typo in automation_time_axis.cc fix
Petr Semiletov [Sat, 22 Jul 2017 12:35:40 +0000 (15:35 +0300)]
Russian po updates, typo in automation_time_axis.cc fix

6 years agoModify our MSVC project to add libltc as a dependency of 'dummy_backend' (which now...
John Emmas [Sat, 29 Jul 2017 09:46:53 +0000 (10:46 +0100)]
Modify our MSVC project to add libltc as a dependency of 'dummy_backend' (which now needs to link to it)

6 years agoFix an ambiguous call to 'floor()'
John Emmas [Sat, 29 Jul 2017 09:44:00 +0000 (10:44 +0100)]
Fix an ambiguous call to 'floor()'

MSVC complains, so let's specify which override we want.

6 years agoFix edit-cursor in TextEntry
Robin Gareus [Sat, 29 Jul 2017 00:05:28 +0000 (02:05 +0200)]
Fix edit-cursor in TextEntry

Gtk::WINDOW_POPUP cannot be used for windows that require focus.
A gtk-entry without focus does not show an edit-cursor.

6 years agoPortManager::unregister_port() must be called with process lock
Robin Gareus [Fri, 28 Jul 2017 18:15:15 +0000 (20:15 +0200)]
PortManager::unregister_port() must be called with process lock

This fixes "Failed to register <surface> port" when re-loading a session.

6 years agoDelete CoreSelection at session close
Robin Gareus [Fri, 28 Jul 2017 18:11:55 +0000 (20:11 +0200)]
Delete CoreSelection at session close

6 years agoAdd a LTC generator to the dummy backend
Robin Gareus [Fri, 28 Jul 2017 15:47:36 +0000 (17:47 +0200)]
Add a LTC generator to the dummy backend

6 years agoAllow to rename VCAs in the editor
Robin Gareus [Fri, 28 Jul 2017 00:12:19 +0000 (02:12 +0200)]
Allow to rename VCAs in the editor

6 years agoFix write-pass re-start while in an active write-pass
Robin Gareus [Thu, 27 Jul 2017 15:50:27 +0000 (17:50 +0200)]
Fix write-pass re-start while in an active write-pass

6 years agoInitial checkin of TouchOSC interfaces to repository.
Ben Loftis [Thu, 27 Jul 2017 15:33:43 +0000 (10:33 -0500)]
Initial checkin of TouchOSC interfaces to repository.

6 years agoFix pasting automation at 0
Robin Gareus [Thu, 27 Jul 2017 01:22:21 +0000 (03:22 +0200)]
Fix pasting automation at 0

6 years agoStart a new write-pass when writing automation and locating while rolling
Robin Gareus [Wed, 26 Jul 2017 23:40:13 +0000 (01:40 +0200)]
Start a new write-pass when writing automation and locating while rolling

6 years agoFix ATAV hide button for VCA lanes
Robin Gareus [Wed, 26 Jul 2017 23:34:16 +0000 (01:34 +0200)]
Fix ATAV hide button for VCA lanes

6 years agoAsk user to save when using save-as or snapshot+switch.
Robin Gareus [Wed, 26 Jul 2017 21:34:21 +0000 (23:34 +0200)]
Ask user to save when using save-as or snapshot+switch.

6 years agoFix initial sync to LTC with small buffersizes
Robin Gareus [Wed, 26 Jul 2017 20:54:31 +0000 (22:54 +0200)]
Fix initial sync to LTC with small buffersizes

Ardour follow_slave() does nothing (not even seek) if the slave is not
locked.

The LTC-slave assumes it's locked if LTC is stable for 5 continuous
process-calls.

If the difference of Ardour's transport-position to the LTC-timecode
is large (> 2sec), the slave reset itself (assuming drift, seek don't vari-
speed).

A LTC-slave does reset does reset the locked counter.

Hence: If initially Ardour's transport differs > 2 sec and the buffersize
is small (many process-callbacks), the slave kept resetting itself
never informing Ardour that it locked to the external TC, and Ardour
never issued a seek.

6 years agoupdate libltc
Robin Gareus [Wed, 26 Jul 2017 20:23:50 +0000 (22:23 +0200)]
update libltc

6 years agoRemove unnecessary tests for touch-state
Robin Gareus [Tue, 25 Jul 2017 18:16:04 +0000 (20:16 +0200)]
Remove unnecessary tests for touch-state

6 years agoMake start_touch() truly idempotent
Robin Gareus [Tue, 25 Jul 2017 18:15:12 +0000 (20:15 +0200)]
Make start_touch() truly idempotent

Also don't allow outsiders to call Controllable::set_touching()

6 years agoFix #6280 – region (first_frame()==0) selectable with SnapRegionBoundary
Johannes Mueller [Sun, 23 Jul 2017 18:07:17 +0000 (20:07 +0200)]
Fix #6280 – region (first_frame()==0) selectable with SnapRegionBoundary

Issue #6280 states that when selecting ranges using SnapToRegionBoundary it's
not possible to select regions with first_frame() == 0. This is because
Playlist::find_next_region() does not consider region boundaries == pos but
only > pos. Thus it never considers pos == 0 to be a region boundary.

This solution tries to be as little invasive as possible without changing the
semantics of PlayList::find_next_region(). Therefore position 0 is added to the
region boundary cache if there's a region starting at position 0 in any track.

6 years agofix e838e7f3597
Robin Gareus [Mon, 24 Jul 2017 20:26:04 +0000 (22:26 +0200)]
fix e838e7f3597

6 years agoFix Mixbus "well known" send-names and enable ctrls
Robin Gareus [Mon, 24 Jul 2017 19:54:31 +0000 (21:54 +0200)]
Fix Mixbus "well known" send-names and enable ctrls

6 years agoUpdate WritePass logic + AutomationList Undo
Robin Gareus [Mon, 24 Jul 2017 18:54:32 +0000 (20:54 +0200)]
Update WritePass logic + AutomationList Undo

Fixes various issues when changing AutomationState while rolling.

6 years agoupdate japanese translation (Hiroki Inagaki)
Paul Davis [Mon, 24 Jul 2017 18:59:11 +0000 (14:59 -0400)]
update japanese translation (Hiroki Inagaki)

6 years agoOSC: only use gain change signals if value changes
Len Ovens [Mon, 24 Jul 2017 17:14:21 +0000 (10:14 -0700)]
OSC: only use gain change signals if value changes

6 years agoOSC: add use groups to GUI
Len Ovens [Mon, 24 Jul 2017 14:07:39 +0000 (07:07 -0700)]
OSC: add use groups to GUI

6 years agoOSC: port mode by default should be manual
Len Ovens [Mon, 24 Jul 2017 14:07:05 +0000 (07:07 -0700)]
OSC: port mode by default should be manual

6 years agoReplace a ringbuffer with a multi-reader circular table
Julien "_FrnchFrgg_" RIVAUD [Mon, 24 Jul 2017 12:54:10 +0000 (14:54 +0200)]
Replace a ringbuffer with a multi-reader circular table

a-Inline Spectrogram used a ringbuffer to send mixed down audio data
from the DSP thread to the inline display thread. The problem is that
several inline display threads can coexist (one for the channel strip in
the editor, one for the channel strip in the mixer, and soon one for an
inline display in the generic plugin UI). A ringbuffer is single-writer
single-reader so each display only got part of the data, and all were
competing for it.

Replace it with a circular table, where the DSP sets a write pointer,
and every (inline display) user keeps its own read pointer and checks it
is not so far in the past as to be overtaken by the DSP write pointer.