A.- Preparación.
Bajar los siguientes archivos y seguir las instrucciones de instalación. (Se supone que se ha creado FluidSynth y se tienen instalados Visual C++ 2010 Express y CMake 3.5.2).
1.- El archivo con el código fuente de Qsynth (http://qsynth.sourceforge.net/qsynth-index.html)
qsynth-0.4.0.tar.gz (http://sourceforge.net/projects/qsynth/files/qsynth/0.4.0/qsynth-0.4.0.tar.gz/download)
Crear una carpeta nueva en “C:\”. Por ejemplo “C:\QS32”.
En esta carpeta descomprimir el archivo qsynth-0.4.0.tar.gz. (“C:\QS32\qsynth-0.4.0”)
En esta última carpeta crear la carpeta “build” (“C:\QS32\qsynth-0.4.0\build”)
Realizar los siguientes cambios:
a) Abrir el archivo “CMakeLists.txt” en la carpeta “C:\QS32\qsynth-0.4.0\src” con notepad++.
Ir a la línea 130 y sustituir
DESTINATION share/locale )
con
DESTINATION share/qsynth/translations )
Ir a la línea 141 y sustituir
DESTINATION share/locale )
con
DESTINATION share/qsynth/translations )
y guardar.
b) A los archivos “qsynthDialClassicStyle.h”, “qsynthDialSkulptureStyle.h”, “qsynthDialVokiStyle.h” y “qsynthKnob.h” que se localizan en la carpeta “C:\QS32\qsynth-0.4.0\src” abrirlos con notepad++ y añadir al final de cada archivo, la línea
#define M_PI 3.14159265358979323846
y guardar cada uno.
c) Abrir el archivo “CMakeLists.txt” en la carpeta “C:\QS32\qsynth-0.4.0” y hacer las siguientes modificaciones.
1) Ir a la línea 27 y sustituir
set (QT_MIN_VERSION "5.1.0")
con
set (QT_MIN_VERSION "4.8.6")
2) Ir a la línea 28 y sustituir
find_package (Qt5 REQUIRED)
con
# find_package (Qt5 REQUIRED)
3) Bajo esta línea crear una línea nueva y escribir
find_package(Qt4)
4) Ir a la línea 62 y sustituir
if (FLUIDSYNTH_LIBRARY AND HAVE_FLUIDSYNTH_H)
con
if (FLUIDSYNTH_LIBRARY)
5) Ir a la línea 74 y sustituir
else (FLUIDSYNTH_LIBRARY AND HAVE_FLUIDSYNTH_H)
con
else (FLUIDSYNTH_LIBRARY)
6) Ir a la línea 76 y sustituir
endif (FLUIDSYNTH_LIBRARY AND HAVE_FLUIDSYNTH_H)
con
endif (FLUIDSYNTH_LIBRARY)
y guardar.
d) Abrir el archivo qsynth.qrc en “C:\QS64\qsynth-0.4.0\src” con notepad++.
Ir a la línea 25 y cambiar
<file>images/qtlogo.png</file>
por
<!--<file>images/qtlogo.png</file>-->
y guardar
2.- El programa Qt4 (http://qt-project.org/) para desarrollo de Interfaces de Usuario de plataforma cruzada.
qt-opensource-windows-x86-vs2010-4.8.7.exe (https://download.qt.io/official_releases/qt/4.8/4.8.7/qt-opensource-windows-x86-vs2010-4.8.7.exe)
Instalar el programa qt-opensource-windows-x86-vs2010-4.8.7.exe en la carpeta por defecto “C:\Qt\4.8.7“. Agregar a la variable de sistema PATH la ruta “C:\Qt\4.8.7\bin”
3.- Cuando se compila FluidSynth x86 en una máquina de 64 bits utilizando la opción INSTALL, la carpeta de instalación debe quedar en “C:\Archivos de programa (x86)\FluidSynth” (“C:\Program Files (x86)\FluidSynth”)
a) Copiar la biblioteca libfluidsynth.dll ubicada en la carpeta “C:\Archivos de programa (x86)\FluidSynth\bin” (“C:\Program Files (x86)\FluidSynth\bin”) en la carpeta “C:\libfs32\bin”.
b) Copiar la biblioteca fluidsynth.lib y la carpeta “pkgconfig” ubicadas en la carpeta “C:\Archivos de programa (x86)\FluidSynth\lib” (“C:\Program Files (x86)\FluidSynth\lib”) en la carpeta “C:\libfs32\lib”.
c) Copiar los archivos y la carpeta contenidos en el directorio “C:\Archivos de programa (x86)\FluidSynth\include” (“C:\Program Files (x86)\FluidSynth\include”) (archivos include) dentro de la carpeta “C:\libfs32\include”.
B.- Generar el archivo “.sln” con la interface gráfica de CMake
1.- Ejecutar CMake (cmake-gui)
2.- Introducir la ruta donde se encuentra el código fuente (C:\QS64\qsynth-0.4.0)
3.- Introducir la ruta donde se creará Qsynth (C:\QS64\qsynth-0.4.0\build)
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.- El programa ejecuta la acción solicitada.
7.- Terminada la configuración se tiene el siguiente estado:
En la ventana central hacer clic en el signo [+]××× del lado izquierdo de la clave CMAKE. Buscar la entrada CMAKE_INSTALL_PREFIX y cambiarlo de “C:/Program Files/QSYNTH” a “./”. Esto garantiza que al distribuir Qsynth la búsqueda de los archivos de traducción sea relativa a la carpeta “\share\qsynth\translations”, la que se deberá ubicar en la misma carpeta que contiene el ejecutable “qsynth.exe”.
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 Qsynth
1.- Ir a la carpeta “C:\QS32\qsynth-0.4.0\build” en el explorador de archivos y dar doble clic sobre el archivo QSYNTH.sln. Se abrirá la interface gráfica de VS 2010.
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 “INSTALL” en la ventana “Contextos del proyecto” y oprimir [Cerrar].
3.- En el “Explorador de soluciones” dar clic derecho en el rubro qsynth y elegir Propiedades en el menú desplegable. En la ventana que aparece ir a Vinculador -> Línea de comandos. En el cuadro de texto editable “Opciones adicionales” añadir el texto
/ENTRY:"mainCRTStartup"
Oprimir [Aplicar] y luego [Aceptar].
4.- Ir al menú Generar -> Generar solución. El programa debe compilarse sin advertencias y sin errores.
5.- La salida del nuevo ejecutable se ubicará en la carpeta “C:\QS64\qsynth-0.4.0\build” donde se encontrará el archivo: qsynth.exe, y la carpeta share en el que se encuentran los archivos de traducción (share\qsynth\translations).
Las dependencias incluyen los siguientes archivos:
libfluidsynth.dll
libglib-2.0-0.dll
libgthread-2.0-0.dll
libintl-8.dll
libsndfile-1.dll
QtCore4.dll
QtGui4.dll
libjack64.dll
NOTA:
Para la distribución del programa se necesitan las siguientes DLLs dentro de la misma carpeta que contiene a qsynth.exe:
libfluidsynth.dll - La biblioteca compilada junto con FluidSynth
libglib-2.0-0.dll y libgthread-2.0-0.dll - La biblioteca glib que se obtiene desde la carpeta “C:\libfs64\bin” que se creó previamente para compilar FluidSynth (ver el punto 4 de la sección A en “Construcción de FluidSynth para Windows®con VS 2010 (64 bit))”
libintl-8.dll - Que se obtiene desde la misma carpeta “C:\libfs64\bin”
libsndfile-1.dll - Que se obtiene desde la misma carpeta “C:\libfs64\bin”
QtCore4.dll y QtGui4.dll – Las bibliotecas Qt4 que se obtienen desde la carpeta “C:\Qt\qt-4.8.6-x64-msvc2010\qt-4.8.6-x64-msvc2010\bin”
libjack64.dll – La biblioteca Jack que se obtiene de “C:\Windows” después de instalar Jack_v1.9.10_64.
fluidsynth.exe – El programa ejecutable FluidSynth compilado. (No es necesario para que Qsynth trabaje pero se acostumbra suministrarlo)