Página 1 de 4

WYZTracker 2

Publicado: Lun, 21 Mar 2016, 15:19
por AugustoRuiz
Hola!

Quería anunciar que está disponible la nueva versión del WYZTracker.

Lleva unos cuantos cambios (el reproductor es diferente y va incluído) respecto a la versión anterior. Especialmente los siguientes:

  • Los bucles pueden apuntar a un patrón concreto.
  • Las percusiones pueden usar envolventes.
  • Una canción puede modificar el tempo de forma dinámica.
  • Soporte para teclados MIDI
  • Soporte para teclados QWERTY, QWERTZ, AZERTY y DVORAK.
  • Facilidad para seleccionar el canal que sobreescriben los FX (en el player).

https://github.com/AugustoRuiz/WYZTracker

Saludos,



Augusto.

Re: WYZTracker 2

Publicado: Lun, 21 Mar 2016, 15:38
por angel
Buenas adiciones, me imagino que el murciano estará ya pensando cómo explotarlo :mc:

Re: WYZTracker 2

Publicado: Lun, 21 Mar 2016, 15:39
por na_th_an
Esto nos va a venir de puta madre para el Key to Time, cuando encuentre rato y ánimo de seguir :)

Re: WYZTracker 2

Publicado: Mar, 22 Mar 2016, 19:40
por Davidian
Ya estoy haciendo probatinas y tal. Los nuevos añadidos son cojonudos y necesarios. También he visto que se puede ahora modificar el volumen de cada nota.

Ahora sólo me falta saber como compilarlo pa ver como suena en cpc (a ver si tengo cojones a que me suene bien de una puta vez :lol: :lol: :lol: )

Re: WYZTracker 2

Publicado: Mar, 22 Mar 2016, 19:47
por AugustoRuiz
Si tienes PASMO hay un ejemplo en la carpeta asm. Con eso puedes generar un TAP...

Re: WYZTracker 2

Publicado: Lun, 28 Mar 2016, 08:07
por na_th_an
He estado mirando y le faltan cosas a ese asm (si es el mismo que me ha enviado el amigo murciano). Podríais revisarlo porque una persona que venga de nuevas no va a poder hacerlo funcionar.

Falta la lista de canciones, donde incluir los instrumentos, y cuál debe ser el punto de entrada. Tal y como está, además, hay que montar algo para ir llamando a la actualización del player cada cierto tiempo, por ejemplo en BASIC con RANDOMIZE USR y PAUSE 1 o con un ISR en lenguaje ensamblador o C.

Intentaré integrarlo en MK2 a ver si puedo hacerlo funcionar. Supongo que las partes que faltan serán iguales que en la anterior versión, y que podré encontrar los puntos de entrada :)

Re: WYZTracker 2

Publicado: Lun, 28 Mar 2016, 21:27
por AugustoRuiz
Hola,

El ejemplo para integrar está aquí:

https://sites.google.com/site/wyzplayer/downloads/Prueba_ZX.asm?attredirects=0&d=1

La cosa es que como el tracker trabaja con una sola canción. Los juegos generalmente tienen varias canciones. Entonces... La tabla de canciones no la genera el tracker, porque sólo trabaja con una canción. Pero sí que genera la tabla de instrumentos. Me apunto el hacer que pueda gestionar grupos de canciones.

La pega de todo esto es que el compositor tiene que usar los mismos instrumentos en todas las canciones de un mismo juego.

Para hacer que el player rule, lo que hay que hacer básicamente es:

  • Llamar a PLAYER_OFF
  • Inicializar el buffer de decodificación
  • Llamar a CARGA_CANCION
  • Llamar a INICIO una vez por frame (a ser posible en una interrupción)

En la siguiente versión del player, habrá un método para hacer sonar los SFX, que compartirán formato con las percusiones. Ese método permitirá especificar canal y número de efecto. (lo tengo hecho para CPC, estoy coordinando con WYZ cómo incluirlo en el resto de las versiones, porque se me fue la pinza y toqué un millón de cosas, y realmente con tocar un par de ellas vale).

Re: WYZTracker 2

Publicado: Mar, 29 Mar 2016, 09:30
por na_th_an
Lo decía porque estáis haciendo un trabajo excepcional pero "la competencia" parece que "lo pone más fácil", por decirlo de algún modo; entiendo que la principal aplicación de estas herramientas y código es la creación de bandas sonoras para videojuegos, así que deberían venir preparadas para esto de entrada - hasta el punto de incluso incluir los wrappers necesarios para emplear el player en diferentes entornos. Yo, por ejemplo, podría contribuir con uno para usarlo con splib2 en z88dk, y estoy seguro de que Artaburu estaría encantado de hacer lo propio con CPCRSLIB y SDCC. Tomároslo como sugerencia :)

Respecto a compartir los instrumentos, no creo que sea un verdadero problema.

Otra cosa que sería muy interesante es que integráseis un compresor. Nosotros lo tenemos integrado en la versión anterior del player, y funciona bastante bien. Los .mus van comprimidos con aplib y cuando se solicita que se cargue una canción ésta se descomprime en un buffer (que se ajusta manualmente al tamaño del mayor de los .mus una vez descomprimidos). El player está configurado para tocar siempre la canción que haya en el buffer. Los archivos .mus comprimen bastante bien y esto permite tener bandas sonoras mucho más completas.

Re: WYZTracker 2

Publicado: Mar, 29 Mar 2016, 10:24
por AugustoRuiz
Buenas,

El incluir los wrappers... Yo personalmente voy a portar el player a la cpctelera, y eso implica migrar el ASM de ASMSX a ASZ80, y crear los wrappers para cpctelera en ASM y C. Cualquier contribución es bienvenida, por supuesto...

La próxima versión del tracker traerá soporte a múltiples canciones por fichero .wyz. Así la exportación generará un .asm que incluya los .mus necesarios.

Pero el problema real es que a la hora de exportar habría que seleccionar el toolchain destino, dado que no todos usan el mismo ensamblador... Es decir, el .asm que generamos ahora mismo vale para PASMO y ASMSX, pero no para ASZ80. Hay que buscar un balance entre dar "todo hecho", que incrementa el trabajo exponencialmente, y dar los ficheros de datos y tener una toolchain propia que los procese para integrarlos automáticamente (que es por ejemplo lo que hace la cpctelera con sus makefiles)...

Re: WYZTracker 2

Publicado: Mié, 30 Mar 2016, 08:31
por na_th_an
¿Tan diferente es ASZ80 como para no poder solucionar las diferencias automáticamente? Muchas veces los cambios más gordos se deben a diferentes formas de definir macros y otras características avanzadas que el player de WYZ no emplea. Aparte de eso, suele cambiar el formato de representación de los literales numéricos, las etiquetas, y alguna que otra cosa más que (corrígeme si me equivoco) podrían ser solucionadas mediante un script [*]. Aparte de eso, el resto de los archivos implicados (las canciones) deberían ser utilizables directamente, al tratarse meramente de datos [**].

El soporte para varias canciones es todo un acierto, bravo :)

[*]Por ejemplo, para importar el código ensamblador que genera Beepola en un proyecto de z88dk como ensamblador en linea únicamente hay que hacer un "find and replace" con expresiones regulares para adaptar las etiquetas y añadir apertura y cierre.
[**]Puede darse el caso de compiladores como SDCC que no permitan incluir binarios directamente, pero existe gran cantidad de herramientas para transformar binarios en código que pueden incluirse en un toolchain.

A lo que venía a referirme es que deberíamos trabajar para que quien se descargue el paquete tenga ejemplos para las diferentes plataformas principales (que entiendo que serían CPC, MSX y Spectrum) listos para usar, aunque su perfil sea el de músico medio dale fran que quiera ver cómo suena el invento.