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