Commit graph

8014 commits

Author SHA1 Message Date
Robin Gareus
6b87e706eb cont’d work on the coreaudio backend & cleanup 2015-03-06 06:24:56 +01:00
David Robillard
408090adce Add MIDI readahead to options editor. 2015-03-05 18:48:33 -05:00
David Robillard
a8aae56d92 Handle edits while playing precisely.
This avoids stuck notes if active notes are edited, but without stopping all
active notes in the region on any edit as before.

This implementation injects note ons in places that aren't actually note
starts.  Depending on how percussive the instrument is, this may not be
desired.  In the future, an option for this would be an improvement, but there
are other places where "start notes in the middle" is a reasonable option.  I
think that should be handled universally if we're to do it at all, so not
considering it a part of this fix for now.
2015-03-05 17:30:31 -05:00
David Robillard
09f1571fc0 Clean up MidiPlaylist::read, kill copy-paste code.
Towards putting more advanced logic here, where two copies of everything will
get even more hairy.

The two cases of reading from one or many regions are not very different in the
read phase, the only difference is the target.  So, point a reference to the
appropriate target, use the same read code in either case, then sort/etc
afterwards only if necessary.
2015-03-05 17:11:24 -05:00
Ben Loftis
5bf90524df fix import of v2 session redirects: active or inactive 2015-03-05 12:48:30 -06:00
Robin Gareus
1089f19a4c create engine thread before sending notifications.
Fixes missing thread in Pool in session_process,
when switching backend threads (CoreAudio, Waves)
2015-03-05 16:46:20 +01:00
Robin Gareus
f6f64d3f81 get started on coreaudio/midi backend 2015-03-05 16:46:20 +01:00
Robin Gareus
2ab26bd86d fix another screwup/typo in 782dd70 2015-03-05 02:10:21 +01:00
Robin Gareus
7ef22e5e71 remove unused devel.variable in prev commit 2015-03-05 02:04:14 +01:00
Robin Gareus
782dd70875 alsa: implement timing callback 2015-03-05 01:59:59 +01:00
Ben Loftis
1acbd7c488 fix for previous checkin; should allow waves midi backend to work 2015-03-04 10:23:19 -06:00
Ben Loftis
e3dd226ffa Change order of midi entries so a new backend will default to a working midi system.
Needs testing on all platforms.
2015-03-03 15:57:08 -06:00
Robin Gareus
a2d1f894b0 recursive VST scans 2015-03-03 19:54:28 +01:00
Robin Gareus
cf7d5dbc2d recursive regexp file search. 2015-03-03 19:54:27 +01:00
John Emmas
a173c74f2d Adapt our MSVC projects to use our (newly re-built) libsuil 2015-03-03 14:51:59 +00:00
Robin Gareus
8e3ec4b9ab leave a ToDo note for the butler. 2015-03-02 23:13:19 +01:00
Robin Gareus
5cfa389978 explicitly close tmpfiles before unlink.
fixes issue on export tmpfiles remaining on windows
2015-03-02 23:12:06 +01:00
Robin Gareus
a5eb3bae87 add an explicit close function to sndfile
NB. if someday we want to switch back to upstream
SndfileHandle, we need to subclass wrap it.
(not sure what else is different, anyway)
2015-03-02 23:11:04 +01:00
Robin Gareus
9a30bfd0c6 use Xthreads in session butler.
(hopefully) fixes export randomly stalling on windows: 
dequeue_request() was a single request (no queue) on Windows.

Butler::queue_request() is called 
-> Butler goes to work..
-> while working, another request is queued
-> butler never sees this
-> deadlock
during Freewheeling/Export wait_until_finished()
waits for the 2nd request to be handled, and never returns.
2015-03-01 20:55:39 +01:00
Robin Gareus
d7727a77e0 Xthread: blocking read + non-blocking write mode.
Needed for switching the butler to use Crossthreads.
2015-03-01 20:49:55 +01:00
Robin Gareus
60388f975c tiny cleanup due to long comment in between. 2015-03-01 19:12:10 +01:00
Robin Gareus
0a6df4e521 fix typo in c936c97 2015-03-01 19:11:23 +01:00
Robin Gareus
380215a08c API to delete AU cache & blacklist 2015-02-28 15:52:28 +01:00
Robin Gareus
c936c973b5 AU blacklist 2015-02-28 15:52:28 +01:00
Robin Gareus
ee0826c823 AU fix potential endless loop during discovery 2015-02-28 15:52:28 +01:00
Robin Gareus
7a1baeee79 promote sustain pedal from meh to reasonable. 2015-02-28 15:52:28 +01:00
John Emmas
32e23db665 In libpbd the sources 'localeguard.cc/.h' and 'locale_guard.cc/.h' are essentially identical now - so let's remove the former pair which were only ever needed when building with MSVC
(should hopefully avoid future confusion !!)
2015-02-28 12:59:00 +00:00
Robin Gareus
3c3586a4e1 AU presets: allow to save & directly use. 2015-02-28 08:04:14 +01:00
Robin Gareus
60c39849cf include AU control outputs (as meters on generic UI) 2015-02-28 07:24:33 +01:00
Robin Gareus
1b0574540f automated toggles? yes we can! 2015-02-28 07:24:13 +01:00
Robin Gareus
b362f45738 fix AU generic GUI and automation lanes
Don’t include non-automatable params.
2015-02-28 07:23:45 +01:00
Robin Gareus
105ecfa464 fix routing midi data on export:
MidiPort::cycle_end() was never called, hence after the 
first cycle all midi buffers were assumed to be 
“mixed down” already.

this fixes 
Midi-track 1 -[midi]-> Midi-track2 synth -[audio]-> out
on export.
2015-02-28 05:49:16 +01:00
David Robillard
933e9c2919 Fix unnecessary const violation. 2015-02-27 14:21:45 -05:00
Ben Loftis
24efaa2992 likely fix for broken fades (imported from v2 sessions) 2015-02-27 11:31:56 -06:00
Ben Loftis
763a7c8161 potential fix for the_CLA reported problem: v2 fader values are lost if you are using a non-US locale 2015-02-27 11:31:55 -06:00
Robin Gareus
b11a18d226 fix generic GUI for AU.
Ardour only queries AU writable (or read+writable)
parameters, hence announce them as such.
2015-02-26 23:57:09 +01:00
Robin Gareus
7f27d658e1 annotate prev commit. 2015-02-25 00:43:58 +01:00
Robin Gareus
e38eb0613e no more AU warnings…
Ardour calls input_streams(), output_streams() to determine
if the plugin is about to be re-configured (old stream I/O count
!= new I/O count) and emit PluginIoReConfigure() if that’s true.

If the plugin has not been initialized (no format set), we can
safely assume that it will need to be reconfigured.

Forcing Audio=Midi=0 will do so.

The only time where the format is not yet set and hence the actual
channel count is still unknown) is during the first call to 
PluginInsert::configure_io().

At the time of writing, this all is a NOOP anyway! The only user
of the PluginIoReConfigure() signal is the GUI to update connection
lines…  and since the first PluginInsert::configure_io() happens 
during insertion before the plugin is painted and subscribed to 
PluginIoReConfigure(), this function could return any value.

Still 0,0 is just more appropriate than assuming mono audio in/out
and no midi.
2015-02-25 00:42:54 +01:00
Robin Gareus
6774aef412 AU synth. prefer stereo variant if available. 2015-02-24 18:31:35 +01:00
Robin Gareus
acd6810860 AU: fix return value reference 2015-02-23 02:49:37 +01:00
Robin Gareus
b75a826b9a fix return value on AU error in e070701 2015-02-22 23:44:23 +01:00
Robin Gareus
9359a157fa fix logical-op-parentheses 2015-02-22 23:38:42 +01:00
Robin Gareus
e070701f14 support AudioUnit Generators without global Channel Info 2015-02-22 23:37:18 +01:00
Paul Davis
10e183f518 fix two other potential issues with leftover 32 bit integers when reading from sndfilesource.
It is less likely that these would cause issues because the
variables involved define the size of the data read, which
is almost certainly less than the 32 bit limit (i.e. they are
not positional). But to keep things clean and to keep questions
at bay, make them 64 bit values.
2015-02-22 11:12:11 -05:00
Paul Davis
b40a305b5a fix incorrect use of int32_t for current position in file while writing to non-destructive sndfilesources 2015-02-22 11:12:11 -05:00
Robin Gareus
bf1d12708d dummy: add square wave frequency sweep generators 2015-02-21 05:05:48 +01:00
Paul Davis
a2e4d6260c fix logic of Session::audio_source_name_is_unique() 2015-02-20 14:12:40 -05:00
Paul Davis
7024232855 ensure that stub audio file sources are removed when we destroy a track 2015-02-20 14:12:40 -05:00
Paul Davis
dcf69ab3e6 fix erroneous merge for wavesaudio backend 2015-02-20 13:21:44 -05:00
Valeriy Kamyshniy
d5e375f784 [Summary] In internal Waves backend API, switching sample time from 32 bits to 64 bits.
Conflicts:
	libs/backends/wavesaudio/wavesapi/devicemanager/WCMRCoreAudioDeviceManager.cpp
2015-02-20 13:05:43 -05:00