Chris Robinson
ea1d7d56d3
Add infrastructure for handling SysEx MIDI events
2013-11-29 04:56:33 -08:00
Chris Robinson
82d4e69da1
Don't force MMA bank selection mode
2013-11-29 00:42:27 -08:00
Chris Robinson
f4cf84e72d
Combine duplicate soundfont loading code
2013-11-28 05:30:48 -08:00
Chris Robinson
8615a109ce
Remove an unneeded MidiSynth field
2013-11-28 05:06:40 -08:00
Chris Robinson
f8c68291d3
Add a method to stop MIDI playback
...
Unlike pausing, this resets the MIDI clock time to 0, clears the existing event
queue, stops all MIDI sounds, and resets MIDI controllers.
2013-11-28 04:52:53 -08:00
Chris Robinson
29a4ac329a
Move MidiSynth locking out of the setState method
2013-11-28 04:29:38 -08:00
Chris Robinson
5dad1688d4
Fix building without FluidSynth
2013-11-28 04:21:39 -08:00
Chris Robinson
98b0a3187e
Add a config option for specifying the default MIDI soundfont
2013-11-28 04:16:46 -08:00
Chris Robinson
7794e53667
Be a bit safer with MIDI state changes
2013-11-28 03:57:45 -08:00
Chris Robinson
bb0207d784
Add a method to load a soundfont
2013-11-28 03:38:17 -08:00
Chris Robinson
a3c76c3274
Add an option for FLuidSynth to handle MIDI
2013-11-28 03:08:28 -08:00
Chris Robinson
a48f362d28
Start a MIDI interface extension
2013-11-28 01:53:05 -08:00
Chris Robinson
489723723c
Cleanups for MidiSynth
...
Remove an unneeded field, make MidiSynth_getTime public, and properly return a
64-bit time from it.
2013-11-27 19:41:52 -08:00
Chris Robinson
182b08d8bc
Create and use a MidiSynth on playback devices
2013-11-27 18:52:56 -08:00
Chris Robinson
5554b8cfc9
Add a MidiSynth interface for devices
2013-11-27 18:45:02 -08:00
Chris Robinson
3a1613253b
Add a base MidiSynth struct
2013-11-27 05:12:11 -08:00
Chris Robinson
6a76f50fa3
Ensure UINT64_MAX is defined
2013-11-27 05:09:33 -08:00
Chris Robinson
37fa82f138
Use a 64-bit uint for MIDI event times
2013-11-27 04:33:33 -08:00
Chris Robinson
d315feae40
Add a MIDI event queue
...
In preparation for a MIDI extension.
2013-11-27 03:49:26 -08:00
Chris Robinson
08dfbcfd5c
Add min/max/clamp methods for doubles
2013-11-27 00:30:13 -08:00
Chris Robinson
d339120145
Move ALfloatBUFFERSIZE to a common location
2013-11-27 00:16:30 -08:00
Chris Robinson
80ea801204
Add a macro for GCC to ensure stack alignment
2013-11-25 17:29:39 -08:00
Chris Robinson
191e8172f0
Use a macro to help condense some repeated code
2013-11-24 18:11:45 -08:00
Chris Robinson
b029b77784
Add some missing 'static's
2013-11-24 17:43:20 -08:00
Chris Robinson
4830b1afe7
Try to make sure GCC is providing C99 inline semantics
2013-11-24 17:37:48 -08:00
Chris Robinson
25b9c3d0c1
Apply HRTF coefficient stepping separately
2013-11-10 05:52:22 -08:00
Chris Robinson
4386ee32ce
Use one long buffer for the chorus and flanger delay lines
2013-11-10 02:48:03 -08:00
Chris Robinson
a603dd55ff
Rename lfo_coeff to lfo_scale
2013-11-08 16:54:45 -08:00
Chris Robinson
9228d13333
Use integer modulo for chorus and flanger
...
Also simplify LFO coefficient calculations.
2013-11-08 16:33:42 -08:00
Chris Robinson
bca959f372
Only use the inner loop for the chorus/flanger template method
2013-11-08 05:26:43 -08:00
Chris Robinson
d6eff654be
Redo the autowah effect
...
It's now a low-pass filter with a cutoff that varies according to the input
signal amplitude.
There remains issues with apparent feedback in the resonant frequency with high
resonance values. The actual cutoff range for the filter is also a guess.
2013-11-07 17:46:14 -08:00
Chris Robinson
e0fecdcaaa
Reimplement the compressor to work per-sample
2013-11-06 23:39:41 -08:00
Chris Robinson
414a9edc6e
Explicitly define _POSIX_C_SOURCE and _XOPEN_SOURCE
...
Set them to 200809L and 700 respectively, instead of assuming _GNU_SOURCE will
do it.
2013-11-06 01:41:12 -08:00
Chris Robinson
b84f6d100f
Set -D_GNU_SOURCE=1 earlier
2013-11-05 22:49:16 -08:00
Chris Robinson
801b7cb059
Include strings.h when available
2013-11-05 13:07:46 -08:00
Chris Robinson
10dbb1bc9b
Remove the Lock and Unlock methods from BackendFuncs
...
All backends that still use the old interface use the default locking methods,
which is also used by the ALCbackend base.
2013-11-04 23:34:18 -08:00
Chris Robinson
ca83629e4e
Forward some wrapper functions to the base method
2013-11-04 23:19:30 -08:00
Chris Robinson
5874e387a8
Move some inline methods to their appropriate headers
2013-11-04 13:51:19 -08:00
Chris Robinson
d3c70e63b4
Use C99 inline in more places
2013-11-04 13:44:46 -08:00
Chris Robinson
551f893ae9
Use C99 inline semantics
2013-11-04 12:12:31 -08:00
Chris Robinson
692ab1085d
Only set device functions when needed
2013-11-04 10:52:03 -08:00
Chris Robinson
94aeb5f52e
Use a unique backend type for loopback
2013-11-04 10:51:22 -08:00
Chris Robinson
9760a592b2
Rename VCALL and VCALL0 to V and V0
2013-11-02 17:30:28 -07:00
Chris Robinson
f868d881d9
Constify some function pointers
2013-11-02 16:58:26 -07:00
Chris Robinson
3d921e0e6f
Make backend factory methods static as needed
2013-11-02 16:35:05 -07:00
Chris Robinson
a1a3f51be2
Convert the OSS backend to the new interface
2013-11-02 15:42:45 -07:00
Chris Robinson
c851e2c611
Set vtables in the constructor
2013-11-02 13:23:20 -07:00
Chris Robinson
ddf521eddc
Make LockContext and UnlockContext inline again
2013-11-02 12:05:02 -07:00
Chris Robinson
7142e3828f
Rename alcGetLatency to ALCdevice_GetLatency
2013-11-02 12:01:58 -07:00
Chris Robinson
426429279b
Use the existing ALint64SOFT/ALuint64SOFT types for ALint64/ALuint64
2013-11-01 16:49:05 -07:00