Robin Gareus [Tue, 10 Mar 2015 23:25:10 +0000 (00:25 +0100)]
fix “no per-thread pool” abort
For some backends the process thread can change (e.g.
switch coreaudio headphone + internal speakers)
If there are existing x-thread event calls this can lead to
the following situation:
1) SessionEvent::operator new
2) audioengine process thread change
3) SessionEvent::operator delete -> crash, wrong thread
SessionEvent::operator delete can safely push the event back to
the pool for later cleanup..
Robin Gareus [Tue, 10 Mar 2015 21:12:35 +0000 (22:12 +0100)]
NOOP, re-indent.
Robin Gareus [Tue, 10 Mar 2015 21:06:28 +0000 (22:06 +0100)]
yet unheard of edge-case.
Robin Gareus [Tue, 10 Mar 2015 21:05:47 +0000 (22:05 +0100)]
audio interpolation is really private
Robin Gareus [Tue, 10 Mar 2015 21:05:21 +0000 (22:05 +0100)]
MIDI vari-speed playback
Robin Gareus [Tue, 10 Mar 2015 18:33:05 +0000 (19:33 +0100)]
prototype basic midi varispeed
Ben Loftis [Tue, 10 Mar 2015 20:54:54 +0000 (15:54 -0500)]
Groups created from the (edit,mix) windows should share the same default properties.
In the past, we chose different defaults in homage to ardour's old mix/edit groups.
But that wasn't a very good idea.
For now they have all properties enabled and the user can disable them as-needed.
It might also be nice to make the user's property selections perist for new groups.
nick_m [Tue, 10 Mar 2015 14:57:16 +0000 (01:57 +1100)]
Fix compilation for osx.
nick_m [Tue, 10 Mar 2015 13:40:02 +0000 (00:40 +1100)]
Manual merge of the backend (peakfile reading) part of waveview branch.
Summary:
* use mmap() for the whole peakfile instead of lots of small seek/reads
* cache the computed peaks
* where possible, open files with O_NOATIME.
Robin Gareus [Tue, 10 Mar 2015 13:28:17 +0000 (14:28 +0100)]
fix OSX/Clang optimized builds
not quite sure how -fomit-frame-pointer can make a difference with 64bit
builds, but it does crash on start in
gdk_window_new -> .. -> [NSColor _controlColor] -> GetThemeImage
-> _NSAppKitThemeLock with no other threads involved.
full backtrace: http://pastebin.com/FxsCMzSY
nick_m [Tue, 10 Mar 2015 12:35:53 +0000 (23:35 +1100)]
Manual merge of the drawing component of waveview branch.
In summary:
* no antialiasing of waveviews
* no diagonal lines
* simplify clip detection
* don't use LINE_CAP_ROUND for outline
* use the wave colour when drawing outline only
Robin Gareus [Tue, 10 Mar 2015 10:34:37 +0000 (11:34 +0100)]
windows package: pick up major version
Robin Gareus [Tue, 10 Mar 2015 10:00:53 +0000 (11:00 +0100)]
increase shuttle speed display granularity.
Robin Gareus [Tue, 10 Mar 2015 09:52:44 +0000 (10:52 +0100)]
dramatically reduce ShuttleControl CPU usage
Robin Gareus [Tue, 10 Mar 2015 09:46:24 +0000 (10:46 +0100)]
throttle TransportStateChange signal emissions
Robin Gareus [Tue, 10 Mar 2015 02:49:00 +0000 (03:49 +0100)]
clean up and refine shuttle control rendering.
Robin Gareus [Tue, 10 Mar 2015 01:48:14 +0000 (02:48 +0100)]
circles and circles and circles, again my friend
escape the cairo vicious circle, fixes varispeed playback
& major CPU hog on OSX.
Robin Gareus [Tue, 10 Mar 2015 00:41:52 +0000 (01:41 +0100)]
tweak OS X packaging for 10.9
Robin Gareus [Mon, 9 Mar 2015 23:21:37 +0000 (00:21 +0100)]
disk-space calc is windows (not MSVC) specific.
Robin Gareus [Mon, 9 Mar 2015 23:09:01 +0000 (00:09 +0100)]
10ms = 1e7 nsec
Robin Gareus [Mon, 9 Mar 2015 22:28:18 +0000 (23:28 +0100)]
rework/optimize CoreMidi
Robin Gareus [Mon, 9 Mar 2015 18:01:24 +0000 (19:01 +0100)]
NOOP, add header-guards and namespace to CA backend
Paul Davis [Mon, 9 Mar 2015 18:50:49 +0000 (13:50 -0500)]
more work to remove hard coding of major version number for linux packaging
Paul Davis [Mon, 9 Mar 2015 18:50:17 +0000 (13:50 -0500)]
more work to remove hard coding of major version number for linux packaging
John Emmas [Mon, 9 Mar 2015 18:29:26 +0000 (18:29 +0000)]
Move 'poor_mans_glob()' into libpbd
Paul Davis [Mon, 9 Mar 2015 17:41:46 +0000 (12:41 -0500)]
attempt to remove major version hard-coding from linux packaging tools
Robin Gareus [Mon, 9 Mar 2015 17:31:25 +0000 (18:31 +0100)]
Revert "explicitly shutdown engine at exit"
This reverts commit
c12b7bc9d85ad9b72e152a27625bdd4cc5486af0.
ARDOUR_UI::finish() already does this.
nick_m [Mon, 9 Mar 2015 16:58:00 +0000 (03:58 +1100)]
Tearoff windows are utility windows rather than toolbars.
Robin Gareus [Mon, 9 Mar 2015 16:02:05 +0000 (17:02 +0100)]
ALSA: fix thinko in sample time calc.
Robin Gareus [Mon, 9 Mar 2015 15:59:59 +0000 (16:59 +0100)]
implement samples_since cycle start.
John Emmas [Mon, 9 Mar 2015 15:54:59 +0000 (15:54 +0000)]
Fix a couple of issues when displaying the 'Preferences' dialog on Windows:-
1) When changing the 'Default folder for new sessions' we weren't responding to the appropriate signal (so the change wasn't getting saved in our user's 'config' file). We now respond to the 'selection-changed' signal.
2) If the above path happened to contain a tilde character we weren't interpreting it to mean the user's home folder. I've copied across a function called 'poor_mans_glob()' which Ardour uses elsewhere for dealing with this situation in other file dialogs.
Once we confirm that issue #2 is now working for all platforms, I'd suggest moving 'poor_mans_glob()' into libpbd. At the moment we have at least 3 definitions of it (all identical) scattered around in various places.
nick_m [Mon, 9 Mar 2015 15:27:40 +0000 (02:27 +1100)]
Add route dialog responds to enter key being pressed.
nick_m [Mon, 9 Mar 2015 15:25:25 +0000 (02:25 +1100)]
Introduce theme preference "transients follow front" which, when enabled,
sets transient windows to be transients for the front window when switching
between the editor and mixer. This is the current behavior on non-osx
builds.
When disabled, there is no reparenting of transient windows. This is the
current behavior on osx.
This preference defaults to off.
Also fix "all windows are dialogs" checkbox being out of sync with the ui
state.
John Emmas [Mon, 9 Mar 2015 11:43:05 +0000 (11:43 +0000)]
Define NO_JACK_METADATA when building the jack backend with MSVC
Jack (on Windows) doesn't seem to have a header file called 'metadata.h' - so hopefully, this'll be correct?
Robin Gareus [Mon, 9 Mar 2015 04:59:46 +0000 (05:59 +0100)]
Robin Gareus [Mon, 9 Mar 2015 04:41:36 +0000 (05:41 +0100)]
some backends can handle incorrectly ordered midi events.
(that can happen if multiple sources send to the same
ouput port, in particular async midi events)
Robin Gareus [Mon, 9 Mar 2015 01:27:36 +0000 (02:27 +0100)]
fix ‘pure virtual’ crash at exit.
Finally tracked down.
AudioEngine::instance()->Halted.connect_same_thread() .. call_slot().
Since the calling thread has (eg JACK) has no event loop: crash
__cxa_pure_virtual + 18
PBD::EventLoop::invalidate_request(void*) + 61 (event_loop.cc:71)
sigc::trackable::notify_callbacks() + 63
BaseUI::~BaseUI() + 173 (base_ui.cc:64)
AbstractUI<Gtkmm2ext::UIRequest>::~AbstractUI() + 137 (abstract_ui.h:59)
Gtkmm2ext::UI::~UI() + 279 (gtk_ui.cc:131)
ARDOUR_UI::~ARDOUR_UI() + 3556
ARDOUR_UI::~ARDOUR_UI() + 21
ARDOUR_UI::~ARDOUR_UI() + 25
main + 2396
at event_loop.cc:71
Glib::Threads::Mutex::Lock lm (ir->event_loop->slot_invalidation_mutex());
print *ir->event_loop
(PBD::EventLoop) $1 = {}
see http://pastebin.com/zvWJbqwf for a call_slot call on OSX/Coreaudio.
Robin Gareus [Mon, 9 Mar 2015 00:41:34 +0000 (01:41 +0100)]
explicitly shutdown engine at exit
Callbacks like EngineHalted or DeviceListChanged
can be deadly while the UI is being torn down.
Robin Gareus [Sun, 8 Mar 2015 23:26:01 +0000 (00:26 +0100)]
allow hotplugging CoreMidi devices.
Robin Gareus [Sun, 8 Mar 2015 23:09:42 +0000 (00:09 +0100)]
there’s no jack_creator_thread on windows
Robin Gareus [Sun, 8 Mar 2015 22:21:36 +0000 (23:21 +0100)]
update default windows config
(jack on windows does not ship metadata.h)
Robin Gareus [Sun, 8 Mar 2015 21:40:27 +0000 (22:40 +0100)]
keep port bundles in sync with engine
Robin Gareus [Sun, 8 Mar 2015 21:40:00 +0000 (22:40 +0100)]
Bundle API user update 2/2
cherry-pickable follow up to
0582221
Robin Gareus [Sun, 8 Mar 2015 21:39:34 +0000 (22:39 +0100)]
Bundle API user update
cherry-pickable follow up to
0582221
Robin Gareus [Sun, 8 Mar 2015 21:38:55 +0000 (22:38 +0100)]
consolidate BundleAdded/Remove signal
The only user (matrix) does not care which bundles are added/removed.
This simplification will make it a lot easier to keep bundles
in sync with actual hardware ports.
Robin Gareus [Sun, 8 Mar 2015 20:31:08 +0000 (21:31 +0100)]
add a no-jack-metadata option for poor 12.04 souls
(jack does have metadata support but ubuntu packaged
a version with a wrong header)
Robin Gareus [Sun, 8 Mar 2015 19:18:50 +0000 (20:18 +0100)]
allow to drag gain-envelope points
Robin Gareus [Sun, 8 Mar 2015 17:58:30 +0000 (18:58 +0100)]
fix typo, list output bundles properly.
Robin Gareus [Sun, 8 Mar 2015 17:39:19 +0000 (18:39 +0100)]
nicely named session bundles
Robin Gareus [Sun, 8 Mar 2015 16:27:48 +0000 (17:27 +0100)]
use pretty names in port-matrix
maybe this should be an option? So far it’s
the matrix only.. gotta start somewhere.
PS. No, this is not a new feature. Ardour not doing this
is a major bug that severely reduces usability:
system:midi_capture_47 WTF? ;-)
Robin Gareus [Sun, 8 Mar 2015 17:11:38 +0000 (18:11 +0100)]
coremidi separate ID and Name, use fixed IDs.
Robin Gareus [Sun, 8 Mar 2015 18:00:29 +0000 (19:00 +0100)]
add backend support for port properties (CoreAudio)
Robin Gareus [Sun, 8 Mar 2015 16:26:46 +0000 (17:26 +0100)]
add backend support for port properties (jack)
Robin Gareus [Sun, 8 Mar 2015 16:24:53 +0000 (17:24 +0100)]
libardour API to exercise get_port_property
Robin Gareus [Sun, 8 Mar 2015 16:23:38 +0000 (17:23 +0100)]
add port-engine API to query port-properties
Robin Gareus [Sun, 8 Mar 2015 11:58:31 +0000 (12:58 +0100)]
CoreAudio fwheelin’ state-machine cleanup etc.
Robin Gareus [Sun, 8 Mar 2015 14:51:35 +0000 (15:51 +0100)]
update https://github.com/x42/weakjack/
Tim Mayberry [Sun, 8 Mar 2015 12:44:30 +0000 (22:44 +1000)]
Reduce run time/output of PBD::Timer unit test
Tim Mayberry [Sun, 8 Mar 2015 12:38:52 +0000 (22:38 +1000)]
Fix PBD::copy_file on windows to work with non-ascii paths
This breakage was indicated by the filesystem unit tests.
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).
Robin Gareus [Sun, 8 Mar 2015 02:42:23 +0000 (03:42 +0100)]
fix drag-motion over TAV w/o view()
Robin Gareus [Sun, 8 Mar 2015 01:51:09 +0000 (02:51 +0100)]
Cluster Frak String Reference
Robin Gareus [Sun, 8 Mar 2015 01:01:48 +0000 (02:01 +0100)]
avoid non-integer loop conditions.
Robin Gareus [Sun, 8 Mar 2015 00:38:47 +0000 (01:38 +0100)]
properly handle empty CFStringRefs.
Ben Loftis [Sat, 7 Mar 2015 23:10:19 +0000 (17:10 -0600)]
remove unneeded debug output
Robin Gareus [Sat, 7 Mar 2015 22:27:33 +0000 (23:27 +0100)]
CoreAudio: fix allocation alignment
Robin Gareus [Sat, 7 Mar 2015 21:07:15 +0000 (22:07 +0100)]
Robin Gareus [Sat, 7 Mar 2015 20:45:52 +0000 (21:45 +0100)]
more OSX weirdness fixes
0cb096a
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).
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.
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.
Robin Gareus [Sat, 7 Mar 2015 18:56:28 +0000 (19:56 +0100)]
add coreaudio backend to bundle
Robin Gareus [Sat, 7 Mar 2015 15:15:41 +0000 (16:15 +0100)]
I’m starting to regret these checks..
Robin Gareus [Sat, 7 Mar 2015 15:10:45 +0000 (16:10 +0100)]
no more gcc/ppc complaints
Robin Gareus [Sat, 7 Mar 2015 14:04:17 +0000 (15:04 +0100)]
fix various -Wformat
Robin Gareus [Sat, 7 Mar 2015 13:50:02 +0000 (14:50 +0100)]
Robin Gareus [Sat, 7 Mar 2015 10:11:50 +0000 (11:11 +0100)]
engine dialog, update device is changed.
Robin Gareus [Sat, 7 Mar 2015 08:00:18 +0000 (09:00 +0100)]
fix device changes..
backend_changed() stopped the backend.
Robin Gareus [Sat, 7 Mar 2015 08:11:15 +0000 (09:11 +0100)]
fix latency report, take buffersize changes into account.
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
John Emmas [Sat, 7 Mar 2015 12:30:22 +0000 (12:30 +0000)]
Add some newly introduced sources to our MSVC project (libardour)
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()'
Robin Gareus [Sat, 7 Mar 2015 09:54:37 +0000 (10:54 +0100)]
fix linux detection
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
Robin Gareus [Fri, 6 Mar 2015 18:03:16 +0000 (19:03 +0100)]
build system tweaks for coreaudio/waves-coreaudio
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.
Robin Gareus [Fri, 6 Mar 2015 05:24:44 +0000 (06:24 +0100)]
update Engine Dialog when devices are dis/connected.
Robin Gareus [Fri, 6 Mar 2015 02:21:47 +0000 (03:21 +0100)]
cont’d work on the coreaudio backend & cleanup
David Robillard [Thu, 5 Mar 2015 23:48:33 +0000 (18:48 -0500)]
Add MIDI readahead to options editor.
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.
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