Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package fluidsynth for openSUSE:Factory checked in at 2022-02-09 20:38:23 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/fluidsynth (Old) and /work/SRC/openSUSE:Factory/.fluidsynth.new.1898 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "fluidsynth" Wed Feb 9 20:38:23 2022 rev:64 rq:952040 version:2.2.5 Changes: -------- --- /work/SRC/openSUSE:Factory/fluidsynth/fluidsynth.changes 2021-11-24 23:54:09.928540859 +0100 +++ /work/SRC/openSUSE:Factory/.fluidsynth.new.1898/fluidsynth.changes 2022-02-09 20:38:42.946306470 +0100 @@ -1,0 +2,9 @@ +Sun Feb 6 12:52:36 UTC 2022 - Tom Mbrt <tom.m...@googlemail.com> + +- Update to 2.2.5 + * Fix a build failure with CMake < 3.12 + * OSS and MidiShare drivers are now deprecated + * Prevent samples accidentally having their loops disabled + * Fix framework installation on MacOS + +------------------------------------------------------------------- Old: ---- fluidsynth-2.2.4.tar.gz New: ---- fluidsynth-2.2.5.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ fluidsynth.spec ++++++ --- /var/tmp/diff_new_pack.sQhEia/_old 2022-02-09 20:38:43.614308068 +0100 +++ /var/tmp/diff_new_pack.sQhEia/_new 2022-02-09 20:38:43.622308087 +0100 @@ -18,7 +18,7 @@ %define sover 3 Name: fluidsynth -Version: 2.2.4 +Version: 2.2.5 Release: 0 Summary: A Real-Time Software Synthesizer That Uses Soundfont(tm) License: LGPL-2.1-or-later ++++++ fluidsynth-2.2.4.tar.gz -> fluidsynth-2.2.5.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fluidsynth-2.2.4/.azure/azure-pipelines-android.yml new/fluidsynth-2.2.5/.azure/azure-pipelines-android.yml --- old/fluidsynth-2.2.4/.azure/azure-pipelines-android.yml 2021-11-21 16:40:48.000000000 +0100 +++ new/fluidsynth-2.2.5/.azure/azure-pipelines-android.yml 2022-01-23 15:33:33.000000000 +0100 @@ -184,19 +184,19 @@ wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | sudo tee /etc/apt/trusted.gpg.d/kitware.gpg >/dev/null sudo apt-add-repository 'deb https://apt.kitware.com/ubuntu/ focal main' displayName: 'Use recent CMake Version' - condition: ne(variables.CACHE_RESTORED, 'true') + condition: and(succeeded(), ne(variables.CACHE_RESTORED, 'true')) enabled: 'false' - script: | sudo apt-get update -y displayName: 'Update apt' - condition: ne(variables.CACHE_RESTORED, 'true') + condition: and(succeeded(), ne(variables.CACHE_RESTORED, 'true')) - script: | set -ex sudo -E apt-get -yq --no-install-suggests --no-install-recommends install gettext cmake zlib1g-dev autogen automake autoconf libtool pkg-config autotools-dev build-essential meson ninja-build displayName: 'apt-get install' - condition: ne(variables.CACHE_RESTORED, 'true') + condition: and(succeeded(), ne(variables.CACHE_RESTORED, 'true')) - script: | set -e @@ -260,7 +260,7 @@ displayName: 'Compile libiconv' workingDirectory: $(DEV) - condition: ne(variables.CACHE_RESTORED, 'true') + condition: and(succeeded(), ne(variables.CACHE_RESTORED, 'true')) - script: | set -ex @@ -276,7 +276,7 @@ popd displayName: 'Compile libffi' workingDirectory: $(DEV) - condition: ne(variables.CACHE_RESTORED, 'true') + condition: and(succeeded(), ne(variables.CACHE_RESTORED, 'true')) - script: | set -ex @@ -400,7 +400,7 @@ popd displayName: 'Compile gettext' workingDirectory: $(DEV) - condition: ne(variables.CACHE_RESTORED, 'true') + condition: and(succeeded(), ne(variables.CACHE_RESTORED, 'true')) - script: | set -ex @@ -463,7 +463,7 @@ popd displayName: 'Compile glib' workingDirectory: $(DEV) - condition: ne(variables.CACHE_RESTORED, 'true') + condition: and(succeeded(), ne(variables.CACHE_RESTORED, 'true')) - template: cmake-android.yml parameters: @@ -559,7 +559,7 @@ displayName: 'Create fake oboe.pc' workingDirectory: $(DEV) - condition: ne(variables.CACHE_RESTORED, 'true') + condition: and(succeeded(), ne(variables.CACHE_RESTORED, 'true')) - template: cmake-android.yml parameters: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fluidsynth-2.2.4/.azure/azure-pipelines-mac.yml new/fluidsynth-2.2.5/.azure/azure-pipelines-mac.yml --- old/fluidsynth-2.2.4/.azure/azure-pipelines-mac.yml 2021-11-21 16:40:48.000000000 +0100 +++ new/fluidsynth-2.2.5/.azure/azure-pipelines-mac.yml 2022-01-23 15:33:33.000000000 +0100 @@ -17,12 +17,15 @@ - job: macOS strategy: matrix: - 10_14: - imageName: 'macOS-10.14' + UnixLibs: + imageName: 'macos-11' + CMakeFlags: '-Denable-framework=0' 10_15: imageName: 'macOS-10.15' + CMakeFlags: '' 11_0: imageName: 'macos-11' + CMakeFlags: '' pool: vmImage: $(imageName) @@ -39,11 +42,28 @@ set -ex mkdir build && cd build export PKG_CONFIG_PATH="/usr/local/opt/libffi/lib/pkgconfig" - cmake -Werror=dev -DCMAKE_INSTALL_PREFIX=$(Build.ArtifactStagingDirectory) -DCMAKE_BUILD_TYPE=Release -DCMAKE_VERBOSE_MAKEFILE=1 -DNO_GUI=1 .. + cmake -Werror=dev $(CMakeFlags) -DCMAKE_BUILD_TYPE=Release -DCMAKE_VERBOSE_MAKEFILE=1 -DNO_GUI=1 .. make -j3 displayName: 'Compile fluidsynth' - script: | set -ex - cd build || exit -1 - make -j3 check || exit -1 + cd build + make -j3 check displayName: 'Execute Unittests' + - script: | + set -ex + cd build + make -j3 demo + displayName: 'Compile demos' + - script: | + set -ex + cd build + sudo make install + rm -f install_manifest.txt + displayName: 'Install fluidsynth to default location' + - script: | + set -ex + cd build + cmake -DCMAKE_INSTALL_PREFIX=$(Build.ArtifactStagingDirectory) .. + make install + displayName: 'Install fluidsynth to artifact dir' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fluidsynth-2.2.4/.azure/azure-pipelines-vcpkg.yml new/fluidsynth-2.2.5/.azure/azure-pipelines-vcpkg.yml --- old/fluidsynth-2.2.4/.azure/azure-pipelines-vcpkg.yml 2021-11-21 16:40:48.000000000 +0100 +++ new/fluidsynth-2.2.5/.azure/azure-pipelines-vcpkg.yml 2022-01-23 15:33:33.000000000 +0100 @@ -69,17 +69,17 @@ # ninja --version cmake --version rm -rf C:/Strawberry/perl/bin/pkg-config* - choco install --svc --sdc -i pkgconfiglite & - chocoTask=$! + choco install --svc --sdc -i pkgconfiglite + # chocoTask=$! # manually update vcpkg cd $VCPKG_INSTALLATION_ROOT # git checkout master git remote -v - git fetch --unshallow --tags --prune --progress origin + git fetch --tags --prune --progress origin git checkout --force $(VCPKG_REVISION) sed -i 's/arm64/arm/g' ports/glib/portfile.cmake ./bootstrap-vcpkg.sh - wait $chocoTask + # wait $chocoTask which pkg-config displayName: 'Update vcpkg' - task: DownloadBuildArtifacts@0 @@ -126,6 +126,10 @@ cmake --build build --config $(configuration) --target check --parallel 3 displayName: 'Execute Unittests' condition: and(succeeded(), and(ne(variables['platform'], 'arm'), ne(variables['platform'], 'arm64'))) + - bash: | + set -ex + cmake --build build --config $(configuration) --target demo --parallel 3 + displayName: 'Compile demos' - script: | @ECHO ON cd build diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fluidsynth-2.2.4/.azure/azure-pipelines-win.yml new/fluidsynth-2.2.5/.azure/azure-pipelines-win.yml --- old/fluidsynth-2.2.4/.azure/azure-pipelines-win.yml 2021-11-21 16:40:48.000000000 +0100 +++ new/fluidsynth-2.2.5/.azure/azure-pipelines-win.yml 2022-01-23 15:33:33.000000000 +0100 @@ -75,6 +75,12 @@ displayName: 'Execute Unittests' - script: | @ECHO ON + SET "PATH=d:\deps\bin;%PATH%" + cd build || exit -1 + cmake --build . --config Release --target demo || exit -1 + displayName: 'Compile demos' + - script: | + @ECHO ON cd build cmake --build . --config Release --target install || exit -1 del $(Build.ArtifactStagingDirectory)\bin\concrt*.dll @@ -140,6 +146,12 @@ cd build || exit -1 cmake --build . --config $(CMAKE_CONFIG) --target check || exit -1 displayName: 'Execute Unittests' + - script: | + @ECHO ON + SET "PATH=d:\deps\bin;%PATH%" + cd build || exit -1 + cmake --build . --config $(CMAKE_CONFIG) --target demo || exit -1 + displayName: 'Compile demos' - job: WindowsMinGW variables: @@ -210,6 +222,15 @@ displayName: 'Execute Unittests' - script: | @ECHO ON + SET "PATH=d:\deps\bin;%PATH%" + REM remove that path from PATH to make sure sh.exe is not found (cmake will complain otherwise) + set PATH=%PATH:C:\Program Files\Git\bin;=% + set PATH=%PATH:C:\Program Files\Git\usr\bin;=% + cd build || exit -1 + mingw32-make.exe -j4 demo || exit -1 + displayName: 'Compile demos' + - script: | + @ECHO ON cd build mingw32-make.exe install || exit -1 xcopy d:\deps\bin\libgcc_s_sjlj-1.dll $(Build.ArtifactStagingDirectory)\bin diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fluidsynth-2.2.4/.github/workflows/linux.yml new/fluidsynth-2.2.5/.github/workflows/linux.yml --- old/fluidsynth-2.2.4/.github/workflows/linux.yml 2021-11-21 16:40:48.000000000 +0100 +++ new/fluidsynth-2.2.5/.github/workflows/linux.yml 2022-01-23 15:33:33.000000000 +0100 @@ -93,6 +93,11 @@ # Execute tests defined by the CMake configuration. run: make -j`nproc` check + - name: Demo + working-directory: ${{github.workspace}}/build + shell: bash + run: make -j`nproc` demo + - name: Install working-directory: ${{github.workspace}}/build run: make install diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fluidsynth-2.2.4/.obs/workflows.yml new/fluidsynth-2.2.5/.obs/workflows.yml --- old/fluidsynth-2.2.4/.obs/workflows.yml 2021-11-21 16:40:48.000000000 +0100 +++ new/fluidsynth-2.2.5/.obs/workflows.yml 2022-01-23 15:33:33.000000000 +0100 @@ -3,3 +3,4 @@ - branch_package: source_project: home:derselbst:anmp source_package: fluidsynth + target_project: home:derselbst:anmp:github-ci diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fluidsynth-2.2.4/CMakeLists.txt new/fluidsynth-2.2.5/CMakeLists.txt --- old/fluidsynth-2.2.4/CMakeLists.txt 2021-11-21 16:40:48.000000000 +0100 +++ new/fluidsynth-2.2.5/CMakeLists.txt 2022-01-23 15:33:33.000000000 +0100 @@ -1,6 +1,6 @@ # FluidSynth - A Software Synthesizer # -# Copyright (C) 2003-2021 Peter Hanappe and others. +# Copyright (C) 2003-2022 Peter Hanappe and others. # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public License @@ -38,7 +38,7 @@ # FluidSynth package version set ( FLUIDSYNTH_VERSION_MAJOR 2 ) set ( FLUIDSYNTH_VERSION_MINOR 2 ) -set ( FLUIDSYNTH_VERSION_MICRO 4 ) +set ( FLUIDSYNTH_VERSION_MICRO 5 ) set ( VERSION "${FLUIDSYNTH_VERSION_MAJOR}.${FLUIDSYNTH_VERSION_MINOR}.${FLUIDSYNTH_VERSION_MICRO}" ) set ( FLUIDSYNTH_VERSION "\"${VERSION}\"" ) @@ -53,7 +53,7 @@ # This is not exactly the same algorithm as the libtool one, but the results are the same. set ( LIB_VERSION_CURRENT 3 ) set ( LIB_VERSION_AGE 0 ) -set ( LIB_VERSION_REVISION 4 ) +set ( LIB_VERSION_REVISION 5 ) set ( LIB_VERSION_INFO "${LIB_VERSION_CURRENT}.${LIB_VERSION_AGE}.${LIB_VERSION_REVISION}" ) @@ -879,14 +879,14 @@ list ( TRANSFORM LIBS_PRIVATE PREPEND "-l") list ( JOIN LIBS_PRIVATE " " LIBS_PRIVATE_JOINED ) list ( JOIN LIBS_PRIVATE_WITH_PATH " " LIBS_PRIVATE_WITH_PATH_JOINED ) + + list ( JOIN PC_REQUIRES_PRIV " " PC_REQUIRES_PRIV_JOINED ) else () set ( LIBS_PRIVATE "" ) set ( LIBS_PRIVATE_WITH_PATH "" ) message ( DEPRECATION "Your version of CMake is old. A complete pkg-config file can not created. Get cmake 3.13.3 or newer." ) endif ( CMAKE_VERSION VERSION_EQUAL "3.12.0" OR CMAKE_VERSION VERSION_GREATER "3.12.0" ) -list ( JOIN PC_REQUIRES_PRIV " " PC_REQUIRES_PRIV_JOINED ) - configure_file ( fluidsynth.pc.in ${CMAKE_BINARY_DIR}/fluidsynth.pc IMMEDIATE @ONLY ) install ( FILES ${CMAKE_BINARY_DIR}/fluidsynth.pc diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fluidsynth-2.2.4/cmake_admin/DefaultDirs.cmake new/fluidsynth-2.2.5/cmake_admin/DefaultDirs.cmake --- old/fluidsynth-2.2.4/cmake_admin/DefaultDirs.cmake 2021-11-21 16:40:48.000000000 +0100 +++ new/fluidsynth-2.2.5/cmake_admin/DefaultDirs.cmake 2022-01-23 15:33:33.000000000 +0100 @@ -11,15 +11,20 @@ endif ( WIN32 ) mark_as_advanced (DEFAULT_SOUNDFONT) +set(FRAMEWORK_INSTALL_PREFIX "") +if ( CMAKE_VERSION VERSION_GREATER "3.7.0" AND NOT CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT ) + set(FRAMEWORK_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}) +endif() + # BUNDLE_INSTALL_DIR - Mac only: the directory for application bundles -set (BUNDLE_INSTALL_DIR "/Applications" CACHE STRING +set (BUNDLE_INSTALL_DIR "Applications" CACHE STRING "The install dir for application bundles") mark_as_advanced (BUNDLE_INSTALL_DIR) - + # FRAMEWORK_INSTALL_DIR - Mac only: the directory for framework bundles -set (FRAMEWORK_INSTALL_DIR "/Library/Frameworks" CACHE STRING +set (FRAMEWORK_INSTALL_DIR "Library/Frameworks" CACHE STRING "The install dir for framework bundles") -mark_as_advanced (FRAMEWORK_INSTALL_DIR) +mark_as_advanced (FRAMEWORK_INSTALL_DIR) # BIN_INSTALL_DIR - the directory where executables will be installed set (BIN_INSTALL_DIR "bin" CACHE STRING "The install dir for executables") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fluidsynth-2.2.4/doc/fluidsynth-v20-devdoc.txt new/fluidsynth-2.2.5/doc/fluidsynth-v20-devdoc.txt --- old/fluidsynth-2.2.4/doc/fluidsynth-v20-devdoc.txt 2021-11-21 16:40:48.000000000 +0100 +++ new/fluidsynth-2.2.5/doc/fluidsynth-v20-devdoc.txt 2022-01-23 15:33:33.000000000 +0100 @@ -7,9 +7,9 @@ \author Josh Green \author David Henningsson \author Tom Moebert -\author Copyright © 2003-2021 Peter Hanappe, Conrad Berh??rster, Antoine Schmitt, Pedro L??pez-Cabanillas, Josh Green, David Henningsson, Tom Moebert -\version Revision 2.2.4 -\date 2021-11-21 +\author Copyright © 2003-2022 Peter Hanappe, Conrad Berh??rster, Antoine Schmitt, Pedro L??pez-Cabanillas, Josh Green, David Henningsson, Tom Moebert +\version Revision 2.2.5 +\date 2022-01-16 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 https://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 https://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. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fluidsynth-2.2.4/doc/fluidsynth.1 new/fluidsynth-2.2.5/doc/fluidsynth.1 --- old/fluidsynth-2.2.4/doc/fluidsynth.1 2021-11-21 16:40:48.000000000 +0100 +++ new/fluidsynth-2.2.5/doc/fluidsynth.1 2022-01-23 15:33:33.000000000 +0100 @@ -13,7 +13,7 @@ .\" along with this program; see the file LICENSE. If not, write to .\" the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. .\" -.TH FluidSynth 1 "Jan 1, 2021" +.TH FluidSynth 1 "Jan 1, 2022" .\" Please update the above date whenever this man page is modified. .\" .\" Some roff macros, for reference: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fluidsynth-2.2.4/src/CMakeLists.txt new/fluidsynth-2.2.5/src/CMakeLists.txt --- old/fluidsynth-2.2.4/src/CMakeLists.txt 2021-11-21 16:40:48.000000000 +0100 +++ new/fluidsynth-2.2.5/src/CMakeLists.txt 2022-01-23 15:33:33.000000000 +0100 @@ -301,13 +301,19 @@ PROPERTIES COMPILE_FLAGS ${LIBFLUID_CPPFLAGS} ) endif ( LIBFLUID_CPPFLAGS ) -# note: by default this target creates a shared object (or dll). To build a +# Note: by default this target creates a shared object (or dll). To build a # static library instead, set the option BUILD_SHARED_LIBS to FALSE. -add_library ( libfluidsynth $<TARGET_OBJECTS:libfluidsynth-OBJ> ) +# Further note: The headers must be explicitly added here to have CMake install +# them correctly in case of MACOSX_FRAMEWORK +add_library ( libfluidsynth + $<TARGET_OBJECTS:libfluidsynth-OBJ> + ${public_main_HEADER} + ${public_HEADERS} +) if ( MACOSX_FRAMEWORK ) - set_property ( SOURCE ${public_HEADERS} - PROPERTY MACOSX_PACKAGE_LOCATION Headers/fluidsynth + set_source_files_properties ( ${public_HEADERS} + PROPERTIES MACOSX_PACKAGE_LOCATION Headers/fluidsynth ) set_target_properties ( libfluidsynth PROPERTIES @@ -400,8 +406,8 @@ if ( MACOSX_FRAMEWORK ) install ( TARGETS fluidsynth libfluidsynth RUNTIME DESTINATION ${BIN_INSTALL_DIR} - FRAMEWORK DESTINATION ${FRAMEWORK_INSTALL_DIR} - ARCHIVE DESTINATION ${FRAMEWORK_INSTALL_DIR} + FRAMEWORK DESTINATION "${FRAMEWORK_INSTALL_PREFIX}/${FRAMEWORK_INSTALL_DIR}" + ARCHIVE DESTINATION "${FRAMEWORK_INSTALL_PREFIX}/${FRAMEWORK_INSTALL_DIR}" ) else ( MACOSX_FRAMEWORK ) install ( TARGETS fluidsynth libfluidsynth diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fluidsynth-2.2.4/src/bindings/fluid_filerenderer.c new/fluidsynth-2.2.5/src/bindings/fluid_filerenderer.c --- old/fluidsynth-2.2.4/src/bindings/fluid_filerenderer.c 2021-11-21 16:40:48.000000000 +0100 +++ new/fluidsynth-2.2.5/src/bindings/fluid_filerenderer.c 2022-01-23 15:33:33.000000000 +0100 @@ -199,6 +199,7 @@ double samplerate; int retval; #endif + int audio_channels; char *filename = NULL; fluid_file_renderer_t *dev; @@ -233,6 +234,7 @@ } fluid_settings_dupstr(synth->settings, "audio.file.name", &filename); + fluid_settings_getint(synth->settings, "synth.audio-channels", &audio_channels); if(filename == NULL) { @@ -310,6 +312,11 @@ #endif + if(audio_channels != 1) + { + FLUID_LOG(FLUID_WARN, "The file-renderer currently only supports a single stereo channel. You have provided %d stereo channels. Audio may sound strange or incomplete.", audio_channels); + } + FLUID_FREE(filename); return dev; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fluidsynth-2.2.4/src/drivers/fluid_midishare.c new/fluidsynth-2.2.5/src/drivers/fluid_midishare.c --- old/fluidsynth-2.2.4/src/drivers/fluid_midishare.c 2021-11-21 16:40:48.000000000 +0100 +++ new/fluidsynth-2.2.5/src/drivers/fluid_midishare.c 2022-01-23 15:33:33.000000000 +0100 @@ -87,6 +87,17 @@ fluid_midishare_midi_driver_t *dev; int i; + FLUID_LOG(FLUID_WARN, + "\n\n" + "================ MidiShare MIDI driver has been deprecated! =================\n" + "You're using the MidiShare driver. This driver is old, unmaintained and believed\n" + "to be unused. If you still need it, pls. let us know by posting to our\n" + "mailing list at fluid-...@nongnu.org - otherwise this driver might be removed\n" + "in a future release of FluidSynth!\n" + "================ MidiShare MIDI driver has been deprecated! =================\n" + "\n" + ); + /* not much use doing anything */ if(handler == NULL) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fluidsynth-2.2.4/src/drivers/fluid_oss.c new/fluidsynth-2.2.5/src/drivers/fluid_oss.c --- old/fluidsynth-2.2.4/src/drivers/fluid_oss.c 2021-11-21 16:40:48.000000000 +0100 +++ new/fluidsynth-2.2.5/src/drivers/fluid_oss.c 2022-01-23 15:33:33.000000000 +0100 @@ -123,6 +123,17 @@ char *devname = NULL; int format; + FLUID_LOG(FLUID_WARN, + "\n\n" + "================= OSS audio driver has been deprecated! ==================\n" + "You're using the OSS driver. This driver is old, unmaintained and believed\n" + "to be unused. If you still need it, pls. let us know by posting to our\n" + "mailing list at fluid-...@nongnu.org - otherwise this driver might be removed\n" + "in a future release of FluidSynth!\n" + "================= OSS audio driver has been deprecated! ==================\n" + "\n" + ); + dev = FLUID_NEW(fluid_oss_audio_driver_t); if(dev == NULL) @@ -296,6 +307,17 @@ int realtime_prio = 0; int format; + FLUID_LOG(FLUID_WARN, + "\n\n" + "================= OSS audio driver has been deprecated! ==================\n" + "You're using the OSS driver. This driver is old, unmaintained and believed\n" + "to be unused. If you still need it, pls. let us know by posting to our\n" + "mailing list at fluid-...@nongnu.org - otherwise this driver might be removed\n" + "in a future release of FluidSynth!\n" + "================= OSS audio driver has been deprecated! ==================\n" + "\n" + ); + dev = FLUID_NEW(fluid_oss_audio_driver_t); if(dev == NULL) @@ -607,6 +629,17 @@ int realtime_prio = 0; char *device = NULL; + FLUID_LOG(FLUID_WARN, + "\n\n" + "================= OSS MIDI driver has been deprecated! ==================\n" + "You're using the OSS driver. This driver is old, unmaintained and believed\n" + "to be unused. If you still need it, pls. let us know by posting to our\n" + "mailing list at fluid-...@nongnu.org - otherwise this driver might be removed\n" + "in a future release of FluidSynth!\n" + "================= OSS MIDI driver has been deprecated! ==================\n" + "\n" + ); + /* not much use doing anything */ if(handler == NULL) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fluidsynth-2.2.4/src/fluidsynth.c new/fluidsynth-2.2.5/src/fluidsynth.c --- old/fluidsynth-2.2.4/src/fluidsynth.c 2021-11-21 16:40:48.000000000 +0100 +++ new/fluidsynth-2.2.5/src/fluidsynth.c 2022-01-23 15:33:33.000000000 +0100 @@ -1213,7 +1213,7 @@ print_welcome() { printf("FluidSynth runtime version %s\n" - "Copyright (C) 2000-2021 Peter Hanappe and others.\n" + "Copyright (C) 2000-2022 Peter Hanappe and others.\n" "Distributed under the LGPL license.\n" "SoundFont(R) is a registered trademark of Creative Technology Ltd.\n\n", fluid_version_str()); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fluidsynth-2.2.4/src/midi/fluid_midi.c new/fluidsynth-2.2.5/src/midi/fluid_midi.c --- old/fluidsynth-2.2.4/src/midi/fluid_midi.c 2021-11-21 16:40:48.000000000 +0100 +++ new/fluidsynth-2.2.5/src/midi/fluid_midi.c 2022-01-23 15:33:33.000000000 +0100 @@ -488,7 +488,7 @@ if(fluid_isasciistring((char *) id) == 0) { FLUID_LOG(FLUID_ERR, - "An non-ascii track header found, corrupt file"); + "A non-ascii track header found, corrupt file"); return FLUID_FAILED; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fluidsynth-2.2.4/src/sfloader/fluid_defsfont.c new/fluidsynth-2.2.5/src/sfloader/fluid_defsfont.c --- old/fluidsynth-2.2.4/src/sfloader/fluid_defsfont.c 2021-11-21 16:40:48.000000000 +0100 +++ new/fluidsynth-2.2.5/src/sfloader/fluid_defsfont.c 2022-01-23 15:33:33.000000000 +0100 @@ -376,6 +376,7 @@ fluid_sample_t *sample; int sf3_file = (sfdata->version.major == 3); int sample_parsing_result = FLUID_OK; + int invalid_loops_were_sanitized = FALSE; /* For SF2 files, we load the sample data in one large block */ if(!sf3_file) @@ -404,7 +405,7 @@ { /* SF3 samples get loaded individually, as most (or all) of them are in Ogg Vorbis format * anyway */ - #pragma omp task firstprivate(sample,sfdata,defsfont) shared(sample_parsing_result) default(none) + #pragma omp task firstprivate(sample,sfdata,defsfont) shared(sample_parsing_result, invalid_loops_were_sanitized) default(none) { if(fluid_defsfont_load_sampledata(defsfont, sfdata, sample) == FLUID_FAILED) { @@ -416,24 +417,46 @@ } else { - fluid_sample_sanitize_loop(sample, (sample->end + 1) * sizeof(short)); + int modified = fluid_sample_sanitize_loop(sample, (sample->end + 1) * sizeof(short)); + if(modified) + { + #pragma omp critical + { + invalid_loops_were_sanitized = TRUE; + } + } fluid_voice_optimize_sample(sample); } } } else { - #pragma omp task firstprivate(sample, defsfont) default(none) + #pragma omp task firstprivate(sample, defsfont) shared(invalid_loops_were_sanitized) default(none) { + int modified; /* Data pointers of SF2 samples point to large sample data block loaded above */ sample->data = defsfont->sampledata; sample->data24 = defsfont->sample24data; - fluid_sample_sanitize_loop(sample, defsfont->samplesize); + modified = fluid_sample_sanitize_loop(sample, defsfont->samplesize); + if(modified) + { + #pragma omp critical + { + invalid_loops_were_sanitized = TRUE; + } + } fluid_voice_optimize_sample(sample); } } } + if(invalid_loops_were_sanitized) + { + FLUID_LOG(FLUID_WARN, + "Some invalid sample loops were sanitized! If you experience audible glitches, " + "start fluidsynth in verbose mode for detailed information."); + } + return sample_parsing_result; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fluidsynth-2.2.4/src/sfloader/fluid_sfont.c new/fluidsynth-2.2.5/src/sfloader/fluid_sfont.c --- old/fluidsynth-2.2.4/src/sfloader/fluid_sfont.c 2021-11-21 16:40:48.000000000 +0100 +++ new/fluidsynth-2.2.5/src/sfloader/fluid_sfont.c 2022-01-23 15:33:33.000000000 +0100 @@ -789,12 +789,19 @@ if(sample->loopstart == sample->loopend) { /* Some SoundFonts disable loops by setting loopstart = loopend. While - * technically invalid, we decided to accept those samples anyway. Just - * ensure that those two pointers are within the sampledata by setting - * them to 0. Don't report the modification, as this change has no audible - * effect. */ - sample->loopstart = sample->loopend = 0; - return FALSE; + * technically invalid, we decided to accept those samples anyway. + * Before fluidsynth 2.2.5 we've set those indices to zero, as this + * change was believed to be inaudible. This turned out to be an + * incorrect assumption, as the loop points may still be modified by + * loop offset modulators afterwards. + */ + if(sample->loopstart != sample->start) + { + // Many soundfonts set loopstart == loopend == sample->start to disabled to loop. + // Only report cases where it's not equal to the sample->start, to avoid spam. + FLUID_LOG(FLUID_DBG, "Sample '%s': zero length loop detected: loopstart == loopend == '%d', sample start '%d', using it anyway", + sample->name, sample->loopstart, sample->start); + } } else if(sample->loopstart > sample->loopend) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fluidsynth-2.2.4/src/synth/fluid_synth.c new/fluidsynth-2.2.5/src/synth/fluid_synth.c --- old/fluidsynth-2.2.4/src/synth/fluid_synth.c 2021-11-21 16:40:48.000000000 +0100 +++ new/fluidsynth-2.2.5/src/synth/fluid_synth.c 2022-01-23 15:33:33.000000000 +0100 @@ -2371,6 +2371,7 @@ if(len < 9) // at least one byte of data should be transmitted { + FLUID_LOG(FLUID_INFO, "SysEx DT1: message too short, dropping it."); return FLUID_FAILED; } len_data = len - 8; @@ -2380,8 +2381,10 @@ { checksum += data[i]; } - if (0x80 - (checksum & 0x7F) != data[len - 1]) + checksum = 0x80 - (checksum & 0x7F); + if (checksum != data[len - 1]) { + FLUID_LOG(FLUID_INFO, "SysEx DT1: dropping message on addr 0x%x due to incorrect checksum 0x%x. Correct checksum: 0x%x", addr, (int)data[len - 1], checksum); return FLUID_FAILED; } @@ -2389,6 +2392,7 @@ { if (len_data > 1 || (data[7] != 0 && data[7] != 0x7f)) { + FLUID_LOG(FLUID_INFO, "SysEx DT1: dropping invalid mode set message"); return FLUID_FAILED; } if (handled) @@ -2419,6 +2423,7 @@ { if (len_data > 1 || data[7] > 0x02) { + FLUID_LOG(FLUID_INFO, "SysEx DT1: dropping invalid rhythm part message"); return FLUID_FAILED; } if (handled) @@ -2433,6 +2438,7 @@ synth->channel[chan]->channel_type = data[7] == 0x00 ? CHANNEL_TYPE_MELODIC : CHANNEL_TYPE_DRUM; + FLUID_LOG(FLUID_DBG, "SysEx DT1: setting MIDI channel %d to type %d", chan, (int)synth->channel[chan]->channel_type); //Roland synths seem to "remember" the last instrument a channel //used in the selected mode. This behavior is not replicated here. fluid_synth_program_change(synth, chan, 0);