Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Fix variable check | Chris Robinson | 2015-01-20 | 1 | -1/+1 |
| | |||||
* | Use a different method for HRTF mixing | Chris Robinson | 2014-11-22 | 1 | -4/+4 |
| | | | | | | | | | | | | | | | | | | | | | | | This new method mixes sources normally into a 14-channel buffer with the channels placed all around the listener. HRTF is then applied to the channels given their positions and written to a 2-channel buffer, which gets written out to the device. This method has the benefit that HRTF processing becomes more scalable. The costly HRTF filters are applied to the 14-channel buffer after the mix is done, turning it into a post-process with a fixed overhead. Mixing sources is done with normal non-HRTF methods, so increasing the number of playing sources only incurs normal mixing costs. Another benefit is that it improves B-Format playback since the soundfield gets mixed into speakers covering all three dimensions, which then get filtered based on their locations. The main downside to this is that the spatial resolution of the HRTF dataset does not play a big role anymore. However, the hope is that with ambisonics- based panning, the perceptual position of panned sounds will still be good. It is also an option to increase the number of virtual channels for systems that can handle it, or maybe even decrease it for weaker systems. | ||||
* | Use SZFMT for printing size_t | Chris Robinson | 2014-11-06 | 1 | -4/+4 |
| | |||||
* | Use %zu (C99) for printing size_t | Chris Robinson | 2014-10-30 | 1 | -4/+4 |
| | |||||
* | Use more appropriate size types | Chris Robinson | 2014-10-13 | 1 | -5/+5 |
| | |||||
* | Use VECTOR_FIND_IF instead of manual loops | Chris Robinson | 2014-09-30 | 1 | -42/+38 |
| | |||||
* | Use size_t for the vector size and capacity | Chris Robinson | 2014-09-30 | 1 | -4/+4 |
| | |||||
* | Make the fontsound's buffer and link fields atomic | Chris Robinson | 2014-09-03 | 1 | -2/+4 |
| | |||||
* | Make the DYNLOAD LoadFSynth function non-inline | Chris Robinson | 2014-08-05 | 1 | -1/+1 |
| | |||||
* | Load fluidsynth dynamically when possible | Chris Robinson | 2014-08-05 | 1 | -2/+107 |
| | |||||
* | Use the UNUSED macro instead of a void cast | Chris Robinson | 2014-07-19 | 1 | -2/+1 |
| | |||||
* | Stop trying to read samples if there was an error | Chris Robinson | 2014-07-19 | 1 | -1/+1 |
| | |||||
* | Trace when a soundfont buffer goes unused | Chris Robinson | 2014-07-19 | 1 | -0/+3 |
| | |||||
* | Keep existing presets when loading in a new soundfont | Chris Robinson | 2014-07-19 | 1 | -3/+5 |
| | | | | | | Note that alLoadSoundfontSOFT doesn't currently allow using a soundfont with existing presets. This is for being able to load and stack multiple soundfonts for the default soundfont. | ||||
* | Use a macro to specify the fourcc formatters | Chris Robinson | 2014-07-18 | 1 | -21/+22 |
| | |||||
* | Rename some functions | Chris Robinson | 2014-07-06 | 1 | -8/+8 |
| | |||||
* | Store 4 modulators per map entry | Chris Robinson | 2014-07-06 | 1 | -16/+17 |
| | |||||
* | Don't require pre-declaring vector types | Chris Robinson | 2014-07-06 | 1 | -5/+2 |
| | |||||
* | Don't set modulators that have no destination | Chris Robinson | 2014-07-05 | 1 | -8/+10 |
| | |||||
* | Fix a couple checks | Chris Robinson | 2014-07-05 | 1 | -2/+2 |
| | |||||
* | Use a helper function to check valid MIDI controller inputs | Chris Robinson | 2014-07-04 | 2 | -5/+4 |
| | |||||
* | Set the 'valid' field when we have a valid buffer pointer | Chris Robinson | 2014-07-04 | 1 | -3/+1 |
| | |||||
* | Move an inline definition to a more appropriate source | Chris Robinson | 2014-07-04 | 2 | -2/+3 |
| | |||||
* | Fix preset zone instrument header check | Chris Robinson | 2014-07-01 | 1 | -2/+2 |
| | |||||
* | Print SF2 text INFO chunks | Chris Robinson | 2014-07-01 | 2 | -51/+94 |
| | |||||
* | Warn about all unhandled soundfont generators | Chris Robinson | 2014-06-30 | 1 | -4/+4 |
| | |||||
* | Check the last preset and instrument properties within the loop | Chris Robinson | 2014-06-30 | 1 | -46/+10 |
| | |||||
* | Standardize some New/Delete methods | Chris Robinson | 2014-06-30 | 1 | -3/+3 |
| | |||||
* | Load soundfont samples into an ALbuffer | Chris Robinson | 2014-06-29 | 2 | -8/+21 |
| | | | | | Also remove ALsoundfont's now-unneeded sample storage functions and struct fields. | ||||
* | Store and use an ALbuffer for samples in an ALfontsound | Chris Robinson | 2014-06-29 | 1 | -3/+5 |
| | | | | | | | | The fontsound still maintains its own start, end, and loop offsets, so that the same buffer may be shared between multiple/all fontsounds. Ideally a single buffer should be used for all fontsounds to avoid memory fragmentation and help CPU caching, although higher quality soundfonts may need more memory than a single buffer can hold. | ||||
* | Add a cast to silence an MSVC warning | Chris Robinson | 2014-05-04 | 1 | -2/+3 |
| | |||||
* | Trace skipped info sub-chunks | Chris Robinson | 2014-05-04 | 1 | -0/+2 |
| | |||||
* | Use ALuint for the amount to skip | Chris Robinson | 2014-05-04 | 1 | -1/+1 |
| | |||||
* | Add a GCC-specific STATIC_UPCAST macro that checks the object type | Chris Robinson | 2014-04-19 | 1 | -1/+1 |
| | | | | | The check is compile time, and is functionally identical to the old/alternate version. | ||||
* | Add a VECTOR_INSERT method to insert a range of elements at once | Chris Robinson | 2014-04-09 | 1 | -10/+6 |
| | |||||
* | Fix a NULL deref when cloning a 0-sized vector | Chris Robinson | 2014-04-09 | 1 | -6/+11 |
| | |||||
* | Remove setState from the MidiSynth vtable | Chris Robinson | 2014-03-23 | 4 | -11/+0 |
| | |||||
* | Add some integer casts, and a range check | Chris Robinson | 2014-03-23 | 1 | -1/+1 |
| | |||||
* | Add a stub 'soft' MIDI synth handler | Chris Robinson | 2014-03-22 | 2 | -0/+143 |
| | | | | | Eventually this one will be used to handle MIDI internally, using our own mixers and resamplers. | ||||
* | Use a void* for the MidiSynth Delete method param | Chris Robinson | 2014-03-22 | 3 | -18/+9 |
| | |||||
* | Avoid a size_t-to-ALuint conversion warning | Chris Robinson | 2014-03-21 | 1 | -1/+1 |
| | |||||
* | Increase the vector reserve as needed when pushing in new items | Chris Robinson | 2014-03-21 | 1 | -19/+8 |
| | |||||
* | Rename the vector's Max field to Capacity | Chris Robinson | 2014-03-21 | 1 | -8/+8 |
| | |||||
* | Use vectors for the GenModList | Chris Robinson | 2014-03-21 | 1 | -166/+98 |
| | |||||
* | Add an explicit cast to make Windows happy | Chris Robinson | 2014-02-26 | 1 | -2/+2 |
| | |||||
* | Slightly shorten a long line | Chris Robinson | 2014-02-02 | 1 | -1/+1 |
| | |||||
* | Rework MIDI clock timing | Chris Robinson | 2014-02-02 | 4 | -123/+62 |
| | | | | | | It's best to avoid using doubles in the mixer since the FPU's set to single- precision mode. The new clock timing is similar to the device clock timing, and should hopefully be less prone to drift caused by fp rounding errors. | ||||
* | Use nanosecond resolution for MIDI | Chris Robinson | 2014-02-01 | 1 | -2/+2 |
| | | | | | This makes the MIDI clock use the same resolution as the device clock and source latency and the device clock. | ||||
* | Properly fill the SF2 sample buffer on big endian | Chris Robinson | 2014-02-01 | 1 | -1/+1 |
| | |||||
* | Fix an infinite loop when loading SF2 samples on big endian machines | Chris Robinson | 2014-02-01 | 1 | -2/+5 |
| |