David Robillard [Fri, 27 Feb 2015 21:51:09 +0000 (16:51 -0500)]
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.
Ben Loftis [Thu, 5 Mar 2015 18:48:30 +0000 (12:48 -0600)]
fix import of v2 session redirects: active or inactive
Robin Gareus [Thu, 5 Mar 2015 15:46:06 +0000 (16:46 +0100)]
create engine thread before sending notifications.
Fixes missing thread in Pool in session_process,
when switching backend threads (CoreAudio, Waves)
Robin Gareus [Thu, 5 Mar 2015 05:22:33 +0000 (06:22 +0100)]
get started on coreaudio/midi backend
Paul Davis [Thu, 5 Mar 2015 02:54:09 +0000 (20:54 -0600)]
remove unused empty function
Paul Davis [Thu, 5 Mar 2015 02:53:26 +0000 (20:53 -0600)]
remove unused -N (nocache) option from readtest script
Robin Gareus [Thu, 5 Mar 2015 01:10:21 +0000 (02:10 +0100)]
fix another screwup/typo in
782dd70
Robin Gareus [Thu, 5 Mar 2015 01:04:14 +0000 (02:04 +0100)]
remove unused devel.variable in prev commit
Robin Gareus [Thu, 5 Mar 2015 00:33:13 +0000 (01:33 +0100)]
alsa: implement timing callback
Ben Loftis [Wed, 4 Mar 2015 16:23:19 +0000 (10:23 -0600)]
fix for previous checkin; should allow waves midi backend to work
Ben Loftis [Tue, 3 Mar 2015 21:52:44 +0000 (15:52 -0600)]
Change order of midi entries so a new backend will default to a working midi system.
Needs testing on all platforms.
Robin Gareus [Tue, 3 Mar 2015 15:42:05 +0000 (16:42 +0100)]
recursive VST scans
Robin Gareus [Tue, 3 Mar 2015 15:41:44 +0000 (16:41 +0100)]
recursive regexp file search.
John Emmas [Tue, 3 Mar 2015 14:51:59 +0000 (14:51 +0000)]
Adapt our MSVC projects to use our (newly re-built) libsuil
Robin Gareus [Mon, 2 Mar 2015 22:13:19 +0000 (23:13 +0100)]
leave a ToDo note for the butler.
Robin Gareus [Mon, 2 Mar 2015 22:12:06 +0000 (23:12 +0100)]
explicitly close tmpfiles before unlink.
fixes issue on export tmpfiles remaining on windows
Robin Gareus [Mon, 2 Mar 2015 22:11:04 +0000 (23:11 +0100)]
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)
Robin Gareus [Sun, 1 Mar 2015 19:55:39 +0000 (20:55 +0100)]
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.
Robin Gareus [Sun, 1 Mar 2015 18:59:50 +0000 (19:59 +0100)]
Xthread: blocking read + non-blocking write mode.
Needed for switching the butler to use Crossthreads.
Robin Gareus [Sun, 1 Mar 2015 18:12:10 +0000 (19:12 +0100)]
tiny cleanup due to long comment in between.
Robin Gareus [Sun, 1 Mar 2015 18:11:23 +0000 (19:11 +0100)]
Robin Gareus [Sun, 1 Mar 2015 15:36:13 +0000 (16:36 +0100)]
possible fix for #6187 - assert(backend)
Robin Gareus [Sat, 28 Feb 2015 14:52:01 +0000 (15:52 +0100)]
add AU cache/blacklist actions to prefs.
Robin Gareus [Sat, 28 Feb 2015 14:51:06 +0000 (15:51 +0100)]
API to delete AU cache & blacklist
Robin Gareus [Sat, 28 Feb 2015 14:50:02 +0000 (15:50 +0100)]
AU blacklist
Robin Gareus [Sat, 28 Feb 2015 14:32:08 +0000 (15:32 +0100)]
AU fix potential endless loop during discovery
Robin Gareus [Sat, 28 Feb 2015 12:30:29 +0000 (13:30 +0100)]
promote sustain pedal from meh to reasonable.
John Emmas [Sat, 28 Feb 2015 13:01:02 +0000 (13:01 +0000)]
MSVC - accommodate some newly introduced calls to 'rintf()'
('rintf()' isn't available in MSVC)
John Emmas [Sat, 28 Feb 2015 12:59:00 +0000 (12:59 +0000)]
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 !!)
Robin Gareus [Sat, 28 Feb 2015 07:04:14 +0000 (08:04 +0100)]
AU presets: allow to save & directly use.
Robin Gareus [Sat, 28 Feb 2015 06:24:33 +0000 (07:24 +0100)]
include AU control outputs (as meters on generic UI)
Robin Gareus [Sat, 28 Feb 2015 06:24:13 +0000 (07:24 +0100)]
automated toggles? yes we can!
Robin Gareus [Sat, 28 Feb 2015 06:08:09 +0000 (07:08 +0100)]
fix AU generic GUI and automation lanes
Don’t include non-automatable params.
Robin Gareus [Sat, 28 Feb 2015 04:49:16 +0000 (05:49 +0100)]
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.
Robin Gareus [Sat, 28 Feb 2015 01:31:08 +0000 (02:31 +0100)]
rework video-export dialog, remember settings
Robin Gareus [Fri, 27 Feb 2015 22:24:05 +0000 (23:24 +0100)]
VTL: add webm export-preset and amend
1184660.
Robin Gareus [Fri, 27 Feb 2015 22:17:26 +0000 (23:17 +0100)]
prepare saving video-export settings.
* migrate dialog from Editor to UI.
* make it a WM proxied window
* prepare applying state after construction..
Robin Gareus [Fri, 27 Feb 2015 21:54:23 +0000 (22:54 +0100)]
video export: allow to use ffmpeg format-defaults
Robin Gareus [Fri, 27 Feb 2015 19:45:44 +0000 (20:45 +0100)]
video-export dialog: allow keyboard navigation
David Robillard [Fri, 27 Feb 2015 09:52:40 +0000 (04:52 -0500)]
Fix unnecessary const violation.
Robin Gareus [Fri, 27 Feb 2015 18:43:19 +0000 (19:43 +0100)]
fix carbon GUI focus/re-exposure
Ben Loftis [Fri, 27 Feb 2015 17:25:23 +0000 (11:25 -0600)]
likely fix for broken fades (imported from v2 sessions)
Ben Loftis [Fri, 27 Feb 2015 17:14:48 +0000 (11:14 -0600)]
potential fix for the_CLA reported problem: v2 fader values are lost if you are using a non-US locale
Robin Gareus [Thu, 26 Feb 2015 22:57:09 +0000 (23:57 +0100)]
fix generic GUI for AU.
Ardour only queries AU writable (or read+writable)
parameters, hence announce them as such.
Robin Gareus [Thu, 26 Feb 2015 20:57:07 +0000 (21:57 +0100)]
rsync & cache plugins locally
Robin Gareus [Thu, 26 Feb 2015 20:12:12 +0000 (21:12 +0100)]
really thin bundled plugins
Robin Gareus [Thu, 26 Feb 2015 18:50:51 +0000 (19:50 +0100)]
cabron?
Robin Gareus [Wed, 25 Feb 2015 23:55:55 +0000 (00:55 +0100)]
include x42 plugins in mixbus bundle
Ben Loftis [Wed, 25 Feb 2015 23:19:44 +0000 (17:19 -0600)]
Potential fix for confusion for Input/Output buttons on tracks with audio+midi ports
Robin Gareus [Wed, 25 Feb 2015 20:11:55 +0000 (21:11 +0100)]
fix osx version detection in
da975ae
Robin Gareus [Wed, 25 Feb 2015 19:50:41 +0000 (20:50 +0100)]
allow carbon support on 10.6, 32bit
Robin Gareus [Tue, 24 Feb 2015 23:43:58 +0000 (00:43 +0100)]
annotate prev commit.
Robin Gareus [Tue, 24 Feb 2015 23:42:03 +0000 (00:42 +0100)]
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.
Ben Loftis [Tue, 24 Feb 2015 20:29:02 +0000 (14:29 -0600)]
recover the most recent audio setup settings from config
Robin Gareus [Tue, 24 Feb 2015 17:31:35 +0000 (18:31 +0100)]
AU synth. prefer stereo variant if available.
Robin Gareus [Mon, 23 Feb 2015 01:49:37 +0000 (02:49 +0100)]
AU: fix return value reference
Robin Gareus [Sun, 22 Feb 2015 22:44:23 +0000 (23:44 +0100)]
fix return value on AU error in
e070701
Robin Gareus [Sun, 22 Feb 2015 22:38:42 +0000 (23:38 +0100)]
fix logical-op-parentheses
Robin Gareus [Sun, 22 Feb 2015 22:37:18 +0000 (23:37 +0100)]
support AudioUnit Generators without global Channel Info
Paul Davis [Sun, 22 Feb 2015 16:11:53 +0000 (11:11 -0500)]
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.
Paul Davis [Sun, 22 Feb 2015 16:10:25 +0000 (11:10 -0500)]
fix incorrect use of int32_t for current position in file while writing to non-destructive sndfilesources
Robin Gareus [Sat, 21 Feb 2015 04:05:48 +0000 (05:05 +0100)]
dummy: add square wave frequency sweep generators
Robin Gareus [Sat, 21 Feb 2015 02:16:04 +0000 (03:16 +0100)]
fix embedded plugin UI keyboard handling
When the GUI is opened the first time all is fine, focus is on the
embedded widget. However once a user presses one of the preset buttons
(Add, Save,...) there is no possibility to return focus to the
embedded widget. Ardour always 'sees' it as focus=GtkButton and passes
the event to the editor.
Robin Gareus [Sat, 21 Feb 2015 02:00:33 +0000 (03:00 +0100)]
hook up focus_button for LV2 GUIs
Paul Davis [Fri, 20 Feb 2015 19:12:12 +0000 (14:12 -0500)]
fix logic of Session::audio_source_name_is_unique()
Paul Davis [Fri, 20 Feb 2015 19:11:46 +0000 (14:11 -0500)]
ensure that stub audio file sources are removed when we destroy a track
Paul Davis [Fri, 20 Feb 2015 18:21:44 +0000 (13:21 -0500)]
fix erroneous merge for wavesaudio backend
Valeriy Kamyshniy [Fri, 20 Feb 2015 11:48:14 +0000 (13:48 +0200)]
[Summary] In internal Waves backend API, switching sample time from 32 bits to 64 bits.
Conflicts:
libs/backends/wavesaudio/wavesapi/devicemanager/WCMRCoreAudioDeviceManager.cpp
VKamyshniy [Fri, 20 Feb 2015 10:52:47 +0000 (12:52 +0200)]
[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.
nick_m [Fri, 20 Feb 2015 12:30:48 +0000 (23:30 +1100)]
The commit
3da9c3b7403dd57984e1f0d090c7bd902f933225
wasn't the no-op it claimed to be.
David Robillard [Fri, 20 Feb 2015 01:23:11 +0000 (20:23 -0500)]
Normalize notes on all channels.
Probably.
David Robillard [Thu, 19 Feb 2015 21:54:21 +0000 (16:54 -0500)]
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.
David Robillard [Thu, 19 Feb 2015 20:55:16 +0000 (15:55 -0500)]
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.
David Robillard [Thu, 19 Feb 2015 20:20:19 +0000 (15:20 -0500)]
Remove unused ifdef gunk.
Paul Davis [Thu, 19 Feb 2015 23:21:03 +0000 (18:21 -0500)]
fix incorrect type for Waves' backend's _sample_time_at_cycle_start
Paul Davis [Thu, 19 Feb 2015 22:43:16 +0000 (17:43 -0500)]
change Audio backend sample time methods to use a 64 bit timeline
Robin Gareus [Thu, 19 Feb 2015 20:58:30 +0000 (21:58 +0100)]
add a nonsense-midi test sequence:
system:midi_capture_6
duplicate on/off, zero-velocity note-on
Robin Gareus [Thu, 19 Feb 2015 19:39:26 +0000 (20:39 +0100)]
fix memory leak in case LV2 GUI fails.
Robin Gareus [Thu, 19 Feb 2015 19:37:58 +0000 (20:37 +0100)]
fix some static-analysis warnings
Paul Davis [Thu, 19 Feb 2015 15:33:20 +0000 (10:33 -0500)]
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.
Robin Gareus [Wed, 18 Feb 2015 23:54:20 +0000 (00:54 +0100)]
rsynth: map note-on with zero velocity to note-off
Paul Davis [Wed, 18 Feb 2015 17:20:06 +0000 (12:20 -0500)]
stop dragged regions moving to the dropzone during autoscrolling towards the top track
Paul Davis [Wed, 18 Feb 2015 17:00:28 +0000 (12:00 -0500)]
fix initialization order (sigh)
Paul Davis [Wed, 18 Feb 2015 16:50:52 +0000 (11:50 -0500)]
Revert "[Summary] Eliminated redundant marker update notification which lead to creation of huge amount of redundant session events"
This reverts commit
3dde9e969c1a775c04487501dee974d261a3f955.
Paul Davis [Wed, 18 Feb 2015 16:20:20 +0000 (11:20 -0500)]
Revert "fix indentation from previous commit and previous edits"
This reverts commit
449c9b675d3322cd320967bb8e4842d291d22649.
Robin Gareus [Tue, 17 Feb 2015 20:36:52 +0000 (21:36 +0100)]
OSX package: don’t copy dylib itself to libdir.
fixes duplicate panner, backend etc libs in bundle.
Robin Gareus [Tue, 17 Feb 2015 19:58:45 +0000 (20:58 +0100)]
fix windows packaging (unversioned dll)
Paul Davis [Tue, 17 Feb 2015 16:21:41 +0000 (11:21 -0500)]
try to restore original semantics for scheduling butler transport work in Session::locate()
Paul Davis [Tue, 17 Feb 2015 16:10:29 +0000 (11:10 -0500)]
another required fix following recent cherry-picks from waves
GZharun [Sat, 7 Feb 2015 19:36:47 +0000 (21:36 +0200)]
[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
Paul Davis [Tue, 17 Feb 2015 15:50:54 +0000 (10:50 -0500)]
mark session dirty when loop location is changed
Paul Davis [Tue, 17 Feb 2015 15:47:22 +0000 (10:47 -0500)]
fix indentation from previous commit and previous edits
GZharun [Sun, 15 Feb 2015 11:02:16 +0000 (13:02 +0200)]
[Summary] Eliminated redundant marker update notification which lead to creation of huge amount of redundant session events
GZharun [Tue, 17 Feb 2015 12:20:42 +0000 (14:20 +0200)]
[Summary] Fixed loop processing in cases when loop is moved/resized
[Reviewed by] REQUIRED REVIEW FROM PAUL DAVIS
Paul Davis [Tue, 17 Feb 2015 00:30:21 +0000 (19:30 -0500)]
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
Paul Davis [Mon, 16 Feb 2015 21:26:42 +0000 (16:26 -0500)]
fixes for non-overlapping fade in/out even in regions not at zero
Robin Gareus [Mon, 16 Feb 2015 17:03:23 +0000 (18:03 +0100)]
dump bundled file-list
Robin Gareus [Mon, 16 Feb 2015 16:32:43 +0000 (17:32 +0100)]
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).
Tim Mayberry [Mon, 16 Feb 2015 01:52:20 +0000 (11:52 +1000)]
Increase transparency of Loop rectangle so tempo lines are visible
Should fix bug#6163
Tim Mayberry [Sun, 15 Feb 2015 05:05:22 +0000 (15:05 +1000)]
Add TestUI class to properly handle EventLoop invalidation
This fixes the programming error: Session RT event... warnings
while running ardour tests