13
0
Commit Graph

525 Commits

Author SHA1 Message Date
ff1d4d5c67 Refactor PortAudioIO::discover into three private methods 2015-07-31 09:59:54 +10:00
4e370feeb1 Set default input/output device based on selected host api rather than global default 2015-07-31 09:59:54 +10:00
e2001ac4f3 Fix crash when unable to open portaudio stream
Calling Pa_Terminate after failing to open stream causes an assertion
2015-07-31 09:59:54 +10:00
b6db19a5c6 Add host api/driver selection to PortaudioBackend 2015-07-31 09:59:54 +10:00
64baed2b97 coreaudio aggregate device fix for 10.5 2015-07-24 01:34:57 +02:00
c0aa5a8d6b fix typo in old (pre 10.6) coreaudio API wrapper
fixes aggregate device support for PPC builds.
2015-07-22 20:20:11 +02:00
40c603c7e9 UTF8 encode windows device names - potential fix for #6418 2015-07-08 11:34:57 +02:00
4f81b17e85 another float/double -Wabsolute-value fix 2015-07-05 16:13:08 +02:00
fa7bb93329 fix jack_port_get_aliases return value (if n/a) 2015-07-04 12:54:41 +02:00
a68221e323 fix jack/pthread windows condition 2015-07-04 11:49:44 +02:00
9ccfb921d4 synchronize with https://github.com/x42/weakjack/ 2015-07-04 11:46:09 +02:00
416ef93635 use a trick to compile JACK/win with new and old headers
jack/systemdeps.h is jack2-only and contains many
windows-specific typedefs (native windows threads, ptw32 threads, MSVC
special cases etc etc.) which are not present in jack1/shared headers.
2015-07-04 09:52:04 +02:00
58a7b0e137 fix side-effect of moving to jack1 headers 2015-07-04 05:59:37 +02:00
278cd98799 fix compilation with mingw + pthreads 2015-07-04 05:48:42 +02:00
efb9da770d fix use of += in waf variable 2015-07-04 05:43:34 +02:00
c905be691d only compile, don’t link & run jack checks 2015-07-04 04:24:22 +02:00
d48a5f7068 fix weak jack w/new jack_port_rename() 2015-07-04 00:20:12 +02:00
35ab6e9075 fix error in type definition for weak jack handling of jack_port_rename 2015-07-02 14:24:49 -04:00
aaab192436 add conditional use of jack_port_rename(), a newly added public API for JACK 2015-07-02 14:02:07 -04:00
f814045f80 MSVC doesn't have 'sleep()' (it uses 'Sleep()' with a capital 'S') so let's make sure it'll still compile
(see the note about possibly using 'Glib::usleep()' ??)
2015-07-02 08:23:38 +01:00
2d098c346a add a raw CoreMidi data debug mode 2015-07-01 22:14:30 +02:00
b687ed9339 consolidate & document Coreaudio midi parser 2015-07-01 18:14:48 +02:00
da0ca57539 NOOP, reindent & whitespace 2015-07-01 01:18:52 +02:00
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 9b0fc7b743219b8daecbef91c9772937fd874822 [9b0fc7b] and 72e1510766608180fc7975fde35c9155494a8b5d [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