Commit Graph

602 Commits

Author SHA1 Message Date
b86cf68e1f add an explicit midi parser/chunker to CoreAudio 2015-07-01 01:12:30 +02:00
5296a364c4 pthread_equal returns non-zero if equal. amend 5ab0288 2015-06-30 09:17:43 +02:00
5ab0288c99 at least make it compile with mingw. 2015-06-30 09:11:05 +02:00
93a64cb4fc new PBD::DEBUG API changes for Waves backend 2015-06-29 14:18:15 -04:00
GZharun
40ddbc6195 Fixed up types mismatch in AudioCallback and AudioCllbackData struct 2015-06-29 14:18:15 -04:00
76f066f40c fix typo in wavesbackend code 2015-06-29 14:18:15 -04:00
GZharun
51d2804535 Waves Backend MERGED from Tracks
[To be reviewed by] Paul Davis
2015-06-29 14:18:14 -04:00
GZharun
5d4f1c3419 Backend MERGE:
Paul Davis' change 3d12a4da82
[To be reviewed by] Paul Davis
2015-06-29 14:18:14 -04:00
GZharun
edbbc8344a Reverted Ben's default buffer size function implementation.
Related to  eeca7f7
2015-06-29 14:18:14 -04:00
GZharun
21b9e180bd Reverted Ben's m_DefaultBufferSize stuff as it looks redundant. Will be put back if we establish the opposite 2015-06-29 14:18:14 -04:00
6485300479 remove more explicit compiler flags by placing them in the compiler flags dictionary 2015-06-29 14:18:14 -04:00
3adfa9ef57 minor fix for wavesaudio backend after earlier changes + merge/meld madness 2015-06-29 14:18:14 -04:00
237f255fb5 meld-driven unification of current ardour-ish WavesAudio backend and current tracks WavesAudio backend.
May be incomplete, and may not compile (testing to follow)
2015-06-29 14:18:14 -04:00
GZharun
0fca07fa9d cosmetic fix (grygorii) 2015-06-29 14:18:14 -04:00
6410aa896f Added optimized AVX function for sample processing
Added AVX versions of existing 5 SSE functions. Added 6th AVX function to copy vectors which is 1.5 times faster then memcpy.
Data consistency and validness  is fully tested after processing with new AVX functions on aligned and non aligned buffers.
2015-06-29 14:18:13 -04:00
GZharun
939e7c2d52 Fixed f65026f0a1cbc64862a82109c28f5d493fc45f2e merged commit related to waves backend
[Reviewed] PDavis
2015-06-29 14:18:12 -04:00
7fae6bcd87 copy all XCode project files from Tracks.
Rationale: the Waves team maintains the XCode project files, the Ardour crew doesn't. Thus, the Waves'
version is more canonical
2015-06-29 14:18:10 -04:00
GZharun
ef59fbffa1 [Summary] Added possibility to identify IO thread which does not have required resources initialized during process callback handling
Conflicts:
	libs/ardour/ardour/audioengine.h
	libs/backends/wavesaudio/waves_audiobackend.cc
	libs/pbd/pbd/pool.h
2015-06-29 14:16:42 -04:00
dc2030cfd7 ALSA backend: add support for half-duplex devices 2015-06-14 22:26:06 +02:00
94c146c780 prepare ALSA backend for half-duplex 2015-06-14 22:26:06 +02:00
573ec69a9a probe buffersize if jackd is already running. 2015-06-14 18:10:31 +02:00
9563e75cca hide the aggregate device, again
further amends to 17453ec debugging.
2015-06-10 03:00:00 +02:00
df840cec13 undo debug (17453ec) info.
The problem was: OSX i386 builds used --dist-target=leopard
which forced the deprecated 10.5 CoreAudio API.
(build-host config has been changed now).

There is currently insufficient support in ardour’s
CoreAudioPCM::create_aggregate_device() for the old API,
COREAUDIO_108 needs to be defined or aggregate devices stop
working on OSX 10.8 or later.
2015-06-10 02:46:10 +02:00
9a8d5583f4 fix OSX optimized builds (NDEBUG) 2015-06-09 22:24:46 +02:00
17453ec855 debug aggregate device issue - i386/10.8 only 2015-06-09 21:34:16 +02:00
70a0ee504c coreaudio: initialize [output] variable.
possible fix for 32bit/10.8,
AudioObjectGetPropertyDataSize error
2015-06-09 19:18:59 +02:00
801af5df9e Add the new (UINTSDEFINED) preprocessor directive to all out MSVC projects (just to be on the safe side) 2015-06-09 13:18:42 +01:00
e801155dde Coreaudio: ignore [expected] SR changes.
Don’t disconnect from engine if sample-rate change
happens during initialization.
2015-06-07 02:33:21 +02:00
b36d95d971 half-duplex Coreaudio support. 2015-06-04 02:44:58 +02:00
1fe738a36e coreaudio support for multiple devices 2015-06-01 01:02:38 +02:00
56cc3e2407 fix portengin get_ports() flags API
require all flags to be present (same as jack)
2015-05-03 22:34:52 +02:00
Christopher Arndt
a9bc95a911 Fix mixed spaces/tabs in wscripts 2015-05-03 19:52:38 +02:00
2f432c3be7 dummy: ignore first cycle timing. 2015-05-01 15:58:17 +02:00
fe3aafec1c When testing for x86 / x64 architecture, don't forget the symbols that MSVC can understand 2015-04-30 18:17:23 +01:00
49ffcd0d9d clamp DSP load displsy 100% & relax LPF. 2015-04-30 02:00:50 +02:00
e3cd57ecb6 DSP load calculation: favor peak over average. 2015-04-29 21:27:37 +02:00
82cc394705 fix jack-metadata for weak-jack linking 2015-04-23 20:19:22 +02:00
52a58f1ad2 fix JACK metadata configure check.
Trying to explicitly specify linkflags is (a) not portable (b) doesn't honor order-sensitive linkers
2015-04-23 13:48:18 -04:00
f755185825 add a real check for functioning JACK metadata API; remove configure time option for this 2015-04-23 09:29:45 -04:00
7ee9726c89 another merge fix 2015-04-21 08:37:54 -05:00
91fac4c96d merge fix for tempo branch 2015-04-21 08:35:20 -05:00
88f7c76134 allow coreaudio backend to build on OS X Lion 2015-04-20 23:12:35 -04:00
bb4576b700 Dummy: fix sine/square frequency sweep 2015-04-17 17:09:52 +02:00
9391da0c24 portaudio backend: allow Pa_GetDeviceInfo to fail. 2015-04-15 03:05:09 +02:00
c89f24e207 fixes for recent waves tracks => ardour cherry-picks of the wavesaudio backend 2015-03-31 18:03:51 -04:00
458fc3ad75 manually merge current version of WavesMidiDevice::{open,close}() 2015-03-31 17:29:42 -04:00
Valeriy Kamyshniy
83001e7e52 [Summary] Audio Backend code cleanup - PORTION B
Conflicts:
	libs/backends/wavesaudio/waves_midi_device.cc
2015-03-31 17:29:42 -04:00
Valeriy Kamyshniy
91f5eb9fef [Summary] Audio Backend code cleanup - PORTION A
Conflicts:
	libs/backends/wavesaudio/waves_midi_device.cc
2015-03-31 17:29:42 -04:00
Greg Zharun
47adf3ba37 [Summary] Changed midi stop order related to audio 2015-03-31 17:29:42 -04:00
Greg Zharun
708f4bf12b [Summary] Removed unnecessary abortion 2015-03-31 17:29:42 -04:00
Greg Zharun
22d68d14ce [Summary] Very seldom crash. Cleared temp data gave almost stable work
Conflicts:
	libs/backends/wavesaudio/waves_midi_device.cc
2015-03-31 17:29:42 -04:00
GZharun
3f5bf264c3 [Summary] Fixed crash on MAC when MIDI device name is 0 ref 2015-03-31 17:29:41 -04:00
Greg Zharun
85b4577d7a [Summary] Removed useless output 2015-03-31 17:29:41 -04:00
Greg Zharun
a2f82f8c5d [Summary] Added actions to handle abnormal behavior during stream stop for MIDI and Audio devices.
Made correct error handling for cases we didn't see before.
Removed redundant and experimental code I forgot to remove months ago.
Added debug output which will help in future testing

Conflicts:
	libs/ardour/ardour/audioengine.h
	libs/ardour/engine_state_controller.cc
	libs/backends/wavesaudio/waves_midi_device.cc
2015-03-31 17:29:41 -04:00
Greg Zharun
ce069da682 [Summary] Made device control panel open request synchronized with other critical device operations. Made device reset correctly when control panel is closed.
Conflicts:
	gtk2_ardour/tracks_control_panel.logic.cc
	libs/ardour/ardour/audioengine.h
	libs/backends/wavesaudio/wavesapi/devicemanager/WCMRPortAudioDeviceManager.cpp
2015-03-31 17:29:41 -04:00
Valeriy Kamyshniy
91ae97d5c9 [Summary] Following review Paul did after 9b0fc7b743 [9b0fc7b] and 72e1510766 [72e1510]. 2015-03-31 17:29:41 -04:00
16be88cdb6 Skeleton backend for brave volunteers.
callback based backend based on CoreAudio/Midi
backend (sans the actual system/HW _pcmio, 
_midiio)
2015-03-30 21:23:52 +02:00
cde15cb3ad coreaudio: swap default aggregate clock source.
Thanks to Stephane & the JACK2 team.
2015-03-30 13:18:51 +02:00
nick_m
bdf9b2f47c Backend - change midi optons string.
Multimedia Extensions -> System MIDI (MME)
2015-03-28 03:35:45 +11:00
39e5f7b94b Add a new MSVC project for building the Portaudio backend 2015-03-22 11:54:58 +00:00
a563007fcc add missing return value 2015-03-20 16:17:07 +01:00
26ce7b5f1b add a non-interleaved mode to the Portaudio backend 2015-03-20 11:45:56 +01:00
d8d9f9b486 proper port unregistration (just some refactoring, noop) 2015-03-14 22:59:07 +01:00
5090934a2c clean out cruft from CoreAudio Backend 2015-03-13 14:05:12 +01:00
7a4f1cb98f only jack+windows use portaudio.
fixes missing lib if portaudio-backend is used on on non-windows
platforms (pkg-config defines HAVE_PORTAUDIO)
2015-03-13 13:32:14 +01:00
1cca79258a call me Mr. Backend
simple blocking (no callback) PortAudio Backend
2015-03-13 13:32:14 +01:00
47b1c2889c Include windows.h in Dummy backend for LARGE_INTEGER
This is necessary for a native build using MSYS2 and mingw-w64
2015-03-12 23:03:45 +10:00
087b5dc43b interpret CoreMidi unique ID as unsigned for consistency.
coremidi specifies it as SInt32 but system:midi_playback_-126632214 ,
even if only used internally, just does not seem right.
2015-03-11 20:06:41 +01:00
99260742d2 mingw: all code is position independent 2015-03-11 14:58:02 +01:00
6d2189f9e3 reasonably sized CoreMidi Buffers 2015-03-11 12:23:05 +01:00
c3d7654884 coreaudio backend: switch threads early 2015-03-11 00:27:14 +01:00
a6b9e81ed1 10ms = 1e7 nsec 2015-03-10 00:09:01 +01:00
22a91f47bb rework/optimize CoreMidi 2015-03-09 23:28:57 +01:00
efbc00651f NOOP, add header-guards and namespace to CA backend 2015-03-09 23:28:57 +01:00
52e99750a0 ALSA: fix thinko in sample time calc. 2015-03-09 17:17:50 +01:00
0446ff64f4 implement samples_since cycle start. 2015-03-09 17:17:50 +01:00
2d6e48fb0b 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?
2015-03-09 11:43:05 +00:00
f2592df842 fix typo in 72ed785 2015-03-09 05:59:46 +01:00
09dd3fc369 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)
2015-03-09 05:41:36 +01:00
72ed785940 allow hotplugging CoreMidi devices. 2015-03-09 00:26:01 +01:00
bc7be6fd3e there’s no jack_creator_thread on windows 2015-03-09 00:09:42 +01:00
9107a4b7fe 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)
2015-03-08 21:31:08 +01:00
8fd67c5a88 coremidi separate ID and Name, use fixed IDs. 2015-03-08 19:02:31 +01:00
0cf11acc27 add backend support for port properties (CoreAudio) 2015-03-08 19:02:31 +01:00
20cd14cf36 add backend support for port properties (jack) 2015-03-08 19:02:31 +01:00
2657992ebb CoreAudio fwheelin’ state-machine cleanup etc. 2015-03-08 19:02:30 +01:00
95558b5878 update https://github.com/x42/weakjack/ 2015-03-08 16:22:14 +01: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
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
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
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
714677f036 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:52:44 -06:00
bf1d12708d dummy: add square wave frequency sweep generators 2015-02-21 05:05:48 +01: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
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
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
ae09d7132d fix 192k rate 2015-02-06 13:57:22 -06:00
0018ee2b02 fix “invalid use of incomplete type jack_client_t”
introduced in 66eef25
2015-01-30 11:02:07 +01:00
66eef257d8 fix jack thread joining
at the time the graph gets around to takes down 
client threads, the jack-backend’s jack_client has been reset.
But never mind: libjack does not care about it, anyway.
2015-01-30 01:28:52 +01:00
cf8e7bc135 ALSA-backend separate report for error and x-run 2015-01-28 13:47:24 +01:00
397ce4ccc7 ALSA-Backend prefer ppoll() 2015-01-28 13:47:24 +01:00
db28eefc49 ALSA backend: synchronous switch to/from freewheeling 2015-01-24 23:39:41 +01:00
f2ea059db3 DummyBackend: sync switch to freewheeling 2015-01-24 22:45:42 +01:00
b0a5245ef0 Hotfix crash in OSX engine dialog.
This is not really a fix, just some quick hack
to make ardour start at all if there’s no prior
CoreAudio EngineState in the config.
2015-01-19 17:50:50 +01:00
05a612b563 ASIO devices have a preferred buffersize.
pass this value up so it can be used by the engine dialog.
if for some reason the engine dialog still doesn't have a buffersize selected, print an error and try 512 instead of crashing.
2015-01-16 17:15:26 -06:00
37f351ccdd JACK: add support for device names with whitespace
This is backwards compatible, quotes are only added if needed.
JACK1 < 0.123.1-30 and JACK2 < 1.9.10-25 fail with either
whitespace or quotes, so nothing is lost.
2015-01-14 19:29:55 +01:00
95091a52a0 When building with MSVC make sure any backends / panners etc get copied to the correct target folder
(i.e. 'lib/ardour3' or 'lib/mixbus3' as appropriate)

These changes are MSVC specific and shouldn't affect the other builds
2015-01-12 14:43:22 +00:00
4d370b8942 add a midi->audio dummy backend mode.
this allows to easily debug latency compensation
as well as visualize lost midi events.
2015-01-11 20:51:57 +01:00
f499f4cfd2 don't take temporary copy of MIDI sequence
fixes potential boost shared_ptr double free.
2014-12-31 03:19:00 +01:00
805d4dd731 add a MIDI loopback mode to the Dummy Backend 2014-12-30 22:55:14 +01:00
47d083d02d update numbering of midi-test sequences 2014-12-29 14:36:39 +01:00
95fcf18245 add a midi-CC sustain-pedal test sequence 2014-12-29 14:32:03 +01:00
6e38d3777e add 'size' field to midi-sequences 2014-12-29 14:09:46 +01:00
c3c6f619c3 make it easier to add new midi sequences 2014-12-29 13:58:15 +01:00
Valeriy Kamyshniy
1b89055526 [Summary] Bug fix: mistakenly set states of freewheeling thread. 2014-12-18 17:07:37 -05:00
9268d2e699 allow to auto-start dummy backend (needed for tests) 2014-12-03 18:24:56 +01:00
7aab4be5e4 alsa-backend: drop midi during freewheel processing. 2014-12-02 17:03:29 +01:00
b9be8d2652 Replace individual waf options for enabling backends with one --with-backends option 2014-11-26 22:47:05 +07:00
0fb91e10b4 allow dummy backend for any product 2014-11-18 17:04:23 -06:00
f2273dc3b6 remove dead assignment 2014-11-18 02:15:06 +01:00
02d735ff00 waves/coreaudio PPC support 2014-11-17 09:07:39 +01:00
bd46de779f check alsa midi ringbuffer 2014-11-17 06:50:48 +01:00
4ba4677b45 yet another copy/paste typo :( 2014-11-13 22:19:22 +01:00
9301ffafab fix typo in b9fc616538 2014-11-13 21:46:30 +01:00
b376f6bc45 auto-initialize weak-jack
(not needed with ardour - but keep code in sync with
https://github.com/x42/weakjack)
2014-11-13 21:31:09 +01:00
b9fc616538 prepare for JACK meta-data API 2014-11-13 21:30:13 +01:00
65fa38103d make new jack thread API functions optional 2014-11-13 21:29:34 +01:00
7b39e0893a add symbol debug information to weak-jack 2014-11-13 21:28:33 +01:00
3e702c5520 yet another build fix
on x86_64 weak_libjack.c needs -fPIC which needs cflags which need 'c' :)
2014-11-13 01:02:09 +01:00
929d3fe6ed fix signed/unsigned compiler warning 2014-11-10 22:21:39 +01:00
a37ffd1f0c improve random seed (for dummy generators) 2014-11-10 22:20:36 +01:00
159cb4d2f9 another hack for windows timers, DSP load calculation 2014-11-07 12:17:15 +01:00
6cda13fad4 possible fix for DSP load calculation on windows 2014-11-06 17:29:35 +01:00
8d4cbc4cc1 fix Dummy DSP load on win32 & low-pass filter load
g_get_monotonic_time() has millisecond granularity,
use performance Counter if available
2014-10-31 22:51:47 +01:00
973d40e3ac Add support for USE_CAIRO_IMAGE_SURFACE when building with MSVC
(new preprocessor directive - greatly improves CPU loading)
2014-10-29 17:36:30 +00:00
a6ceff61dd proper solution for variable-args jack_client_open() 2014-10-25 17:28:13 +02:00
85eda0a5f3 Add some newly introduced source files to our MSVC project (jack_audiobackend) 2014-10-24 18:45:52 +01:00
3d39689769 Some minor bits of casting to keep MSVC happy when building 'backends/jack/weak_libjack.c' 2014-10-24 18:45:51 +01:00
b52304661f fix screwup in prev commit-diff 2014-10-24 17:19:28 +02:00
5e7f935a27 add explicit construction (for MSVC) and some debug messages 2014-10-24 17:15:03 +02:00
25a6aa57a3 fix jack transport return value 2014-10-24 16:19:44 +02:00
e025cc008c use x-macros to simplify weak-jack implementation 2014-10-24 15:18:38 +02:00
ad09be8c78 fix libjack names 2014-10-24 14:36:04 +02:00
1e357b5109 fix 64bit compile with old gcc 2014-10-23 20:42:02 +02:00
d991bb10ca add 'available' interface to the AudioBackendInfo
If a backend can be loaded, it does not mean that it can be used;
e.g. weak-linked jack-backend if libjack is not available.
2014-10-23 16:53:14 +02:00
f3ff1b9669 weak/runtime jack linking: load libjack dynamically at runtime 2014-10-23 16:53:13 +02:00
730e09ce65 another round of compiler warning fixes 2014-10-23 05:31:40 +02:00
c6a3d6bc48 small round of compiler warning fixes 2014-10-23 03:43:04 +02:00
f7211ff8f7 fix jack/mingw compilation 2014-10-22 23:57:55 +02:00
68458cde69 fix all 4 backends' failure to include the main "backend" thread when computing ::in_process_thread() 2014-10-22 17:07:11 -04:00
76edbdf5dc make backend selection by product name more explicit 2014-10-14 16:58:11 -04:00
8525a0b258 add a Dummy Backend Loopback mode: 2014-10-11 14:47:35 +02:00
b4cf5e279b fix dup free in waves/midi:
The PortMidi queue just holds a pointer to the midi events.
The same Midi events are free()d during WavesMidiBuffer::clear()
which is called at cycle start for every buffer and in the dtor
of the WavesMidiBuffer.
2014-10-09 09:48:54 +02:00
4af4938c25 fix wavesbackend midi timing 2014-10-09 09:43:53 +02:00
2d04ac9796 Add a newly introduced header file to our MSVC project (dummy_audiobackend) 2014-10-08 15:11:25 +01:00
000609901b add correct copyright statements to all files in Waves backend except those derived from portaudio/portmidi
This follows the letter sent from Waves Audio Ltd. to Paul Davis dated February 20th 2014 agreeing to release this code
under the GNU Public License, version 2, with copyright owned by Waves Audio Ltd
2014-10-07 16:17:34 -04:00
0af091edf3 fix ming32 build&install for asio backend 2014-10-03 00:46:34 +02:00
aeda6cbea9 add --with-wavesbackend config option (disabled by default) 2014-10-01 18:28:47 +02:00
3d12a4da82 fix deep obscure problem with loading multiple backends on OS X
all backends export a symbol declared as "extern "C" ARDOURBACKEND_API ARDOUR::AudioBackendInfo* descriptor ()".
dlopen'ing the backend apparently pushes the symbol "descriptor" into the single flat global namespace that we use
to be like other unix-like systems. this means that if a backend calls its OWN function named "descriptor", it
is indeterminate which one it will be, since the symbol will refer to the function first loaded by the runtime
linker. If the backend is not the first one discovered, this call to its own "descriptor" function will invoke
the function defined by another backend, even though these are supposed to have local scope only according
to our arguments to dlopen().

This fix doesn't try to fix the linker or namespace - it just makes sure that the WavesAudio backend doesn't
invoke its own descriptor() function, which it never really needed to do anyway.
2014-09-30 22:57:05 -04:00
cd60fd9dfe untested fix for compiling waves audiobackend on case-sensitive FS with mingw. 2014-10-01 04:02:30 +02:00
32e05fa640 update backends for API change in 8d59afb048 2014-10-01 03:24:54 +02:00
a927b79c26 Implement the new pthread macros (for the Waves audio backend) 2014-09-30 21:00:35 -04:00
3033c1cc54 Re-introduce our pthread macros (after fixing an earlier typo)
these are so we can differentiate between 'libpthread' and 'libpthread-win32' (whose implementation is subtlely - though annoyingly! - different)
2014-09-30 21:00:35 -04:00
8d59afb048 copy over current Waves version of their backend, along with minor changes in libs/ardour and libs/backend/jack to fit with API changes 2014-09-30 21:00:34 -04:00
38e975d6b1 tweak backends wscript for cross-compiling with mingw 2014-09-30 21:00:34 -04:00
8e01b411b2 copy over current Waves version of their backend, along with minor changes in libs/ardour and libs/backend/jack to fit with API changes-a 2014-09-30 20:23:45 -04:00
186493687b DummyBackend: symmetric freq sweep: up/down 2014-09-24 18:46:54 +02:00
6dfb8c5c8a DummyBackend: add sine-sweep generators 2014-09-24 17:24:25 +02:00
86672a5c5c fix some double promotion 2014-09-24 17:18:20 +02:00
3f9e916fe2 DummyBackend: two more audio-signal generators (useful for waveform check) 2014-09-24 01:26:51 +02:00
b355f01aa5 DummyBackend: MIDI Event Generators 2014-09-24 01:26:51 +02:00
99a484f193 ALSA backend: initial device selection 2014-09-24 01:26:51 +02:00
076bb0b488 change dummy backend to default to _("Silence"). 2014-09-13 22:51:42 +02:00
16b25a3028 Implement the new pthread macros (for the Waves audio backend) 2014-09-09 12:05:14 +01:00
61e0705a94 Re-introduce our pthread macros (after fixing an earlier typo)
these are so we can differentiate between 'libpthread' and 'libpthread-win32' (whose implementation is subtlely - though annoyingly! - different)
2014-09-09 12:03:52 +01:00
83b6825bd0 Revert "Add a couple of pthread helper macros"
This reverts commit 8d0ec2403f.
2014-09-09 08:26:26 +01:00
b1da9af8de ALSA|Dummy: ignore port unregistration when engine is stopped
When changing Engine parameters, ardour first stops
the engine and only later when re-etablishing ports
unregisters/re-registers them.

ALSA: silently ignore port unregs and silently accept registrations
Dummy: print a PBD::info message,
2014-09-08 01:25:56 +02:00
dc318e6e74 ALSA|Dummy Backend: do as jack does:
when the backend is closed, unregister all ports.
2014-09-07 22:50:57 +02:00
6408d90258 fix waf thinko in backends wscript 2014-09-03 18:44:34 -04:00
65715dd298 Make sure all our VC projects agree that the product is called 'Mixbus3' (as opposed to just 'Mixbus')
It'd be nice if we could use 'ARDOUR::config_dir_name' for this purpose (or perhaps 'PROGRAM_VERSION'). However, neither is implemented widely enough at present to make this practical. Keep an eye on them though, as possible future strategies.
2014-08-28 07:57:20 +01:00
126d6d3aae fix new backends wscript to work correctly in the Ardour case 2014-08-08 11:00:30 -04:00
16e37d975f use some structured code to decide which backends to build (should have cherry picked from waves' code but ...) 2014-08-08 10:57:20 -04:00
45afed5e9a Modify our VC project files to work with msvc32-fixup.pl 2014-08-04 09:02:17 +01:00
928881b24a Update vcproj files for changed LILV config define. 2014-07-15 15:50:12 -04:00
4af088c251 DummyBackend: add Uniform White Noise Generator. 2014-07-11 18:05:59 +02:00
2d63489196 Dummy Backend: optimize random-number implementation 2014-07-08 18:40:51 +02:00
941701574e fix and optimize DummyBackend generators
* use Wavetable for sine
* lock generator (concurrency issue)
* always initialize variables
2014-07-08 18:40:51 +02:00
185f06e7f7 add signal generator modules to Dummy Backend. 2014-07-07 16:31:58 +02:00
cd12698b9c Rename PBD::find_file_in_search_path to just PBD::find_file
saves a bit of typing and not necessary if you look at how it is used.
2014-06-25 12:40:10 -04:00
8d0cba3384 Use PBD::find_files_matching_pattern instead of other variations 2014-06-25 12:40:10 -04:00
3f776ce7d9 fix incorrect cut-n-paste across synergy 2014-06-25 12:30:57 -04:00
9b7b5fc9bc wscript fix for wavesaudio backend - use correct name for CoreM[iI][dD][iI] framework on Lion and other versions 2014-06-25 08:29:23 -04:00
07fafac36e don't let enumerated device list strings go out of scope. 2014-06-23 12:16:35 +02:00
fb51bdb892 statically allocate midi-options
fixes possible segfault when the data in the vector
goes out of scope due to RVO.
2014-06-23 11:56:58 +02:00
16ffff10cd ALSA-backend: dedicated Midi-Buffer n-periods (only use for HW output) 2014-06-22 18:28:24 +02:00
88caf84b81 Rename all 3 backends for the MSVC sln file 2014-06-22 13:29:17 +01:00
436302fd16 Rename dummy backend to match Tim's name 2014-06-22 13:11:59 +01:00
f46a1508d9 Rename jack backend to match Tim's name 2014-06-22 12:53:13 +01:00
07b71fd005 Rename waves backend to match Tim's name 2014-06-22 12:51:43 +01:00
6648074a13 virtual abstraction of Alsa Raw+Seq 2014-06-21 13:51:46 +02:00
5e436fc8fc prepare ALSA sequencer 2014-06-21 11:51:11 +02:00
bc67e47048 rework raw-midi drain strategy (workaround for sync devices) 2014-06-19 19:44:14 +02:00
e426c603b6 remove debug output 2014-06-16 23:58:52 +02:00
019e987944 more alsa-midi debugging 2014-06-16 22:08:52 +02:00
ff39a42581 ALSA backend: set latencies to zero when measuring latency 2014-06-13 13:51:42 +02:00
ecb92f474f update ALSA backend, MIDI device config 2014-06-13 12:02:03 +02:00
da912f7ed4 add AudioEngine API to configure individual MIDI devices 2014-06-13 11:47:51 +02:00
266953cb96 add latency callback to dummy backend 2014-06-11 22:01:21 +02:00
8fe593fcca some misc tweaks to the ALSA Backend 2014-06-08 21:04:30 +02:00
b3a44ea32b ALSA Backend: align midi output buffer with n_periods (currently 2) 2014-06-08 15:53:15 +02:00
8f17b7c309 ALSA backend: separate systemic audio+midi latency 2014-06-07 17:28:47 +02:00
c452cd9be2 ALSA rt-thread priority fixes 2014-06-07 17:28:46 +02:00
b68d2e25b2 ALSA backend: prevent possible crash destruction of a-r-d 2014-06-07 17:28:46 +02:00
960a5347f0 ALSA & Dummy: implement port [un]registration_callback 2014-06-07 17:28:46 +02:00
6b3e7cf07d Don't use module versioning with dummy backend when building with mingw 2014-06-07 14:31:32 +10:00
67c43d4b49 Don't use module versioning with jack backend in the mingw build 2014-06-07 14:31:32 +10:00
d7fc573cb8 alsa + dummy backend, proper [re]initialization 2014-06-06 03:43:39 +02:00
1c87f6adec properly setup port system latency for Dummy & ALSA backend 2014-06-06 00:58:11 +02:00
748c137461 pass ardour's pid to the device reservation script.
terminate a-r-d when ardour crashes or exits unexpectedly.
2014-06-05 19:49:23 +02:00
8d6183bff5 ALSA backend: require both in+output. 2014-06-05 03:27:19 +02:00
822c460d15 DBus ALSA device reservation 2014-06-05 02:22:13 +02:00
a907d3455e break out ALSA related functions into libardouralsautil 2014-06-04 19:16:37 +02:00
40cfe86569 ALSA: tentative hack to request audio-device. 2014-06-04 17:17:15 +02:00
6b781f72f2 ALSA backend: engine.halted_callback if the process thread dies 2014-06-04 17:17:15 +02:00
104adebea6 if the user chooses to stop the jack-backend, mark it as stopped. Don't display the "..was shutdown .. was not fast enough.." message. 2014-06-04 17:17:14 +02:00
aec7ea4613 Revert "Revert "ALSA backend: separate flags for is-running and should-be-running""
sorry, c/p error
This reverts commit 9658b77327.
2014-06-04 02:39:39 +02:00
9658b77327 Revert "ALSA backend: separate flags for is-running and should-be-running"
Theoretically one could alter the plugins after a delivery even on a
frozen track. ..or even change settings, the ordering and add/remove
plugins after the frozen part of a track.

We won't go there. Frozen is frozen. this API is not needed after all.

This reverts commit 6d89488d64.
2014-06-04 02:34:58 +02:00
6d89488d64 ALSA backend: separate flags for is-running and should-be-running 2014-06-04 02:23:41 +02:00
03cb44f814 ALSABackend: elaborate on start-up error cases 2014-06-04 02:19:46 +02:00
daaa59b533 Revert "When writing '.jackdrc' make sure we enclose any device names in
quotation marks". This patch is incorrect. The string quoting must be done ONLY
when creating a string to be written to ~/.jackdrc or similar, not when
constructing an argument list.

This reverts commit 5626ea2b1f.
2014-06-03 20:08:26 -04:00
5626ea2b1f When writing '.jackdrc' make sure we enclose any device names in quotation marks
(in Windows, device names almost always contain whitespace)
2014-06-03 14:04:10 +01:00
01cedf0e05 ALSA backend: tweak midi parser (fix start mid sequence) 2014-06-03 01:00:58 +02:00