ardour.git
9 years agoFix compilation with --no-lv2 (#0006169).
David Robillard [Sun, 8 Mar 2015 06:34:42 +0000 (01:34 -0500)]
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).

9 years agofix drag-motion over TAV w/o view()
Robin Gareus [Sun, 8 Mar 2015 02:42:23 +0000 (03:42 +0100)]
fix drag-motion over TAV w/o view()

9 years agoCluster Frak String Reference
Robin Gareus [Sun, 8 Mar 2015 01:51:09 +0000 (02:51 +0100)]
Cluster Frak String Reference

9 years agoavoid non-integer loop conditions.
Robin Gareus [Sun, 8 Mar 2015 01:01:48 +0000 (02:01 +0100)]
avoid non-integer loop conditions.

9 years agoproperly handle empty CFStringRefs.
Robin Gareus [Sun, 8 Mar 2015 00:38:47 +0000 (01:38 +0100)]
properly handle empty CFStringRefs.

9 years agoremove unneeded debug output
Ben Loftis [Sat, 7 Mar 2015 23:10:19 +0000 (17:10 -0600)]
remove unneeded debug output

9 years agoCoreAudio: fix allocation alignment
Robin Gareus [Sat, 7 Mar 2015 22:27:33 +0000 (23:27 +0100)]
CoreAudio: fix allocation alignment

9 years agoanother 0cb096a fixup
Robin Gareus [Sat, 7 Mar 2015 21:07:15 +0000 (22:07 +0100)]
another 0cb096a fixup

9 years agomore OSX weirdness fixes 0cb096a
Robin Gareus [Sat, 7 Mar 2015 20:45:52 +0000 (21:45 +0100)]
more OSX weirdness fixes 0cb096a

9 years agoFix LV2 preset deletion and clash between plugins.
David Robillard [Sat, 7 Mar 2015 19:54:03 +0000 (14:54 -0500)]
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).

9 years agoUse Ardour widgets consistently in plugin UI.
David Robillard [Sat, 7 Mar 2015 00:05:29 +0000 (19:05 -0500)]
Use Ardour widgets consistently in plugin UI.

Several reasons:

* This previously looked horribly inconsistent.

* The Gtk selector was broken for plugins with many presets,
  making it impossible to select presets.  For whatever reason,
  the use of a menu fixes this bug.

* Towards a hierarchical menu for banked presets.

9 years agoIncrease editable region alpha slightly.
David Robillard [Fri, 6 Mar 2015 21:43:34 +0000 (16:43 -0500)]
Increase editable region alpha slightly.

Previously the region was nearly invisible when editable which is
problematic ("oops, I made a new region").  The distinction isn't quite as
profound as it probably should be, but I don't want to mess with the other
region colours too much.

9 years agoadd coreaudio backend to bundle
Robin Gareus [Sat, 7 Mar 2015 18:56:28 +0000 (19:56 +0100)]
add coreaudio backend to bundle

9 years agoI’m starting to regret these checks..
Robin Gareus [Sat, 7 Mar 2015 15:15:41 +0000 (16:15 +0100)]
I’m starting to regret these checks..

9 years agono more gcc/ppc complaints
Robin Gareus [Sat, 7 Mar 2015 15:10:45 +0000 (16:10 +0100)]
no more gcc/ppc complaints

9 years agofix various -Wformat
Robin Gareus [Sat, 7 Mar 2015 14:04:17 +0000 (15:04 +0100)]
fix various -Wformat

9 years agofix copy/edit in 659a8a2
Robin Gareus [Sat, 7 Mar 2015 13:50:02 +0000 (14:50 +0100)]
fix copy/edit in 659a8a2

9 years agoengine dialog, update device is changed.
Robin Gareus [Sat, 7 Mar 2015 10:11:50 +0000 (11:11 +0100)]
engine dialog, update device is changed.

9 years agofix device changes..
Robin Gareus [Sat, 7 Mar 2015 08:00:18 +0000 (09:00 +0100)]
fix device changes..

backend_changed() stopped the backend.

9 years agofix latency report, take buffersize changes into account.
Robin Gareus [Sat, 7 Mar 2015 08:11:15 +0000 (09:11 +0100)]
fix latency report, take buffersize changes into account.

9 years agoHard Core Audio
Robin Gareus [Sat, 7 Mar 2015 03:15:02 +0000 (04:15 +0100)]
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

9 years agoAdd some newly introduced sources to our MSVC project (libardour)
John Emmas [Sat, 7 Mar 2015 12:30:22 +0000 (12:30 +0000)]
Add some newly introduced sources to our MSVC project (libardour)

9 years agoAdd a missing 'typename' specifier to the declaration for 'Evoral::Sequence::set_notes()'
John Emmas [Sat, 7 Mar 2015 12:29:15 +0000 (12:29 +0000)]
Add a missing 'typename' specifier to the declaration for 'Evoral::Sequence::set_notes()'

9 years agofix linux detection
Robin Gareus [Sat, 7 Mar 2015 09:54:37 +0000 (10:54 +0100)]
fix linux detection

9 years agomore ongoing work on the coreaudio backend
Robin Gareus [Fri, 6 Mar 2015 20:26:07 +0000 (21:26 +0100)]
more ongoing work on the coreaudio backend

* audio port names
* latency compensation
* xrun reporting
* various fixes and cleanup

9 years agobuild system tweaks for coreaudio/waves-coreaudio
Robin Gareus [Fri, 6 Mar 2015 18:03:16 +0000 (19:03 +0100)]
build system tweaks for coreaudio/waves-coreaudio

9 years agoHide automation state options for MIDI controls.
David Robillard [Fri, 6 Mar 2015 03:03:32 +0000 (22:03 -0500)]
Hide automation state options for MIDI controls.

These don't do anything, except mislead the user into expecting this stuff
works like track automation.

9 years agoupdate Engine Dialog when devices are dis/connected.
Robin Gareus [Fri, 6 Mar 2015 05:24:44 +0000 (06:24 +0100)]
update Engine Dialog when devices are dis/connected.

9 years agocont’d work on the coreaudio backend & cleanup
Robin Gareus [Fri, 6 Mar 2015 02:21:47 +0000 (03:21 +0100)]
cont’d work on the coreaudio backend & cleanup

9 years agoAdd MIDI readahead to options editor.
David Robillard [Thu, 5 Mar 2015 23:48:33 +0000 (18:48 -0500)]
Add MIDI readahead to options editor.

9 years agoHandle edits while playing precisely.
David Robillard [Sun, 1 Mar 2015 18:33:25 +0000 (13:33 -0500)]
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.

9 years agoClean up MidiPlaylist::read, kill copy-paste code.
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.

9 years agofix import of v2 session redirects: active or inactive
Ben Loftis [Thu, 5 Mar 2015 18:48:30 +0000 (12:48 -0600)]
fix import of v2 session redirects: active or inactive

9 years agocreate engine thread before sending notifications.
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)

9 years agoget started on coreaudio/midi backend
Robin Gareus [Thu, 5 Mar 2015 05:22:33 +0000 (06:22 +0100)]
get started on coreaudio/midi backend

9 years agoremove unused empty function
Paul Davis [Thu, 5 Mar 2015 02:54:09 +0000 (20:54 -0600)]
remove unused empty function

9 years agoremove unused -N (nocache) option from readtest script
Paul Davis [Thu, 5 Mar 2015 02:53:26 +0000 (20:53 -0600)]
remove unused -N (nocache) option from readtest script

9 years agofix another screwup/typo in 782dd70
Robin Gareus [Thu, 5 Mar 2015 01:10:21 +0000 (02:10 +0100)]
fix another screwup/typo in 782dd70

9 years agoremove unused devel.variable in prev commit
Robin Gareus [Thu, 5 Mar 2015 01:04:14 +0000 (02:04 +0100)]
remove unused devel.variable in prev commit

9 years agoalsa: implement timing callback
Robin Gareus [Thu, 5 Mar 2015 00:33:13 +0000 (01:33 +0100)]
alsa: implement timing callback

9 years agofix for previous checkin; should allow waves midi backend to work
Ben Loftis [Wed, 4 Mar 2015 16:23:19 +0000 (10:23 -0600)]
fix for previous checkin; should allow waves midi backend to work

9 years agoChange order of midi entries so a new backend will default to a working midi system.
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.

9 years agorecursive VST scans
Robin Gareus [Tue, 3 Mar 2015 15:42:05 +0000 (16:42 +0100)]
recursive VST scans

9 years agorecursive regexp file search.
Robin Gareus [Tue, 3 Mar 2015 15:41:44 +0000 (16:41 +0100)]
recursive regexp file search.

9 years agoAdapt our MSVC projects to use our (newly re-built) libsuil
John Emmas [Tue, 3 Mar 2015 14:51:59 +0000 (14:51 +0000)]
Adapt our MSVC projects to use our (newly re-built) libsuil

9 years agoleave a ToDo note for the butler.
Robin Gareus [Mon, 2 Mar 2015 22:13:19 +0000 (23:13 +0100)]
leave a ToDo note for the butler.

9 years agoexplicitly close tmpfiles before unlink.
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

9 years agoadd an explicit close function to sndfile
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)

9 years agouse Xthreads in session butler.
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.

9 years agoXthread: blocking read + non-blocking write mode.
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.

9 years agotiny cleanup due to long comment in between.
Robin Gareus [Sun, 1 Mar 2015 18:12:10 +0000 (19:12 +0100)]
tiny cleanup due to long comment in between.

9 years agofix typo in c936c97
Robin Gareus [Sun, 1 Mar 2015 18:11:23 +0000 (19:11 +0100)]
fix typo in c936c97

9 years agopossible fix for #6187 - assert(backend)
Robin Gareus [Sun, 1 Mar 2015 15:36:13 +0000 (16:36 +0100)]
possible fix for #6187 - assert(backend)

9 years agoadd AU cache/blacklist actions to prefs.
Robin Gareus [Sat, 28 Feb 2015 14:52:01 +0000 (15:52 +0100)]
add AU cache/blacklist actions to prefs.

9 years agoAPI to delete AU cache & blacklist
Robin Gareus [Sat, 28 Feb 2015 14:51:06 +0000 (15:51 +0100)]
API to delete AU cache & blacklist

9 years agoAU blacklist
Robin Gareus [Sat, 28 Feb 2015 14:50:02 +0000 (15:50 +0100)]
AU blacklist

9 years agoAU fix potential endless loop during discovery
Robin Gareus [Sat, 28 Feb 2015 14:32:08 +0000 (15:32 +0100)]
AU fix potential endless loop during discovery

9 years agopromote sustain pedal from meh to reasonable.
Robin Gareus [Sat, 28 Feb 2015 12:30:29 +0000 (13:30 +0100)]
promote sustain pedal from meh to reasonable.

9 years agoMSVC - accommodate some newly introduced calls to 'rintf()'
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)

9 years agoIn libpbd the sources 'localeguard.cc/.h' and 'locale_guard.cc/.h' are essentially...
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 !!)

9 years agoAU presets: allow to save & directly use.
Robin Gareus [Sat, 28 Feb 2015 07:04:14 +0000 (08:04 +0100)]
AU presets: allow to save & directly use.

9 years agoinclude AU control outputs (as meters on generic UI)
Robin Gareus [Sat, 28 Feb 2015 06:24:33 +0000 (07:24 +0100)]
include AU control outputs (as meters on generic UI)

9 years agoautomated toggles? yes we can!
Robin Gareus [Sat, 28 Feb 2015 06:24:13 +0000 (07:24 +0100)]
automated toggles? yes we can!

9 years agofix AU generic GUI and automation lanes
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.

9 years agofix routing midi data on export:
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.

9 years agorework video-export dialog, remember settings
Robin Gareus [Sat, 28 Feb 2015 01:31:08 +0000 (02:31 +0100)]
rework video-export dialog, remember settings

9 years agoVTL: add webm export-preset and amend 1184660.
Robin Gareus [Fri, 27 Feb 2015 22:24:05 +0000 (23:24 +0100)]
VTL: add webm export-preset and amend 1184660.

9 years agoprepare saving video-export settings.
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..

9 years agovideo export: allow to use ffmpeg format-defaults
Robin Gareus [Fri, 27 Feb 2015 21:54:23 +0000 (22:54 +0100)]
video export: allow to use ffmpeg format-defaults

9 years agovideo-export dialog: allow keyboard navigation
Robin Gareus [Fri, 27 Feb 2015 19:45:44 +0000 (20:45 +0100)]
video-export dialog: allow keyboard navigation

9 years agoFix unnecessary const violation.
David Robillard [Fri, 27 Feb 2015 09:52:40 +0000 (04:52 -0500)]
Fix unnecessary const violation.

9 years agofix carbon GUI focus/re-exposure
Robin Gareus [Fri, 27 Feb 2015 18:43:19 +0000 (19:43 +0100)]
fix carbon GUI focus/re-exposure

9 years agolikely fix for broken fades (imported from v2 sessions)
Ben Loftis [Fri, 27 Feb 2015 17:25:23 +0000 (11:25 -0600)]
likely fix for broken fades (imported from v2 sessions)

9 years agopotential fix for the_CLA reported problem: v2 fader values are lost if you are...
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

9 years agofix generic GUI for AU.
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.

9 years agorsync & cache plugins locally
Robin Gareus [Thu, 26 Feb 2015 20:57:07 +0000 (21:57 +0100)]
rsync & cache plugins locally

9 years agoreally thin bundled plugins
Robin Gareus [Thu, 26 Feb 2015 20:12:12 +0000 (21:12 +0100)]
really thin bundled plugins

9 years agocabron?
Robin Gareus [Thu, 26 Feb 2015 18:50:51 +0000 (19:50 +0100)]
cabron?

9 years agoinclude x42 plugins in mixbus bundle
Robin Gareus [Wed, 25 Feb 2015 23:55:55 +0000 (00:55 +0100)]
include x42 plugins in mixbus bundle

9 years agoPotential fix for confusion for Input/Output buttons on tracks with audio+midi ports
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

9 years agofix osx version detection in da975ae
Robin Gareus [Wed, 25 Feb 2015 20:11:55 +0000 (21:11 +0100)]
fix osx version detection in da975ae

9 years agoallow carbon support on 10.6, 32bit
Robin Gareus [Wed, 25 Feb 2015 19:50:41 +0000 (20:50 +0100)]
allow carbon support on 10.6, 32bit

9 years agoannotate prev commit.
Robin Gareus [Tue, 24 Feb 2015 23:43:58 +0000 (00:43 +0100)]
annotate prev commit.

9 years agono more AU warnings…
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.

9 years agorecover the most recent audio setup settings from config
Ben Loftis [Tue, 24 Feb 2015 20:29:02 +0000 (14:29 -0600)]
recover the most recent audio setup settings from config

9 years agoAU synth. prefer stereo variant if available.
Robin Gareus [Tue, 24 Feb 2015 17:31:35 +0000 (18:31 +0100)]
AU synth. prefer stereo variant if available.

9 years agoAU: fix return value reference
Robin Gareus [Mon, 23 Feb 2015 01:49:37 +0000 (02:49 +0100)]
AU: fix return value reference

9 years agofix return value on AU error in e070701
Robin Gareus [Sun, 22 Feb 2015 22:44:23 +0000 (23:44 +0100)]
fix return value on AU error in e070701

9 years agofix logical-op-parentheses
Robin Gareus [Sun, 22 Feb 2015 22:38:42 +0000 (23:38 +0100)]
fix logical-op-parentheses

9 years agosupport AudioUnit Generators without global Channel Info
Robin Gareus [Sun, 22 Feb 2015 22:37:18 +0000 (23:37 +0100)]
support AudioUnit Generators without global Channel Info

9 years agofix two other potential issues with leftover 32 bit integers when reading from sndfil...
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.

9 years agofix incorrect use of int32_t for current position in file while writing to non-destru...
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

9 years agodummy: add square wave frequency sweep generators
Robin Gareus [Sat, 21 Feb 2015 04:05:48 +0000 (05:05 +0100)]
dummy: add square wave frequency sweep generators

9 years agofix embedded plugin UI keyboard handling
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.

9 years agohook up focus_button for LV2 GUIs
Robin Gareus [Sat, 21 Feb 2015 02:00:33 +0000 (03:00 +0100)]
hook up focus_button for LV2 GUIs

9 years agofix logic of Session::audio_source_name_is_unique()
Paul Davis [Fri, 20 Feb 2015 19:12:12 +0000 (14:12 -0500)]
fix logic of Session::audio_source_name_is_unique()

9 years agoensure that stub audio file sources are removed when we destroy a track
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

9 years agofix erroneous merge for wavesaudio backend
Paul Davis [Fri, 20 Feb 2015 18:21:44 +0000 (13:21 -0500)]
fix erroneous merge for wavesaudio backend

9 years ago[Summary] In internal Waves backend API, switching sample time from 32 bits to 64...
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

9 years ago[Summary] In internal Waves backend API, switching sample time from 32 bits to 64...
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.