Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Remove the MIDI code | Chris Robinson | 2015-10-20 | 1 | -934/+0 |
| | | | | | | | The extension's not going anywhere, and it can't do anything fluidsynth can't. The code maintenance and bloat is not worth keeping around, and ideally the AL API would be able to facilitate MIDI-like behavior anyway (envelopes, start-at- time, etc). | ||||
* | Use NEW_OBJ in a few more places | Chris Robinson | 2015-10-20 | 1 | -3/+1 |
| | |||||
* | Allow for device-specific config values | Chris Robinson | 2015-08-28 | 1 | -1/+1 |
| | |||||
* | Properly handle a mono output buffer with the MIDI synths | Chris Robinson | 2015-02-09 | 1 | -6/+8 |
| | |||||
* | Avoid unnecessary uses of ExchangeInt/Ptr | Chris Robinson | 2015-02-04 | 1 | -2/+4 |
| | |||||
* | 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. | ||||
* | 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 |
| | |||||
* | 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 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 |
| | |||||
* | Set the 'valid' field when we have a valid buffer pointer | Chris Robinson | 2014-07-04 | 1 | -3/+1 |
| | |||||
* | Load soundfont samples into an ALbuffer | Chris Robinson | 2014-06-29 | 1 | -2/+2 |
| | | | | | 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. | ||||
* | Remove setState from the MidiSynth vtable | Chris Robinson | 2014-03-23 | 1 | -6/+0 |
| | |||||
* | Use a void* for the MidiSynth Delete method param | Chris Robinson | 2014-03-22 | 1 | -8/+3 |
| | |||||
* | Slightly shorten a long line | Chris Robinson | 2014-02-02 | 1 | -1/+1 |
| | |||||
* | Rework MIDI clock timing | Chris Robinson | 2014-02-02 | 1 | -41/+31 |
| | | | | | | 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. | ||||
* | Rename aftertouch to keypressure | Chris Robinson | 2014-01-17 | 1 | -2/+2 |
| | |||||
* | Add a config option to specify the extra MIDI volume scaling | Chris Robinson | 2014-01-17 | 1 | -3/+17 |
| | | | | The value specified is in decibels. | ||||
* | Use a proper struct for envelope properties | Chris Robinson | 2014-01-17 | 1 | -2/+2 |
| | |||||
* | Handle fontsound sample types using explicit enum values | Chris Robinson | 2014-01-15 | 1 | -1/+12 |
| | | | | | | Uses AL_MONO_SOFT, AL_RIGHT_SOFT, and AL_LEFT_SOFT. "Linked" samples types aren't explicitly supported due to being under-defined in the SF2 spec, nor are ROM samples currently. | ||||
* | Use ALfontsound_setPropi to set fontsound sample properties | Chris Robinson | 2014-01-15 | 1 | -1/+12 |
| | | | | And make sure the loop mode is properly translated for FluidSynth. | ||||
* | Don't reset presets when loading/unloading soundfonts | Chris Robinson | 2014-01-13 | 1 | -2/+2 |
| | |||||
* | Use FluidSynth enums when handling generators | Chris Robinson | 2014-01-13 | 1 | -74/+78 |
| | |||||
* | Load soundfont modulators into FluidSynth | Chris Robinson | 2014-01-06 | 1 | -1/+101 |
| | |||||
* | Allow selecting the default soundfont using ID 0 | Chris Robinson | 2014-01-03 | 1 | -5/+5 |
| | |||||
* | Force all FluidSynth sounds off when changing soundfonts | Chris Robinson | 2013-12-31 | 1 | -1/+6 |
| | | | | | | | Selecting soundfonts should only happen when the MIDI engine is stopped or reset. When stopped some notes may be left in a release phase, but we need to ensure all fluid_sample_t objects are finished before unloading since the soundfont (and associated sample memory) may be deleted at any time afterward. | ||||
* | Remove some unused MIDI backend methods | Chris Robinson | 2013-12-29 | 1 | -42/+0 |
| | |||||
* | Don't destroy the fluid_sfont_t if any of its samples are still playing | Chris Robinson | 2013-12-29 | 1 | -0/+20 |
| | | | | | FluidSynth apparently doesn't check for this itself before calling the free callback. | ||||
* | Add the last remaining "real-time" properties | Chris Robinson | 2013-12-29 | 1 | -0/+6 |
| | |||||
* | Add chorus and reverb send properties | Chris Robinson | 2013-12-29 | 1 | -0/+2 |
| | |||||
* | Check for negative soundfont indices getting passed to the loader | Chris Robinson | 2013-12-29 | 1 | -1/+1 |
| | |||||
* | Add pan and attenuation properties | Chris Robinson | 2013-12-29 | 1 | -0/+2 |
| | |||||
* | Add tuning properties | Chris Robinson | 2013-12-29 | 1 | -0/+3 |
| | |||||
* | Add filter properties | Chris Robinson | 2013-12-29 | 1 | -0/+4 |
| | |||||
* | Add modulation envelope properties | Chris Robinson | 2013-12-29 | 1 | -0/+8 |
| | |||||
* | Add a few more pitch properties | Chris Robinson | 2013-12-29 | 1 | -0/+3 |
| | |||||
* | Add volume envelope properties | Chris Robinson | 2013-12-29 | 1 | -0/+8 |
| | |||||
* | Add support for the fontsound loop mode | Chris Robinson | 2013-12-29 | 1 | -1/+1 |
| | |||||
* | Allow loading multiple soundfonts with FluidSynth | Chris Robinson | 2013-12-27 | 1 | -21/+50 |
| | |||||
* | Create a custom fluid_sfloader_t loader | Chris Robinson | 2013-12-27 | 1 | -4/+299 |
| | | | | | | | This allows us to load and use soundfont objects the app specifies (the first one, at least), rather than having to load from a file. It doesn't sound that good since modulators and most generators aren't yet available, but this will steadily improve. | ||||
* | Add a method to set and get soundfonts | Chris Robinson | 2013-12-27 | 1 | -0/+1 |
| | | | | | The main purpose of this is to select soundfonts for playback, eventually, instead of the existing method that takes a filename. | ||||
* | Fix compiling without FluidSynth | Chris Robinson | 2013-12-19 | 1 | -5/+4 |
| | |||||
* | Move the base MidiSynth to a separate file | Chris Robinson | 2013-12-17 | 1 | -1/+2 |
| | |||||
* | Move FluidSynth to its own file | Chris Robinson | 2013-12-17 | 1 | -0/+359 |