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
cb3961d953
Add a test for the constrained cubic interpolation of Evoral::Curve
...
Add a test, based on the worked example in www.korf.co.uk/spline.pdf, for
the constrained cubic spline interpolation.
The delta values for the float comparisons are rather arbitrary, I'm sorry
to say: they're basically chosen so that everything passes.
2015-02-13 12:25:51 +00:00
bd6ef95989
add accessor methods for single_exposure
2015-02-12 11:35:35 -06:00
b8ec035b24
_single_exposure is now a member variable for each GtkCanvas.
...
Gtk coalesces multiple exposes into a single combined rect.
If _single_exposure is disabled, we break apart the individual expose rects for the canvas rendering.
2015-02-12 11:35:35 -06:00
180b705643
Fix whitespace in pbd/debug.h
2015-02-12 22:10:51 +10:00
0550ec31bc
Add local PwdReset class to reset pwd in event of test failure
...
This fixes subsequent tests that rely on pwd but not PBD::path_is_within
breakage caused by commit 2689848e
2015-02-12 20:06:47 +10:00
9a7ae1ad99
Add some more test assertions so that tests fail when they should
2015-02-12 20:06:47 +10:00
0f0aebf26b
remove naive attempt to avoid drawing first vertical pixel line of Canvas::WaveView
...
And add commented out attempt at more subtle attempt to get it right
2015-02-11 21:59:38 -05:00
a992a2e6e0
simplify Canvas::Rectangle rendering to avoid unnecessary nonsense, and remove TimeRectangle
2015-02-11 21:59:38 -05:00
2a5921ecf1
Canvas::Rect::contains() should treat its right/left coordinates as exclusive
2015-02-11 21:59:38 -05:00
e8c24f1efd
fix midi-capture filter
...
diskstream reads directly from port, Route
use prefilled buffer-set.
2015-02-12 01:05:16 +01:00
eddcd7128f
infrastructure to allow tracing of all MIDI ports
2015-02-10 19:48:47 -05:00
34779ee81e
add a sort-of hack to allow us to avoid drawing the first pixel of a waveview when necessary
2015-02-10 19:48:47 -05:00
6cad07fc11
fix boot message always sticking on the last loaded route; it looked like an error
2015-02-10 14:43:16 -06:00
c679d616f6
correct drawing of rectangle borders.
...
They need to use fractional coordinates, and the border position needed
generalizing for other border widths. See verbose comment for details
2015-02-09 16:41:28 -05:00
736038556f
canvas items must be able to use fractional positions when rendering.
...
This is required to be able to draw precise single pixel lines, as described
in the Cairo FAQ
2015-02-09 16:40:10 -05:00
6dbc0c0919
put function into namespace
2015-02-09 14:46:20 -05:00
429da16b60
Fix sending out of bounds events to LV2 plugins.
2015-02-09 13:45:37 -05:00
nick_m
b1dafe9a31
Properly deallocate memory when clearing selection_op_history and
...
before XMLNode*s.
Improve some comments.
2015-02-07 23:33:09 +11:00
ae09d7132d
fix 192k rate
2015-02-06 13:57:22 -06:00
63a1b56560
fix (and comment) on subtle bug with audio file data width function
2015-02-06 10:33:01 -05:00
nick_m
6b9415aedb
Make undo/redo work for:
...
undo (n) where n > 1
redo (m) where m < n
new transaction.
Previously the redo list was left untouched.
This would lead to utter nonsense in the redo list.
AFAICT this never worked.
2015-02-06 21:54:27 +11:00
78e245d0b5
do not attempt to call an empty/null boost functor in clear_events()
2015-02-05 18:03:40 -05:00
c76523aeaa
fix bad fix for cherry-pick conflict
2015-02-05 16:49:14 -05:00
e8b6f852f6
make two obvously const methods actually be const
2015-02-05 16:36:09 -05:00