Commodore manía foro

Commodore 64 => Programación => Mensaje iniciado por: PacoBlog64 en Julio 03, 2018, 22:17:50

Título: Goattracker y efectos de sonido
Publicado por: PacoBlog64 en Julio 03, 2018, 22:17:50
Hola,
He hecho un SID con GT (Goattracker) que contiene 2 pistas (bajo/batería y guitarra) y en el que he dejado una libre para efectos, ya que los ficheros generados con GT tienen una opción que permite usar una pista para FX. El caso es que sigo las instrucciones de la documentación pero no logro que suene el efecto, aunque sí suena la música correctamente. La música la exporto en formato BIN (con el player incorporado), y el efecto lo creo como instrumento dentro de GT: lo grabo como .ins, lo convierto a binario .snd con INS2SND2 y luego lo uso en mi código ensamblador siguiendo estas instrucciones:
Citar
To init music:

        LDA #tunenumber         ;Starting from 0
        JSR startaddress

To play music:

        JSR startaddress+3

To change volume:

        LDA #volume             ;0-F, F is default
        JSR startaddress+6

To play a sound effect

        LDA #<sound             ;Address of sound effect data
        LDX #>sound
        LDY #channel            ;0-2
        JSR startaddress+9

Pero como decía, la música suena y el efecto no. He mirado en otros sitios y teóricamente lo estoy haciendo todo correctamente, pero creo que algo se me escapa. ¿A alguien le ha pasado algo parecido? ¿Sabéis si hay que hacer algo especial para lograr que esto funcione?

¡Gracias!
Título: Re:Goattracker y efectos de sonido
Publicado por: PacoBlog64 en Julio 04, 2018, 12:38:32
Misterio resuelto, me respondo a mi mismo: se conoce que los ficheros .snd que contienen los FX son de tipo texto (se importan con !src en ACME cambiando dc.b por !byte) y no de tipo binario (!bin), que es como los importaba erróneamente.
Título: Re:Goattracker y efectos de sonido
Publicado por: josepzin en Julio 04, 2018, 13:28:05
Me alegro :)
Título: Re:Goattracker y efectos de sonido
Publicado por: Maniako en Julio 06, 2018, 10:48:36
Esto es interesante.
Intenté lo mismo pero lo saqué junto al SID y... no funcionó XD.

Podrías pasarme el fichero ya convertido Para ver como funciona?

Título: Re:Goattracker y efectos de sonido
Publicado por: PacoBlog64 en Julio 06, 2018, 11:14:22
Ok, te lo mando por privado  ;)

Para el resto, el código del reproductor de música y efectos a partir del ejemplo que viene con el código fuente de Goattracker sería algo así (compilador ACME, que es el que uso):
Código: [Seleccionar]
!to "example2.prg",cbm

; Variables.
ZERO_SID_TEST_MUSIC = $9800

; SID.
MUSIC_INIT = ZERO_SID_TEST_MUSIC
MUSIC_PLAYBACK = ZERO_SID_TEST_MUSIC+3

*=$0801
;lo siguiente equivale a SYS 2064, que inicia el programa
!byte $0C,$08,$0A,$00,$9E,$20,$32,$30,$36,$34,$00,$00,$00,$00,$00

; Example of using playroutine 2 (gamemusic)
;
; playeraddress+0 = init music (A = tunenumber starting from 0)
; playeraddress+3 = play music
; playeraddress+6 = play sound effect (A = sound effect address lowbyte,
;                                      Y = sound effect address highbyte,
;                                      X = channel index 0, 7 or 14)
;
; Remember that this player uses 2 zeropage locations, so save those
; locations before calling the player, if you need all of the ZP.
; The player doesn't depend on their contents between calls at all!

getin           = $ffe4

fill_sfxtb lda #<arpeggio2
sta sfxtbllo
lda #>arpeggio2
sta sfxtblhi
lda #<arpeggio1
sta sfxtbllo+1
lda #>arpeggio1
sta sfxtblhi+1
lda #<gunshot
sta sfxtbllo+2
lda #>gunshot
sta sfxtblhi+2
lda #<explosion
sta sfxtbllo+3
lda #>explosion
sta sfxtblhi+3

start:          jsr initraster
                lda #22
                sta $d018
                lda #$00
                jsr MUSIC_INIT           ; inicializa música

                ldx #$00
                lda #$20
clearscreen:    sta $0400,x
                sta $0500,x
                sta $0600,x
                sta $0700,x
                inx
                bne clearscreen
textloop:       lda text,x
                jsr convertascii
                sta $0400,x
                lda #$01
                sta $d800,x
                inx
                cpx #4*40
                bcc textloop
idle:           lda currraster
                ldx #52
                jsr printhex
                lda maxraster
                ldx #55
                jsr printhex
                jsr getin
                cmp #"A"
                bcc idle
                cmp #"D"+1
                bcs idle
playsound:      sec
                sbc #"A"                        ;Sound effect number 0-3
                tax
                lda sfxtbllo,x                  ;Address in A,Y
                ldy sfxtblhi,x
                ldx #$0e                        ;Channel index in X
                ;jsr $1006                       ;(0, 7 or 14)
                jsr MUSIC_PLAYBACK+3
               
                jmp idle

printhex:       pha
                lsr
                lsr
                lsr
                lsr
                tay
                lda hexnybble,y
                jsr convertascii
                sta $0400,x
                pla
                and #$0f
                tay
                lda hexnybble,y
                jsr convertascii
                sta $0401,x
                rts

convertascii:   cmp #$60
                bcc ca_ok
                sbc #$60
ca_ok:          rts

initraster:     sei
                lda #<raster
                sta $0314
                lda #>raster
                sta $0315
                lda #50                         ;Set low bits of raster
                sta $d012                       ;position
                lda $d011
                and #$7f                        ;Set high bit of raster
                sta $d011                       ;position (0)
                lda #$7f                        ;Set timer interrupt off
                sta $dc0d
                lda #$01                        ;Set raster interrupt on
                sta $d01a
                lda $dc0d                       ;Acknowledge timer interrupt
                cli
irwait:         lda maxraster
                beq irwait
                lda #$00
                sta maxraster
                rts

raster:         nop
                nop
                nop
                nop
                nop
                lda $d012
                sta raster_cmp+1
                inc $d020
                jsr MUSIC_PLAYBACK      ; reproducción de música
               
                lda $d012                       ;rastertime it took to
                dec $d020                       ;execute
                sec
raster_cmp:     sbc #$00
                sta currraster
                cmp maxraster
                bcc raster_skip
                sta maxraster
raster_skip:    dec $d019
                jmp $ea31

text:           !text "Example 2: Game-musicroutine            "
                !text "Rastertime:   /                         "
                !text "                                        "
                !text "Press A-D for sound effects.            "

hexnybble:      !text "0123456789ABCDEF"

maxraster:      !byte 0
currraster:     !byte 0

sfxtbllo:       !byte 0, 0, 0, 0

sfxtblhi:       !byte 0, 0, 0, 0

arpeggio2:     
!src "sfx_arp2.snd"

arpeggio1:     
!src "sfx_arp1.snd"

gunshot:       
!src "sfx_gun.snd"

explosion:     
!src "sfx_expl.snd"
;explosion = highest pri.


*=ZERO_SID_TEST_MUSIC
!bin "dummy_song.bin"           ;Playroutine & music data

Título: Re:Goattracker y efectos de sonido
Publicado por: Zub en Noviembre 08, 2018, 19:02:19
Hola compañeros!

Estoy con problemas de goattracker... Supuestamente hago todo bien pero los sfx no suenan ni de coña como lo hacen en el editor... De hecho algunos ni suenan..

Ejemplo un sonidito de bomba cayendo que se exporta así:

      dc.b $B3,$68,$00,$C3,$41,$C3,$C2,$C2,$C1,$C1,$C0,$C0,$BF,$BF,$BE,$BE
              dc.b $BD,$BD,$BC,$BC,$BB,$BB,$BA,$BA,$B9,$B9,$B8,$B8,$B7,$B7,$B6,$40
            dc.b $B5,$B5,$B4,$B3,$B2,$00

No suena una mierda. Adjunto el .INS original..

Cualquier ayuda será bienvenida!!
Título: Re:Goattracker y efectos de sonido
Publicado por: danytoon en Noviembre 09, 2018, 02:26:53
A ver, que aquí hay bastantes entendidos de SID... @uctumi @darro99 o el mismo @PacoBlog64 , que ha trasteao ya :)
Título: Re:Goattracker y efectos de sonido
Publicado por: Zub en Noviembre 09, 2018, 11:18:39
El que he puesto parece que es porque usa pulse width y la herramienta ins2snd no tiene en cuenta esa información.

Vuestros sfx usan pulsetable? Como haceis?

Título: Re:Goattracker y efectos de sonido
Publicado por: PacoBlog64 en Noviembre 09, 2018, 17:38:05
Hola @Zub , que yo sepa, los instrumentos que crees con Goattracker no deben tener "accesorios" como tablas de pulsos, filtros o velocidad. Se tiene que poner todo "a pelo". Al menos así es como logré que me funcionaran los míos. Si quieres que las notas tengan algún efecto (subidas o bajadas de tono) tienes que ponerlo en la wave table y nota a nota, nada de poner al final de la wave table del instrumento que haga un loop y vuelva al principio, por ejemplo.

He probado tu efecto y si cambio el 41 del tipo de onda por 11 u 81, por ejemplo, suena un efecto como de caída. Creo que el problema está ahí, en el tipo de onda.
Título: Re:Goattracker y efectos de sonido
Publicado por: Narcisound en Diciembre 03, 2018, 21:01:55
Para que el SID creado con GoatTracker deje una o dos pistas para los FX ¿Hay que indicarlo en algún sitio del programa o simplemente compones la música en una sola pista y dejas los canales 2 y 3 sin meter dato alguno para despues disparar los efectos desde el mismo código del juego?

Gracias.

PD. En su día aluciné con la música compuesta por Jeroen Tel de los Maniacs of Noise para el grandísimo HAWK EYE. Sobre todo por los "tunes" creados para los niveles del juego. Todos usando un solo canal y combinando muy bien bajo, baterías y arpegios varios.
Título: Re:Goattracker y efectos de sonido
Publicado por: PacoBlog64 en Diciembre 04, 2018, 00:01:39
Para que el SID creado con GoatTracker deje una o dos pistas para los FX ¿Hay que indicarlo en algún sitio del programa o simplemente compones la música en una sola pista y dejas los canales 2 y 3 sin meter dato alguno para despues disparar los efectos desde el mismo código del juego?

En mi caso lo que he hecho es poner la música en los canales 1-2 y desde el código, cuando tengo que lanzar un FX, lo hago así, indicando que tiene que usar el 3er canal:
Código: [Seleccionar]
          lda #<fx_strong_hit                  ;Address in A,Y
          ldy #>fx_strong_hit
          ldx #$0e                        ;Channel index in X (0, 7 or 14). $0e = 14
          jsr MUSIC_PLAYBACK+3

También puedes poner la música en 1 solo canal y dejar 2 para los FX, indicando el canal que usará el FX cada vez que se lanza (p.ej.: $07 para el player 1 y $0e para el player 2). No lo he probado pero imagino que funcionará bien.

Jeroen Tel es un monstruo, es uno de mis compositores favoritos y creo que se merece más reconocimiento del que tiene actualmente. Cybernoid I y II, Hawkeye, Out Run Europa, Myth, Golden Axe, Eliminator,...
Título: Re:Goattracker y efectos de sonido
Publicado por: danytoon en Diciembre 04, 2018, 00:40:08
el Jeroen está muy reconocido eh? Sin embargo, mi favorito siempre será el cabrón del Tim Follin

Sorry... (http://www.youtube.com/watch?v=hJ4zOrv_kSc#)

Título: Re:Goattracker y efectos de sonido
Publicado por: Narcisound en Diciembre 06, 2018, 15:06:07
Ok, gracias PacoBlog64 por tus explicaciones de como hacerlo.

Y a Dany decirle que Tim Follin es un monstruo del SID, al igual que Martin Galway o Rob Hubbard. Grandes entre los grandes!!
Título: Re:Goattracker y efectos de sonido
Publicado por: Narcisound en Diciembre 11, 2018, 19:44:09
Tengo una duda que me surge.

Si la pista creada para la música de un juego, la cual solo se ha usado el Canal 1 dejando el 2 y 3 para los FX, y en dichos canales se ha puesto el valor CF el cual corresponde a un PATTERN vacio (todo a "... 00000" y no suena NADA de música por ellos).

Mi pregunta es. Los efectos de sonido me imagino que habrá que cargarlos como SONIDOS al final de los usados en la música, por ejemplo, si el último sonido cargado para la música ha sido en la posición: "0C Hit Hat" ¿A partir de la siguiente posición 0D, he de ir cargando el resto de sonidos?

0D - Disparo Nave 1er Jugador
0E - Disparo Nave 2º Jugador
0F - Disparo recibido Nave 1er Jugador
10 - Disparo recibido Nave 2º Jugador
11 - Explosion Naves

Luego, como ya habeis explicado antes, será cuestión de decirle al programa, que sonido vas a hacer sonar y por cual canal, en mi caso, o el 2 o el 3 no?
Título: Re:Goattracker y efectos de sonido
Publicado por: PacoBlog64 en Diciembre 11, 2018, 22:03:57
Mi pregunta es. Los efectos de sonido me imagino que habrá que cargarlos como SONIDOS al final de los usados en la música, por ejemplo, si el último sonido cargado para la música ha sido en la posición: "0C Hit Hat" ¿A partir de la siguiente posición 0D, he de ir cargando el resto de sonidos?

0D - Disparo Nave 1er Jugador
0E - Disparo Nave 2º Jugador
0F - Disparo recibido Nave 1er Jugador
10 - Disparo recibido Nave 2º Jugador
11 - Explosion Naves

Luego, como ya habeis explicado antes, será cuestión de decirle al programa, que sonido vas a hacer sonar y por cual canal, en mi caso, o el 2 o el 3 no?

Los sonidos son instrumentos del GT exportados como .ins y convertidos a sonidos (ficheros .snd) con el programa ins2snd que viene con GT. Un fichero .snd contiene, si no me equivoco, instrucciones en ensamblador. Los efectos no tienen porqué estar en el fichero .sid, son instrucciones aparte. Cuando quieres que suene un efecto, cargas en unos registros del programa la dirección de memoria en la que se cargó el efecto y haces un JSR a MUSIC_PLAYBACK+3. Por ejemplo, en ensamblador cargas el efecto así:
Código: [Seleccionar]
*=ZERO_SID_FX
fx_light_hit
!src "recursos_propios/sonidos/light_hit.snd"

Y lo llamas desde el programa así para que suene:
Código: [Seleccionar]
lda #<fx_light_hit                  ;Address in A,Y
ldy #>fx_light_hit
ldx #$0e                        ;Channel index in X (0, 7 or 14)
            jsr MUSIC_PLAYBACK+3

Es importante que, al crear el instrumento/efecto en GT, en la wavetable no pongas ningún loop o no te dejará exportarlo a .snd correctamente (te saldrán errores de exportación). Has de ponerlo todo "linealmente", y está limitado a una longitud concreta que ahora no recuerdo. Te recomiendo que te mires la documentación que viene con GT, ahí explican cómo funciona el tema de los instrumentos y los efectos ;)
Título: Re:Goattracker y efectos de sonido
Publicado por: darro99 en Diciembre 12, 2018, 17:38:13
Buenas!
Me temo que en el KickAssambler no funciona de esta manera:

Código: [Seleccionar]
Llda #<fx_light_hit       ;Address in A,Y
ldy #>fx_light_hit
ldx #$0e                        ;Channel index in X (0, 7 or 14)
jsr MUSIC_PLAYBACK+3

Ya que el propio compilador te proporciona un player.
El caso que tienes que cargar el sid:
Código: [Seleccionar]
.var music = LoadSid("musics.sid")
.pc=music.location "Music"
.fill music.size, music.getData(i)

A continuación elegir la canción con el valor del acumulador e 'iniciar' el player:
Código: [Seleccionar]
lda #0
jsr music.init

Y por ultimo en la irq elegida hacer que toque con:
Código: [Seleccionar]
jsr music.play
Aquí es donde viene mi problema, no se si habrá que añadir al fichero sid los efectos de sonido al final (o como una canción mas) y 'tocarlos' seleccionándolos, o por el contrario hay que cargarlos de alguna forma para que luego el player pueda ejecutarlos.

Alguien me puede aclarar estas dudas?
Título: Re:Goattracker y efectos de sonido
Publicado por: PacoBlog64 en Diciembre 12, 2018, 18:19:28
Me temo que en el KickAssambler no funciona de esta manera:

Ups, lo mío era para ACME, no para KickAssembler. De GT y KickAssembler lo único que conozco es esto, imagino que ya lo habrás visto: https://www.lemon64.com/forum/viewtopic.php?t=67111&sid=d919c9025323fc98a6b0aa5318fb17fb (https://www.lemon64.com/forum/viewtopic.php?t=67111&sid=d919c9025323fc98a6b0aa5318fb17fb)

Mírate esta parte de código:
Código: [Seleccionar]
// SFX
.pc = $4000 "SFX"
SFX_Step:
.byte $00,$06,$00,$A1,$10,$A1,$40,$A1,$80,$00

A partir de $4000 carga los diferentes efectos. La ristra de bytes en realidad son las notas del instrumento o sonido de GT, que por lo que indican más arriba en ese post, están dentro del fichero .snd obtenido con ins2snd a partir del instrumento de GT. Es decir, que .byte $00,$06,$00,$A1,$10,$A1,$40,$A1,$80,$00 es el contenido del fichero efecto.snd que quieres utilizar. Luego reproduce el efecto con esto, que más o menos es lo que ponía yo en el mensaje anterior:
Código: [Seleccionar]
lda #<SFX_Step
ldy #>SFX_Step
ldx #14
jsr music.init+6

Título: Re:Goattracker y efectos de sonido
Publicado por: darro99 en Diciembre 15, 2018, 12:33:08
Buenas de nuevo

Me temo que no termino de hacerlo funcionar.   :(

He comprobado el codigo del enlace: https://www.lemon64.com/forum/viewtopic.php?t=67111&sid=d919c9025323fc98a6b0aa5318fb17fb (https://www.lemon64.com/forum/viewtopic.php?t=67111&sid=d919c9025323fc98a6b0aa5318fb17fb)

Creo que entiendo lo que quiere decir el código quedaría tal que así (o eso creo):
Código: [Seleccionar]
lda #<SFX_Step
ldy #>SFX_Step
ldx #14
jsr music + 6

El caso es que el player esta situado a partir de la dirección $1000 (music) y parece ser que en la $1006 (music) es donde debería de estar la función para estos casos. Pero no me termina de convencer, he decompilado esta parte y no parece que haga mucho caso a lo que se carga anteriormente en los registros:

Código: [Seleccionar]
LDA $152F,Y
JMP $1013
TAY
LDA #$00
STA $1399,X
TYA
$1013 
STA $1370,X
LDA $135F,X
STA $136F,X
RTS

A esta función no sé tampoco cuando debo de llamarla. Si a la vez que se llama al play ($1000) de la canción principal o por el contrario una vez y sonara el efecto especial.

De todas formas seguiré investigando, a ver si consigo sacar algo en claro, por que ahora mismo ando muy despistado  :-\
Título: Re:Goattracker y efectos de sonido
Publicado por: Narcisound en Diciembre 16, 2018, 17:40:04
He estado viendo mas a fondo el GoatTracker, y éste tiene una opción a la hora de exportar el SID que dice si vas a utilizar FX o no, concrétamente se llama: SOUND EFFECTS SUPPORT y no la he probado la verdad. Lo que si se, es que si poner YES en ésta opción, automáticamente, la opción de arriba: BUFFERED SID-WRITES, también se pone a YES.

Observando es espacio que ocupa el SID, veo que si se habilita la opción comentada de SOUND EFFECT SUPPORT, la "Playroutine" crece de los 1153 bytes que ocupa sin la opción, a los: 1323 bytes. A ver si alguien sabe como funciona concrétamente dicha función, porque está claro que si ha crecido en tamaño es porque debe ofrecer la opción de disparar los FX mientras suena la música.

Otra cosa que se me ocurre, es meter otra rutina diferente para disparar los efectos de los canales 2 y 3. Podría funcionar.

Título: Re:Goattracker y efectos de sonido
Publicado por: Narcisound en Diciembre 16, 2018, 18:28:55
Otra idea que se me acaba de ocurrir:

- Tenemos una música creada en un solo canal para la parte del juego. En los canales 2 y 3 no hemos compuesto nada para dejarla libre a los FX.

- Al componer la canción del juego, los canales 2 y 3 están marcados con la posición del PATTERN 31 la cual no contiene nota alguna.

- Con el GoatTracker en el PATTERN 32, colocamos un efecto, por ejemplo, el de un disparo laser y nada más, el resto, a 0.

- Con el GoatTracker en el PATTERN 33, colocamos un efecto de explosión, y nada más, el resto a 0.

Ahora si por ejemplo queremos hacer que suene una explosión por el canal 2, cargamos la dirección del Pattern 33 dentro del canal 2 en la music-routine y ésta toca dicho Pattern 33 y suena la explosión. Pasados unos segundos (con 5 serían suficientes ya que no usaremos FX tan largos), le decimos a la music-routine que vuelva a la posición de PATTERN 31 para que vuelva a la normalidad, es decir, silencio.

Si además queremos que suene un disparo laser por el canal 3, cargamos la dirección del PATTERN 32 dentro del canal 3 en la citada music-routine, y el disparo suena por dicho canal 3. Luego, lo mismo que antes, es decir, pasados 5 segundos volvemos a indicar que vuelva a la posición de PATTERN 31 y así con cada efecto que deba sonar.

Si tenemos 5 efectos de sonido para el juego, pues con componerlos desde el GoatTracker en los PATTERNS: 32, 33, 34, 35 y 36 ya sería mas que suficiente.

No creo que sea muy difícil de averiguar como funciona la music-routine y observar como cambian los valores de los PATTERNS a medida que va sonando la música y poderlos alterar a nuestro gusto para conseguir hacer sonar los FX.
Título: Re:Goattracker y efectos de sonido
Publicado por: Narcisound en Diciembre 17, 2018, 19:44:40
Bueno, pues ya está arreglado el problema. Simplemente era exportar el SID indicando en las opciones del GoatTracker que se habilitan los Fx´s sonoros y listo.

Gracias por vuestro interés.  ;)
Título: Re:Goattracker y efectos de sonido
Publicado por: josepzin en Diciembre 17, 2018, 19:58:08
Yo no tengo ni idea de estos temas... :S
Título: Re:Goattracker y efectos de sonido
Publicado por: darro99 en Diciembre 17, 2018, 20:10:47
Buenas a todos!

Citar
Bueno, pues ya está arreglado el problema. Simplemente era exportar el SID indicando en las opciones del GoatTracker que se habilitan los Fx´s sonoros y listo.

Efectivamente  ;D con esta opción funciona correctamente!

Lo curioso es que con la dirección $1006 del player del KickAssembler funciona correctamente, aunque la 'decompilación' no me convencía  ???

Tendré que diseccionar un poco mas el código para ver que es lo que se está haciendo realmente con los registros del SID.

Gracias a todos por la ideas y las soluciones!  ;D
Título: Re:Goattracker y efectos de sonido
Publicado por: Narcisound en Diciembre 17, 2018, 20:14:18
Bueno, estoy experimentando con la aplicación que se ejecuta en modo MS-DOS (o ventana CMD de Windows) y no se que opciones utilizar de todas las posibles.

Por lo visto, la línea de comandos es así:

INS2SND2 <instrumentfile> <sourcecodefile> <options>

<instrumentfile> ¿Es el efecto de sonido creado con el Goattracker y exportado como *.INS?

<sourcecodefile> ¿Es el efecto de sonido ya modificado para usar en el ensamblador?

Optións: (Salen éstas dos)

-b Produce binary output

-c Produce output in CovertScript format (deprecated)

Título: Re:Goattracker y efectos de sonido
Publicado por: PacoBlog64 en Diciembre 17, 2018, 20:27:24
INS2SND2 <instrumentfile> <sourcecodefile> <options>

<instrumentfile> ¿Es el efecto de sonido creado con el Goattracker y exportado como *.INS?

<sourcecodefile> ¿Es el efecto de sonido ya modificado para usar en el ensamblador?
Yo lo utilizo así:
Código: [Seleccionar]
ins2snd2 electricity2.ins electricity2.snd

instrumentfile es el fichero .ins, instrumento o efecto creado con GT. Fichero de entrada.
sourcecodefile es el fichero .snd que genera el programa a partir del .ins, es de texto plano. Fichero de salida.

El .snd se importa como fichero de codigo (!source o !src en ACME) en el programa asm.
Título: Re:Goattracker y efectos de sonido
Publicado por: Narcisound en Diciembre 17, 2018, 20:46:25
Ok. Gracias.

Otra cosa, mis efectos de sonido usan mucho las WAVE TABLES, PULSE TABLES y FILTROS TABLE.

¿Hay que dejar todas las tablas a CERO para que los efectos se exporten bien? NO me digais que si, que no veas lo que me he currado dichas tablas para que los FX suenen decentes! jeje.

Además, he probado a dejar dichas tablas a CERO y no suena nada!!
Título: Re:Goattracker y efectos de sonido
Publicado por: PacoBlog64 en Diciembre 17, 2018, 22:31:34
Mírate este ejemplo que te mando de uno de mis efectos, a ver si te ayuda  ;)
Título: Re:Goattracker y efectos de sonido
Publicado por: Narcisound en Diciembre 18, 2018, 15:51:41
Gracias Paco. He creado tu efecto de sonido con el GoatTracker. Luego lo he grabado como INS (tecla f11), luego lo he convertido con el INS2SND2 y me da éste error:

"ERROR: Relative note or absolute C-0, C#0 found"

El archivo que a convertido es mucho más pequeño que el archivo original "INS", apenas de 32 bytes por tanto algo estoy haciendo mal.

Título: Re:Goattracker y efectos de sonido
Publicado por: PacoBlog64 en Diciembre 18, 2018, 17:37:35
Revisa bien los datos que has metido en GT porque acabo de hacer lo mismo (abro GT, copio los datos del instrumento, lo guardo con F11 y lo paso a snd con ins2snd2) y no me ha dado ningún problema. Mi fichero light_hit.ins ocupa 555 bytes, y light_hit.snd 52 bytes. Yo uso GT v2.73, no creo que sea por la versión, pero vaya.
Título: Re:Goattracker y efectos de sonido
Publicado por: Narcisound en Diciembre 18, 2018, 17:56:50
Ok. Todo perfecto. Creo que ahora SI van a funcionar. No me da NINGUN error de conversión.

Título: Re:Goattracker y efectos de sonido
Publicado por: Narcisound en Octubre 09, 2020, 09:38:41
Hola amigos. Refloto el tema porque con el INS2SND2 estoy convirtiendo todos los efectos de sonidos que he creado con el GoatTracker.

Se me ha ocurrido ésta idea, porque una vez terminado de convertirlos, voy a crear un MEGA-PACK de FX para el C64 a modo de distribuirlo de forma gratuita para todo aquel que necesite FX en sus proyectos.

Tras leer los comentarios creo entender que hay que usar la opción -C para forzar la conversión a COVERSCRIPT y que si se usa la opción -B, se convierte en BINARIO y ya no funcionan.

¿Eso es así o estoy equivocado? Gracias.

PD. Lo que he podido averiguar es que la conversión a COVERSCRIPT (Opción -C), los ficheros SND son mucho mas grandes que en Binario.

Título: Re:Goattracker y efectos de sonido
Publicado por: PacoBlog64 en Octubre 09, 2020, 12:23:51
Hola amigos. Refloto el tema porque con el INS2SND2 estoy convirtiendo todos los efectos de sonidos que he creado con el GoatTracker.

Se me ha ocurrido ésta idea, porque una vez terminado de convertirlos, voy a crear un MEGA-PACK de FX para el C64 a modo de distribuirlo de forma gratuita para todo aquel que necesite FX en sus proyectos.

Tras leer los comentarios creo entender que hay que usar la opción -C para forzar la conversión a COVERSCRIPT y que si se usa la opción -B, se convierte en BINARIO y ya no funcionan.

¿Eso es así o estoy equivocado? Gracias.

PD. Lo que he podido averiguar es que la conversión a COVERSCRIPT (Opción -C), los ficheros SND son mucho mas grandes que en Binario.

Buenas Narciso,
Hace tiempo que no uso ese programa pero lo acabo de probar para ver las opciones. Si no me equivoco, la opción -C devuelve un fichero de texto plano con código ASM que puedes importar en tu programa en ensamblador, algo como:
Código: [Seleccionar]
.byte $56, $f5, $3a,...
mientras que -B devuelve un fichero binario con el mismo código ASM que el anterior, es decir (visto en un editor binario como Bless para Linux):
Código: [Seleccionar]
$56 $f5 $3a ...
Es normal que los binarios ocupen menos que los ficheros de texto plano, ya que se les quitan los espacios, comas, cadenas de texto inservibles,... En el SF2 primero los usé en formato COVERSCRIPT (los importaba en la compilación), pero al final cargo los FX en formato binario y funcionan exactamente igual.
Título: Re:Goattracker y efectos de sonido
Publicado por: Narcisound en Octubre 10, 2020, 05:55:39
Ok Paco. Gracias por tu respuesta. Yo al final he exportado los FX  a ambos formatos.

Algunos me han dado el típico error de las "relative notes", que en cristiano quiere decir que el tono no puede pasar mas allá de un C-C# siendo un tono único pulse la nota que pulses.

Curiosamente el FX del Charselect usado en el Street Fighter 2 me ha dado error, pero como funcionar, funciona verdad? 😁