a65b1ddedc
Add a DSPLoadCalculator class to the PortAudioBackend for DSP load calculation
...
The class uses the same algorithm as in the coreaudio and alsa backends and
should probably go into libardour at some point
2015-09-02 12:07:58 +10:00
cb7bac5599
Fix include style of system header
2015-09-02 12:07:58 +10:00
5448c229d9
Extract main processing section of PortAudioBackend into new method
2015-09-02 12:07:58 +10:00
f27d8e1e23
Extract freewheel processing in PortAudioBackend into new method
2015-09-02 12:07:58 +10:00
cf81caa798
Don't update unused dsp timer variable in freewheel process in PortaudioBackend
2015-09-02 12:07:58 +10:00
7b23f80b03
Refactor port change handling part of PA Backend process function into new method
2015-09-02 12:07:58 +10:00
684701427e
Rename variables in PortaudioBackend in preparation for using PA callback API
2015-09-02 12:07:58 +10:00
56b5e04c3b
Fix copy and paste error in debug output message in WINMME Midi Output
2015-09-02 12:07:58 +10:00
ac5eac471d
Signal WinMME Midi output thread so the thread wakes up and terminates properly
2015-09-02 12:07:15 +10:00
d520b9c878
Stop WINMME midi driver/devices when PortAudio backend is stopped
2015-09-02 12:07:15 +10:00
2dbdaaa8f5
Refactor part of PortAudioBackend::_start/stop into new methods
2015-09-02 12:07:15 +10:00
f58282844d
Don't add "None" devices for ASIO driver in PortaudioBackend
2015-09-02 12:07:15 +10:00
0396df963f
Implement new AudioBackend API for force updating devices in PortaudioBackend
2015-09-02 12:07:15 +10:00
585930f058
Update devices in PortaudioBackend when setting the driver
...
Reinitialize portaudio to pick up changes in devices and ASIO buffer settings
2015-09-02 12:07:15 +10:00
8c2b9dac59
Rename several methods in PortAudioIO class
...
return ErrorCode's and handle them where necessary
2015-09-02 12:07:15 +10:00
82f84d6203
Refactor part of PortAudioIO::pcm_setup into new method
2015-09-02 12:07:15 +10:00
1cb36108bb
Change the functions related to initializing the Portaudio library
2015-09-02 12:07:15 +10:00
3b71674eee
Remove unused and cryptic _state member from PortAudioIO
2015-09-02 12:07:15 +10:00
fd0b54f459
Use PortAudioIO::ErrorCode as return value from PortAudioIO::pcm_setup
2015-09-02 12:07:15 +10:00
4e75220661
Define some error codes in PortAudioIO class
2015-09-02 12:07:15 +10:00
e42f9d649b
Refactor parts of PortAudioIO class into new method
2015-09-02 12:07:15 +10:00
c857008b93
Refactor part of PortAudioIO::pcm_setup into 2 new methods
2015-09-02 12:07:14 +10:00
41211c984c
Make two private methods in PortAudioIO const
2015-09-02 12:07:14 +10:00
8e0e3fcdee
Refactor part of PortAudioIO::pcm_setup into new method
2015-09-02 12:07:14 +10:00
58cfd00e5a
Add utility method to PortAudioIO class to remove goto from pcm_setup
2015-09-02 12:07:14 +10:00
d6f7066e80
Remove apple specific fixes from PortaudioBackend now that it is windows only
2015-09-02 12:07:14 +10:00
dd93aec029
Don't query supported sample rates for ASIO devices in PortaudioBackend
...
There has been reports this can take several minutes on some devices so just
return the default rates(and fail to open the device when a SR is specified
that isn't supported)
2015-09-02 12:07:14 +10:00
519f97b91d
Use two private utility functions in PortaudioIO class for default SR's and buffer sizes
2015-09-02 12:07:14 +10:00
cc7e97f296
Reindent and reformat switch statements in PortaudioBackend
...
This is more readable and consistent with the rest of the source files
2015-09-02 12:07:14 +10:00
71a1e9e90d
Use translated error messages in PortaudioBackend when SR or i/o channel counts don't match requested
...
These errors are probably preventable but currently they do occur so at least
tell the user about them(and hope they check the error log window)
2015-09-02 12:07:14 +10:00
ba4f685d2d
Use a translated error message in PortaudioBackend when unable to open audio device
2015-09-02 12:07:14 +10:00
432e0073f6
Convert some error output to debug output in PortaudioBackend
2015-09-02 12:07:14 +10:00
9185978d2f
Use translated error message in PortaudioBackend with failing to aquire RT perms
2015-09-02 12:07:14 +10:00
9d67d22e70
Use debug output rather than sending errors for developer relevant port errors
...
Most of these are not errors that are intended for the user, they are only
intended for developers so don't send them to PBD::error. The errors that may
be relevant to users should be handled in libardour or the GUI in response to
return values
2015-09-02 12:07:14 +10:00
a272c50597
Move AudioBackend related debug bits into libardour
...
I put these in libpbd as that is where the debug bits are for the Waves backend
but I think it makes more sense for them to be in libardour as that is where
the AudioBackend class is defined
I left the Waves debug bits in libpbd for now.
2015-09-02 12:07:14 +10:00
201d91aedd
Use PortaudioIO::get_current_host_api_type utility function in PortaudioIO class
2015-09-02 12:07:14 +10:00
c6c0654b5a
Add Utility function to get host API type in PortaudioIO class
2015-09-02 12:07:14 +10:00
08d6dd153e
Add "None" devices to PortaudioBackend
...
This allows for disabling either input or output, but not both
2015-09-02 12:07:14 +10:00
440e6cd591
Use AudioBackend standard device names for "Default" in PortaudioBackend
2015-09-02 12:07:14 +10:00
3a3d811e82
Use StandardDevices enum in PortaudioIO for default devices
...
This just makes it a bit easier to read through the code rather than using
magic numbers.
2015-09-02 12:07:14 +10:00
5a5226dded
Add StandardDevice enum to portaudio_io.h header
2015-09-02 12:07:14 +10:00
7537a992b3
Use translated error message in PortaudioBackend for audio device I/O error
2015-09-02 12:07:14 +10:00
07f3dae936
Use translated error message for failing to set thread priorities in PortaudioBackend
2015-09-02 12:07:14 +10:00
ee77a7a883
Use AudioBackend::get_standard_device_name for "None" midi device in PortaudioBackend
2015-09-02 12:07:14 +10:00
451e35002c
Use pretty name infrastructure to display MIDI device name
2015-09-02 12:07:14 +10:00
b6f51b2497
coreaudio: re-classify port-errors as warnings
2015-08-28 15:41:33 +02:00
dace872af8
fix Dummy backend API. Already_configured means "externally".
2015-08-14 16:26:44 +02:00
548340eb05
remove -Woverload-virtual ambiguity (from 1d3690d
)
...
this breaks compilation in engine_dialog.cc
2015-08-11 23:50:56 +02:00
679903fd22
fix jack startup on OSX (w/midi)
2015-08-11 19:43:57 +02:00
a226c4ce38
ALSA backend: query and cache available device-parameters
2015-08-11 19:01:52 +02:00
8f10b38275
coreaudio backend: SR/BS query for separate devices
2015-08-11 15:38:04 +02:00
e8b2d7a85b
fix coreaudio half-duplex buffersize query
2015-08-11 04:43:07 +02:00
d72c111ccf
Add a newly introduced #define to our MSVC build project (portaudio backend)
2015-08-09 12:44:31 +01:00
71e7b2fbd6
Set the default host api in PortaudioBackend when initializing portaudio
...
Not setting a default driver causes issues with the EngineControl dialog
2015-08-07 01:25:14 +10:00
529a625c39
Remove "Default" devices from the PortaudioBackend
...
These are not really necessary now that input and output devices can be
selected separately.
2015-08-05 23:37:50 +10:00
66cafd10d5
Use ASIO specific device channel names for port properties/pretty names
2015-08-05 13:21:30 +10:00
61e851da08
Add code to use ASIO supplied min/max buffer sizes but don't use it
...
RME HDSP: min == max == preferred size with granularity == 0
Focusrite scarlett 2i2: min = current ASIO setting and max = max buffersize the
device supports with a granularity of 1 which means hundreds of entries in the
dropdown menu.
2015-08-05 13:21:30 +10:00
7295bb6454
Refactor methods in PortaudioBackend to get ASIO buffer sizes
2015-08-05 13:21:26 +10:00
6ca1c8164f
Add ASIO specific code to query preferred buffer size for device
2015-08-05 10:52:03 +10:00
a9b6277d50
Dummy -> Audio system: "None"
...
check if gettext() static initialization works with all compilers.
2015-08-05 00:45:08 +02:00
c8b207d911
Proper solution to replace 9cabc1b
hack.
...
Initialize uninitialized variable (m_started), remove cruft.
2015-08-04 01:03:57 +02:00
55cd20d862
don’t set paClipOff, have portaudio clip to -1,+1
...
Fixes issues with some integer drivers where overflow wraps
(values > 1.0 end up at -1, producing a hard click)
2015-08-03 22:57:10 +02:00
c6a02503b4
Windows XP compat
2015-08-03 22:53:53 +02:00
9cabc1bb9a
Fix MIDI input on Portaudio Backend with 32bit Windows release/optimized builds
...
MIDI input doesn't work with -O3 or -O2 optimization levels, no real idea why
at this point. So just append -O0 to CXXFLAGS to override previous optimization
flags for compiling the PortaudioBackend files
2015-08-04 00:15:59 +10:00
5122b7f8e1
Specifically #include <mmsystem.h> to get us TIMECAPS
...
(not sure why windows.h isn't already #including this for us - but it doesn't seem to be)
2015-07-31 13:48:25 +01:00
3015be533f
Add some newly introduced sources to our MSVC project (portaudio_backend)
2015-07-31 13:45:18 +01:00
f3d3082872
Use llabs (rather than std::abs) for compatibility with MSVC
...
MSVC doesn't offer an override which accepts int64_t (at least, the 32-bit compiler doesn't)
2015-07-31 13:43:22 +01:00
0428f2e4c9
Use BOOL (rather than WINBOOL) for compatibility with MSVC
...
(WINBOOL is MinGW specific)
2015-07-31 13:41:16 +01:00
f9f01104c6
add missing pthread.h includes
2015-07-31 02:28:12 +02:00
cfbd9dd6d4
Add functionality to show ASIO control panel
2015-07-31 09:59:54 +10:00
acd17a9b53
Use MMCSS to elevate the thread priorities for audio and MIDI threads
...
use AVRT_PRIORITY_NORMAL for audio threads and AVRT_PRIORITY_HIGH for MIDI
threads
2015-07-31 09:59:54 +10:00
e9d00f5cfb
Add MMCSS related code for raising thread priority on Windows
2015-07-31 09:59:54 +10:00
fe50d06876
Implement AudioBackend::driver_name() in PortaudioBackend
...
This was missing and is necessary for EngineControl dialog to work properly
2015-07-31 09:59:54 +10:00
6a0e46352c
Add extra DEBUG_TRACE output to PortaudioBackend
2015-07-31 09:59:54 +10:00
e258c827e2
WinMME based midi input/output for portaudio backend
...
TODO:
Use MMCSS to elevate thread priorities
Enable/test and fix SYSEX related code
2015-07-31 09:59:54 +10:00
b12f865a4a
Fix for PortAudioBackend::available_sample_rates
...
Was being called without initializing PA. PA should probably be initialized in
ctor but PA backend also needs to support hot-plugging devices at some point so
this will do for now
2015-07-31 09:59:54 +10:00
6b7875de1e
Support selecting separate input and output devices in portaudio backend
2015-07-31 09:59:54 +10:00
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