Integración de Garritan Personal Orchestra 2 con Musescore bajo OpenSuSE

Introducción

Los usuarios de Musescore nos encontramos que al usar Instrumentos Virtuales Externos, no podemos hacer uso de ciertos controladores. Concretamente, en los instrumentos de vientos, metal y cuerdas, nos encontramos que la valor de velocidad de las notas MIDI son interpretados como velocidad de ataque del sonido y no como intensidad de las notas. En estos instrumentos la intensidad del sonido es regulada con un controlador MIDI, concretamente con la rueda de modulación. Y es por ello que estos instrumentos suenan sin dinámica alguna, pues sólo la velocidad de las notas MIDI afectan a si el sonido es más o menos percusivo. Lo ideal sería que los reguladores de la partitura actuasen sobre los valores del controlador MIDI y aplicase la correspondiente dinámica, pero desafortunadamente no es así. Para simular esta dinámica existe la posibilidad de usar las características de «scripts» implementadas en el Kontakt 5 y usar los valores de velocidad de las notas MIDI para actuar sobre el controlador MIDI que regula la intensidad del sonido. A continuación detallaremos como hacerlo.

Requisitos e instalación

Los requisitos son obvios, disponer del Garritan Personal Orchestra 2 y del Kontakt 5 (gratuito). Respecto al resto del software es libre.
El software que debemos instalar en OpenSuSE Leap 15.0 es:

  • Musescore 2.2.1 (disponible en la web de OpenSuSE)

  • wine 3.7 (disponible en la distribución)

  • qjackctrl 0.4.3 (disponible en la distribución)

Posteriormente debemos instalar el Garritan Personal Orchestra 2.

Luego la actualizacion al Kontakt Player 2.

Y por último el Kontakt 5 que puedes conseguirlo gratuitamente aquí,

https://support.native-instruments.com/hc/es/articles/360000568949-Instaladores-de-KONTAKT-5-Player-para-versiones-anteriores-de-sistemas-operativos

lo instalamos.

Configuración de Musescore con jack

Una vez instalados todos los programas procederemos a la configuración. Primero iniciamos qjackctrl para arrancar el subsistema de sonido de baja latencia jack, pulsando el boton «Setup» y lo configuramos usando el Driver «alsa» y el Driver MIDI «seq».

Una vez configurado lo arrancamos pulsando «iniciar».

Una vez iniciado arrancamos Musescore y vamos a «Editar» y a «Preferencias», lo configuramos para usar el servidor de audio jack.

Aplicamos los cambios y reiniciamos Musescore.

Configuración de dssi-vst

Para poder usar el programa vsthost, que permite cargar los plugins VST con jack, debemos definir las variables de entorno que afectan a este programa. Para ello y como «root», crearemos el archivo «profile.local» en la carpeta «/etc». En este archivo definiremos dos variables de entorno.

export DSSI_PATH=/usr/lib64/dssi:/usr/local/lib64/dssi
export VST_PATH="/home/pepeir/.wine/drive_c/Program Files/Native Instruments/VSTPlugins 32 bit/"

Después debemos editar el icono del acceso directo a la aplicación del escritorio para que use vsthost y no wine para iniciar el pluging VST Kontakt 5.

En la pestaña «Aplicación» pondremos en el apartado «Orden:» lo siguiente.

vsthost "Kontakt 5.dll"

Por último reiniciamos el equipo para que carge las variables de entorno.

Integrando Musescore y Kontakt 5

Iniciamos primero qjackctrl, seguidamente Musescore y por ultimo Kontakt 5 (con vsthost). Tras ello, en Musescore deshabilitamos el sintetizador interno. Vamos a «Ver» y a «Sintetizador», seleccionamos el SoundFont que carga por defecto y le damos a «Eliminar».

Cerramos la ventana y vamos a qjackctrl. Vamos en «Conexiones» a la pestaña «ALSA» para ver el nº de orden de puerto de entrada del Kontakt 5.

Después vamos a la pestaña «MIDI» y allí conectamos «mscore» con «midi_playback_(nº de orden de puerto de enrada del Kontakt 5)».

Ahora vamos al Kontakt 5 para cargar un banco de sonido.

Programación del script para mandar los valores de «Key Velocity» de las notas al «Controlador»

En el último paso modificaremos el script «Transform», proporcionado por Kontakt 5, para añadir la nueva característica. Para ello añadiremos un ítem adicional en el menú 1.

add_menu_item($menu_1,"Velocity",7)

Después crearemos una sección nueva con el código correspondiente al ítem «Velocity», justo después de la sección {Program Change}.

{Velocity}
if (($MIDI_COMMAND = $MIDI_COMMAND_NOTE_ON and $MIDI_BYTE_2 > 0) and $menu_1 = 7)
	set_midi($MIDI_CHANNEL,$MIDI_COMMAND_NOTE_ON,$MIDI_BYTE_1,$MIDI_BYTE_2)
	select ($menu_2)
		case 2 {Controller}
			if ($channel_2 = -1)
				set_midi($MIDI_CHANNEL,$MIDI_COMMAND_CC,$cc_number_2,$MIDI_BYTE_2)
			else
				set_midi($channel_2,$MIDI_COMMAND_CC,$cc_number_2,$MIDI_BYTE_2)
			end if
		case 3 {Pitch Bend}
			if ($channel_2 = -1)
				set_midi($MIDI_CHANNEL,$MIDI_COMMAND_PITCH_BEND,0,$MIDI_BYTE_2)
			else
				set_midi($channel_2,$MIDI_COMMAND_PITCH_BEND,0,$MIDI_BYTE_2)
			end if
		case 4 {Mono AT}
			if ($channel_2 = -1)
				set_midi($MIDI_CHANNEL,$MIDI_COMMAND_MONO_AT,$MIDI_BYTE_2,0)
			else
				set_midi($channel_2,$MIDI_COMMAND_MONO_AT,$MIDI_BYTE_2,0)
			end if
		case 5 {Poly AT}
			if ($channel_2 = -1)
				set_midi($MIDI_CHANNEL,$MIDI_COMMAND_POLY_AT,$poly_number_2,$MIDI_BYTE_2)
			else
				set_midi($channel_2,$MIDI_COMMAND_POLY_AT,$poly_number_2,$MIDI_BYTE_2)
			end if
		case 6 {PC}
			if ($channel_2 = -1)
				set_midi($MIDI_CHANNEL,$MIDI_COMMAND_PROGRAM_CHANGE,$MIDI_BYTE_2,0)
			else
				set_midi($channel_2,$MIDI_COMMAND_PROGRAM_CHANGE,$MIDI_BYTE_2,0)
			end if
	end select
end if
if ($MIDI_COMMAND = $MIDI_COMMAND_NOTE_OFF or ($MIDI_COMMAND = $MIDI_COMMAND_NOTE_ON and $MIDI_BYTE_2 = 0))
	if ($menu_1 = 7)
		set_midi($MIDI_CHANNEL,$MIDI_COMMAND_NOTE_OFF,$MIDI_BYTE_1,$MIDI_BYTE_2)
	end if
end if

Una vez modificado lo guardaremos como «Transform2».

Finalmente probaremos a reproducir en Musescore una partitura con dinámicas para ver como la rueda de modulación se mueve en función de la intensidad de las notas.

Deja un comentario