diff --git a/audio/fluidsynth/Makefile b/audio/fluidsynth/Makefile
index dc1872d30bcd..035d0c55227a 100644
--- a/audio/fluidsynth/Makefile
+++ b/audio/fluidsynth/Makefile
@@ -1,32 +1,46 @@
-# $NetBSD: Makefile,v 1.26 2019/07/06 18:52:06 nia Exp $
+# $NetBSD: Makefile,v 1.27 2019/10/06 17:29:33 nia Exp $
 
-DISTNAME=	fluidsynth-1.1.6
-PKGREVISION=	2
+DISTNAME=	fluidsynth-2.0.7
 CATEGORIES=	audio
-MASTER_SITES=	${MASTER_SITE_SOURCEFORGE:=fluidsynth/}
-EXTRACT_SUFX=	.tar.bz2
+MASTER_SITES=	${MASTER_SITE_GITHUB:=FluidSynth/}
+GITHUB_TAG=	v${PKGVERSION_NOREV}
 
 MAINTAINER=	pkgsrc-users@NetBSD.org
 HOMEPAGE=	http://www.fluidsynth.org/
 COMMENT=	Software synthesizer based on SoundFont2
 LICENSE=	gnu-lgpl-v2
 
-USE_LIBTOOL=		yes
-USE_TOOLS+=		pkg-config
-GNU_CONFIGURE=		yes
-PKGCONFIG_OVERRIDE=	fluidsynth.pc.in
-PTHREAD_AUTO_VARS=	yes
+USE_CMAKE=	yes
+USE_TOOLS+=	pkg-config
 
-CPPFLAGS+=		-DDEVOSSAUDIO="\"${DEVOSSAUDIO}\""
-LDFLAGS+=		${LIBOSSAUDIO}
+CMAKE_ARGS+=	-DMAN_INSTALL_DIR=${PREFIX}/${PKGMANDIR}/man1
+CMAKE_ARGS+=	-DLIB_SUFFIX=""
+
+PKGCONFIG_OVERRIDE=	fluidsynth.pc.in
 
 CPPFLAGS.SunOS+=	-Du_int8_t=uint8_t -Du_int16_t=uint16_t
 CPPFLAGS.SunOS+=	-Du_int32_t=uint32_t -Du_int64_t=uint64_t
 CPPFLAGS.SunOS+=	-DSOUND_PCM_WRITE_CHANNELS=SNDCTL_DSP_CHANNELS
-LIBS.SunOS+=		-lsocket
+LDFLAGS.SunOS+=		-lsocket
 
-.include "../../devel/glib2/buildlink3.mk"
+.include "../../mk/bsd.prefs.mk"
+.include "../../mk/oss.buildlink3.mk"
+
+.if ${OSS_TYPE} != "none"
+LDFLAGS+=		${LIBOSSAUDIO}
+SUBST_CLASSES+=		oss
+SUBST_STAGE.oss=	pre-configure
+SUBST_MESSAGE.oss=	Correcting the path to the OSS device.
+SUBST_FILES.oss+=	src/drivers/fluid_oss.c
+SUBST_SED.oss+=		-e "s,/dev/dsp,${DEVOSSAUDIO},g"
+.  if ${OPSYS} == "NetBSD"
+SUBST_SED.oss+=		-e "s,/dev/midi,/dev/rmidi0,g"
+.  endif
+.endif
+
+.include "../../audio/libsndfile/buildlink3.mk"
 .include "../../devel/libgetopt/buildlink3.mk"
+.include "../../devel/glib2/buildlink3.mk"
 .include "../../mk/readline.buildlink3.mk"
 .include "../../mk/oss.buildlink3.mk"
 .include "../../mk/pthread.buildlink3.mk"
diff --git a/audio/fluidsynth/PLIST b/audio/fluidsynth/PLIST
index 791dec433b9e..4710802c75c3 100644
--- a/audio/fluidsynth/PLIST
+++ b/audio/fluidsynth/PLIST
@@ -1,14 +1,14 @@
-@comment $NetBSD: PLIST,v 1.2 2009/06/14 17:32:08 joerg Exp $
+@comment $NetBSD: PLIST,v 1.3 2019/10/06 17:29:33 nia Exp $
 bin/fluidsynth
 include/fluidsynth.h
 include/fluidsynth/audio.h
 include/fluidsynth/event.h
 include/fluidsynth/gen.h
+include/fluidsynth/ladspa.h
 include/fluidsynth/log.h
 include/fluidsynth/midi.h
 include/fluidsynth/misc.h
 include/fluidsynth/mod.h
-include/fluidsynth/ramsfont.h
 include/fluidsynth/seq.h
 include/fluidsynth/seqbind.h
 include/fluidsynth/settings.h
@@ -18,6 +18,8 @@ include/fluidsynth/synth.h
 include/fluidsynth/types.h
 include/fluidsynth/version.h
 include/fluidsynth/voice.h
-lib/libfluidsynth.la
+lib/libfluidsynth.so
+lib/libfluidsynth.so.2
+lib/libfluidsynth.so.2.2.0
 lib/pkgconfig/fluidsynth.pc
 man/man1/fluidsynth.1
diff --git a/audio/fluidsynth/distinfo b/audio/fluidsynth/distinfo
index 90488c331009..1226e0bbfe78 100644
--- a/audio/fluidsynth/distinfo
+++ b/audio/fluidsynth/distinfo
@@ -1,10 +1,6 @@
-$NetBSD: distinfo,v 1.14 2015/11/03 01:12:31 agc Exp $
+$NetBSD: distinfo,v 1.15 2019/10/06 17:29:33 nia Exp $
 
-SHA1 (fluidsynth-1.1.6.tar.bz2) = 1d45fc3263d85f867efd809bdacb5d6116243c35
-RMD160 (fluidsynth-1.1.6.tar.bz2) = 27b17e1e097004dd3cf8fb88d8e4499eeb339ea8
-SHA512 (fluidsynth-1.1.6.tar.bz2) = 0ead8bf86c0edf6d98044eb16b52b85fac8bc3bdeb9c1478d0bceb4f5b38ca28218fcf2cd18cdd5608190dc70b7c39bde681765d01787bc84bc97c6ab3bbf946
-Size (fluidsynth-1.1.6.tar.bz2) = 823783 bytes
-SHA1 (patch-aa) = 16279c3f937b903cdfbc1a26b67606500e33a546
-SHA1 (patch-ac) = 81ca2243404a4fd1a3f93da82116c276db7fb42c
-SHA1 (patch-ad) = edb221360d033804d04c15560a80e9d08e8406bc
-SHA1 (patch-ae) = a536d0d16e7b4a138e69b0b0d91f2926e0675e45
+SHA1 (fluidsynth-2.0.7.tar.gz) = fd92957fbb915598361cb16249f190ce0f01416c
+RMD160 (fluidsynth-2.0.7.tar.gz) = 3f71d90e4f46609cd3eae32ae7916be098b7b161
+SHA512 (fluidsynth-2.0.7.tar.gz) = c939c77277767541b90ae8bc24687cd9cd11b375264e6b5017658f5fd9c5637a3ce09bc4ad837a349e4a63883fe5ecbe80e65dd91d2cbf71072bcbcfc068614e
+Size (fluidsynth-2.0.7.tar.gz) = 1315250 bytes
diff --git a/audio/fluidsynth/hacks.mk b/audio/fluidsynth/hacks.mk
deleted file mode 100644
index b946977403f9..000000000000
--- a/audio/fluidsynth/hacks.mk
+++ /dev/null
@@ -1,10 +0,0 @@
-# $NetBSD: hacks.mk,v 1.1 2005/10/31 15:23:54 tv Exp $
-
-###
-### Define socklen_t on platforms without it (there's no easy autoconf
-### CHECK_TYPE check to insert this without depending on autoconf)
-###
-.if ${OPSYS} == "Interix"
-PKG_HACKS+=	socklen-int
-CPPFLAGS+=	-Dsocklen_t=int
-.endif
diff --git a/audio/fluidsynth/patches/patch-aa b/audio/fluidsynth/patches/patch-aa
deleted file mode 100644
index a96a9db81dc2..000000000000
--- a/audio/fluidsynth/patches/patch-aa
+++ /dev/null
@@ -1,67 +0,0 @@
-$NetBSD: patch-aa,v 1.4 2012/08/24 06:35:20 marino Exp $
-
---- src/drivers/fluid_oss.c.orig	2012-08-16 04:01:13.000000000 +0000
-+++ src/drivers/fluid_oss.c
-@@ -42,10 +42,16 @@
- #include <errno.h>
- #include <sys/poll.h>
- 
-+#ifdef __NetBSD__
-+#define DEVOSSMIDI "/dev/rmidi0"
-+#else
-+#define DEVOSSMIDI "/dev/midi"
-+#endif
-+
- #define BUFFER_LENGTH 512
- 
- // Build issue on some systems (OSS 4.0)?
--#ifdef SNDCTL_DSP_CHANNELS
-+#if defined (SNDCTL_DSP_CHANNELS) && !defined (SOUND_PCM_WRITE_CHANNELS)
-   #define SOUND_PCM_WRITE_CHANNELS        SNDCTL_DSP_CHANNELS
- #endif
- 
-@@ -101,7 +107,7 @@ static void fluid_oss_midi_run(void* d);
- void
- fluid_oss_audio_driver_settings(fluid_settings_t* settings)
- {
--  fluid_settings_register_str(settings, "audio.oss.device", "/dev/dsp", 0, NULL, NULL);
-+  fluid_settings_register_str(settings, "audio.oss.device", DEVOSSAUDIO, 0, NULL, NULL);
- }
- 
- /*
-@@ -164,7 +170,7 @@ new_fluid_oss_audio_driver(fluid_setting
-   }
- 
-   if (!fluid_settings_dupstr(settings, "audio.oss.device", &devname) || !devname) {         /* ++ alloc device name */
--    devname = FLUID_STRDUP ("/dev/dsp");
-+    devname = FLUID_STRDUP (DEVOSSAUDIO);
- 
-     if (devname == NULL) {
-       FLUID_LOG(FLUID_ERR, "Out of memory");
-@@ -278,7 +284,7 @@ new_fluid_oss_audio_driver2(fluid_settin
- 
- 
-   if (!fluid_settings_dupstr(settings, "audio.oss.device", &devname) || !devname) {
--    devname = FLUID_STRDUP ("/dev/dsp");
-+    devname = FLUID_STRDUP (DEVOSSAUDIO);
- 
-     if (!devname)
-     {
-@@ -503,7 +509,7 @@ fluid_oss_audio_run2(void* d)
- 
- void fluid_oss_midi_driver_settings(fluid_settings_t* settings)
- {
--  fluid_settings_register_str(settings, "midi.oss.device", "/dev/midi", 0, NULL, NULL);
-+  fluid_settings_register_str(settings, "midi.oss.device", DEVOSSMIDI, 0, NULL, NULL);
- }
- 
- /*
-@@ -546,7 +552,7 @@ new_fluid_oss_midi_driver(fluid_settings
-   fluid_settings_dupstr(settings, "midi.oss.device", &device);  /* ++ alloc device name */
- 
-   if (device == NULL) {
--    device = FLUID_STRDUP ("/dev/midi");
-+    device = FLUID_STRDUP (DEVOSSMIDI);
- 
-     if (!device)
-     {
diff --git a/audio/fluidsynth/patches/patch-ac b/audio/fluidsynth/patches/patch-ac
deleted file mode 100644
index d7599ff3a47d..000000000000
--- a/audio/fluidsynth/patches/patch-ac
+++ /dev/null
@@ -1,22 +0,0 @@
-$NetBSD: patch-ac,v 1.6 2012/01/28 13:15:32 wiz Exp $
-
---- configure.orig	2011-09-04 07:38:58.000000000 +0000
-+++ configure
-@@ -11587,7 +11587,7 @@ else
- fi
- 
- 
-- if test "$mingw32_support" == "yes"; then
-+ if test "$mingw32_support" = "yes"; then
-   MINGW32_SUPPORT_TRUE=
-   MINGW32_SUPPORT_FALSE='#'
- else
-@@ -11723,7 +11723,7 @@ if test "$GCC" = yes; then
- $as_echo "#define DEBUG 1" >>confdefs.h
- 
-   else
--    CFLAGS="${CFLAGS} ${FCCFLAGS} -O2 -fomit-frame-pointer -funroll-all-loops -finline-functions -Wall -W -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wstrict-prototypes -Winline -Wno-unused-parameter -Wno-cast-qual"
-+    CFLAGS="${CFLAGS} ${FCCFLAGS} -Wall -W -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wstrict-prototypes -Winline -Wno-unused-parameter -Wno-cast-qual"
- 
- $as_echo "#define DEBUG 0" >>confdefs.h
- 
diff --git a/audio/fluidsynth/patches/patch-ad b/audio/fluidsynth/patches/patch-ad
deleted file mode 100644
index bf994d033a5d..000000000000
--- a/audio/fluidsynth/patches/patch-ad
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD: patch-ad,v 1.4 2012/01/28 13:15:32 wiz Exp $
-
---- src/utils/fluid_sys.h.orig	2009-02-04 07:29:24.000000000 +0000
-+++ src/utils/fluid_sys.h
-@@ -284,7 +284,7 @@ extern fluid_profile_data_t fluid_profil
-     sample data.
-  */
- 
--#if defined(HAVE_SYS_MMAN_H) && !defined(__OS2__)
-+#if defined(HAVE_SYS_MMAN_H) && !defined(__OS2__) && !defined(__INTERIX)
- #define fluid_mlock(_p,_n)      mlock(_p, _n)
- #define fluid_munlock(_p,_n)    munlock(_p,_n)
- #else
diff --git a/audio/fluidsynth/patches/patch-ae b/audio/fluidsynth/patches/patch-ae
deleted file mode 100644
index 0b7d77b514d9..000000000000
--- a/audio/fluidsynth/patches/patch-ae
+++ /dev/null
@@ -1,53 +0,0 @@
-$NetBSD: patch-ae,v 1.5 2012/01/28 13:15:32 wiz Exp $
-
---- src/fluidsynth.c.orig	2011-09-04 07:38:58.000000000 +0000
-+++ src/fluidsynth.c
-@@ -293,9 +293,9 @@ int main(int argc, char** argv)
-   int with_server = 0;
-   int dump = 0;
-   int fast_render = 0;
--  int connect_lash = 1;
-   char *optchars = "a:C:c:dE:f:F:G:g:hijK:L:lm:nO:o:p:R:r:sT:Vvz:";
- #ifdef LASH_ENABLED
-+  int connect_lash = 1;
-   int enabled_lash = 0;		/* set to TRUE if lash gets enabled */
-   fluid_lash_args_t *lash_args;
- 
-@@ -323,7 +323,9 @@ int main(int argc, char** argv)
-       {"audio-groups", 1, 0, 'G'},
-       {"chorus", 1, 0, 'C'},
-       {"connect-jack-outputs", 0, 0, 'j'},
-+#ifdef LASH_ENABLED
-       {"disable-lash", 0, 0, 'l'},
-+#endif
-       {"dump", 0, 0, 'd'},
-       {"fast-render", 1, 0, 'F'},
-       {"gain", 1, 0, 'g'},
-@@ -458,9 +460,11 @@ int main(int argc, char** argv)
-       audio_channels = atoi(optarg);
-       fluid_settings_setint(settings, "synth.audio-channels", audio_channels);
-       break;
-+#ifdef LASH_ENABLED
-     case 'l':			/* disable LASH */
-       connect_lash = 0;
-       break;
-+#endif
-     case 'm':
-       if (FLUID_STRCMP (optarg, "help") == 0)
-       {
-@@ -572,6 +576,7 @@ int main(int argc, char** argv)
- #endif
- 
- #ifdef LASH_ENABLED
-+#ifdef LASH_ENABLED
-   /* connect to the lash server */
-   if (connect_lash)
-     {
-@@ -579,6 +584,7 @@ int main(int argc, char** argv)
-       fluid_settings_setint (settings, "lash.enable", enabled_lash ? 1 : 0);
-     }
- #endif
-+#endif
- 
-   /* The 'groups' setting is only relevant for LADSPA operation
-    * If not given, set number groups to number of audio channels, because