mirror of
https://github.com/ZDoom/fluidsynth.git
synced 2024-11-10 06:51:54 +00:00
Merge branch '2.1.x' into master
This commit is contained in:
commit
d73135fc48
3 changed files with 12 additions and 9 deletions
|
@ -29,7 +29,7 @@ set ( PACKAGE "fluidsynth" )
|
||||||
# FluidSynth package version
|
# FluidSynth package version
|
||||||
set ( FLUIDSYNTH_VERSION_MAJOR 2 )
|
set ( FLUIDSYNTH_VERSION_MAJOR 2 )
|
||||||
set ( FLUIDSYNTH_VERSION_MINOR 1 )
|
set ( FLUIDSYNTH_VERSION_MINOR 1 )
|
||||||
set ( FLUIDSYNTH_VERSION_MICRO 3 )
|
set ( FLUIDSYNTH_VERSION_MICRO 4 )
|
||||||
set ( VERSION "${FLUIDSYNTH_VERSION_MAJOR}.${FLUIDSYNTH_VERSION_MINOR}.${FLUIDSYNTH_VERSION_MICRO}" )
|
set ( VERSION "${FLUIDSYNTH_VERSION_MAJOR}.${FLUIDSYNTH_VERSION_MINOR}.${FLUIDSYNTH_VERSION_MICRO}" )
|
||||||
set ( FLUIDSYNTH_VERSION "\"${VERSION}\"" )
|
set ( FLUIDSYNTH_VERSION "\"${VERSION}\"" )
|
||||||
|
|
||||||
|
|
|
@ -8,8 +8,8 @@
|
||||||
\author David Henningsson
|
\author David Henningsson
|
||||||
\author Tom Moebert
|
\author Tom Moebert
|
||||||
\author Copyright © 2003-2020 Peter Hanappe, Conrad Berhörster, Antoine Schmitt, Pedro López-Cabanillas, Josh Green, David Henningsson, Tom Moebert
|
\author Copyright © 2003-2020 Peter Hanappe, Conrad Berhörster, Antoine Schmitt, Pedro López-Cabanillas, Josh Green, David Henningsson, Tom Moebert
|
||||||
\version Revision 2.1.3
|
\version Revision 2.1.4
|
||||||
\date 2020-05-23
|
\date 2020-07-05
|
||||||
|
|
||||||
All the source code examples in this document are in the public domain; you can use them as you please. This document is licensed under the Creative Commons Attribution-Share Alike 3.0 Unported License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ . The FluidSynth library is distributed under the GNU Lesser General Public License. A copy of the GNU Lesser General Public License is contained in the FluidSynth package; if not, visit http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt or write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
All the source code examples in this document are in the public domain; you can use them as you please. This document is licensed under the Creative Commons Attribution-Share Alike 3.0 Unported License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ . The FluidSynth library is distributed under the GNU Lesser General Public License. A copy of the GNU Lesser General Public License is contained in the FluidSynth package; if not, visit http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt or write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
|
||||||
|
@ -22,6 +22,7 @@ All the source code examples in this document are in the public domain; you can
|
||||||
- \ref Disclaimer
|
- \ref Disclaimer
|
||||||
- \ref Introduction
|
- \ref Introduction
|
||||||
- \ref NewIn2_2_0
|
- \ref NewIn2_2_0
|
||||||
|
- \ref NewIn2_1_4
|
||||||
- \ref NewIn2_1_1
|
- \ref NewIn2_1_1
|
||||||
- \ref NewIn2_1_0
|
- \ref NewIn2_1_0
|
||||||
- \ref NewIn2_0_8
|
- \ref NewIn2_0_8
|
||||||
|
@ -78,6 +79,10 @@ What is FluidSynth?
|
||||||
- Events that share the same tick was given a new, documented order, see fluid_sequencer_send_at().
|
- Events that share the same tick was given a new, documented order, see fluid_sequencer_send_at().
|
||||||
- The sequencer's scale can now be used for arbitrary tempo changes. Previously, the scale of the sequencer was limited to 1000. The only limitation now is >0.
|
- The sequencer's scale can now be used for arbitrary tempo changes. Previously, the scale of the sequencer was limited to 1000. The only limitation now is >0.
|
||||||
|
|
||||||
|
\section NewIn2_1_4 What's new in 2.1.4?
|
||||||
|
|
||||||
|
- a regression introduced in 2.1.3 broke fluid_synth_start() for DLS presets
|
||||||
|
|
||||||
\section NewIn2_1_1 What's new in 2.1.1?
|
\section NewIn2_1_1 What's new in 2.1.1?
|
||||||
|
|
||||||
- requirements for explicit sequencer client unregistering have been relaxed: delete_fluid_sequencer() now correctly frees any registered sequencer clients (clients can still be explicitly unregistered)
|
- requirements for explicit sequencer client unregistering have been relaxed: delete_fluid_sequencer() now correctly frees any registered sequencer clients (clients can still be explicitly unregistered)
|
||||||
|
|
|
@ -4527,14 +4527,13 @@ fluid_synth_kill_by_exclusive_class_LOCAL(fluid_synth_t *synth,
|
||||||
for(i = 0; i < synth->polyphony; i++)
|
for(i = 0; i < synth->polyphony; i++)
|
||||||
{
|
{
|
||||||
fluid_voice_t *existing_voice = synth->voice[i];
|
fluid_voice_t *existing_voice = synth->voice[i];
|
||||||
int existing_excl_class = fluid_voice_gen_value(existing_voice, GEN_EXCLUSIVECLASS);
|
|
||||||
|
|
||||||
/* If voice is playing, on the same channel, has same exclusive
|
/* If voice is playing, on the same channel, has same exclusive
|
||||||
* class and is not part of the same noteon event (voice group), then kill it */
|
* class and is not part of the same noteon event (voice group), then kill it */
|
||||||
|
|
||||||
if(fluid_voice_is_playing(existing_voice)
|
if(fluid_voice_is_playing(existing_voice)
|
||||||
&& fluid_voice_get_channel(existing_voice) == fluid_voice_get_channel(new_voice)
|
&& fluid_voice_get_channel(existing_voice) == fluid_voice_get_channel(new_voice)
|
||||||
&& existing_excl_class == excl_class
|
&& fluid_voice_gen_value(existing_voice, GEN_EXCLUSIVECLASS) == excl_class
|
||||||
&& fluid_voice_get_id(existing_voice) != fluid_voice_get_id(new_voice))
|
&& fluid_voice_get_id(existing_voice) != fluid_voice_get_id(new_voice))
|
||||||
{
|
{
|
||||||
fluid_voice_kill_excl(existing_voice);
|
fluid_voice_kill_excl(existing_voice);
|
||||||
|
@ -6344,15 +6343,14 @@ int
|
||||||
fluid_synth_start(fluid_synth_t *synth, unsigned int id, fluid_preset_t *preset,
|
fluid_synth_start(fluid_synth_t *synth, unsigned int id, fluid_preset_t *preset,
|
||||||
int audio_chan, int chan, int key, int vel)
|
int audio_chan, int chan, int key, int vel)
|
||||||
{
|
{
|
||||||
int result;
|
int result, dynamic_samples;
|
||||||
fluid_defsfont_t *defsfont;
|
|
||||||
fluid_return_val_if_fail(preset != NULL, FLUID_FAILED);
|
fluid_return_val_if_fail(preset != NULL, FLUID_FAILED);
|
||||||
fluid_return_val_if_fail(key >= 0 && key <= 127, FLUID_FAILED);
|
fluid_return_val_if_fail(key >= 0 && key <= 127, FLUID_FAILED);
|
||||||
fluid_return_val_if_fail(vel >= 1 && vel <= 127, FLUID_FAILED);
|
fluid_return_val_if_fail(vel >= 1 && vel <= 127, FLUID_FAILED);
|
||||||
FLUID_API_ENTRY_CHAN(FLUID_FAILED);
|
FLUID_API_ENTRY_CHAN(FLUID_FAILED);
|
||||||
|
|
||||||
defsfont = fluid_sfont_get_data(preset->sfont);
|
fluid_settings_getint(fluid_synth_get_settings(synth), "synth.dynamic-sample-loading", &dynamic_samples);
|
||||||
if(defsfont->dynamic_samples)
|
if(dynamic_samples)
|
||||||
{
|
{
|
||||||
// The preset might not be currently used, thus its sample data may not be loaded.
|
// The preset might not be currently used, thus its sample data may not be loaded.
|
||||||
// This guard is to avoid a NULL deref in rvoice_write().
|
// This guard is to avoid a NULL deref in rvoice_write().
|
||||||
|
|
Loading…
Reference in a new issue