A.- Preparación (Asumimos que la compilación se lleva a cabo en una máquina de 64 bits).
Bajar los siguientes archivos y seguir las instrucciones de instalación:
1.- El archivo con el código fuente de FluidSynth (http://www.fluidsynth.org/)
fluidsynth-1.1.7.zip (https://github.com/FluidSynth/fluidsynth/archive/v1.1.7.zip)
Crear una carpeta nueva en “C:\”. Por ejemplo “C:\FS32”.
En esta carpeta descomprimir el archivo fluidsynth-1.1.7.zip. (“C:\FS32\fluidsynth-1.1.7”)
En esta última carpeta crear la carpeta “build_32_vs10” (“C:\FS32\fluidsynth-1.1.7\build_32_vs10”)
2.- La biblioteca gettext-runtime_0.18.1.1-2 (intl.dll) y gettext-runtime-dev_0.18.1.1-2, x86.
Crear una carpeta temporal en el directorio raíz de C:\, por ejemplo "C:\libfs32VC". Dentro de esta carpeta crear las carpetas “bin”, “include” y “lib”.
Descargar el archivo “gettext-runtime-dev_0.18.1.1-2_win32.zip“
(http://ftp.gnome.org/pub/GNOME/binaries/win32/dependencies/gettext-runtime-dev_0.18.1.1-2_win32.zip).
Descargar el archivo “gettext-runtime_0.18.1.1-2_win32.zip”
(http://ftp.gnome.org/pub/GNOME/binaries/win32/dependencies/gettext-runtime_0.18.1.1-2_win32.zip).
Abrir el archivo “gettext-runtime-dev_0.18.1.1-2_win32.zip“ con 7zip. Dar doble clic en la carpeta “include” dentro del archivo comprimido. Descomprimir el archivo “libintl.h” a la carpeta "C:\libfs32VC\include". Retornar a la carpeta anterior dentro del archivo “gettext-runtime-dev_0.18.1.1-2_win32.zip“ y dar doble clic en la carpeta “lib”. Descomprimir el archivo “intl.lib” a la carpeta "C:\libfs32VC\lib". Cerrar el programa 7zip. Abrir el archivo “gettext-runtime_0.18.1.1-2_win32.zip “ con 7zip. Dar doble clic en la carpeta “bin” dentro del archivo comprimido. Descomprimir el archivo “intl.dll” a la carpeta "C:\libfs32VC\bin".
3.- La Herramienta pkg-config x86.
pkg-config_0.26-1_win32 (http://ftp.gnome.org/pub/GNOME/binaries/win32/dependencies/pkg-config_0.26-1_win32.zip)
Descomprimir la carpeta “bin” sita dentro del archivo anterior, en la carpeta “C:\libfs32VC”.
Bajar el archivo “glib_2.28.8-1_win32.zip” de “http://ftp.gnome.org/pub/gnome/binaries/win32/glib/2.28/glib_2.28.8-1_win32.zip”. Abrir este archivo con 7zip. Dar doble clic a la carpeta “bin”. Descomprimir el archivo “libglib-2.0-0.dll” en la carpeta “C:\libfs32VC\bin”.
4.- La biblioteca glib-2.53.3-dev-vs10-x86.
Descargar el archivo “glib-2.53.3-dev-vs10-x86.7z” de
“https://mega.nz/#!J5ZQGKLY!fXDvk1qE7-iSwrF7tjvn4oJWNsLdZfcSv8doaCLgitk”
Descomprimir las carpetas “bin”, “include” y “lib” sitas dentro del archivo "glib-2.53.3-dev-vs10-x86.7z", en la carpeta “C:\libfs32VC”.
5.- La biblioteca Readline-dev-5.0-vs10-x86.
Descargar el archivo “Readline-dev-5.0-vs10-x86.7z” de
“https://mega.nz/#!JkwWXKQS!BviU-owB0zSaAnpW60l83lPQfsrWdCYbwRgE2m2Ajec”
Descomprimir las carpetas “bin”, “include” y “lib” sitas dentro del archivo "Readline-dev-5.0-vs10-x86.7z", en la carpeta “C:\libfs32VC”.
6.- La biblioteca Portaudio-19.06-vs10-x86.
Descargar el archivo “Portaudio-19.06-vs10-x86.7z” de
“https://mega.nz/#!8gpRRCiS!x47xzeCjqlQfmWXjyCbTgD0HrU5k38R4ZU8KW4COrww”
Descomprimir las carpetas “bin”, “include” y “lib” sitas dentro del archivo "Portaudio-19.06-vs10-x86.7z", en la carpeta “C:\libfs32VC”.
7.- La biblioteca MidiShare-1.93.
o bien
Descargar el archivo “midishare-1.93-dev-MinGW-vsXX-x86.7z” de
“https://mega.nz/#!Q1RlmYJI!iX1xXCFb8tkFrYXfwYAbEJkCy97m-F6uHj5MtzNEuLw”
Descomprimir las carpetas “bin”, “include” y “lib” sitas dentro del archivo "midishare-1.93-dev-MinGW-vsXX-x86.7z", en la carpeta “C:\libfs32VC”. Dentro de la carpeta “bin” los archivos binarios se encuentran en la carpeta “MidiShare-vs10”. De esta última carpeta, copiar el archivo “mshare32.dll” a la carpeta inmediata anterior “bin”.
Otra opción es descargar el archivo “midishare-1.93-win32-64.zip”
Abrir el archivo “midishare-1.93-win32-64.zip” con 7zip. Dar doble clic en la carpeta “midishare-1.93-win32-64”. Dar doble clic en “win32”. Descomprimir el archivo “mshare32.dll” en la carpeta “C:\libfs32VC\bin”. Retornar a la carpeta anterior en 7zip. Dar doble clic en la carpeta “Developer”. Dar doble clic en la carpeta “C-C++”. Descomprimir la carpeta “include” en la carpeta “C:\libfs32VC”. En 7zip dar doble click en la carpeta “libraries”. Descomprimir el archivo “mshare32.lib” en la dirección “C:\libfs32VC\lib”.
8.- El programa CMake 3.10.2
cmake-3.10.2-win64-x64.msi (https://cmake.org/files/v3.10/cmake-3.10.2-win64-x64.msi)
Instalar normalmente el programa. (Nota: Desinstalar versiones anteriores de CMake antes de instalar ésta.)
9.- La utilidad doxygen x86.
doxygen-1.8.2.windows.bin (ftp://ftp.stack.nl/pub/users/dimitri/doxygen-1.8.2.windows.bin.zip)
Descomprimir el archivo doxygen-1.8.2.windows.bin.zip en la carpeta “C:\libfs32VC\bin”.
10.- Las bibliotecas Jack_v1.9.11_64.
Descargar el archivo Jack_v1.9.11_64_setup.exe (https://github.com/jackaudio/jackaudio.github.com/releases/download/1.9.11/Jack_v1.9.11_64_setup.exe)
Ejecutar el instalador Jack_v1.9.11_64_setup.exe. Continuar la instalación del programa normalmente.
Copiar la carpeta “jack” contenida en “C:\Archivos de programa\Jack\includes” (“C:\Program Files\Jack\includes”) en la carpeta “C:\libfs32VC\include” creada en el punto 5 y el archivo “libjack.lib” contenida en “C:\Archivos de programa\Jack\lib” (C:\Program Files\Jack\lib”) en la carpeta “C:\libfs32VC\lib”
Abrir notepad++ (http://notepad-plus-plus.org/): Desde el menú hacer clic en Archivo -> Nuevo. Aparece una ventana de edición nueva. Desde el menú hacer clic en Codificación y seleccionar Codificar en UTF-8 sin BOM. En la ventana de edición escribir:
prefix=c:/devel/target/fc3f1f7e8403ab2bf792fb540d8ffffe
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
server_libs=-L${exec_prefix}/lib -llibjackserver
Name: jack
Description: the Jack Audio Connection Kit
Version: 1.9.11.0
Libs: -L${libdir} -llibjack
Cflags: -I${includedir}/libjack
Desde el menú, hacer clic en Archivo -> Guardar como… y guardar en “C:\libfs32\lib\pkgconfig” con el nombre: jack.pc.
11.- Las bibliotecas libsndfile-1.0.28-w32 de Mega-Nerd.
Descargar “libsndfile-1.0.28-w32.zip” de (http://www.mega-nerd.com/libsndfile/files/libsndfile-1.0.28-w32.zip).
Abrir el archivo “libsndfile-1.0.28-w32.zip” con 7zip. Dar doble click en la carpeta “bin”. Descomprimir el archivo “libsndfile-1.dll” en la carpeta “C:\libfs32VC\bin”. Regresar a la carpeta anterior en el archivo zip. Dar doble clip en la carpeta “include” y descomprimir el archivo “sndfile.h” en la carpeta “C:\libfs32VC\include”. Regresar a la carpeta anterior en el archivo zip. Dar doble click en la carpeta “lib”. Descomprimir la carpeta “pkgconfig” y el archivo “libsndfile-1.lib” en la carpeta “C:\libfs32VC\lib”. Cerrar 7zip.
Abrir el archivo sndfile.pc contenido en la carpeta “C:\libfs32VC\lib\pkgconfig” con notepad++ y modificar como sigue:
Original:
prefix=c:/devel/target/libsndfile
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: sndfile
Description: A library for reading and writing audio files
Requires:
Version: 1.0.28
Libs: -L${libdir} -lsndfile
Libs.private: Ext/libflac.la Ext/libvorbis.la Ext/libogg.la
Cflags: -I${includedir}
Nuevo:
prefix=c:/devel/target/libsndfile
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: libsndfile-1
Description: A library for reading and writing audio files
Requires:
Version: 1.0.28
Libs: -L${libdir} -llibsndfile-1
Libs.private: Ext/libflac.la Ext/libvorbis.la Ext/libogg.la
Cflags: -I${includedir}
y guardar.
Para comprobar, abrimos una ventana de línea de comandos y escribimos:
C:\>pkg-config --list-all
portaudio-2.0-x86-vs15 portaudio-2.0 - portaudio library x86
fluidsynth FluidSynth - Software SoundFont synth
glib-2.0-x86-vs10 GLib - C Utility Library
glib-2.0-x86-vs11 GLib - C Utility Library
glib-2.0-x86-vs12 GLib - C Utility Library
portaudio-2.0-x86-vs10 portaudio-2.0 - portaudio library x86
glib-2.0-x86-vs14 GLib - C Utility Library
glib-2.0-x86-vs15 GLib - C Utility Library
gthread-2.0-x86-vs10 GThread - Thread support for GLib
gthread-2.0-x86-vs11 GThread - Thread support for GLib
gthread-2.0-x86-vs12 GThread - Thread support for GLib
gthread-2.0-x86-vs14 GThread - Thread support for GLib
gthread-2.0-x86-vs15 GThread - Thread support for GLib
jack jack - the Jack Audio Connection Kit
portaudio-2.0-x86-vs14 portaudio-2.0 - portaudio library x86
portaudio-2.0-x86-vs11 portaudio-2.0 - portaudio library x86
portaudio-2.0-x86-vs12 portaudio-2.0 - portaudio library x86
sndfile libsndfile-1 - A library for reading and writing audio fi
les
12.- Abrir el archivo Doxyfile.cmake en la carpeta “C:\FS32\fluidsynth-1.1.7\doc” con notepad++.
Ir a la línea 68 y cambiar
SHOW_DIRECTORIES = NO
a
#SHOW_DIRECTORIES = NO
Ir a la línea 126 y cambiar
HTML_ALIGN_MEMBERS = YES
a
#HTML_ALIGN_MEMBERS = YES
y guardar
13.- Abrir el archivo fluid_jack.c en la carpeta “C:\FS32\fluidsynth-1.1.7\src\drivers” con notepad++. Ir a la línea 479 y cambiar
jack_free (jack_ports); /* free jack ports array (not the port values!) */
por
jack_free ((void*) jack_ports); /* free jack ports array (not the port values!) */
y guardar
14.- Abrir el archivo “fluid_portaudio.c” en la carpeta “C:\FS32\fluidsynth-1.1.7\src\drivers” con notepad++. Ir a la línea 41. Sustituir el texto:
#include <unistd.h>
con:
/* #include <unistd.h> */
Crear inmediatamente una nueva línea y escribir:
#include <io.h>
Ir a la línea 45, crear una nueva línea y escribir:
#define bzero(b,len) (memset((b), '\0', (len)), (void) 0)
y guardar
Desde la línea 38 hasta la 46 debe verse lo siguiente:
#if PORTAUDIO_SUPPORT
#include <fcntl.h>
/* #include <unistd.h> */
#include <io.h>
#include <errno.h>
#include <portaudio.h>
#define bzero(b,len) (memset((b), '\0', (len)), (void) 0)
y guardar.
15.- Abrir el archivo “fluid_midishare.c” en “C:\FS32\fluidsynth-1.1.7\src\drivers”
Ir a la línea 35 y sustituir
#if MIDISHARE_SUPPORT
con
#if MIDISHARE_SUPPORT == TRUE
Ir a la línea 248 y sustituir
MidiTask(fluid_midishare_keyoff_task, MidiGetTime()+Dur(e), ref, (long)e, 0, 0);
con
MidiTask((TaskPtr) fluid_midishare_keyoff_task, MidiGetTime()+Dur(e), ref, e, 0, 0);
Ir a la línea 409 y sustituir
MidiSetRcvAlarm(dev->refnum, fluid_midishare_midi_driver_receive);
con
MidiSetRcvAlarm(dev->refnum, (RcvAlarmPtr) fluid_midishare_midi_driver_receive);
Ir a la línea 410 y sustituir
MidiConnect(0,dev->refnum,true);
con
MidiConnect(0,dev->refnum,1);
y guardar.
16.- Abrir fluid_sys.h en "C:\FS32\fluidsynth-1.1.7\src\utils".
Ir a la línea 268 y cambiar de
#define fluid_atomic_int_add(_pi, _val) g_atomic_int_add(_pi, _val)
a
//#define fluid_atomic_int_add(_pi, _val) g_atomic_int_add(_pi, _val)
Ir a la línea 278, insertar una línea nueva y en ella escribir
#define fluid_atomic_int_add(_pi, _add) \
g_atomic_int_add(_pi, _add)
Ir a la línea 284 (antes 282), insertar una línea nueva y en ella escribir
#define fluid_atomic_int_add(_pi, _add) \
g_atomic_int_exchange_and_add(_pi, _add)
y guardar
17.- Abrir FindReadline.cmake en "C:\FS32\fluidsynth-1.1.7\cmake_admin"
Ir a la línea 11 y sustituir
find_library ( READLINE_LIBRARIES NAMES readline )
con
if (MSVC_VERSION EQUAL 1600)
find_library ( READLINE_LIBRARIES NAMES readline-x86-vs10 )
endif (MSVC_VERSION EQUAL 1600)
if (MSVC_VERSION EQUAL 1700)
find_library ( READLINE_LIBRARIES NAMES readline-x86-vs11 )
endif (MSVC_VERSION EQUAL 1700)
if (MSVC_VERSION EQUAL 1800)
find_library ( READLINE_LIBRARIES NAMES readline-x86-vs12 )
endif (MSVC_VERSION EQUAL 1800)
if (MSVC_VERSION EQUAL 1900)
find_library ( READLINE_LIBRARIES NAMES readline-x86-vs14 )
endif (MSVC_VERSION EQUAL 1900)
if (MSVC_VERSION GREATER 1900)
find_library ( READLINE_LIBRARIES NAMES readline-x86-vs15 )
endif (MSVC_VERSION GREATER 1900)
Ir a la línea 32 (antes 13) y sustituir
if ( READLINE_INCLUDE_DIR )
set ( HAVE_READLINE TRUE CACHE TYPE BOOL )
endif ( READLINE_INCLUDE_DIR )
con
if ( READLINE_INCLUDE_DIR AND READLINE_LIBRARIES )
set ( HAVE_READLINE TRUE CACHE TYPE BOOL )
endif ( READLINE_INCLUDE_DIR AND READLINE_LIBRARIES )
18.- Abrir el archivo “FindMidiShare.cmake” en "C:\FS32\fluidsynth-1.1.7\cmake_admin".
Ir a la línea 1 y sustituir
# Try to find the READLINE library
con
# Try to find the MIDISHARE library
Ir a la línea 11 y sustituir
find_library ( MidiShare_LIBS NAMES MidiShare )
con
find_library ( MidiShare_LIBS NAMES mshare32 MidiShare )
y guardar.
19.- Abrir CMakeLists.txt en "C:\FS32\fluidsynth-1.1.7”
Ir a la línea 409 y sustituir
if ( enable_midishare )
con
if ( enable-midishare )
Ir a la línea 412 y sustituir
else ( enable_midishare )
con
else ( enable-midishare )
Ir a la línea 414 y sustituir
endif ( enable_midishare )
con
endif ( enable-midishare )
Sustituir las líneas 356 y 357 de:
pkg_check_modules ( PORTAUDIO portaudio-2.0>=19 )
set ( PORTAUDIO_SUPPORT ${PORTAUDIO_FOUND} )
a
if (MSVC_VERSION EQUAL 1600)
pkg_check_modules ( PORTAUDIO portaudio-2.0-x86-vs10>=19 )
set ( PORTAUDIO_SUPPORT ${PORTAUDIO_FOUND} )
endif (MSVC_VERSION EQUAL 1600)
if (MSVC_VERSION EQUAL 1700)
pkg_check_modules ( PORTAUDIO portaudio-2.0-x86-vs11>=19 )
set ( PORTAUDIO_SUPPORT ${PORTAUDIO_FOUND} )
endif (MSVC_VERSION EQUAL 1700)
if (MSVC_VERSION EQUAL 1800)
pkg_check_modules ( PORTAUDIO portaudio-2.0-x86-vs12>=19 )
set ( PORTAUDIO_SUPPORT ${PORTAUDIO_FOUND} )
endif (MSVC_VERSION EQUAL 1800)
if (MSVC_VERSION EQUAL 1900)
pkg_check_modules ( PORTAUDIO portaudio-2.0-x86-vs14>=19 )
set ( PORTAUDIO_SUPPORT ${PORTAUDIO_FOUND} )
endif (MSVC_VERSION EQUAL 1900)
if (MSVC_VERSION GREATER 1900)
pkg_check_modules ( PORTAUDIO portaudio-2.0-x86-vs15>=19 )
set ( PORTAUDIO_SUPPORT ${PORTAUDIO_FOUND} )
endif (MSVC_VERSION GREATER 1900)
Sustituir la línea 319 de:
pkg_check_modules ( GLIB REQUIRED glib-2.0>=2.6.5 gthread-2.0>=2.6.5 )
a
if (MSVC_VERSION EQUAL 1600)
pkg_check_modules ( GLIB REQUIRED glib-2.0-x86-vs10>=2.6.5 gthread-2.0-x86-vs10>=2.6.5 )
endif (MSVC_VERSION EQUAL 1600)
if (MSVC_VERSION EQUAL 1700)
pkg_check_modules ( GLIB REQUIRED glib-2.0-x86-vs11>=2.6.5 gthread-2.0-x86-vs11>=2.6.5 )
endif (MSVC_VERSION EQUAL 1700)
if (MSVC_VERSION EQUAL 1800)
pkg_check_modules ( GLIB REQUIRED glib-2.0-x86-vs12>=2.6.5 gthread-2.0-x86-vs12>=2.6.5 )
endif (MSVC_VERSION EQUAL 1800)
if (MSVC_VERSION EQUAL 1900)
pkg_check_modules ( GLIB REQUIRED glib-2.0-x86-vs14>=2.6.5 gthread-2.0-x86-vs14>=2.6.5 )
endif (MSVC_VERSION EQUAL 1900)
if (MSVC_VERSION GREATER 1900)
pkg_check_modules ( GLIB REQUIRED glib-2.0-x86-vs15>=2.6.5 gthread-2.0-x86-vs15>=2.6.5 )
endif (MSVC_VERSION GREATER 1900)
Sustituir las líneas 296 y 297 de:
FIND_LIBRARY( GLIB_LIB NAMES glib glib-2.0 PATH GLIB_LIBRARY_DIR NO_DEFAULT_PATH)
FIND_LIBRARY( GTHREAD_LIB NAMES gthread gthread-2.0 PATH GTHREAD_LIBRARY_DIR NO_DEFAULT_PATH )
a
if (MSVC_VERSION EQUAL 1600)
FIND_LIBRARY( GLIB_LIB NAMES glib glib-2.0-x64-vs10 PATH GLIB_LIBRARY_DIR NO_DEFAULT_PATH)
endif (MSVC_VERSION EQUAL 1600)
if (MSVC_VERSION EQUAL 1700)
FIND_LIBRARY( GLIB_LIB NAMES glib glib-2.0-x64-vs11 PATH GLIB_LIBRARY_DIR NO_DEFAULT_PATH)
endif (MSVC_VERSION EQUAL 1700)
if (MSVC_VERSION EQUAL 1800)
FIND_LIBRARY( GLIB_LIB NAMES glib glib-2.0-x86-vs12 PATH GLIB_LIBRARY_DIR NO_DEFAULT_PATH)
endif (MSVC_VERSION EQUAL 1800)
if (MSVC_VERSION EQUAL 1900)
FIND_LIBRARY( GLIB_LIB NAMES glib glib-2.0-x86-vs14 PATH GLIB_LIBRARY_DIR NO_DEFAULT_PATH)
endif (MSVC_VERSION EQUAL 1900)
if (MSVC_VERSION GREATER 1900)
FIND_LIBRARY( GLIB_LIB NAMES glib glib-2.0-x86-vs15 PATH GLIB_LIBRARY_DIR NO_DEFAULT_PATH)
endif (MSVC_VERSION GREATER 1900)
if (MSVC_VERSION EQUAL 1600)
FIND_LIBRARY( GTHREAD_LIB NAMES gthread gthread-2.0-x86-vs10 PATH GTHREAD_LIBRARY_DIR NO_DEFAULT_PATH )
endif (MSVC_VERSION EQUAL 1600)
if (MSVC_VERSION EQUAL 1700)
FIND_LIBRARY( GTHREAD_LIB NAMES gthread gthread-2.0-x86-vs11 PATH GTHREAD_LIBRARY_DIR NO_DEFAULT_PATH )
endif (MSVC_VERSION EQUAL 1700)
if (MSVC_VERSION EQUAL 1800)
FIND_LIBRARY( GTHREAD_LIB NAMES gthread gthread-2.0-x86-vs12 PATH GTHREAD_LIBRARY_DIR NO_DEFAULT_PATH )
endif (MSVC_VERSION EQUAL 1800)
if (MSVC_VERSION EQUAL 1900)
FIND_LIBRARY( GTHREAD_LIB NAMES gthread gthread-2.0-x86-vs14 PATH GTHREAD_LIBRARY_DIR NO_DEFAULT_PATH )
endif (MSVC_VERSION EQUAL 1900)
if (MSVC_VERSION GREATER 1900)
FIND_LIBRARY( GTHREAD_LIB NAMES gthread gthread-2.0-x86-vs15 PATH GTHREAD_LIBRARY_DIR NO_DEFAULT_PATH )
endif (MSVC_VERSION GREATER 1900)
Ir a la línea 165 y sustituir
set ( LIBFLUID_CPPFLAGS "${FLUID_CPPFLAGS} -DFLUIDSYNTH_DLL_EXPORTS" )
con
# set ( LIBFLUID_CPPFLAGS "${FLUID_CPPFLAGS} -DFLUIDSYNTH_DLL_EXPORTS" )
Ir a la línea 163. Poner el cursor hasta el final. Dar "Enter".
En la nueva línea escribir:
set ( LIBFLUID_CPPFLAGS "-DFLUIDSYNTH_DLL_EXPORTS" )
ir a la línea vacía 25 y escribir:
cmake_policy(SET CMP0054 OLD)
y guardar.
20.- Abrir el archivo “fluidsynth.c” en "C:\FS32\fluidsynth-1.1.7\src"con notepad++.
Ir a la línea 850 y sustituir
"Copyright (C) 2000-2012 Peter Hanappe and others.\n"
con
"Copyright (C) 2000-2017 Peter Hanappe and others.\n"
y guardar.
B.- Generar el archivo “.sln” con la interface gráfica de CMake
1.- Ejecutar CMake (cmake-gui)
2.- En la caja de texto “Where is the source code:” Escribir “C:\FS32\fluidsynth-1.1.7”
3.- En la caja de texto “Where to build the binaries:” Escribir “C:\FS32\fluidsynth-1.1.7\build_32_vs10”
4.- Hacer clic en el botón [Configure]. Se presentará la ventana de elección del generador.
5.- Elegir “Visual Studio 10 2010” como generador, Elegir la opción “Use default native compilers” y hacer clic en el botón [Finish].
6.- Terminada la primera configuración, abrir el árbol “Ungrouped Entries” en la ventana del proyecto y desmarcar “enable-debus” y “enable-pulseaudio” (si se quiere compilar sin Jack se puede desmarcar “enable-jack”). Marcar la casilla correspondiente a “enable-portaudio”. Comprobar que está marcada la casilla de “midishare”.
7.- Abrir el árbol “CMAKE” en la ventana del proyecto y cambiar la variable:
CMAKE_INSTALL_PREFIX de “C:/Program Files (x86)/FluidSynth” a
“C:/Program Files (x86)/FluidSynth117_vs10_x86”
8.- Hacer clic en la tecla [Configure] una segunda vez y al finalizar esta operación se hace clic en el botón [Generate].
C.- Crear FluidSynth
1.- Ir a la carpeta “C:\FS32\fluidsynth-1.1.7\build_32_vs10” en el explorador de archivos y dar doble clic sobre el archivo FluidSynth.sln. Se abrirá la interface gráfica de MVC++ 2010 Express.
2.- Ir al menú Generar -> Administración de la configuración… y en la ventana que aparece en el combo “Configuración de soluciones activas:” seleccionar Release y marcar la casilla de “Generar”, en el rubro “doxygen”, en el rubro “INSTALL” y en el rubro “PACKAGE” en la ventana “Contextos del proyecto” y oprimir [Cerrar].
3.- Ir al menú Generar -> Generar solución. El programa debe compilarse sin advertencias y sin errores.
4.- La salida del nuevo ejecutable se ubicará en la carpeta “C:/Program Files (x86)/FluidSynth117_vs10_x86\bin” donde se encontrarán los archivos: fluidsynth.exe, libfluidsynth.dll, fluidsynth.lib y fluidsynth.exp.
Las dependencias incluyen los siguientes archivos:
libfluidsynth.dll
que se encuentra en la misma carpeta donde se construyó fluidsynth.exe.
glib-2.0-x86-vs10.dll
intl.dll
libsndfile-1.dll
mshare32.dll
msvcp100.dll
msvcr100.dll
portaudio-x86-vs10.dll
readline-x86-vs10.dll
que se hallan en la carpeta “C:\libfs32\bin”.
libjack.dll
que se ubica en “C:\Windows\SysWOW64” cuando se instala Jack_v1.9.10_64. No es necesario distribuir FluidSynth con ésta DLL, ya que se necesita haber instalado Jack como se indicó en el punto A-11 para que tenga funcionalidad el driver.
Para que MidiShare tenga funcionalidad, se necesita agregar los siguientes archivos en el directorio de distribución:
midishare.ini
msControl.exe
msDrivers.exe
msMMSystem.dll
msMMSystem.ini
5.- La carpeta "C:\Archivos de programa (x86)\FluidSynth" ("C:\Program Files (x86)\FluidSynth") contendrá las siguientes carpetas y archivos:
bin:
fluidsynth.exe
libfluidsynth.dll
msvcp100.dll
msvcr100.dll
include:
fluidsynth:
audio.h
event.h
gen.h
log.h
midi.h
misc.h
mod.h
ramsfont.h
seq.h
seqbind.h
settings.h
sfont.h
shell.h
synth.h
types.h
version.h
voice.h
fluidsynth.h
lib64:
pkgconfig:
fluidsynth.pc
fluidsynth.lib
6.- Si se seleccionó PACKAGE, se pueden obtener los archivos de salida en diferentes formatos de compresión en la carpeta ”C:\FS32\fluidsynth-1.1.7\build_32_vs10\_CPack_Packages\win32”:
Carpetas:
STGZ
TBZ2
TGZ
ZIP
7.- La documentación del programador se encuentra en la carpeta “C:\FS32\fluidsynth-1.1.7\build_32_vs10\doc\api\html”, donde se halla el archivo: index.htm que puede abrirse con cualquier navegador de internet.
OPCIONAL: Dar un nombre más descriptivo a la librería “libfluidsynth.dll”, de tal manera que informe la versión de VC utilizada, si está compilada con soporte Jack y la plataforma.
Después de configurar con CMake y antes de abrir el archivo FluidSynth.sln hacer lo siguiente.
1.- Abrir “cmake_install.cmake” en “C:\FS32\fluidsynth-1.1.7\build32_vs10 \src”.
Ir a la línea 67 y sustituir
file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE SHARED_LIBRARY FILES "C:/FS32/fluidsynth-1.1.7/build32_vs10_jack/src/RelWithDebInfo/libfluidsynth.dll")
con
file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE SHARED_LIBRARY FILES "C:/FS32/fluidsynth-1.1.7/build32_vs10_jack/src/RelWithDebInfo/libfluidsynth-vs10-jack-x86.dll")
Ir a la línea 65 y sustituir
file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE SHARED_LIBRARY FILES "C:/FS32/fluidsynth-1.1.7/build32_vs10_jack/src/MinSizeRel/libfluidsynth.dll")
con
file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE SHARED_LIBRARY FILES "C:/FS32/fluidsynth-1.1.7/build32_vs10_jack/src/MinSizeRel/libfluidsynth-vs10-jack-x86.dll")
Ir a la línea 63 y sustituir
file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE SHARED_LIBRARY FILES "C:/FS32/fluidsynth-1.1.7/build32_vs10_jack/src/Release/libfluidsynth.dll")
con
file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE SHARED_LIBRARY FILES "C:/FS32/fluidsynth-1.1.7/build32_vs10_jack/src/Release/libfluidsynth-vs10-jack-x86.dll")
Ir a la línea 61 y sustituir
file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE SHARED_LIBRARY FILES "C:/FS32/fluidsynth-1.1.7/build32_vs10_jack/src/Debug/libfluidsynth_debug.dll")
con
file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE SHARED_LIBRARY FILES "C:/FS32/fluidsynth-1.1.7/build32_vs10_jack/src/Debug/libfluidsynth-vs10-jack-x86_debug.dll")
Ir a la línea 55 y sustituir
file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE STATIC_LIBRARY OPTIONAL FILES "C:/FS32/fluidsynth-1.1.7/build32_vs10_jack/src/RelWithDebInfo/fluidsynth.lib")
con
file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE STATIC_LIBRARY FILES "C:/FS32/fluidsynth-1.1.7/build32_vs10_jack/src/RelWithDebInfo/fluidsynth-vs10-jack-x86.lib")
Ir a la línea 53 y sustituir
file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE STATIC_LIBRARY OPTIONAL FILES "C:/FS32/fluidsynth-1.1.7/build32_vs10_jack/src/MinSizeRel/fluidsynth.lib")
con
file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE STATIC_LIBRARY FILES "C:/FS32/fluidsynth-1.1.7/build32_vs10_jack/src/MinSizeRel/fluidsynth-vs10-jack-x86.lib")
Ir a la línea 51 y sustituir
file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE STATIC_LIBRARY OPTIONAL FILES "C:/FS32/fluidsynth-1.1.7/build32_vs10_jack/src/Release/fluidsynth.lib")
con
file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE STATIC_LIBRARY FILES "C:/FS32/fluidsynth-1.1.7/build32_vs10_jack/src/Release/fluidsynth-vs10-jack-x86.lib")
Ir a la línea 49 y sustituir
file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE STATIC_LIBRARY OPTIONAL FILES "C:/FS32/fluidsynth-1.1.7/build32_vs10_jack/src/Debug/fluidsynth_debug.lib")
con
file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE STATIC_LIBRARY FILES "C:/FS32/fluidsynth-1.1.7/build32_vs10_jack/src/Debug/fluidsynth-vs10-jack-x86_debug.lib")
2.- Abrir el archivo FluidSynth.sln en “C:\FS32\fluidsynth-1.1.7\build_32_vs10”
En el Explorador de soluciones dar clic derecho en “libfluidsynth” y seleccionar “Propiedades”. En Propiedades de configuración -> General, en “Nombre de destino” escribir “libfluidsynth-vs10-jack-x86”.
En Propiedades de configuración -> Vinculador -> Avanzadas, en “Biblioteca de importación” escribir “C:/FS32/fluidsynth-1.1.7/build32_vs10_jack/src/Release/libfluidsynth-vs10-jack-x86.lib”
En el Explorador de soluciones dar clic derecho en “fluidsynth” y seleccionar “Propiedades”. En Propiedades de configuración -> Vinculador -> Entrada, dar clic en “Dependencias adicionales”. Oprimir la flecha hacia abajo al final de la línea de edición y seleccionar <Editar…>. Se abre la ventana de edición de esa línea. En el cuadro de edición de texto en la primera línea, cambiar de
Release\fluidsynth.lib
a
Release\fluidsynth-vs10-jack-x86.lib
3.- Seguir los pasos para la creación de la solución.