John Emmas
fcf757139f
Accommodate newly introduced source(s) in our MSVC project (portaudio_backend)
2016-02-12 12:31:23 +00:00
Tim Mayberry
148f2ab8e5
Add debugging output for WinMME midi device names
2016-02-11 12:15:07 +10:00
Tim Mayberry
1499cd8670
Only build one version of the Portaudio backend that supports both blocking and callback API
2016-02-11 12:15:07 +10:00
Tim Mayberry
830db39585
Implement new AudioBackend API in PA backend to choose between callback and blocking API
2016-02-11 12:15:07 +10:00
Tim Mayberry
d50a821374
Add a missing include from portaudio WINMME source file
...
Apparently this is now required by my version of gcc/mingw
2016-02-11 12:15:07 +10:00
Tim Mayberry
b2cf028fcb
Implement MIDI device enumeration and latency offset/calibration in portaudio backend
2016-02-11 12:15:07 +10:00
Paul Davis
90c4985604
remove wavesaudio backend
2016-01-12 08:06:47 -05:00
Robin Gareus
cf6a3afcaa
name ALSA midi ports after device
2016-01-11 11:46:10 +01:00
Robin Gareus
0fc06b4a1b
fix warning message typo
2016-01-11 11:45:44 +01:00
Paul Davis
a9995c59cc
coremidi: do not clear port buffer for every call to parse_events()
...
This was limiting the data flow to 1 MIDI event per process cycle.
2016-01-10 17:46:36 -05:00
Paul Davis
36fb8c44c1
add explanatory comment regarding coremidi data flow
2016-01-09 14:45:38 -05:00
Paul Davis
4a99727dea
coremidi: be sure to mark _event._pending false after queueing, so that it doesn't get queued up again later
2016-01-09 13:53:17 -05:00
Paul Davis
ef45a6c84b
coreaudio: remove debug output
2016-01-08 09:43:33 -05:00
Paul Davis
63cbe11c67
coreaudio: remove debug output
2016-01-08 09:39:55 -05:00
Paul Davis
cae2f82278
NOOP: fix whitespace/indendentation in coreaudio backend code
2016-01-08 09:39:00 -05:00
Paul Davis
3d5e345800
coreaudio: reset MIDI parsers when entering and leaving freewheeling
2016-01-08 09:23:05 -05:00
Paul Davis
9d3cbe44a3
coreaudio: correctly clear MIDI port buffers
2016-01-07 18:11:45 -05:00
Paul Davis
c615e26f3c
coreaudio: factor out common code for stuffing MIDI data into a CoreMidiPort buffer
2016-01-07 18:11:45 -05:00
Paul Davis
6e71d3b445
coreaudio: per-port parser for incoming MIDI, copied from ALSA Raw MIDI support
2016-01-07 16:42:34 -05:00
Robin Gareus
b7e06693be
nitpick
2016-01-07 20:44:59 +01:00
Paul Davis
d735145969
fix missing symbol on OS X
2016-01-07 10:40:08 -05:00
John Emmas
8649c1759e
#define BACKEND_NAME when building with MSVC (portaudio_backend)
...
N.B. We aren't yet building the blocking PortAudio backend but that can be added quite easily, if needed.
2015-12-23 15:09:18 +00:00
Robin Gareus
b67892833b
ship both blocking and callback PA backends (for debug purposes)
...
this just works (no symbol conflicts)
2015-12-21 22:12:15 +01:00
Robin Gareus
fe0802169c
standardize port-names
2015-12-08 15:32:05 +01:00
Robin Gareus
1372407f82
fix previous commit.
2015-12-08 00:52:06 +01:00
Robin Gareus
8781004ca2
portaudio connect & graph-changed callbacks (untested)
2015-12-08 00:36:29 +01:00
Robin Gareus
7ad8ad8823
JACK: expose --nperiods option
2015-12-05 13:56:18 +01:00
Robin Gareus
4dc49ee4fa
fix -Wreorder
2015-12-05 02:42:58 +01:00
Robin Gareus
a6f27f09a7
update ALSA backend: separate playback/capture periods
...
fixed: 2 for capture, configurable 2,3 for playback.
2015-12-05 01:53:13 +01:00
Robin Gareus
bfd2cbaa3f
ALSA: allow to dynamically add/remove midi devices & update their latency.
2015-12-04 22:19:47 +01:00
Robin Gareus
ac075560bd
ALSA: allow to measure & set systemic audio latency w/o restart.
...
(MIDI needs a bit more work)
2015-12-04 17:45:49 +01:00
Robin Gareus
990fd75c5f
implement ALSA period/cycle setting
2015-12-04 10:16:19 +01:00
Tim Mayberry
e9be313c11
Fix latency compensation for audio data in portaudio backend
...
For drivers that correctly report latency values(ASIO) this should result a
much closer alignment of audio in a loopback test. Measurement and
adjustment may still be needed, especially for non-ASIO drivers.
Testing with the RME HDSP Multiface and Yamaha AG06 using ASIO drivers results
in maximum offset of a couple of samples.
2015-12-02 10:24:08 +10:00
Tim Mayberry
b4fb1d610b
Use portaudio callback API by default in portaudio backend
2015-12-02 10:24:07 +10:00
Tim Mayberry
5f267f92bf
Rename member variables in Portaudio Backend for consistency
2015-12-02 10:24:07 +10:00
Tim Mayberry
29feb914b9
Rename blocking process function in portaudio backend
2015-12-02 10:24:06 +10:00
Tim Mayberry
3e6b28daca
Rename blocking thread function in portaudio backend
2015-12-02 10:24:05 +10:00
Robin Gareus
73d1de3b75
NOOP, remove trailing whitespace, replace tabs in python scripts
2015-11-29 17:54:31 +01:00
Robin Gareus
5bdab24746
add some midi-debug printf() to the dummy backend
2015-11-28 22:54:00 +01:00
Tim Mayberry
07b2518979
Fix windows build when using pthreads-win32 library
2015-11-19 20:54:38 +10:00
Tim Mayberry
ac301b998a
Use a range of values for ASIO buffer sizes if provided by driver
...
This has been tested on four devices:
- A RME HDSP Multiface
- A Yamaha AG06
- A Focusrite 2i2
- A built-in soundcard running ASIO4ALL
The HDSP and the AG06 only return one buffer size when queried so the preferred
size is used as before.
The Focusrite returns a min corresponding to the position of the slider in the
control dialog and the max is 1024. The granularity is 1 so this means that the
number of values needs to be reduced for the current UI design with a combo
box so the granularity is increased until there are around 8-9 buffer sizes to
choose from evenly spaced between min and max(but we could easily change this
if the UI changes etc).
The ASIO4ALL driver returns a min of 64 and a max of 2048 and a granularity of
8. So where the minimum buffer size and granularity is a power of 2 use only
buffer sizes that are power of 2.
If the driver returns different values for min and max it is not currently
possible to indicate which is the driver preferred value. A checkbox or other
UI element could be added to the AudioSetup dialog to only use the preferred
value but that is more work and perhaps not necessary.
2015-11-19 10:23:26 +10:00
Tim Mayberry
f1b336b01e
Add support for callback API to portaudio backend but keep blocking API as default
...
Don't use the callback API for now until further and wider testing.
2015-11-19 10:23:26 +10:00
Robin Gareus
4b25c80cb9
fix edge-case in Dummy-backend random number generator initialization
2015-11-12 09:49:40 -06:00
Robin Gareus
661ffe7576
fix JACK/windows compilation
2015-10-28 14:11:17 +01:00
Robin Gareus
997f47360d
use weak-jack's jack_port_rename wrapper
...
This avoids "[ERROR]: JACK: jack_port_set_name: deprecated".
if libjack does not have jack_port_rename(), weak_libjack.def provides
a fallback using jack_port_set_name().
2015-10-28 01:21:24 +01:00
Robin Gareus
7c58b4de5f
coreaudio: reset freewheeling after export
...
fixes lively with session-fadeout
2015-10-10 02:42:13 +02:00
Tim Mayberry
5fd4ee3ef1
Fix handling of Sysex messages with WinMME midi driver
2015-10-07 21:48:56 +10:00
Paul Davis
2af78143c1
more debugging for MIDI input via WinMME
2015-10-06 12:42:01 -04:00
Paul Davis
89156be67a
add more debugging to portaudio/MME MIDI backend
2015-10-06 11:01:58 -04:00
Tim Mayberry
4ebc6ef0b4
Fix WinMME midi driver shutdown with sysex enabled
...
midiInReset triggers the sysex callback to tell the application that it has
finished with the buffer. Calling midiInAddBuffer results in an infinite loop
so just return during shutdown.
2015-10-06 13:29:57 +10:00