Chris Robinson
307ac564ca
Allow specifying some fontsound sample properties
2013-12-26 23:37:22 -08:00
Chris Robinson
cc30c5754f
Remove the generator list
2013-12-26 22:10:41 -08:00
Chris Robinson
d5f687b2fa
Allow specifying key and velocity ranges on fontsounds
2013-12-26 21:45:16 -08:00
Chris Robinson
35f9e35aa3
Add methods to set and get sounds on a preset
2013-12-25 22:39:38 -08:00
Chris Robinson
b5ae424dbd
Store a list of sounds in the preset
2013-12-25 19:50:46 -08:00
Chris Robinson
677b864565
Remove the zone, sample, and instrument object types
2013-12-25 19:35:43 -08:00
Chris Robinson
b650ecbc23
Add methods to add generators and modulators to fontsounds
2013-12-25 19:23:34 -08:00
Chris Robinson
94ddc5cb18
Add a new fontsound object type
...
This is basically a combined preset and intrument zone with sample header.
2013-12-25 19:13:59 -08:00
Chris Robinson
cb3f82a4bf
Do not allow deleting preset or instrument ID 0
2013-12-24 21:23:51 -08:00
Chris Robinson
f7556b827a
Allow querying the soundfont sample length and format type
2013-12-24 02:55:11 -08:00
Chris Robinson
b0878fe609
Do not accept preset or instrument ID 0 as valid
2013-12-23 23:42:21 -08:00
Chris Robinson
c911ca89a3
Unlock the soundfont earlier after switching preset lists
2013-12-23 23:31:47 -08:00
Chris Robinson
a43b296c60
Add methods to get and set presets on a soundfont
2013-12-23 04:07:53 -08:00
Chris Robinson
d7de86966d
Add methods to get and set a preset object's preset and bank numbers
2013-12-23 03:23:42 -08:00
Chris Robinson
ede3c20880
Free thunk entry in the object destructor
2013-12-20 01:04:38 -08:00
Chris Robinson
5dc3f3626d
Better protect against improper alSoundfontSamplesSOFT calls
2013-12-20 00:50:43 -08:00
Chris Robinson
1bd828603e
Add functions to set a soundfont's sample data
2013-12-19 04:19:03 -08:00
Chris Robinson
99933fac49
Allow creating instrument objects
2013-12-19 00:57:07 -08:00
Chris Robinson
57491bf14c
Call the right delete method when generating presets fails
2013-12-19 00:56:12 -08:00
Chris Robinson
666acb314b
Rename some ALsoundfont fields
2013-12-19 00:37:56 -08:00
Chris Robinson
4288d3cd01
Move the soundfont and preset extension functions to separate sources
2013-12-19 00:27:11 -08:00
Chris Robinson
1b5c3495c9
Add methods to create and destroy presets
2013-12-19 00:09:55 -08:00
Chris Robinson
1e536cf7ca
Properly initialize and cleanup the soundfont map
2013-12-18 23:21:59 -08:00
Chris Robinson
73fc4592ab
Make alIsSoundfontSOFT check soundfont IDs
2013-12-18 23:12:44 -08:00
Chris Robinson
8083fb5be7
Add a new ALsoundfont object type
...
Includes a basic hierarchy for presets, instruments, samples, zones,
generators, and modulators.
2013-12-18 22:51:53 -08:00
Chris Robinson
b9468dc917
Fix header guard and remove duplicate code
2013-12-18 19:17:03 -08:00
Chris Robinson
0653680690
Move the base MidiSynth to a separate file
2013-12-17 23:03:34 -08:00
Chris Robinson
0095a59fc9
Move the dummy MIDI handler to a separate file
2013-12-17 22:43:10 -08:00
Chris Robinson
ee92b3142d
Move FluidSynth to its own file
2013-12-17 22:36:25 -08:00
Chris Robinson
ef0341c180
Make MidiSynth's methods non-static
2013-12-17 21:56:28 -08:00
Chris Robinson
189d73dd87
Render some MIDI samples even when stopped
...
Because stopping MIDI playback puts any playing notes into release phase, they
should be rendered. Ideally it could stop rendering once output goes silent.
2013-12-15 21:03:23 -08:00
Chris Robinson
f244ef6f82
Use macros for MIDI controller values
2013-12-15 20:15:30 -08:00
Chris Robinson
bcc2b9a490
Don't explicitly set reverb or chorus
2013-12-13 16:14:50 -08:00
Chris Robinson
1dd05bac5c
Add a alMidiResetSOFT method to reset the synth
...
Playback is stopped, the queue is flushed, the clock is reset to 0, and the
MIDI system is reset to power-up status.
2013-12-13 14:15:01 -08:00
Chris Robinson
a343d78724
Update behavior for alMidiStopSOFT
...
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.
2013-12-13 13:40:53 -08:00
Chris Robinson
57eef756c3
Fix retrieving source properties
2013-12-09 13:04:16 -08:00
Chris Robinson
5349b90a48
Fix leak if inserting a sysex event fails
2013-12-08 06:20:44 -08:00
Chris Robinson
3f5914e094
Simplify dummy synth processing loop
2013-12-01 01:03:55 -08:00
Chris Robinson
517be463ae
Minor comment update
2013-12-01 00:31:39 -08:00
Chris Robinson
dc13ce7a0a
Use a method to get the default soundfont filename
2013-12-01 00:22:20 -08:00
Chris Robinson
c834713526
Add methods to set and get the MIDI gain
2013-11-30 23:47:42 -08:00
Chris Robinson
2633fbfc4b
Add a method to check if a file is a soundfont
2013-11-30 20:37:37 -08:00
Chris Robinson
e0babed29b
Add a workaround for allowing GM2 bank selection with a GM2 On SysEx
2013-11-29 23:57:32 -08:00
Chris Robinson
be446366fb
Add a method to specifying MIDI SysEx messages
2013-11-29 05:37:45 -08:00
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