Interpretanto archivos .MID sencillos..

Todo sobre la creación, diseño y programación de nuevo software para
nuestro Spectrum

Moderador: Sir Cilve Sinclair

Avatar de Usuario
mcleod_ideafix
Johnny Jones
Mensajes: 3985
Registrado: Vie Sep 21, 2007 1:26 am
Ubicación: Jerez de la Frontera
Contactar:

Re: Interpretanto archivos .MID sencillos..

Mensaje por mcleod_ideafix » Dom Sep 06, 2009 7:40 pm

winston escribió:Aquí está un enlace que explica cómo se funciona un "DAC de resistencias" (en inglés) : http://www.nomad.ee/micros/r2rdac.html . El circuito es muy similar del Specdrum :-)


Ostras! Si que es idéntico. Pues te juro que el que he dibujado lo he hecho de memoria, de uno que hice hace ya más de 14 años. De hecho, el que se propone ahí usa el 74374, que usa carga disparada por flanco en lugar de por nivel. Es mejor opción, así que en mi diseño propondría cambiar el 74573 por un 74574.

EDITO: he cambiado el esquema para que use un 574 en lugar de un 573. Prefiero la carga por flanco en lugar de por nivel...
Última edición por mcleod_ideafix el Lun Sep 07, 2009 5:33 am, editado 1 vez en total.
Web: ZX Projects | Twitter: @zxprojects

Avatar de Usuario
winston
Sabreman
Mensajes: 469
Registrado: Mar Ago 19, 2008 4:17 pm
Ubicación: Isla de Man
Contactar:

Re: Interpretanto archivos .MID sencillos..

Mensaje por winston » Dom Sep 06, 2009 8:16 pm

Y ahora, estoy pensando en cómo puedo hacer un tarjeta de sonido para el Spectrum... una CPLD, 64kb memoria, un DAC sencillo... y entonces, se puede llenar la memoria con samples (en una manera similar de cómo se puede enviar datos a /dev/dsp) - y la CPLD envía dichos samples al DAC a 44,1kHz, o 22,050kHz etc. Significa que el Spectrum puede mezclar los samples nuevos mientras el DAC emite los que ya han sido mezclado...

Argh, tengo que acabar con el Spectranet...tengo que acabar con el Spectranet...(etc). ¡Hay demasiados proyectos otra vez! :-)
Tarjeta ethernet para el Spectrum - http://spectrum.alioth.net/doc

Debemos practicar un quirkafleeg

Avatar de Usuario
mcleod_ideafix
Johnny Jones
Mensajes: 3985
Registrado: Vie Sep 21, 2007 1:26 am
Ubicación: Jerez de la Frontera
Contactar:

Re: Interpretanto archivos .MID sencillos..

Mensaje por mcleod_ideafix » Dom Sep 06, 2009 9:14 pm

Pues cuando quieras te cuento mi idea y te termino de picar con el tema :P
Web: ZX Projects | Twitter: @zxprojects

Avatar de Usuario
zxbruno
Freddy Hardest
Mensajes: 586
Registrado: Dom Jun 03, 2007 3:28 am
Ubicación: Anaheim, California, USA

Re: Interpretanto archivos .MID sencillos..

Mensaje por zxbruno » Dom Sep 06, 2009 9:33 pm

Todos ustedes están sufriendo de Gasmanitis. :p

Avatar de Usuario
mcleod_ideafix
Johnny Jones
Mensajes: 3985
Registrado: Vie Sep 21, 2007 1:26 am
Ubicación: Jerez de la Frontera
Contactar:

Re: Interpretanto archivos .MID sencillos..

Mensaje por mcleod_ideafix » Dom Sep 06, 2009 10:12 pm

Huy! y eso que es? :O
Web: ZX Projects | Twitter: @zxprojects

Avatar de Usuario
mcleod_ideafix
Johnny Jones
Mensajes: 3985
Registrado: Vie Sep 21, 2007 1:26 am
Ubicación: Jerez de la Frontera
Contactar:

Re: Interpretanto archivos .MID sencillos..

Mensaje por mcleod_ideafix » Lun Sep 07, 2009 5:20 am

zxbruno escribió:En relación a .MODs en el Spectrum, recuerdo que alguien había dicho que era muy dificil (no imposible) debido...

Bueno, pues aquí va el más difícil todavía.

He conseguido escribir una rutina que es capaz de manejar cuatro canales independientes. Cada canal puede usar un instrumento diferente (aunque en la demo sólo uso uno). Este instrumento (sample) puede ser de hasta 4KB, en formato PCM, 8 bits con signo (si ocupa menos, se rellena con 0's hasta alcanzar los 4KB). En un Spectrum 48K con SpecDrum se alcanzan los 8000 Hz de frecuencia de muestreo. Lo mínimo que se despacha para que el sonido sea inteligible. Cada nota se puede reproducir en 3 octavas completas (igual que los MOD's originales). No se ha implementado ningún comando ni efecto de los MOD's. El tempo (comando "ticks per division") está fijado en el código fuente con un "equ" a 6.

Como demostración, he pasado a "define byte" en el código fuente los acordes y melodía principal de "Es por tí" del grupo Cómplices. El sample, por supuesto, es de un piano, pero podeis cambiarlo por otro sobreescribiendo a partir de la dirección 51200 (C800h). Si usáis Spectaculator, mientras se escucha la canción podeis arrastrar un fichero binario con el nuevo sample, decirle que lo ubique en la dirección 51200 (no chequeeis la opción de "ejecutar después de cargar"), y lo usará al instante en lugar del piano. Como digo, el sample debe estar grabado en PCM, 8 bits, con signo (OJO que los WAV's de 8 bits son sin signo), y ocupar 4096 bytes.

No he incorporado bases ni percusión. No tengo cabeza para llegar a eso componiendo en un editor de texto y compilando :?
Los acordes que se escuchan no están precalculados. El único sample que hay es un sonido limpio de piano. La melodía tiene acordes mayores y menores, y todos se reproducen usando tres de los cuatro canales, que tocan las tres notas del acorde. El cuarto canal se deja para la melodía (la mano derecha del piano).

Pinchar en la imagen para descargar la demo. Si no se tiene un SpecDrum (mirad un poco antes en este mismo hilo para saber cómo hacerse uno), el Spectaculator lo emula.

Imagen

PD: ¿cuántos canales estará usando esto otro? :D
Web: ZX Projects | Twitter: @zxprojects

ZXevious
Jack The Nipper
Mensajes: 101
Registrado: Vie Abr 11, 2008 5:37 pm

Re: Interpretanto archivos .MID sencillos..

Mensaje por ZXevious » Mar Sep 29, 2009 7:13 am

¡Qué pasada! La verdad es que suena muy bien emulado, ¿hay mucha diferencia con el sonido que sale del Specdrum o la emulación está lograda?

Avatar de Usuario
mcleod_ideafix
Johnny Jones
Mensajes: 3985
Registrado: Vie Sep 21, 2007 1:26 am
Ubicación: Jerez de la Frontera
Contactar:

Re: Interpretanto archivos .MID sencillos..

Mensaje por mcleod_ideafix » Mar Sep 29, 2009 2:16 pm

Practicamente suena igual la versión emulada que el SpecDrum original, aunque eso dependerá en última instancia del filtro paso bajos que tenga a la entrada tu amplificador, o a la salida tu tarjeta de sonido. En otro hilo tengo puesto un video con la salida real de un SpecDrum
Web: ZX Projects | Twitter: @zxprojects

Avatar de Usuario
mcleod_ideafix
Johnny Jones
Mensajes: 3985
Registrado: Vie Sep 21, 2007 1:26 am
Ubicación: Jerez de la Frontera
Contactar:

Re: Interpretanto archivos .MID sencillos..

Mensaje por mcleod_ideafix » Mar Oct 08, 2019 9:04 am

Y 10 años después, sí que fui capaz de interpretar archivos MIDI sencillos, y no tan sencillos. Como decía zxbruno, interpreto los de tipo 0. Y suenan muy bien :) . En 10 años también he conseguido hacer DMA al Specdrum y la CPU puede dedicarse a hacer otras cosas mientras suenan muestras digitales.
Hay que ver cómo pasa el tiempo... :)
Web: ZX Projects | Twitter: @zxprojects

Avatar de Usuario
Bone
Jack The Nipper
Mensajes: 133
Registrado: Mar May 20, 2008 12:22 pm
Ubicación: Mareny de Barraquetes

Re: Interpretanto archivos .MID sencillos..

Mensaje por Bone » Mié Oct 09, 2019 8:54 am

mcleod_ideafix escribió:Y 10 años después, sí que fui capaz de interpretar archivos MIDI sencillos, y no tan sencillos. Como decía zxbruno, interpreto los de tipo 0. Y suenan muy bien :) . En 10 años también he conseguido hacer DMA al Specdrum y la CPU puede dedicarse a hacer otras cosas mientras suenan muestras digitales.
Hay que ver cómo pasa el tiempo... :)
Y que lo digas!! [emoji23]
< Sistema preparado >

Avatar de Usuario
falvarez
Sabreman
Mensajes: 375
Registrado: Mar Abr 17, 2007 12:28 am
Ubicación: Madrid
Contactar:

Re: Interpretanto archivos .MID sencillos..

Mensaje por falvarez » Mié Oct 09, 2019 11:23 pm

mcleod_ideafix escribió:Y 10 años después, sí que fui capaz de interpretar archivos MIDI sencillos, y no tan sencillos. Como decía zxbruno, interpreto los de tipo 0. Y suenan muy bien :) . En 10 años también he conseguido hacer DMA al Specdrum y la CPU puede dedicarse a hacer otras cosas mientras suenan muestras digitales.
Hay que ver cómo pasa el tiempo... :)
Esto sí que es un señor reflote. Claro que la ocasión lo merece :D

Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 7 invitados