Tutorial Wwise en Español - Parte I: Introducción

Note for my english readers: Sorry this article is not in your language but I wanted to write something for the spanish speaking community since there aren’t many resources on game audio in my native tongue. If I see that there is demand, I would be happy to translate this into english although most of the content can be found in Audiokinetic’s official resources.

Dada la falta de recursos en castellano para aprender sonido para videojuegos de una forma práctica, me he decidido a escribir este tutorial como forma de iniciación en este, algo misterioso, mundo.

Voy a tratar de explicar algunos de los conceptos básicos que son necesarios para entender como funciona esta disciplina. He decidido mencionar y nombrar los conceptos clave en inglés por que así creo que te será mas fácil familiarizarte con la jerga del sector además de permitirte poder buscar ayuda online utilizando los términos en su idioma original.

Utilizaré Wwise, posiblemente el motor de audio más utilizado en la industria, pero ten en cuenta que estas ideas y prácticas se pueden aplicar, con ciertas modificaciones conceptuales, a otros software también.

Preámbulo sobre Diseño Interactivo

Antes de entra en harina, quería comentar que si hasta ahora solo has trabajado en disciplinas sonoras lineales como producción, mezcla musical o sonido para cine, hay ciertas consideraciones que debes tener en cuenta a la hora de trasladar tu trabajo a un medio interactivo como son los videojuegos.

Es imposible predecir como cada jugador va a comportarse por lo que el diseño de sonido y la mezcla debe considerar todas las posibles relaciones entre los elementos sonoros del proyecto. En comparación, un mezcla para un medio como cine es lineal y estática, luego una vez mezclada la película, esta siempre va a sonar igual, asumiendo que el medio de reproducción es medianamente fiel.

En contrapartida, los juegos son mas impredecibles y ningún jugador va a interactuar con el entorno de la misma manera por lo que el diseñador de sonido deberá implementar sistemas que ayuden a que la mezcla final provea la información mas relevante posible, manteniendo a la vez la estética y estilo que queremos transmitir.

Un ejemplo de esos sistema es el manejo de prioridades. Veremos ver cómo es posible dar prioridad a ciertos sonidos por encima de otros para asegurarnos de que los elementos más importantes, como diálogos, música o las acciones del protagonista nunca queden ahogados en la mezcla por sonidos del entorno que quizás no son tan relevantes.

Otra consideración a tener en cuenta es el manejo de la repetición. Si una acción es muy común en un juego, como por ejemplo saltar, y tiene un sonido asociado, el jugador va a escuchar este sonido cientos de veces. Veremos que métodos y estrategias podemos implementar para añadir mas variación y diversidad a sonidos frecuentes incluso aunque contemos con pocos sonidos a nuestra disposición.

Por último, un diseñador de sonido para juegos también debe tener siempre presente que cuenta con un número finito de recursos para realizar su trabajo. Debemos asegurarnos que tanto a nivel de memoria como de CPU no nos excedemos del “presupuesto” que se nos concede ya que la mayor parte de los recursos suelen ser destinados para el apartado gráfico.

Middleware

Este es el nombre que recibe el tipo de software que va a hacer de puente entre nuestros sonidos y el propio motor del juego. Wwise es el que voy a usar en este tutorial pero hay muchos otros que también son utilizados en la industria como por ejemplo Fmod o Fabric. Conocer uno de ellos te va a ayudar mucho a familiarizarte con los demás, puesto que trabajan con conceptos similares, aunque ten en cuenta que a veces resuelven el mismo problema de formas muy diferentes.

Estos middleware se pueden integrar en motores conocidos como Unity, Unreal o Source e incluso pueden funcionar junto a cualquier otro software o incluso hardware (¡como en coches!), siempre y cuando se utilice la sintaxis de programación adecuada. Por otro lado, los motores de juego mas grandes (Unity, Unreal, etc) tienen sus propias herramientas de audio que actúan en realidad como un middleware integrado por lo que a veces no utilizan Wwise o Fmod. Todo depende de las necesidades del proyecto y las preferencias del equipo.

En lo que a nosotros respecta, vamos a ver como usar Wwise en general, sin concretar como interactúa con ningún motor en particular. Una gran ventaja de usar Wwise, en vez de las herramientas de audio propias de un motor, es que como diseñador tendrás mas independencia a la hora de diseñar e integrar sonidos sin necesidad de que la persona encargada de la programación tenga que ayudarte con cada cambio que hagas.

Aprender las funciones y conceptos básicos de Wwise te va ayudar a comprender un poco mejor cómo funciona el audio para videojuegos y de paso te dará los conocimientos necesarios para en el futuro saltar a otro middleware con más facilidad, de la misma forma que, por ejemplo, aprender Pro Tools te ayudaría a usar Nuendo.

Descarga, Instalación y Materiales

Vamos al turrón, pues.

Veo imprescindible que pongas las manos en la masa y a medida que explique distintos conceptos puedas ir poniéndolos en practica en tu propio proyecto de Wwise. Para ello, vas a necesitar descargar todo el software necesario.

Ve a la pagina oficial de Wwise y debes descargar el launcher con el que podrás administrar todas las distintas versiones y materiales.

Una vez en el launcher, debes instalar la última version de Wwise (latest) e incluir también los elementos que ves en la imagen inferior. Dentro de Samples, veras LIMBO y Cube, estos son dos juegos que podrás usar para poner tus propios sonidos y aprender como Wwise interactúa con un juego real. Por otro lado, a la derecha verás que puedes elegir distintas plataformas que Wwise tendrá en cuenta cuando prepare los archivos de audio para el juego. En principio, elige tu propia plataforma (Windows o Mac) o ambas incluso si quieres.

Para que te sirva de referencia, este tutorial ha sido realizado en la version 2019.1.4.7065. Si estás leyendo esto en algún punto en el futuro, posiblemente tu versión será más avanzada pero la mayoría de cosas deberían ser razonablemente iguales.

Hay algo más que vas a necesitar. Wwise ofrece un curso de introduccion oficial que es gratuito y en el que se incluyen varios ejercicios. Desgraciadamente, este curso no existe en castellano, pero vamos a utilizar algunos de los recursos que el proyecto ofrece para poder poner en practica este tutorial y de hecho estoy basando esta primera parte en gran medida en la primera lección de ese curso. Puedes descargar los materiales aquí. Una vez descargado estos archivos, debes moverlos al mismo directorio donde reside Cube, el primer juego que vamos a utilizar como ejemplo. La ruta sería:

  • Windows: Program Files (x86)/Audiokinetic/Wwise 20xx.x.x.xxxx/Cube

  • Mac: Applications/Audiokinetic/Wwise 20xx.x.x.xxxx /Cube

Por cierto, si te ves con el inglés necesario para hacer el curso oficial, creo que es la mejor introducción que puedes darle a Wwise y lo considero mas completo y exhaustivo que el mío. Si en cambio prefieres una introducción en castellano, sigue leyendo y quizás después te animes a saltar a la version oficial.

Si ya tienes todo descargado e instalado, estás listo para abrir Wwise por primera vez.

Primera toma de contacto con Wwise

Ejecuta tu versión de Wwise desde el propio launcher.

Nada mas abrirse, veras el Project Launcher que suele contener los proyectos que has abierto recientemente y en tu caso estará seguramente en blanco. Empieza por crear un nuevo proyecto en blanco (New…) y guárdalo en el mismo directorio donde guardaste los archivos de Cube, pero en este caso en la carpeta de la lección 1.

Puedes llamar al proyecto como quieras pero es importante que lo guardes en este lugar para poder luego conectar nuestro trabajo con el juego más fácilmente. Verás también que hay una sección llamada “Platforms“, asegúrate de añadir tu plataforma (Windows o Mac) si esta no aparece ya.

Una vez listo, y tras un aviso sobre licencias que por ahora no nos interesa, nos encontraremos con un proyecto de Wwise vacío.

No dejes que tanto panel te intimide, vamos a ir viendo cómo funciona cada cosa poco a poco. Por ahora, fíjate que si vas a la carpeta donde has creado el proyecto, verás que contiene un archivo con extension .wproj ademas de un montón de carpetas. Este sistema de carpetas es cómo Wwise organiza todos los elementos necesarios para hacer funcionar al sonido de un juego y son imprescindibles para que el archivo de proyecto .wproj funcione. Es algo parecido a las sesiones de Pro Tools o Cubase, necesitas tanto el propio archivo de proyecto como todas las carpetas asociada a él.

Project Explorer

Wwise divide su interfaz en “views“ que son cada uno de los paneles que puedes ver y que tienen un botón de cerrar, otro de ayuda más algunos extra para otras funciones dependiendo de que view se trate. Vamos a fijarnos un momento en la view “Project Explorer” que es la que puedes ver en la parte superior izquierda de tú proyecto..

Wwise tiene una forma curiosa de organizar la información, bastante diferente a otros programas de audio que quizás has usado hasta ahora. Cada una de las pestañas que ves en esta view contiene diferentes tipos de objetos, que se van usar más tarde para determinar el comportamiento del sonido en el juego. Puedes ver a estos objetos como la unidad funcional mínima en Wwise. Vamos a ver brevemente qué tipo de objetos se alojan en cada pestaña, aunque más tarde los veremos en más profundidad:

  • Audio: Esta pestaña es la única que va realmente a conectarse con los archivos de audio de nuestro proyecto. También podemos crear aquí buses de una forma similar a cómo se hace en un DAW.

  • Events: Aquí estarán alojados los objetos que recibirán información desde el juego de forma que podamos lanzar los sonidos que sean necesarios en los momentos idóneos.

  • SoundBanks: Estos son los archivos finales que van recopilar toda la información que permitirá al juego tener sonido. Contendrán tanto los sonidos en sí mismos como todas las instrucciones y programación para que se comporten de la forma que nosotros hayamos diseñado.

  • Game Syncs: Aquí se van a alojar todos los objetos que recogerán las instrucciones que vienen del juego pero no son necesariamente eventos que disparan sonidos, sino variables y estados que nos darán información como la salud del personaje, si está en un mapa u otro o en qué tipo de material está caminando el personaje.

  • ShareSets: Esta sección alberga los diferentes efectos, curvas de atenuación y otros elementos software que el juego va a utilizar. Como el nombre indica, “Share”, estos elementos son compartidos entre los distintos eventos que diseñemos.

  • Sessions: Podemos encontrar aquí distintas sesiones que nos facilitaran mezclar los distintos elementos sonoros del juego de una manera cómoda sin necesidad de jugar.

  • Queries: Por último, esta sección te permite crear búsquedas dinámicas y personalizadas para encontrar distintos elementos en tu proyecto, lo cual es muy útil cuando este empiece a crecer de tamaño.

Cómo puedes ver, todas las pestañas comparten una estructura similar. Hay distintas carpetas conteniendo categorías de elementos y luego cada elemento en particular esta siempre contenido dentro de una “Work Unit”. Estos archivos son los que van contener toda la información que luego el juego leerá para entender cómo debe manejar el sonido. Se trata de archivos tipo XML y fíjate que si vueles a tú explorador de archivos y miras la estructura de carpetas de tu proyecto, veras algo similar a lo que aparece en el Project Explorer.

No te preocupes si no entiendes todos los objetos que aparecen en el Project Explorer, iremos viendo cuando se usan y por qué poco a poco. Aunque ya mismo podríamos empezar a importar sonidos a Wwise, esto no tiene mucho sentido sin un juego al que poder conectarlos. Vamos a ver cómo podemos hacer esto primero.

Usando Cube

Este juego tipo Quake nos va a servir para poner en práctica todos los conceptos que vamos a ir aprendiendo. Para abrirlo, ve al launcher y en la sección de Samples, elige Wwise. Debajo, verás listado Cube y sólo tienes que hacer click en “Run Cube“ para iniciarlo.

Juega un poco para familiarizarte con el entorno y los sonidos, si te aparece un aviso de tu cortafuegos, déjale acceso por que necesitaremos que se pueda comunicar libremente con Wwise. Date una vuelta por el mapa y dispara la escopeta unas cuantas veces. Cierra el juego usando escape y quit game.

Conectando Cube con Wwise

En estos momentos, Cube tiene todos los sonidos funcionando pero en nuestro caso, queremos quitar estos sonidos para poner los nuestros y así poder practicar. Para hacer esto, debemos eliminar todos los archivos contenidos en la siguiente carpeta:

  • Windows: Program Files (x86)/Audiokinetic/Wwise 20xx.x.x.xxxx/Cube/cube/soundbanks

  • Mac: Applications/Audiokinetic/Wwise 20xx.x.x.xxxx/Cube/cube/soundbanks

Dentro de esta carpeta verás una carpeta por cada plataforma que puedes usar (Windows y Mac posiblemente). Elige tu plataforma y elimina todo el contenido que hay dentro. Alternativamente, también puedes copiar este contenido a otro lugar como el escritorio en caso de que quieras volver al sonido original del juego.

Una vez esta carpeta este en blanco, vuelve a ejecutar Cube y verás que todo el juego esta en silencio ya que no tiene los archivos necesarios para reproducir ningún sonido. En este momento, el juego está en un estado similar al que nos encontraríamos al empezar nuestro trabajo de sonido, vamos a ver como podemos conectar todo lo que ocurre en el juego con Wwise y así poder crear el paisaje sonoro que queramos.

Vuelve a tu proyecto vacío en Wwise. En el menu superior, tienes diferentes secciones como Project, Edit, Views, etc... Busca una llamada “Layouts“. Esta nos permite cambiar lo que nos muestra Wwise para que podamos trabajar en distintas secciones de nuestro proyecto. El layout por defecto es “Designer” que nos permite trabajar con sonidos y eventos. Vamos a cambiar al siguiente layout, “Profiler” que usaremos para conectarnos con cube. Fíjate que también puedes usar F6 para hacer esto rápidamente.

Una vez en Profiler verás que todo esta mas bien vacío. Si tienes Cube cerrado, ábrelo de nuevo y una vez esté el juego funcionando vuelve a Wwise y busca el botón indicado en la caja roja de la captura inferior y que indica “Connect to Remote Platform“.

En la ventana que aparece verás que Wwise ve que una instancia de Cube está abierta. Haz click en “Connect“ y verás como la sección Capture Log se empieza a llenar de información. No te preocupes si dice que hay plug-ins que no encuentra, no los necesitamos por ahora. Ve a Cube y dispara una vez la escopeta. Vuelve a Wwise y verás que ha aparecido un nuevo mensaje indicando que el juego ha pedido a Wwise el evento de disparo de la escopeta y no lo ha encontrado, ya que nuestro proyecto está vacío. No hay problema, de esto nos encargaremos ahora. Puedes parar ya la captura (botón verde en la imagen superior).

Game Calls, Events, Actions & SFX Objects

Antes de poder integrar nuestro primer sonido, es crucial que comprendamos la diferencia entre estos cuatro conceptos. Veámoslos uno a uno con el ejemplo del disparo de la escopeta.

Las “Game Calls” son las ordenes que Wwise va a recibir desde el propio juego indicando cualquier información útil que pueda afectar al sonido. En nuestro caso, el juego ha visto que la escopeta ha sido disparada, por lo que envía esta información a Wwise para que este pueda reproducir el sonido que corresponda. Ten en cuenta que nosotros como diseñadores muchas veces no tenemos control de estas Game Calls, si no que es el equipo de programación el que se encarga de prepararlas. Por ello, es muy importante que nos pongamos de acuerdo en la nomenclatura que se va a usar ya que necesitamos que el nombre que el juego envía y el nombre que Wwise espera, coincidan exactamente.

Los “Events” son una de las formas que tiene Wwise de recibir Game calls. Puedes entenderlos como “receptores” de información que viene del juego y que Wwise entonces traduce en una determinada respuesta que puedes diseñar. En el ejemplo de la escopeta, fíjate que cuando vimos el Profiler, aparecía que el juego estaba intentando activar un evento llamado “Fire_Shotgun_Player“. Ya sabemos entonces que este es el nombre que debemos dar a nuestro evento y que debe ser exactamente ese para que funcione. Cabe señalar también que, pese a que los nombres deban ser exactos, Wwise va a convertir todos los nombres de objetos (y un evento es un tipo de objeto) a minúsculas por lo que podemos usar mayúsculas en los nombres si queremos.

Una vez el evento se ha activado es obvio que queremos disparar el sonido que preparemos para la escopeta. Esta sería una Action contenida dentro de nuestro evento, en este caso una action “Play“, que simplemente va a reproducir un sonido. Por ahora con esto nos basta, pero es bueno que te hagas a la idea de que los eventos pueden contener otras “Actions“ diferentes como por ejemplo detener un sonido o alterarlo de diferentes maneras.

Por último, el “SFX Object” es por fín el objeto en Wwise que va a contener el sonido que vamos a escuchar en el juego. Ten en cuenta que estos objetos no son los sonidos en si mismos, si no más bien actúan como canales mediante los cuales se reproducen archivos de sonido. Algo así como pistas en un DAW. Como veremos mas adelante, varios SFX Objects pueden apuntar hacia un mismo archivo de sonido, sin necesidad de que tengamos que importar ese sonido varias veces. De nuevo, conceptualmente esto es similar a importar un sonido a un DAW y hacer una copia en otra pista para hacerle un tratamiento diferente.

Creando un Evento

Pongamos en practica los conceptos que hemos aprendido. Vuelve al layout “Designer“ y dentro de la view Project Explorer abre la pestaña de eventos. Como hemos visto, aquí podremos crear los objetos que recogerán game calls, de forma que sepamos cuando lanzar sonidos.

Fíjate que dentro de la pestaña de eventos, hay una jerarquía con dos tipos de objetos, “Events“ y “Dynamic Dialogue“. Por ahora a nosotros sólo nos interesa la sección de events. Verás que hay una “Default Work Unit“ y aquí es donde alojaremos nuestro evento.

Hay varias maneras de crear un evento pero por ahora, como en la imagen superior, puedes hacer click derecho en al Default Work Unit, elegir “New Child” y luego Event. Llama al evento “Fire_Shotgun_Player”. Recuerda que el juego está esperando que tu evento tenga ese nombre exacto. También podrás ver que este nuevo evento se ha creado como “child“ o hijo de la Default Work Unit. Esto es algo común en Wwise, los distintos objetos suelen tener una relación jerárquica entre ellos.

Importando Audio

Una vez creado nuestro evento, necesitamos importar el efecto de sonido en sí. Para tratar con archivos de sonido, vamos a ir a la pestaña Audio, dentro del Project Explorer. Una vez aquí, verás que hay varios elementos pero nosotros simplemente necesitamos localizar la Default Work Unit dentro de la carpeta “Actor-Mixer Hierarchy“. Esta carpeta es básicamente donde vamos a alojar a todos nuestros sonidos. Fíjate que la parte superior de esta view hay un montón de iconos que representan los distintos tipos de objetos que esta Work Unit podría contener. Todos estos tienen su utilidad, que veremos en el futuro, pero por ahora crea un nuevo objeto tipo “Sound SFX“ (icono con un altavoz) y nómbralo “escopeta_disparo“. Fíjate que el nombre del objeto Sound SFX puede ser cualquiera, incluso uno en castellano ya que el juego nunca verá este nombre sino el del evento.

Notarás que el nuevo objeto creado aparece con texto rojo. Esto nos indica que aun no hay ningún archivo sonoro asociado a él. Solucionemos esto. Puedes hacer click derecho en el objeto y elegir “Import Audio Files…“. En la ventana emergente, elige “Add Files“ y puedes usar este sonido de freesound por ahora o bien el sonido que venia con este tutorial en la siguiente ruta:

  • C:\Program Files (x86)\Audiokinetic\Wwise 2019.1.4.7065\Cube\Wwise-101_v2017.2\Lesson 1\Audio files for Lesson 1.

O también puedes elegir un sonido de tu propia librería. Sea como sea, es importante que uses una version de audio en la mejor calidad posible (normalmente en wav). Esto puede parecer en un principio poco eficiente ya que estos archivos ocuparan mucho espacio pero a la hora de compilar el audio para nuestro juego, podremos comprimir y optimizar el espacio utilizado de diferentes maneras.

Una vez importado el sonido, puedes seleccionarlo y reproducirlo usando la barra espaciadora. Verás que Wwise tiene una pequeña sección de transporte en la zona inferior que te permitirá reproducir objetos que emitan sonido lo cual también hará que los medidores de sonido de la derecha nos indiquen los niveles de nuestro audio. Además, verás que en parte central ahora aparecen un montón de opciones con las que configurar y programar nuestro sonido. Algunas de las funciones que ves, te sonarán de cualquier otro software de audio, mientras que otras serán nuevas para ti. Poco a poco iremos viendo lo que todas estas opciones nos ofrecen.

Uniendo SFX Objects y Events mediante Actions

Ahora que tenemos nuestro sonido en Wwise, necesitamos asociarlo con el evento de disparo que creamos antes. Fíjate que ahora en la esquina inferior izquierda podremos ver en la view “Event Viewer“, el evento que creamos antes, “Fire_Shotgun_Player“ y nos esta indicando “Missing“ ya que este evento no tiene ninguna acción asociada.

Si lo seleccionamos, la vista central cambiara para mostrarnos las acciones que el evento posee, que por ahora es ninguna. Elegiremos “Add“ en la parte inferior izquierda de esta view para solucionar esto.

Veremos que nos dan muchas posibles acciones a añadir pero en nuestro caso solo necesitamos una acción “Play”. Una vez la acción está creada, debemos especificar qué objeto será el que se reproduzca. En nuestro caso, arrastraremos al área señalada (Target) nuestro SFX Object, “escopeta disparo“.

Una vez hecho esto, verás que si vas a la pestaña de Events y seleccionas el evento “Fire_Shotgun_Player“, este ya hará sonar nuestro sonido de disparo.

Creando SoundBanks

Ya estamos casi listos para probar nuestro sonido dentro del juego pero antes necesitamos compilar todo el trabajo realizado en un SoundBank. Cuando hacemos esto, estamos “empaquetando“ tanto los sonidos de nuestro proyecto como las instrucciones que gobiernan su utilización en una serie de archivos que podrán ser leídos por el juego en tiempo real.

Vamos entonces a cambiar la layout a “SoundBank“. Lo primero que necesitamos es crear un nuevo SoundBank dentro de, como viene siendo habitual, la Default Work Unit. En el centro de este layout verás un botón que dice “New…“, haz click y nómbralo “Main“.

Este será el SoundBank principal que usaremos para transmitir sonidos al juego. Ten en cuenta que el juego conoce este nombre por lo que, al igual que en el caso de los eventos, la nomenclatura debe ser exacta.

Una vez creado nuestro SoundBank, deberemos añadirle eventos, los cuales serán los elementos fundamentales que usará. En la esquina inferior izquierda, verás, en la sección “Event Viewer” nuestro evento, que deberás arrastrar hasta tu SoundBank “Main“. Ahora nuestro SoundBank ya tiene al menos un evento asociado.

Como puedes ver en la parte superior derecha, cada SoundBank va asociado a un tipo de plataforma (sistema operativo, consola, etc) y a un idioma. Este es el caso ya que para diferentes sistemas es posible que necesitemos ajustar las características de nuestro proyecto de forma diferente. Una versión en móviles, por ejemplo, podría necesitar que reduzcamos los recursos que el audio utiliza. Por otro lado, los distintos idiomas nos permitirán mantener diferentes versiones de los diálogos y voces de una forma más cómoda.

En nuestro caso, sólo estamos usando una plataforma (Windows o Mac) y un idioma (English(Us)) por lo que seleccionaremos estas dos. Antes de generar nuestro SoundBank debemos configurar la carpeta en la que este se va a crear. Para esto, hacemos click en “User Settings“.

En esta ventana podremos determinar la ruta y esto será crucial por que si no, Cube no podrá encontrar los sonidos que estamos generando. Haz click en “Override Project SoundBank Paths” y luego en el botón con los tres puntos. Debemos elegir la misma ruta donde Cube espera encontrar los archivos de audio. Usa la misma ruta que ves en el texto inferior dependiendo de la plataforma que estés usando:

  • Windows: C:\Program Files (x86)\Audiokinetic\Wwise 2019.1.4.7065\Cube\cube\soundbanks\Windows

  • Mac: Applications\Audiokinetic\Wwise 2019.1.4.7065\Cube\cube\soundbanks\Mac

Ya estamos listos al fin. Haz click en OK y luego en “Generate Selected“

Probando la Escopeta

Una vez hemos generado el SoundBank, Cube va a poder ver los archivos necesarios para poder reproducir el sonido del juego tal y como nosotros los hemos preparado aunque en este caso, sólo el sonido de la escopeta estará disponible. Lanza Cube de nuevo o reinícialo si ya estaba abierto y maravíllate al oír tu creación cada vez que disparas la escopeta.

Sumario

Aquí concluye la primera parte de este tutorial, espero que te haya podido servir de ayuda como introducción al sonido para videojuegos en general y Wwise en particular.

Si tienes dudas o cualquier problema, puedes escribirme a contactme [ arroba ] javierzumer.com. Mientras tanto, dejo por aquí un glosario con todos los conceptos que he ido introduciendo en este tutorial. !Hasta la próxima!

  • Middleware: Tipo de software que en nuestro caso hace de puente entre los recursos de sonido y el juego que los utiliza.

  • Proyecto de Wwise: Se compone tanto de un archivo con la extensión .wproj como de una estructura concreta de carpetas.

  • View: Nombre que recibe cada “mini-ventana“ dentro de la interfaz de Wwise.

  • Project Explorer View: Tipo de view que permite ver todos los tipos de objetos que el proyecto tiene y que se organiza en pestañas.

  • Objects: Unidad funcional mínima que usa Wwise para determinar el comportamiento del audio en un proyecto.

  • Work Unit: Archivo tipo XML donde se alojan distintos tipos de objetos en un proyecto de Wwise.

  • Layout: Conjunto de views que podemos cargar para poder trabajar más fácilmente en determinadas áreas de un proyecto.

  • Designer Layout: Disposición de views que nos permite trabajar con sonidos y eventos.

  • Profiler View: Disposición de views que nos permite acceder a información en tiempo real enviada desde el juego además de mostrar cuántos recursos está utilizando el motor de audio.

  • Game Call: Instrucción o información transmitida desde el juego hasta Wwise.

  • Events: Objeto de Wwise que recibe información sobre cuando cierto evento ha ocurrido en el juego.

  • Actions: Instrucción que un evento puede contener y que puede reproducir, pausar, parar o alterar sonidos en distintas maneras.

  • SFX Object: Tipo de objeto que contiene un archivo de audio.

  • SoundBank: Objeto donde empaquetamos todos los sonidos e información necesaria para dirigir su comportamiento y que el juego va a leer en tiempo real.

Exploring Sound Design Tools: Envy

I particularly enjoy sound design tools that allows you to stretch, torture and destroy the sounds you already have on your library, giving them a second life. Envy, by The Cargo Cult allows you to analyze your audio’s features, modify them and then re-apply them.

It’s like an audio sculpting tool which also works like a morphing plugin, which is interesting since I reviewed Morph 2 not too long ago.

The plugin only works in Pro Tools in AudioSuite mode since it is too process-heavy to create results in real time. The basic workflow uses the “Analyze” button to capture any desired audio features and then the “Render” button to apply them to any sound (even the same one!).

So what can we capture? Basically the plugins has 3 sections: amplitude, spectral and pitch. Each of them can distill each of these audio characteristics from a sound and modify them to create something completely new. Let’s see each of these sections:

Amplitude Envelope

It allows you to extract the amplitude envelope or “ADSR”. As you can see, you have similar controls to a compressor (attack & release) that you can use to tweak how tight the resulting envelope is. Smoothing is particularly useful if you want to get a bit looser, more natural result.

The filter sliders on the bottom of the plugin will affect to how the amplitude envelope is measured, so keep them in mind if, for example, you don’t want the low end to shape it too much.

Spectral Envelope

We can also steal the frequency distribution or “spectral weight” and apply it somewhere else.

This is quite useful to, for example, beef up the low end of a sound, add more shine to it or just apply a certain spectral timbre to a sound.

Pitch Envelope

This is probably the deepest section on the plugin. Firstly, as with the previous sections, we can copy the pitch envelope of our source sound. To do this, there are two different algorithms to choose from, a and b, as you can see in the “SCAN FRM SRC:” section. They work in different ways so is always worth trying both to see which one gives you better (or nastier, if that is what your are looking for) results.

Also, you can create your own pitch curves from scratch and apply them to any sound. To do this, you can just draw them with your mouse, which is pretty cool. You will be able to then modify the curve in different ways using:

  • Shift + Click: Moves the whole curve up or down in the pitch scale.

  • Double Click: Switches the pitch mode. More on this below.

  • Control + Click: Increases or decreases the pitch amount while keeping the same curve shape.

  • Option + Click: Resets the curve.

  • Right Click: Draws a vibrato curve. The higher your mouse is on the graphic the higher the frequency of the resulting curve.

Screen Shot 2019-09-25 at 14.57.46.png

Once you have your pitch envelope, you can apply it using several algorithms. Note that these are completely different to the algorithms you use to capture pitch. These are used to apply the envelope to a new file. So, this are:

  • Varispeed: It uses old-fashioned pitch processing, so length will be affected. It would be equivalent to speeding up tape or vinyl. The rest of the algorithms won’t affect the length of the sound.

  • Smooth: This is the “optimal” one for most stuff if you want to minimize artefacts.

  • Rhythmic: Same as the previous one but works better with fast transients.

  • Bad: Less clean but maybe in an interesting way. Embrace the artefacts.

  • Worse: This is the one you use when you are just going for crazy sounding sounds.

The best way to go would be to try some of the algorithms just to see what kind of result you get.

Additional features & Interface

Other than that, the plugin has a general gain slider (bottom right), a bigger window mode (plus sign, top, right corner) and a very handy undo/redo function.

Keep in mind that, being an audiosuite only plugin, any change you make to the parameters won’t be heard until a new cycle is reached. You can see this in the graphical interface which shows you both the progress of the original sound captured (vertical line) and the progress of the target sound (bottom grey bar).

Some Examples

Here are some examples of possible usage in very different applications, directly from the creators.

Conclusion

Envy is a very versatile plugin, maybe more so than Zynaptiq’s Morph 2. Being able to transfer envelopes to other sounds while keeping everything in perfect sync is a blessing for layer focused sound design. I also love how you can use the timing of a foley recording and change the materials easily. This application reminds me of Reformer Pro, which I’ve also reviewed, but without the performance and real-time aspect.

Pitch shaping is the other strong feature Envy offers. It just gives you all the tools you need for sound design and dialogue work. I love how easy pitch curves are to draw, specially since this is something that most DAWs don’t do out of the box. Having “clean” and “dirty” pitch algorithms is also great.

Is a bit of a drag that the plugin only works in AudioSuite and in Pro Tools and I imagine that is the biggest drawback Envy has for most people. I personally don’t mind it, since I do all my sound design in Pro Tools and I could accommodate it in my workflow easily. Envy costs $359 at the time of this writing, which, on one hand, feels a bit pricey to me. On the other hand, I can see how that price could be justified: they are offering you a complete sound design tool, foley replacer, morpher, plus advanced pitch capabilities, all in one box. The demo is complete and gives you plenty of time to play around, if you want to give it a go.

So, in summary, Envy feels to me like a Swiss Army knife plugin that you would want to bring to the jungle with you. My tests didn’t always yield the results I was expecting and the sound is sometimes a bit artefacty (in a bad way) but I believe this is how a plugin like this should behave: some experimentation is needed to get cool stuff that works and when you find it, you feel like you have created something completely unique and new.

Pro Tools Batch Rename & Regular Expressions

Batch renaming was introduced into Pro Tools at the end of 2017, with the 12.8.2 version. Since then, I haven’t had much of a chance to use this feature since most of my work has been mixing and sound design. Nevertheless, after some recent days of voice acting recording and all the editing associated, I have been looking a bit into this feature.

So this is a quick summary of what you can do with it with some tips and examples.

Operations

There are two batch rename windows in Pro Tools, one for clips and another for tracks. They are, for the most part, identical. You can open each of them with the following shortcuts:

  • Clips: CTRL + SHIFT + R

  • Tracks: OPTION + SHIFT + R

Both windows also have a preset manager which is great to have.

As you can see, there are four different operations you can do: Replace, Trim, Add and Numbering. As far as I can tell, the different operations are always executed from top to bottom, so keep that in mind when designing a preset. Let’s see each of them in more detail:

Replace (CMD + R) allows you to search for any combination of letters and/or numbers and replace with a different one. The “Clear Existing Name” checkbox allows you to completely remove any previous name the track or clip had. This option makes sense when you want to start from scratch and use any of the other operations (add and numbering) afterwards.

For example, let’s say you don’t like when Pro Tools adds that ugly “dup1” to your track name when duplicating them. You could use a formula like this:

Original names New names

FX 1.dup1 FX 1 Copy
FX 2.dup1 FX 2 Copy
FX 3.dup1 FX 3 Copy

You may realise that this would only work with the first copy of a track. Further copies of the same track will be named “…dup2, ...dup3” so the replace won’t work. There is a way to fix that with the last checkbox, “Regular Expressions”. This allows you to create complex and advanced functions and is where the true power of batch renaming resides. More about it later.

Trim (CMD + T) is useful when you want to shave off a known amount of characters from the beginning or end of the name. You can even use the range option to remove characters right in the middle. This of course makes the most sense when you have a consistent name length, since any difference in size will screw up the process.

So, for example, if you have the following structure and you want to remove the date, you can use the following operation:

Original names New names

Show_EP001_Line001_280819_v01 Show_EP001_Line001_v01
Show_EP001_Line002_280819_v03 Show_EP001_Line002_v03
Show_EP001_Line003_280819_v02 Show_EP001_Line003_v02

Add (CMD + D) lets you insert prefixes and suffixes, pretty much doing the opposite of Trim. You can also insert any text at a certain index in the middle of the name.

We can add to the previous example a suffix to mark the takes that are approved. It would look like this:


Original names New names

Show_EP001_Line001_v01 Show_EP001_Line001_v01_Approved
Show_EP001_Line002_v03 Show_EP001_Line002_v03_Approved
Show_EP001_Line003_v02 Show_EP001_Line003_v02_Approved

Finally, Numbering (CMD + N) is a very useful operation that allows you to add any sequence of numbers or even letters at any index. You can choose the starting number or letter and the increment value. As far as I can tell, this increment value can’t be negative. If you want to use a sequence of letters, you need to check the box “Use A..Z” and in that case the starting number 1 will correspond with the letter “A”.

If we are dealing with different layers for a sound, we could use this function to label them like so:

Original names New names

Plasma_Blaster Plasma_Blaster_A
Plasma_Blaster Plasma_Blaster_B
Plasma_Blaster Plasma_Blaster_C

As you can see, in this case, we are using letters instead of numbers and and underscore to separate them form the name. Also, you can see that in the case of clips, you can choose wether the order comes from the timeline itself of from the clip list.

Regular Expressions

Regular expressions (or regex) are kind of an unified language or syntax used in software to search, replace and validate data. As I was saying this is where the true power of batch renaming is. In fact, it may be a bit overkill for Pro Tools but let’s see some formulas and tips to use regular expressions in Pro Tools.

This stuff gets tricky fast, so you can follow along trying out the examples in Pro Tools or using https://regex101.com/.

Defining searches

First off, you need to decide what do you want to find in order to replace it or delete it (replace with nothing). For this, of course you can search for any term like “Take” or “001” but obviously, you don’t need regex for that. Regex shines when you need to find more general things like any 4 digit number or the word “Mic” followed by optional numbers. Let’s see how we can do all this with some commands and syntax:

[…] Anything between brackets is a character set. You can use “-” to describe a range. For example, “[gjk]” would search for either g, i or k, while [1-6] means any number from 1 to 6. We could use “Take[0-9]“ to search for the word “Take” followed by any 1 digit number.

Curly brackets are used to specify how many times we want to find a certain character set. For example ”[0-9]” would look for any combination of numbers that is 5 digits long. This could be useful to remove or replace a set of numbers like a date which is always constant. You can also use ”[0-9]” to search for any number which is between 5 and 8 digits. Additionally, ”[0-9]” would look for any number longer than 5 digits.

There are also certain special instructions to search for specific sets of charaqcters. “\d” looks for any digit (number) type character, while “\w” would match any letter, digit or underscore character. “\s” finds any whitespace character (normal spaces or tabs).

Modifiers

When defining searches, you can use some modifiers to add extra meaning. Here are some of the most useful:

. (dot or full stop) Matches any character. So, “Take_.” would match any character that comes after the underscore.
+ (plus sign) Any number of characters. We could use “Take_.+” to match any number of character coming after the underscore.
^ (caret) When used within a character set means “everything but whatever is after this character:. So “[^a-d]” would match any character that is not a, b, c or d.
? (question mark) Makes a search optional. So for example, “Mic\d?“ would match the word Mic by itself and also if it has any 1 digit number after it.
* (Asterisk) Also makes a search optional but allowing multiple instances of said search. In a way, is a combination of + and ?. So for example, ”Mic\d*” would match “Mic” by itself, “Mic6” but also “Mic456” and, in general, the word Mic with any number of digits after it.
| (vertical bar) Is used to expressed the boolean “or”. So for example, “Approved|Aproved” would search for either of these options and apply the same processing to both if they are found.

Managing multiple regex in the same preset

You sometimes want to process several sections of a name and replace them with different things, regardless of their position and the content around them. To achieve this, you could create a regex preset for each section but is also possible to have several regex formulas in just one. Let´s see how we can do this.

In the “Find:” section, we need to use (…) (parenthesis). Each section encompased between parenthesis is called a group. A group is just a set of instructions that is processed as a separated entity. So if we want to search for “Track” and also for a 3 digit number we could use a search like this one “(Track)(\d)“. Now, it is important to be careful with what we use between the two groups depending of our goals. With nothing in between, Pro Tools would strictly search for the word track, followed by a 3 digit number. We may want this but tipically what we want is to find those terms wherever in the name and in whichever order. For this, we could use a vertical bar (|) in between the two groups like so: “(Track)|(\d)“ which is telling Pro Tools: hey, search for this or for this and then replace any for whatever.

But what if you want to replace each group for an specific different thing? This is easily done by also using groups in the ¨Replace¨section. You need to indentify each of them with “?1”, “?2” and so on. So the example on the right would search for the word “Track” anywhere in the name and replace ti with “NewTrack” and then it would search for any 3 digit number and replace it with “NewNumbers”

Here is a more complex example, involving 4 different groups. If you have a look at the original names, you will see this structure: “Show_EpisodeNumber_Character_LineNumber”. We would want to change the character and show to the proper names. We are also using a “v” character after the line number to indicate that this is the approved take by the client, it could be nice if we could transform this into the string “Approved”. Finally, Pro Tools adds a dash (-) and some numbers after you edit any clip and we would want to get rid of all of this. If you have a look at our regex, you would see that we can solve all of this in one go. Also, notice how the group order is not important since we are using vertical bars to separate them. You will see that in the third group, I’m searching for anything that comes after a dash and replacing it with just nothing (ie, deleting it), which can be very handy sometimes. So the clip names will change like so:

Original names New names

Show_045_Character_023-01 Treasure_Island_045_Hero_023
Show_045_Character_026v-03 Treasure_Island_045_Hero_026_Approved
Show_045_Character_045v-034 Treasure_Island_045_Hero_045_Approved

Other regex functions that I want to learn in the future

I didn´t have time to learn or figure out everything that I have been thinking regular expressions could do, so here is a list of things I would like to reasearch in the future. Maybe some of them are impossible for now. If you are also interested in achieving some of these things, leave a comment or send me an email and I could have a look in the future.

  • Command that adds the current date with a certain format.

  • Commands that add meta information like type of file, timecode stamp and such.

  • Syntax that allows you to search for a string of characters, process them in some way, and them use it in the replace section.

  • Deal with case sensitivity.

  • Capitalize or uncapitalize characters.

  • Conditional syntax. (If you find some string do A, if you don´t, do B).

Regex Resources:

https://regex101.com/
https://www.cheatography.com/davechild/cheat-sheets/regular-expressions/
https://www.youtube.com/playlist?list=PL4cUxeGkcC9g6m_6Sld9Q4jzqdqHd2HiD

Conclusion

I hope you now have a better understanding of how powerful batch renaming can be. With regular expressions I just wanted to give you some basic principles to build upon and have some knowledge to start building more complex presets that can save you a lot of time.

Figuring out: Shepard Tone

The Shepard Tone is an interesting audio illusion that creates the impression of an always rising or falling pitch that really doesn’t get anywhere. Despite feeling like always going up or down, is always stuck in an eternal auditory fractal. How is this possible? And could it be useful for sound design?

The Penrose Stairs is a nice visual equivalent. Depending on perspective, it looks like they are always going up or down but we are really just going in circles.

The Penrose Stairs is a nice visual equivalent. Depending on perspective, it looks like they are always going up or down but we are really just going in circles.

History & Working Principles

Roger Shepard described this idea in his 1964 paper “Circularity in Judgements of Relative Pitch”. The original concept was conceived in a musical context with pitches jumping in discrete steps, aka notes.

He basically stated that to create an apparently always rising melody, we would need to create a circular or looping pattern consisting of sets of ascending notes that are faded in and out in an specific timing.

So we would start with just one ascending scale of notes. This scale will get to the end of the instrument range pretty soon so the trick is to sneak in a new set of notes doing the same thing but fading them in slowly as we fade out the previous set.

If we do this with the proper timing, we get the feeling of an eternally ascending scale.

You can see that working in the following example:

As you can see, the key to get this effect is to use volume to mask the replacement of older octaves with newer octaves that will always start from a lower tone, giving the illusion of an ascending tone overall, despite the average pitch staying constant.

Here is the same concept written in MIDI in Pro Tools. Volume is indicated by the velocity bars below. The lower green notes are rising in volume, while the blue higher ones are fading out. The central red notes stay at the same volume. Again, the average pitch is always the same, but the dynamic changes in the 3 scales provide the illusion of eternal ascension.

Later on, Jean-Claude Risset created a continuous version, called the Shepard-Risset glissando where the pitch glides without discrete jumps, making the overall effect more convincing and seamless.

In this case, the principles stay the same, there is always a new octave gradually fading in to replace the octave that will gradually fade out. This version can be much more useful for Sound Design although to achieve it we need to use instruments or synths that are able to glide through different pitch values in a smooth way.

Risset also tried to apply to concept to rhythm, layering different versions of a beat at proportional tempos (30, 60, 120 & 240 for example) and fading them in and out to create the illusion of an always ascending rhythm. Check out this examples created by music researcher Dan Stowel, below you can see how one of them looks in the spectrogram. Notice the upwards pattern and how the different versions fade in and out.

Screen Shot 2019-07-17 at 16.59.57.png

Building our own designs

Now that we have a good idea of how these effects work, let’s see if we can get creative and build a Shepard-Risset tone that could be useful in a sound design context.

I first tried using Native Instrument’s Form since it is a sample based synthesizer where you can use any sample as a source. I used this tutorial as a starting point.

Basically, you trigger several octaves at once and use two LFOs, one to control the pitch so it’s always rising and a second to control the oscillator level so it rises and then falls. Also, I adjusted the general envelope so sounds have a long attack and release just so they blend together as they come and go. This is the result just using a sine wave:

It basically works but the overlapping is a bit noticeable. I then tweaked the timing and started to play with different sounds:

Form only gives you 30 minutes to demo the plugin so I decided to use the limited time to go for one of the most obvious applications of the Shepard tone: en engine ramping up or down. Here are some of the ones I came up with. Keep in mind that the advantage of generating these is that you have an infinite amount of acceleration and deceleration which can be very handy for later editing.

All of them are quite obvious, you can tell where the sound is re-starting and new octaves are fading in. I think you could fix this playing with the volume values (although I don’t know if an LFO is the most confortable way of doing this) or maybe using more octaves.

Lastly, this last example is interesting because on top of the Shepard effect, I was changing the length of the sample to enhance the feeling of acceleration: as the sample gets shorter, the engine feels to be going faster. I tried to play around with the plugin, kind of driving in real time. This could also have interesting applications for video-games.

After this, my demo expired and I felt I didn’t have enough time to improve the effect and play around with the settings. So I looked for an alternative and after some failed experiments I found “Endless Series”, an specialized Shepard plugin by Oli Larkin.

It offers two synthesiser modes plus four audio processing modes so you can create Shepard tones from scratch or using an audio sample as a base.

There are also a nice amount of variables you can tweak to customise the result. So let’s hear some of the tones I got from this plugin.

First, here are some examples just using the synthesizer built into the plugin. You can create a discrete or a continuous (glissando) tone (Example 1). In the case of a discrete or stepped tone, you can use several different musical scales. A chromatic scale will give you the classical Shepard feel (Example 2) but you can also play with other more exotic ones. In example 3 below I tried creating a dreamy, impressionist whole tone one. Is cool, but that last one doesn’t have much of the going up in pitch feeling.

The plugin also works nicely if you want to create engines. Here are a couple of examples.

As for the audio processing mode, there are different effects that you can apply. The simplest mode, am input, just applies the Shepard processing to the sample as far as I can tell. It works in an strange way with tonal content, the Shepard effect is not very pronounced and it adds a descending tone for some reason which doesn’t help. Here is this mode applied to just a sine wave:

This same mode goes nuts with more noisier content. Here is another example using an engine sound. As you can hear, the am input mode introduces a lot of noise and artefacts. I tried playing around with the settings and using other source material but I could not make it sound clean. I don’t know if I’m missing something.

But there are two other modes that can give better results. There is a flanger and a phaser setting. As you can hear, they sound much cleaner, although the effect is quite mild in the case of the phaser. I just wish there was a way to have a “sheparded” sound as clean as this but without the flanger effect on top.

In summary, I feel that I didn’t find the perfect “Shepard Machine” but I’m sure that there are other options out there. I was also thinking that there is probably no plugin that can do everything perfectly (like sample based and synth based and musical options, etc…) so maybe an array of different plugins may be needed for different purposes.

Use in media

Shepard tones have been used in several music and film projects, sometimes in a subtle way, other times quite explicitly.

In music, they can give a very trippy and psychedelic feel (see Pink Floyd’s “Echoes” below) or they can be used to create rising tension (Used extensively in movies like “Dunkirk” or “Flight”). As some of my examples from before showed, they can also be used to create fantasy or sci-fi vehicle engines. In “The Dark Knight”, Nolan wanted the batpod to feel like an unstoppable force that doesn’t even shift gears which sounds like a perfect use case for the Shepard tone.

But probably my favourite example, and maybe this is just nostalgia, is in Super Mario 64, which features an endless staircase that you need to overcome to get to the final boss. The game gives you the illusion of an eternal ascend but you are just running on a “virtual treadmill” and getting nowhere. Analogously, the music is using a Shepard tone to achieve the same effect, an apparent ascension that is really just circular. A great example of a Shepard tone used in an interactive environment.

Exploring Sound Design Tools: Morph 2

Morph 2, made by the german company Zynaptiq, is based on the original Morph plugin made by Prosoniq years ago. It applies a very simple but powerful concept: creating a hybrid between two different sounds fusing together timbre and dynamic characteristics.

Let’s see what the plugin offers plus some sound design examples.

Setup

Morph 2 works by combining two mono or stereo tracks into a new stereo or quad auxiliar track. In the screenshot there, you can see two stereo tracks being used as sources. This is the method recommended by Zynaptiq.

There is also a side-chain option but it only supports mono sources.

Features & Interface

Screen Shot 2019-06-20 at 09.39.33.png

As you can see, the interface is quite clean and simple. Let’s see which features Morph offers:

The X/Y Section

This central section combines a crossfade and morphing control in a X/Y type interface. This may look simple at a first glance but it has some interesting properties. So starting at the bottom left corner and moving vertically upwards you would be morphing from the first sound (A) to the second (B). If you do the same on the right side you would be morphing from B to A, which would result in a different result. The directionality (from A to B vs from B to A) is relevant and will affect the output.

As far as I can tell, Morph is taking the timbre profile from the first sound and applying it to the second’s timbre and dynamics. Because of this, it is good practice to experiment with all possible combinations when designing a sound, since the results are going to be quite different, as you can hear below.

On the other hand, the X axis is simply a crossfade or blend between those two asymmetrical morphings. So remember, the Y axis (vertical movements) control the morphing while the X axis (horizontal movements) crossfades between them.

Here is an example using human voice and a metallic sound to create a sort of robotic, vocoder-ish sound. The first two sounds are the basic components we are using. The ones below are the morphed result with the X-Axis all the way to the right or to the left but in the middle between sources A and B in both cases.

As you can hear, the right side result is probably what we were looking for: we keep the speech dynamics but use the metallic tonality, while the timbre is a mix between both. The other result is kind of a reversed image of that, we keep the voice tonality but we hear it with a dark, metallic timbre and using the metal impact dynamics. Maybe not what we were looking for in this case, but as I said before worth checking both possibilities while creating sounds.

Of course, since this is a two-dimensional pad we could also use a custom blend between these two results.

Mixing Section

This simple section lets you add some of the unaltered original sounds to the output, while also controlling the level of the morphed signal.

Solo and bypass controls are also included.

Algorithms

There are 3 basic algorithms to choose from, each of them offers a different behaviour.

Classic is a good starting point with the highest frequency resolution, sacrificing time resolution. So it is best to use this option when timbre shaping is the main goal.

Interweave retains more of the first sound character instead creating morphed features. This may help to create more natural sounding results. So if the classic algorithm gives you a result that feels too extreme you can try this one instead.

The Tight algorithm offers the best time resolution so it works well with percussive sounds. This of course is in detriment of the frequency resolution but this doesn’t need to be a bad thing, the result could be interesting.

Additionally you also have lower latency versions for the classic and interweave algorithms.

Processing Section

This section offers 3 additional controls to shape our design.

The Formants trackball slider applies formant shifting up or down which can be handy when doing vocoder type sounds or just any sound in general. It kind of works as a pitch up/down control.

Amp Sense will adjust the maximum level of the newly combined (morphed) audio timbres while using the classic algorithm. You can reduce this value if the resulting combined sound is too harsh or resonant. For the other two algorithms, the sliders acts evening out the levels of the loudest and quietest component, making them more balanced.

Finally, the Complexity slider is connected to “the resolution” of the whole processing. Higher values give more detail but if both sounds are very different, reducing this may help and will introduce larger sections of the original sound in the final output.

Here is the same morphed sound but using different levels of complexity. As you can hear, it almost works as a tonality vs noise slider in this case:

Reverb

We can also find a simple reverb module in Morph with controls for Wet/Dry mix, size and damping for high frequency attenuation.

This is handy for giving designs a quick listen in a relevant acoustic context or just giving sounds some extra flavour.

Examples

Now that we know the basic inner workings of the plugin, let’s see some more examples that I created while playing around.

Blending Timbres

This is probably the most obvious case use for Morph: mixing two timbres together into a hybrid that keeps features from the parents but has a new life of its own. Here is an alien computer SFX, for example:

Or we can create a funny cartoony engine using an old car recording and a vocal sample:

Or some sort of steampunk machine malfunctioning:

Transferring Dynamics

A different use we can give Morph is to “capture” the dynamic characteristics from one sound and applying them to the other. In this case, the resulting timbre is almost a 100% coming from one of the elements only, although some blending can also be cool.

As you can hear in this example, we are using the helicopter’s rhythmic footprint and applying it onto the drone’s timbre to create a morphed sci-fi engine element. The Formant slider was handy to alter the “size” of the sound.

Or we can use a car’s passing-by dynamics to shape the stereo image and amplitude of a water recording and create some sort of water element for a spell, for example.

Voices & Creatures

This is another use we can give Morph. If we combine a human or animal vocal sound with any other element, we can create otherworldly voices and creatures. If the sound we use has a constant tone, the result will be similar to a vocoder.

Here is a simple example with a human voice and a metal resonance:

We could also create a rock monster morphing growls and rock sounds:

Or create a scary voice. Is impressive how much you can change the original source by playing with blending layers, formants and the complexity slider:

Conclusions

Although simple in concept and features, Morph 2 is a very good tool to have as a sound designer. Morphing two sounds together is a very intuitive way to approach audio creativity. Is not always the case that you get something unique but when you do, is a great feeling to “give birth” to a new sound that shares timbre or dynamic features from the parent sound but stands on its own too.

I just gave a few examples on what you do with it, but I’m sure much more if possible. If you are interested, you can pick up the demo in Zynaptiq’s website.