PDA

Ver la versión completa : Dudas sobre el sonido de MegaDrive



Drumpi
02/06/2021, 12:49
Hola a todos:

Llevo tiempo viendo vídeos acerca del sonido y la música en la era de los 80 y primera mitad de los 90. Me parece un tema fascinante a nivel de HW, pero tampoco quiero profundizar a nivel de registros y demás. Estoy escuchando autores, qué se podía hacer con diversos chips que sacaban ondas sinusoidales, cuadradas y de sierra...

Pero los datos de la MD se me escapan. A ver, sé que tiene el Yamaha YM2612 como chip principal de sonido, el Texas Instruments SN76489 de ondas cuadradas por compatibilidad con SMS, y el Z80 para controlarlos a todos... pero me intriga el primero.
Llevo años pensando que la MD tenía sus 6 canales principales de sonido limitados a unos pocos instrumentos, no sé, quizás 8 o 10, y que usando FM pues funcionaba como una suerte de MIDI primitivo. Pero investigando un poco más, he visto que dichos sonidos se pueden modificar, y de pronto me encuentro este vídeo que habla de GEMS:
EDIT: Perdón, vídeo equivocado ^^U Ya lo he corregido.

https://www.youtube.com/watch?v=WEvnZRCW_qc

Hay un momento en que aparece una lista de casi 100 sonidos ¿Es posible que un chip tan pequeño dote a la consola de las mismas posibilidades que los teclados de 100 sonidos... y más? Porque es que encima veo que se pueden modificar los sonidos, incluso casi crearlos.
Ya sé que no se pueden usar samples, porque esa es la gran ventaja del chip de SNES, pero no me queda claro entonces si existe un banco pregrabado de sonidos o no, y de cuántos es. He ido buscando documentación aquí y allá, e incluso información técnica (https://www.smspower.org/maxim/Documents/YM2612) pero no he visto nada al respecto.

Y es que no sé si era por las limitaciones de los programadores de sonido, la falta de software, o que no he entendido bien las especificaciones, pero todos conocemos el "sonido MegaDrive" inconfundible porque, básicamente, se solían usar los mismos instrumentos una y otra vez, y de ahí mi confusión durante años.

Alguien que haya podido trastear con la consola (o el emulador, me da igual) ¿podría arrojar un poco más de luz a esto? ¿Cómo de grande era el banco de sonidos? ¿Se podía programar o modificar? ¿Añade Gems instrumentos a la consola mediante su propia librería o por código?

PD: recomiendo echar un vistazo al canal y a sus monográficos sobre los grandes compositores de la retro-industria del videojuego. Da muchos detalles interesantes y muestra algunos trucos muy originales para superar los límites sonoros de las diversas máquinas.

swapd0
02/06/2021, 14:14
Por lo que yo se los chips FM, primero programas un conjunto de sonidos/instrumentos, y después a la hora de tocar solo le tienes que decir, esta nota con este sonido/instrumento. Con los PSG le mandas siempre los datos en bruto, no sabe eso de tocar la nota X.

Y eso de que suena igual es porque el la mayoría de los juegos usan el driver de sonido de SEGA, no se molestaron en crear uno propio.

swapd0
02/06/2021, 18:47
Aqui se ve lo que hay que mandar al PGS, en este caso el Yamaha del Atari ST.

https://www.youtube.com/watch?v=Im9KmTO3xBE

masteries
02/06/2021, 18:54
Estás equivocado en una cosa,

Si que se pueden usar samples, otra cosa es que sólo admite un sample a la vez. Por lo que sí quieres que se oigan 3 samples, te toca mezclarlos por software y sacar el resultado por el único canal PCM disponible.

Para eso tienes un Z80, incluso si hubiera que tirar del 68000, pues también se podría.

Se nota que no me meto en el fregado de los chips Yamaha, porque como cada máquina tiene un Yamaha diferente, pues no me sale a cuenta.

Ahora en Megadrive tengo mi propio driver de audio de 3 canales, 2 de ellos son PCM sin comprimir, el restante está comprimido en muLAW porque ahorró mucho espacio en la ROM para los loops que componen la música.

Iced
02/06/2021, 20:14
Pues a ver, por partes.
1 - Si, la mega tiene dos chips de sonido, muchos drivers de sonido de la mega funcionan con el z80, pero otros muchos no, funcionan con el motorola 68000
2- La mega claro que puede samplear, uno de los canales del YM es un DAC, que por cierto puede funcionar a 44khz a diferencia de los 33khz de los canales de la super, lo malo es que TODO tiene que sonar por ahi al mismo tiempo, lo tipico es sacar dos voces al mismo tiempo a 22khz (que a esa calidad seguirian sonando bien, ya mas bajo no XD).
3- Tambien se puede jugar con los canales FM y hacer virgerias con las ondas, lo malo, espacio y memoria.
4- Por lo que tengo entendido el YM si que viene con un banco de sonido de Yamaha,a menos con un set de instrucciones para sacar sonidos tipo, pero a nadie le resulto demasiado util y no existe ni un juego que utilice ese sistema.
5 - Por dios, no te fijes en el GEMS como ejemplo de nada jaja, es el peor driver de sonido de todos los posibles, te dejo un ejemplo del driver de EA, tambien de USA, para que veas que partido se le podia sacar a la bicha.


https://youtu.be/3dvXdMY2BhA

https://youtu.be/GC2dow-Ke94

dj syto
02/06/2021, 22:03
Estás equivocado en una cosa,

Si que se pueden usar samples, otra cosa es que sólo admite un sample a la vez. Por lo que sí quieres que se oigan 3 samples, te toca mezclarlos por software y sacar el resultado por el único canal PCM disponible.

Para eso tienes un Z80, incluso si hubiera que tirar del 68000, pues también se podría.

Se nota que no me meto en el fregado de los chips Yamaha, porque como cada máquina tiene un Yamaha diferente, pues no me sale a cuenta.

Ahora en Megadrive tengo mi propio driver de audio de 3 canales, 2 de ellos son PCM sin comprimir, el restante está comprimido en muLAW porque ahorró mucho espacio en la ROM para los loops que componen la música.

un truco para hacer sonar 2 samples a la vez era utilizar el canal de yamaha para uno, y el texas de master system (todo entero) para el otro.

Iced
03/06/2021, 00:57
un truco para hacer sonar 2 samples a la vez era utilizar el canal de yamaha para uno, y el texas de master system (todo entero) para el otro.

Me pregunto si alguien mas lo hizo, aparte de Yuzo.

Aqui una lista de todos los sound engine de la mega
http://gdri.smspower.org/wiki/index.php/Mega_Drive/Genesis_Sound_Engine_List

swapd0
03/06/2021, 01:16
Hay mas de los que me esperaba, como me falla la memoria juraría que habría menos de media docena.

dj syto
03/06/2021, 14:18
Me pregunto si alguien mas lo hizo, aparte de Yuzo.


alguna vez lo he intentado averiguar con emuladores, pero claro, al estar gestionados por el z80 si silencias el texas o el yamaha siguen sonando, y si silencias el z80 se van los samples de los dos. Un jaleo.

Drumpi
07/06/2021, 19:46
Pero me estáis diciendo cómo reproducir música a partir de los datos en bruto, o sea, con los ¿canales PSG? ¿sonido PCM? A ver, que no sé la nomenclatura. Datos de un archivo de audio guardado en muestras de la forma de onda.

Yo estoy preguntando por los seis canales FM del Yamaha específicamente, que no sé cómo funciona el tema de los "samples", o lo que el ModPlug Tracker llama "samples", que son los sonidos que se pueden reproducir como instrumentos. Sé que en dicho programa puedes coger cualquier sonido PCM o Wav y usarlo como instrumento, igual que (más o menos) hace la SNES, pero tengo entendido que la MD no tenía esa capacidad, y que los "samples" venían predefinidos.
Mi pregunta es, si vienen predefinidos, cuántos son (modificadores aparte), y hasta qué punto se pueden alterar, más allá de los valores de ataque, mantenimiento y decay, o si se pueden crear nuevos samples a base de especificar mediante valores hexadecimales por código, la forma de onda que queremos.

swapd0
08/06/2021, 00:32
https://www.youtube.com/watch?v=GnbT23wGcIA

Drumpi
08/06/2021, 12:36
Interesante. O sea, que según ese vídeo, la MD no tiene sonidos predefinidos, ni existe un banco de sonidos como tal, sino que usando esos esquemas de bloques y cierta programación de registros, se puede sintetizar el sonido que queramos. Por la información de debug del Genecyst, entiendo que se pueden almacenar en memoria varios instrumentos (no sé si 8 o 10), y que estos, en el caso del GEMS, son copiados de un banco que "alguien" se ha encargado de crear.

Entonces, el famoso "sonido Genesys" (lo siento por Syto, pero es como lo dicen en los vídeos americanos :D) es porque los músicos han tendido a usar el banco sonoro del GEMS sin preocuparse de intentar mejorar o modificar los "instrumentos" ¿no?

Ok, eso responde a mi pregunta. Genera otra sobre cómo se sintetizan los sonidos mediante esos diagramas, pero eso ya será en otro momento. Entiendo que para los músicos es más fácil usar "samples" que ponerse a trastear con las matemáticas detrás de esos bloques, pero ¿qué da más precisión sonora? ¿hacer pitch shifting a un sample, o un sonido sintetizado mediante este método? Tengo entendido que tras subir dos o tres octavas mediante pitch shifting, se debe cambiar el sample de sonido, porque la calidad se deteriora, ya que el cálculo matemático no es perfecto.

swapd0
08/06/2021, 13:00
Entonces, el famoso "sonido Genesys" (lo siento por Syto, pero es como lo dicen en los vídeos americanos :D) es porque los músicos han tendido a usar el banco sonoro del GEMS sin preocuparse de intentar mejorar o modificar los "instrumentos" ¿no?

O porque los chip FM tienen un sonido bastante particular.

mills332
15/06/2021, 23:15
Interesante. O sea, que según ese vídeo, la MD no tiene sonidos predefinidos, ni existe un banco de sonidos como tal, sino que usando esos esquemas de bloques y cierta programación de registros, se puede sintetizar el sonido que queramos. Por la información de debug del Genecyst, entiendo que se pueden almacenar en memoria varios instrumentos (no sé si 8 o 10), y que estos, en el caso del GEMS, son copiados de un banco que "alguien" se ha encargado de crear.

Entonces, el famoso "sonido Genesis" (lo siento por Syto, pero es como lo dicen en los vídeos americanos :D) es porque los músicos han tendido a usar el banco sonoro del GEMS sin preocuparse de intentar mejorar o modificar los "instrumentos" ¿no?

Ok, eso responde a mi pregunta. Genera otra sobre cómo se sintetizan los sonidos mediante esos diagramas, pero eso ya será en otro momento. Entiendo que para los músicos es más fácil usar "samples" que ponerse a trastear con las matemáticas detrás de esos bloques, pero ¿qué da más precisión sonora? ¿hacer pitch shifting a un sample, o un sonido sintetizado mediante este método? Tengo entendido que tras subir dos o tres octavas mediante pitch shifting, se debe cambiar el sample de sonido, porque la calidad se deteriora, ya que el cálculo matemático no es perfecto.

Hay un programa muy fácil de utilizar para crear sonidos para muchos sistemas, se llama deflemask: https://www.deflemask.com/. Incluye un editor para mega Drive.

Tienes unos canales para el SN76489, con ondas simples, y con "ruido" para simular percusiones o explosiones, y luego tienes un canal para audio pcm, que es el que usan casi todos para la percusión, por ejemplo el sonic.

Luego tienes el ym2612 con los 6 canales, y este lo que hace es que mezcla 4 ondas senoidales en diferentes configuraciones, frecuencias etc, para producir todo tipo de sonidos dentro de sus posibilidades. Depende de ti crear un sonido mejor o peor, pero no hay ningun banco especifico, sino que cada instrumento lo definen muchos parámetros, como volumen, algoritmo de mezcla (la manera en la que las va a mezclar sumar restar etc), la frecuencia de cada onda... Vamos que es un sintetizador de yamaha, igual que muchos teclados, solamente que es muy limitado, pero puede llegar a producir sonidos muy ochenteros, como campanas y bajos, que delatan su origen y dan ese sonido especial.

En este ejemplo han conseguido replicar los sonidos del super mario de snes, probablemente esos sonidos se generaron con sintetizadores simples y son ondas sencillas que el ym2612 no ha tenido problema en reproducir, añade el canal con los samples para la percusión y algún sonido más, y ya está.


https://www.youtube.com/watch?v=zSR2Sn2_D48

Si quieres utilizar la música creada con deflemask en un juego de verdad, puedes hacerlo con sgdk, en c si quieres, porque ya incluye el reproductor y todo optimizado para varios formatos.

Drumpi
14/07/2021, 18:51
Quiero plantear una duda a los músicos del foro.

Desde mi punto de vista, el enfoque de MD a la hora de hacer música me parece muy interesante, porque creas los sonidos a partir de modificar parámetros y ajustar ciertas funciones, y te da libertad para crear casi cualquier cosa si conoces la forma de onda, los armónicos y aplicas matemáticas al asunto. En teoría, puedes conseguir un sonido más limpio que un sample comprimido y de baja calidad, como se usaba en SNES (más por problemas de espacio que por capacidades de la máquina)... y aún así también podías llegar a usar samples.

Mi duda es, como músicos ¿preferís usar samples como instrumentos para hacer música, o por el contrario, necesitáis todo el control que os puede dar el chip de MD para sintetizar cualquier sonido?

Creo que el acercamiento de MD es más complicado si no eres ingeniero o no entiendes el sonido, pero con unos valores iniciales, y trasteando con ellos, se pueden conseguir instrumentos que no podrías grabar en un sample... aunque un sample te da más libertad y puedes obtener dichos sonidos de cualquier fuente, y es más sencillo, con la pega de tener que encajarlo luego en la escasa memoria que se reserva para el sonido en los cartuchos de SNES (¿32KB eran?)

swapd0
14/07/2021, 18:58
Con un sample si que puedes reproducir cualquier sonido, pero con las funciones de un chip FM no, solo puedes poner unos cuantos algoritmos (creo que los llaman asi) y combinarlos de unas formas predeterminadas, no puedes ponerte a combinarlos de forma infinita para que se ajusten a cualquier onda, para eso usas un sample.

Drumpi
19/07/2021, 19:32
Sí, claro... Bueno, según tengo entendido, para crear una forma de onda cuadrada se necesita un número infinito de ondas sinusoidales, pero sin embargo, creo recordar que para el oído humano, bastan con unas 6 u 8 sinusoides como mínimo. Si bien un chip FM tiene limitaciones, creo que son suficientes para conseguir un "buen" sonido. Claro que un sample te da 1000 grados de libertad y más, y puedes conseguir un sonido más puro (si no tenemos en cuenta limitaciones de espacio, y podemos hacer samples en distintas escalas para prevenir "artefactos" del pitch-shifting).

Pero la duda sigue ahí ¿preferís generar los sonidos mediante código en MD, o hacer lo que podáis con los samples de baja calidad de SNES? ¿Y si no tuvierais las limitaciones, os guía más la generación matemática de la onda o ir a la captura del sonido perfecto?

swapd0
19/07/2021, 20:09
Creo que es una cuestión de estilo, lo mismo pasa con los graficos, porque puedas mostrar 16bits de color (5 generación) no quiere decir que tengas que ponerte a "difuminar" los cambios de color para que no se vean los colores, IMHO queda mal, es mejor dejar las cosas en plan pixel art con pocos colores. Aunque el amiga tiene muy buen sonido hay músicas que prefiero en Atari ST, por ejemplo la del The Killing Game Show, la del amiga le falta "punch" y la de MD pese a que el chip de sonido es mejor que el del ST (PSG vs FM) IMHO suena fatal.

Usa algo que se adapte al estilo del juego, imagina jugar a un juego de Atari2600 con sonido de Amiga, seria un poco WTF!?!?

Drumpi
22/07/2021, 11:40
No sé yo qué decirte. Si no estoy mal informado, el formato MP3 transforma la forma de onda de una canción en múltiples sinusoides de diferentes frecuencias, de forma inversa a cómo lo harías con un chip sintetizador FM, y de esta forma, y con ligeras pérdidas que casi nadie aprecia (o si no, el MP3 habría sido sustituido por otro formato sin pérdidas hace eones), puedes tener "samples" de más de 3 minutos basados en sumas de sinusoides.
Si encima, a las sinusoides les puedes aplicar otro tipo de operaciones, conseguir cualquier sonido debería ser posible. No digo fácil, pero posible.

La cosa es si como músico se prefiere crear los sonidos (al fin y al cabo, la música lleva implícita las matemáticas), o se prefiere capturar su esencia real con una grabadora. No por el estilo, sino por preferencia personal.

Muchos músicos de videojuegos empezaron casi como ingenieros de sonido, ya que la música había que programarla. Al principio sólo seleccionar una serie de notas, luego algunos "instrumentos" (sinusoides, ondas cuadradas, dientes de sierra y ruido blanco), y más adelante ya programar los sonidos, los samples...
Creo que fue en el vídeo de GST Channel, dedicado a David Wise, en el que mencionaba como en DKC, para "aquatic ambience", estuvo investigando cómo acoplar dos samples en la partitura para conseguir ese sonido suave y armonioso, durante semanas. Estaba mezclando ambos conceptos (samples y sintetización) para conseguir sonidos, y me pregunto hasta qué punto eso es o era una rareza de la era de 8 y 16 bits.


Ahora todo son MP3 y OGG, que se lo largan al programador, y que él se encargue de la mezcla de sonidos y de todo lo demás :D

swapd0
22/07/2021, 12:58
Si, lo mismo que los sistemas de compresión wavelet, pero eso lo haces con la CPU y generas un sample en tiempo real que es lo que vas tocando, el chip FM de la megadrive o de los arcades no admite tanta flexibilidad y es posible que cuando lo estes programando los instrumentos no te deje tocar y de todas formas las combinaciones que puedes hacer con las ondas es limitada en los chip FM.