13
0
Commit Graph

7982 Commits

Author SHA1 Message Date
95558b5878 update https://github.com/x42/weakjack/ 2015-03-08 16:22:14 +01:00
3b57d246d7 Reduce run time/output of PBD::Timer unit test 2015-03-08 22:46:38 +10:00
f694b867c1 Fix PBD::copy_file on windows to work with non-ascii paths
This breakage was indicated by the filesystem unit tests.
2015-03-08 22:46:26 +10:00
b35504a71e Fix compilation with --no-lv2 (#0006169).
Not that I condone such backwards behaviour.

(Different issue in the ticket, but it was still broken at link time).
2015-03-08 01:36:53 -05:00
c3430e5884 Cluster Frak String Reference 2015-03-08 02:51:09 +01:00
50041cb450 avoid non-integer loop conditions. 2015-03-08 02:01:48 +01:00
95631cdc25 properly handle empty CFStringRefs. 2015-03-08 01:40:39 +01:00
7edc7a8d28 CoreAudio: fix allocation alignment 2015-03-07 23:27:33 +01:00
de078a04e2 Fix LV2 preset deletion and clash between plugins.
Before this, LV2 preset deletion in Ardour was doubly broken: the wrong file
was being removed, and removing the correct file would only result in a broken
preset.  This change uses a new version of Lilv which has a more sophisticated
mechanism for preset deletion.

Also, fix "clashing" presets saved with the same name for different plugins, by
prefixing the plugin name to the bundle (this is now a recommendation in the
LV2 preset specification).
2015-03-07 14:54:03 -05:00
d47ad23fe8 no more gcc/ppc complaints 2015-03-07 16:10:45 +01:00
7af3fdb99a fix various -Wformat 2015-03-07 15:04:17 +01:00
f88e566576 fix copy/edit in 659a8a2 2015-03-07 14:50:02 +01:00
659a8a26ae fix latency report, take buffersize changes into account. 2015-03-07 14:35:32 +01:00
ce3adfd3d4 Hard Core Audio
* allow to change buffersizes
* subscribe to buffersize & samplerate changes
* add support for half-duplex devices.
* aggregate Devices (not yet used) code from JACK2
* unify deprecated API wrappers
* properly keep track of MIDI ports
* disable MidiI/O during freewheeling
* various small fixes & cleanup
2015-03-07 14:35:32 +01:00
e99599c7db Add some newly introduced sources to our MSVC project (libardour) 2015-03-07 12:30:22 +00:00
4b401d9e34 Add a missing 'typename' specifier to the declaration for 'Evoral::Sequence::set_notes()' 2015-03-07 12:29:15 +00:00
13bad670fa more ongoing work on the coreaudio backend
* audio port names
* latency compensation
* xrun reporting
* various fixes and cleanup
2015-03-06 23:26:05 +01:00
3b941fc0fa build system tweaks for coreaudio/waves-coreaudio 2015-03-06 23:26:05 +01:00
6b87e706eb cont’d work on the coreaudio backend & cleanup 2015-03-06 06:24:56 +01:00
408090adce Add MIDI readahead to options editor. 2015-03-05 18:48:33 -05:00
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
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
5bf90524df fix import of v2 session redirects: active or inactive 2015-03-05 12:48:30 -06:00
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
f6f64d3f81 get started on coreaudio/midi backend 2015-03-05 16:46:20 +01:00
2ab26bd86d fix another screwup/typo in 782dd70 2015-03-05 02:10:21 +01:00
7ef22e5e71 remove unused devel.variable in prev commit 2015-03-05 02:04:14 +01:00
782dd70875 alsa: implement timing callback 2015-03-05 01:59:59 +01:00
1acbd7c488 fix for previous checkin; should allow waves midi backend to work 2015-03-04 10:23:19 -06:00
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
a2d1f894b0 recursive VST scans 2015-03-03 19:54:28 +01:00
cf7d5dbc2d recursive regexp file search. 2015-03-03 19:54:27 +01:00
a173c74f2d Adapt our MSVC projects to use our (newly re-built) libsuil 2015-03-03 14:51:59 +00:00
8e3ec4b9ab leave a ToDo note for the butler. 2015-03-02 23:13:19 +01:00
5cfa389978 explicitly close tmpfiles before unlink.
fixes issue on export tmpfiles remaining on windows
2015-03-02 23:12:06 +01:00
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
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
d7727a77e0 Xthread: blocking read + non-blocking write mode.
Needed for switching the butler to use Crossthreads.
2015-03-01 20:49:55 +01:00
60388f975c tiny cleanup due to long comment in between. 2015-03-01 19:12:10 +01:00
0a6df4e521 fix typo in c936c97 2015-03-01 19:11:23 +01:00
380215a08c API to delete AU cache & blacklist 2015-02-28 15:52:28 +01:00
c936c973b5 AU blacklist 2015-02-28 15:52:28 +01:00
ee0826c823 AU fix potential endless loop during discovery 2015-02-28 15:52:28 +01:00
7a1baeee79 promote sustain pedal from meh to reasonable. 2015-02-28 15:52:28 +01:00
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
3c3586a4e1 AU presets: allow to save & directly use. 2015-02-28 08:04:14 +01:00
60c39849cf include AU control outputs (as meters on generic UI) 2015-02-28 07:24:33 +01:00
1b0574540f automated toggles? yes we can! 2015-02-28 07:24:13 +01:00
b362f45738 fix AU generic GUI and automation lanes
Don’t include non-automatable params.
2015-02-28 07:23:45 +01:00
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
933e9c2919 Fix unnecessary const violation. 2015-02-27 14:21:45 -05:00
24efaa2992 likely fix for broken fades (imported from v2 sessions) 2015-02-27 11:31:56 -06:00
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
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
7f27d658e1 annotate prev commit. 2015-02-25 00:43:58 +01:00
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
6774aef412 AU synth. prefer stereo variant if available. 2015-02-24 18:31:35 +01:00
acd6810860 AU: fix return value reference 2015-02-23 02:49:37 +01:00
b75a826b9a fix return value on AU error in e070701 2015-02-22 23:44:23 +01:00
9359a157fa fix logical-op-parentheses 2015-02-22 23:38:42 +01:00
e070701f14 support AudioUnit Generators without global Channel Info 2015-02-22 23:37:18 +01:00
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
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
bf1d12708d dummy: add square wave frequency sweep generators 2015-02-21 05:05:48 +01:00
a2e4d6260c fix logic of Session::audio_source_name_is_unique() 2015-02-20 14:12:40 -05:00
7024232855 ensure that stub audio file sources are removed when we destroy a track 2015-02-20 14:12:40 -05:00
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
VKamyshniy
3b5da657af [Summary] In internal Waves backend API, switching sample time from 32 bits to 64 bits. Fixing logical inconsistency: None device always brought sample time=0 to the audio engine callback. 2015-02-20 13:03:09 -05:00
nick_m
5d5f83c56b The commit 3da9c3b740
wasn't the no-op it claimed to be.
2015-02-20 23:30:48 +11:00
b68a4e5cdc Normalize notes on all channels.
Probably.
2015-02-19 20:23:11 -05:00
450291adfc Fix record/import of note ons with velocity 0.
Best to just do this as early as possible to avoid having to deal with this
situation all over the code.

Also fixes violation of LV2 MIDI specification, which requires no such events
are delivered to plugins.
2015-02-19 18:38:30 -05:00
6fb4bd578e Don't allocate then discard notes on note off.
Silly to make a junk Note just to pass to append_note_off_unlocked, which just
uses the fields that are on the MIDIEvent anyway then throws it away.

Also explicitly dispatch to append_note_off_unlocked in the caller for note ons
with velocity 0 rather than make append_note_on_unlocked deal with it.
2015-02-19 18:38:30 -05:00
6a033a093b Remove unused ifdef gunk. 2015-02-19 18:38:30 -05:00
76f6ff178e fix incorrect type for Waves' backend's _sample_time_at_cycle_start 2015-02-19 18:23:17 -05:00
582138f280 change Audio backend sample time methods to use a 64 bit timeline 2015-02-19 17:44:01 -05:00
e148ee52ab add a nonsense-midi test sequence:
system:midi_capture_6 
duplicate on/off, zero-velocity note-on
2015-02-19 21:58:30 +01:00
b489385bf1 fix some static-analysis warnings 2015-02-19 20:37:58 +01:00
aea700fbc4 fix transport issues when loop-is-mode is off.
Session::unset_play_loop() needed to be a no-op if play loop was
already false, and this was exacerbated now that it potentially
schedules butler transport work.
2015-02-19 10:33:33 -05:00
3a63b785a9 rsynth: map note-on with zero velocity to note-off 2015-02-19 00:54:30 +01:00
c24bb4a8ee fix initialization order (sigh) 2015-02-18 12:00:36 -05:00
8c812a6df4 Revert "[Summary] Eliminated redundant marker update notification which lead to creation of huge amount of redundant session events"
This reverts commit 3dde9e969c.
2015-02-18 12:00:36 -05:00
2067163f7a Revert "fix indentation from previous commit and previous edits"
This reverts commit 449c9b675d.
2015-02-18 12:00:36 -05:00
58137b8326 try to restore original semantics for scheduling butler transport work in Session::locate() 2015-02-17 11:21:41 -05:00
b72d37a45f another required fix following recent cherry-picks from waves 2015-02-17 11:10:29 -05:00
GZharun
297ebd33bb [Summary] Blocked redundant skip marker (during skip ranges consolidation) updates which used to lead to unnecessary overhead and redundant session events
Conflicts:
	libs/ardour/ardour/session.h
	libs/ardour/session.cc
2015-02-17 10:57:56 -05:00
48fdb28153 mark session dirty when loop location is changed 2015-02-17 10:50:54 -05:00
449c9b675d fix indentation from previous commit and previous edits 2015-02-17 10:47:22 -05:00
GZharun
3dde9e969c [Summary] Eliminated redundant marker update notification which lead to creation of huge amount of redundant session events 2015-02-17 10:43:05 -05:00
GZharun
5a8270373a [Summary] Fixed loop processing in cases when loop is moved/resized
[Reviewed by] REQUIRED REVIEW FROM PAUL DAVIS
2015-02-17 10:37:35 -05:00
b3e7c88988 fixes for desirable playback when using seamless looping.
Try to make sure that we appropriately reset and refill track
buffers whenever we enter/leave loop playback,and whenever
we locate. In addition, if we start playing somewhere other
than the loop range while loop is enabled, then the first
time we hit the loop end, set up the track buffers.

Conflicts:
	libs/ardour/session_transport.cc
2015-02-16 19:35:37 -05:00
8a93a87db0 remove lib versioning for internal plugins
Those objects do not have a versioned API by themselves.
This fixes issues with duplicate deployment (OSX, Linux bundles: cp) and
ardour listing control-surfaces multiple times (file index plugin dir).
2015-02-16 17:32:56 +01:00
2a04ff8641 Add TestUI class to properly handle EventLoop invalidation
This fixes the programming error: Session RT event... warnings
while running ardour tests
2015-02-15 15:05:22 +10:00
964c04eec5 Move TestReceiver class in libardour tests into own header file 2015-02-15 13:48:53 +10:00
d9b4c6be6a Add a few test util functions and refactor existing test code 2015-02-15 12:53:41 +10:00
deb4687d5d fix testPathIsWithin unit-test:
* use absolute path
* fix copy/paste typo: bar->jim for symlink test
2015-02-14 05:50:40 +01:00
7f0cdc3967 hide terminal window for windows vst scanner 2015-02-14 05:50:40 +01:00
5b3ff655f1 Fix LV2 UIs with spacey paths (e.g. Pianoteq). 2015-02-13 22:00:38 -05:00
7a99bc5373 fix seamless looping after a locate out of the loop.
Something, somewhere has to tell tracks to refill their buffers with
the special loop-data-only magic
2015-02-13 18:42:41 -05:00
aa5cf04ca6 correctly set track loop status when locating away from loop range (and later, when coming back to the loop)
Conflicts:
	libs/ardour/ardour/session.h
	libs/ardour/session.cc
	libs/ardour/session_transport.cc
2015-02-13 17:23:50 -05:00