aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Add support for the fontsound loop modeChris Robinson2013-12-296-4/+24
|
* Ensure the soundfont version is 2.xChris Robinson2013-12-281-2/+28
|
* Add alLoadSoundfontSOFT to load a soundfont via callbackChris Robinson2013-12-286-0/+1309
| | | | | | | | | | | | | | | | | | | | | Some hefty caveats: This function is not thread-safe. In particular, the current context affecting the thread must not be changed, and the provided soundfont must not be altered while the function is executing. Ideally, this will be fixed. Error handling is poor. Some RIFF structure errors may not be caught (e.g. sub- chunks with sizes greater than the parent chunk allows for), and generated AL errors are ignored, possibly leading to resource leaks in certain situations. These should be fixed in time. There is minimal error checking on the provided soundfont ID. It does not ensure a valid ID has been provided, nor does it ensure the provided soundfont can be modified. These short-comings should be fixed eventually. Proper cleanup is the responsibility of the caller. The caller must get the preset objects from the soundfont before deleting it, and the fontsound objects from each preset before deleting them, to make sure all resources are properly deleted.
* Allow loading multiple soundfonts with FluidSynthChris Robinson2013-12-271-21/+50
|
* Create a custom fluid_sfloader_t loaderChris Robinson2013-12-271-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 soundfontsChris Robinson2013-12-278-8/+145
| | | | | The main purpose of this is to select soundfonts for playback, eventually, instead of the existing method that takes a filename.
* Allow specifying all 4 sample typesChris Robinson2013-12-271-1/+1
| | | | ROM-based types will be specified with a separate property
* Allow specifying some fontsound sample propertiesChris Robinson2013-12-262-1/+113
|
* Remove the generator listChris Robinson2013-12-262-63/+16
|
* Allow specifying key and velocity ranges on fontsoundsChris Robinson2013-12-263-0/+140
|
* Add methods to set and get sounds on a presetChris Robinson2013-12-253-0/+67
|
* Store a list of sounds in the presetChris Robinson2013-12-252-0/+11
|
* Remove the zone, sample, and instrument object typesChris Robinson2013-12-256-413/+0
|
* Add methods to add generators and modulators to fontsoundsChris Robinson2013-12-252-0/+73
|
* Add a new fontsound object typeChris Robinson2013-12-256-0/+245
| | | | This is basically a combined preset and intrument zone with sample header.
* Do not allow deleting preset or instrument ID 0Chris Robinson2013-12-242-6/+0
|
* Allow querying the soundfont sample length and format typeChris Robinson2013-12-242-0/+9
|
* Do not accept preset or instrument ID 0 as validChris Robinson2013-12-232-4/+2
|
* Unlock the soundfont earlier after switching preset listsChris Robinson2013-12-231-2/+1
|
* Add methods to get and set presets on a soundfontChris Robinson2013-12-233-2/+103
|
* Add methods to get and set a preset object's preset and bank numbersChris Robinson2013-12-235-2/+117
|
* Make sure key and velocity ranges are the first two generatorsChris Robinson2013-12-211-0/+28
|
* Free thunk entry in the object destructorChris Robinson2013-12-204-9/+4
|
* Better protect against improper alSoundfontSamplesSOFT callsChris Robinson2013-12-203-9/+22
|
* Use a different autowah filter rangeChris Robinson2013-12-201-1/+1
| | | | Still just guesses, but this seems to avoid math problems with low peak gains.
* Add functions to set a soundfont's sample dataChris Robinson2013-12-195-1/+94
|
* Fix compiling without FluidSynthChris Robinson2013-12-191-5/+4
|
* Allow creating instrument objectsChris Robinson2013-12-195-0/+172
|
* Call the right delete method when generating presets failsChris Robinson2013-12-191-2/+2
|
* Rename some ALsoundfont fieldsChris Robinson2013-12-192-7/+7
|
* Move the soundfont and preset extension functions to separate sourcesChris Robinson2013-12-194-253/+284
|
* Add methods to create and destroy presetsChris Robinson2013-12-194-0/+155
|
* Properly initialize and cleanup the soundfont mapChris Robinson2013-12-183-0/+33
|
* Make alIsSoundfontSOFT check soundfont IDsChris Robinson2013-12-182-7/+6
|
* Add a new ALsoundfont object typeChris Robinson2013-12-185-66/+485
| | | | | Includes a basic hierarchy for presets, instruments, samples, zones, generators, and modulators.
* Fix header guard and remove duplicate codeChris Robinson2013-12-182-101/+3
|
* Add an option to use the HRTF time delay measured from the datasetChris Robinson2013-12-181-13/+82
|
* Move the base MidiSynth to a separate fileChris Robinson2013-12-179-236/+364
|
* Move the dummy MIDI handler to a separate fileChris Robinson2013-12-174-118/+134
|
* Move FluidSynth to its own fileChris Robinson2013-12-174-335/+380
|
* Make MidiSynth's methods non-staticChris Robinson2013-12-172-51/+33
|
* Update the midi soundfont config optionChris Robinson2013-12-161-2/+2
|
* Render some MIDI samples even when stoppedChris Robinson2013-12-151-3/+4
| | | | | Because stopping MIDI playback puts any playing notes into release phase, they should be rendered. Ideally it could stop rendering once output goes silent.
* Use macros for MIDI controller valuesChris Robinson2013-12-151-3/+9
|
* Don't explicitly set reverb or chorusChris Robinson2013-12-131-2/+0
|
* Add a alMidiResetSOFT method to reset the synthChris Robinson2013-12-133-7/+28
| | | | | Playback is stopped, the queue is flushed, the clock is reset to 0, and the MIDI system is reset to power-up status.
* Update behavior for alMidiStopSOFTChris Robinson2013-12-132-3/+44
| | | | | | | | | alMidiStopSOFT now has the following behavior: * All pending MIDI events up to the current time are processed first, before the queue is flushed. * All channels then receive an All Notes Off event so that notes go through their release phase. Controllers are *NOT* reset. * Clock time is reset to 0, like before.
* Fix retrieving source propertiesChris Robinson2013-12-091-6/+6
|
* Fix leak if inserting a sysex event failsChris Robinson2013-12-081-5/+7
|
* Fix numeric constant type (double->float)Chris Robinson2013-12-081-2/+2
|