aboutsummaryrefslogtreecommitdiffstats
path: root/OpenAL32/alMidi.c
Commit message (Collapse)AuthorAgeFilesLines
* Allow selecting the default soundfont using ID 0Chris Robinson2014-01-031-1/+1
|
* Move alLoadSoundfontSOFT to alSoundfont.cChris Robinson2014-01-021-42/+0
|
* Don't allow soundfonts with existing presets in alLoadSoundfontSOFTChris Robinson2014-01-011-0/+5
|
* Pass the ALsoundfont object to loadSf2, rather than its IDChris Robinson2014-01-011-1/+28
|
* Remove explicit locking from alMidiSoundfontvSOFT.Chris Robinson2013-12-291-2/+0
| | | | The MIDI backend can lock as it needs.
* Update soundfont selection functionsChris Robinson2013-12-291-25/+3
| | | | | A filename is no longer specified, and alMidiSoundfontsSOFT is renamed to alMidiSoundfontvSOFT.
* Lock the device while selecting soundfontsChris Robinson2013-12-291-0/+2
|
* Add alLoadSoundfontSOFT to load a soundfont via callbackChris Robinson2013-12-281-0/+10
| | | | | | | | | | | | | | | | | | | | | 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.
* Add a method to set and get soundfontsChris Robinson2013-12-271-0/+32
| | | | | The main purpose of this is to select soundfonts for playback, eventually, instead of the existing method that takes a filename.
* Move the soundfont and preset extension functions to separate sourcesChris Robinson2013-12-191-253/+0
|
* Add methods to create and destroy presetsChris Robinson2013-12-191-0/+125
|
* Properly initialize and cleanup the soundfont mapChris Robinson2013-12-181-0/+21
|
* Make alIsSoundfontSOFT check soundfont IDsChris Robinson2013-12-181-5/+4
|
* Add a new ALsoundfont object typeChris Robinson2013-12-181-0/+93
| | | | | Includes a basic hierarchy for presets, instruments, samples, zones, generators, and modulators.
* Move the base MidiSynth to a separate fileChris Robinson2013-12-171-231/+1
|
* Move the dummy MIDI handler to a separate fileChris Robinson2013-12-171-118/+0
|
* Move FluidSynth to its own fileChris Robinson2013-12-171-334/+13
|
* Make MidiSynth's methods non-staticChris Robinson2013-12-171-50/+13
|
* 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-131-7/+25
| | | | | 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-131-3/+41
| | | | | | | | | 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 leak if inserting a sysex event failsChris Robinson2013-12-081-5/+7
|
* Simplify dummy synth processing loopChris Robinson2013-12-011-27/+15
|
* Minor comment updateChris Robinson2013-12-011-1/+1
|
* Use a method to get the default soundfont filenameChris Robinson2013-12-011-17/+19
|
* Add methods to set and get the MIDI gainChris Robinson2013-11-301-0/+41
|
* Add a method to check if a file is a soundfontChris Robinson2013-11-301-15/+84
|
* Add a workaround for allowing GM2 bank selection with a GM2 On SysExChris Robinson2013-11-291-1/+34
|
* Add a method to specifying MIDI SysEx messagesChris Robinson2013-11-291-0/+57
|
* Add infrastructure for handling SysEx MIDI eventsChris Robinson2013-11-291-21/+37
|
* Don't force MMA bank selection modeChris Robinson2013-11-291-1/+0
|
* Combine duplicate soundfont loading codeChris Robinson2013-11-281-15/+11
|
* Remove an unneeded MidiSynth fieldChris Robinson2013-11-281-10/+7
|
* Add a method to stop MIDI playbackChris Robinson2013-11-281-0/+50
| | | | | Unlike pausing, this resets the MIDI clock time to 0, clears the existing event queue, stops all MIDI sounds, and resets MIDI controllers.
* Move MidiSynth locking out of the setState methodChris Robinson2013-11-281-11/+11
|
* Fix building without FluidSynthChris Robinson2013-11-281-18/+20
|
* Add a config option for specifying the default MIDI soundfontChris Robinson2013-11-281-2/+2
|
* Be a bit safer with MIDI state changesChris Robinson2013-11-281-30/+24
|
* Add a method to load a soundfontChris Robinson2013-11-281-7/+67
|
* Add an option for FLuidSynth to handle MIDIChris Robinson2013-11-281-5/+237
|
* Start a MIDI interface extensionChris Robinson2013-11-281-0/+61
|
* Cleanups for MidiSynthChris Robinson2013-11-271-8/+3
| | | | | Remove an unneeded field, make MidiSynth_getTime public, and properly return a 64-bit time from it.
* Add a MidiSynth interface for devicesChris Robinson2013-11-271-0/+96
|
* Add a base MidiSynth structChris Robinson2013-11-271-0/+97
|
* Add a MIDI event queueChris Robinson2013-11-271-0/+84
In preparation for a MIDI extension.