Ajuda com AUDIO...

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Ajuda com AUDIO...

Mensagem por Vampire em Ter 09 Dez 2008, 23:08

Pessoal, estou apanhando um pouco com o audio no GM7, se alguém puder ajudar...

Primeiro, sobre o tempo do audio, como faço pra setar a velocidade que o audio toca, pois o arquivo MID que tenho toca rapidinho, mas quando coloco ele no GM o audio fica mais lento, existe alguma forma de controlar a velocidade que o audio toca??

Segundo, como eu faço para detectar quando determinado som termina, quero que uma determinada ação aconteça apenas quando o som que está tocando pare, tem algum comando que detecte quando um determinado som para e então execute a ação que eu queira???

seria isso...
abraços...

Vampire

Número de Mensagens : 68
Data de inscrição : 14/07/2008
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Ajuda com AUDIO...

Mensagem por Kevin em Ter 09 Dez 2008, 23:20

sound_exists(NOME DO SOM)
//deixe aqui em branco...
else
//coloque aqui o efeito depois que o som parar ou não exitir na room...

acho que isto vai ajudar Happy
qualquer coisa pergunte mais Happy
FLW

Kevin

Ranking : Nota C
Número de Mensagens : 1166
Idade : 22
Data de inscrição : 14/11/2008
Notas recebidas : C - C
Reputação : 9
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 1
   : 0

http://www.programaCODM.webs.com/

Voltar ao Topo Ir em baixo

Re: Ajuda com AUDIO...

Mensagem por Janx em Ter 09 Dez 2008, 23:33

keke, axo que nao é assim
o comando sound_exists checa se o som existe nao se ele esta tocando
o certo é:

if !sound_isplaying(som) //repare no !, ele equivale a 'not' ou seja NAO
{
//oque faser se nao tiver tocando OBS: VAI ACONTECER O TEMPO TODO Q O SOM NAO TIVER TOCANDO!
}

Janx

Número de Mensagens : 2417
Idade : 23
Data de inscrição : 24/05/2008
Reputação : 14
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 0

Voltar ao Topo Ir em baixo

Re: Ajuda com AUDIO...

Mensagem por Kevin em Ter 09 Dez 2008, 23:35

humm... não sabia disto também não... Valew janx Happy

Kevin

Ranking : Nota C
Número de Mensagens : 1166
Idade : 22
Data de inscrição : 14/11/2008
Notas recebidas : C - C
Reputação : 9
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 1
   : 0

http://www.programaCODM.webs.com/

Voltar ao Topo Ir em baixo

Re: Ajuda com AUDIO...

Mensagem por Froidz em Qua 10 Dez 2008, 00:10

Em relação à velocidade do áudio,
creio que isso só seja possível com uso de dll's.

Valeu!Happy

Froidz

Número de Mensagens : 1053
Idade : 23
Data de inscrição : 03/08/2008
Reputação : 4
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Ajuda com AUDIO...

Mensagem por Convidad em Qua 10 Dez 2008, 08:55

Se o problema de velocidade é em um MIDI vc poderia simplesmente abrir o arquivo em um editor e elevar a velocidade... depois vc salva por cima ou em um novo arquivo e checa no jogo se ficou como vc queria =]

flw

Convidad
Convidado


Voltar ao Topo Ir em baixo

Re: Ajuda com AUDIO...

Mensagem por rodrigo1434 em Qua 10 Dez 2008, 10:06

som= sound_play(nomedosom)

if !sound_isplaying(som){
///sua ação
}

Há Dll próprias para isso, como supersound,fmod
etc......... Very Happy

rodrigo1434

Ranking : Nota C
Número de Mensagens : 318
Idade : 23
Data de inscrição : 25/04/2008
Notas recebidas : C
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://brasilgame.forumbrasil.net

Voltar ao Topo Ir em baixo

Re: Ajuda com AUDIO...

Mensagem por Vampire em Qua 10 Dez 2008, 10:55

Gente, valeu pela força, vou tentar usar essas dicas de vcs e ver se consigo fazer o que preciso, na verdade é quando o personagem encosta no último item da fase ele toca a música e quando a música terminar vai pra próxima fase, é isso que estou querendo.. mas vou tentar com a opçào !sound pra ver.

quanto a velocidade do som, tá esquisito, prq no teste de som do GM ali quando vc escolhe o som que quer ele toca normal, na velocidade certa, porém quando está no jogo o som fica mais lento, demorando o dobro do tempo mais ou menos... problema de Lag na cpu não pois além da cpu ser boa e ter bastante memória, o jogo inteiro roda normal, sem lentidão.

outra coisa que percebi, é que coloquei um som com a opção LOOP em true e mesmo assim o som não inicia novamente quando termina prq será?

Vampire

Número de Mensagens : 68
Data de inscrição : 14/07/2008
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Ajuda com AUDIO...

Mensagem por Convidad em Qua 10 Dez 2008, 12:24

som não inicia novamente quando termina prq será?
...veja se na verdade não há uma grande pausa (silêncio) no final da música, o que pode confundir e parecer que não está em "loop";

flw

Convidad
Convidado


Voltar ao Topo Ir em baixo

Re: Ajuda com AUDIO...

Mensagem por Vampire em Qua 10 Dez 2008, 13:05

não tem nenhuma pausa nem tempo após a música, no winamp toca normal....
to achando que o GM apanha um pouco no quesito audio né.

Vampire

Número de Mensagens : 68
Data de inscrição : 14/07/2008
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Ajuda com AUDIO...

Mensagem por Convidad em Qua 10 Dez 2008, 15:16

Não velho... não acho que ele tenha problemas com isso... o que pode estar ocorrendo é algum conflito no código, algum outro obj/ação que interfere nisso de alguma forma;

Se puder, poste o arq ou um exemplo do erro para que possamos analisar e te ajudar melhor =]

flw

Convidad
Convidado


Voltar ao Topo Ir em baixo

Re: Ajuda com AUDIO...

Mensagem por Kevin em Qua 10 Dez 2008, 23:26

é acho que seria melhor Happy
mas acho que seria mais ou menos assim pq a música não da lup:

EVENTO STEP:

Código:
if !sound_isplaying(NOME DO SOM QUE QUISER TOCAR) //repare no !, ele equivale a 'not' ou seja NAO
{
sound_play(NOME DO SOM QUE ESTAVA TOCANDO ANTERIORMENTE)
}

acho que é isto Happy

FLW espero em ter ajudado Razz

Kevin

Ranking : Nota C
Número de Mensagens : 1166
Idade : 22
Data de inscrição : 14/11/2008
Notas recebidas : C - C
Reputação : 9
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 1
   : 0

http://www.programaCODM.webs.com/

Voltar ao Topo Ir em baixo

Re: Ajuda com AUDIO...

Mensagem por Vampire em Qui 11 Dez 2008, 11:48

bom estou fazendo os testes aqui pra ver e depois coloco os resultados se deu certo ou não, mas está bem estranho.....

Vampire

Número de Mensagens : 68
Data de inscrição : 14/07/2008
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Ajuda com AUDIO...

Mensagem por Vampire em Sex 12 Dez 2008, 19:24

Infelizmente, o !sound_isplaying(nome do som) não funcionou, o que mudou foi que assim q o som começa ela já inicia a ação, ou seja se o ! era pra equivaler a NOT não está funcionando. se alguém tiver mais alguma dica....

Quanto a lentidão do audio, eu resolvi isso passando o som de NORMAL para BACKGROUND, dai ele tocou na velocidade correta.

Vampire

Número de Mensagens : 68
Data de inscrição : 14/07/2008
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Ajuda com AUDIO...

Mensagem por Convidad em Sex 12 Dez 2008, 19:38

if !sound_isplaying(nome do som)
...isso seria se o som sendo tocado for "diferente" de nome_do_som... para not use o "not" mesmo, if not sound_isplaying(nome do som)

flw

Convidad
Convidado


Voltar ao Topo Ir em baixo

Re: Ajuda com AUDIO...

Mensagem por Convidad em Sex 12 Dez 2008, 19:47

Vampire escreveu:Infelizmente, o !sound_isplaying(nome do som) não funcionou, o que mudou foi que assim q o som começa ela já inicia a ação, ou seja se o ! era pra equivaler a NOT não está funcionando. se alguém tiver mais alguma dica....

Quanto a lentidão do audio, eu resolvi isso passando o som de NORMAL para BACKGROUND, dai ele tocou na velocidade correta.

Quanto à velocidade do àudio a função que se usamos pra controlá-la dentro do Game Maker é:

sound_background_tempo()

Note que só funciona com arquivos MIDI (que é justamente o que está usando). Esse valor vai de 0.01 (muito lento) até 100 (muito rápido).

Quanto à checagem do som, faça como disse fmanna. Use a palavra not ao invés do ponto de exclamação.

Código:

if not sound_isplaying(som) then
 begin
 // coloque aqui o que quer que aconteça.
 end;

Convidad
Convidado


Voltar ao Topo Ir em baixo

Re: Ajuda com AUDIO...

Mensagem por Vampire em Sex 12 Dez 2008, 21:41

então Brendan tentei fazer isso do NOT SOUND mas ele já vai direto para a ação assim que o som começa a tocar, quando eu precisava que fosse quando o som parasse de tocar... por enquanto usei uma variável pra simular o tempo do som, dai a ação acontece quando essa variável chega a um determinado número, dai coloquei um número que de tempo da música terminar, mas sei que isso dependendo do computador é capaz de se alterar, então o certo seria detectar quando o som termina e ai sim executar a ação, mas nem com o NOT SOUND tá funcionando.


a sua outra dica do TEMPO foi fantástica, era justamente o que eu tava querendo, se bem que com a mudança de NORMAL pra BACKGROUND o problema se resolveu sozinho.

Vampire

Número de Mensagens : 68
Data de inscrição : 14/07/2008
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Ajuda com AUDIO...

Mensagem por Convidad em Sex 12 Dez 2008, 21:55

Confira se você não está checando o status do som antes de tocá-lo. Se você usar a condição "if not sound_isplaying" antes de tocar o som, acontecerá justamente isso.

O correto seria:


Código:

sound_play(som);

if not sound_isplaying(som) then // a condição deve vir depois
begin
 //código
end;

Convidad
Convidado


Voltar ao Topo Ir em baixo

Re: Ajuda com AUDIO...

Mensagem por Vampire em Sex 12 Dez 2008, 22:14

então, a parte do código do som tá assim:

o Objeto tem 3 itens: (vou colocar só os itens relacionados ao som)

(CREATE)
prox=0

(STEP)
if !sound_isplaying(FaseCompleta) and prox=1 {
global.nivel+=1
room_goto_next()
};


(COLISÃO)
no evendo COLISÃO com o Player que é quando da inicio a tudo:
sound_stop_all();
sound_play(FaseCompleta);
prox=1


pela lógica ai deveria funcionar, mas tá passando direto pra próxima room, quando eu queria que passasse só quando o som terminasse.

Vampire

Número de Mensagens : 68
Data de inscrição : 14/07/2008
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Ajuda com AUDIO...

Mensagem por Convidad em Sex 12 Dez 2008, 22:36

Descobri o problema.

O fato é que a chamada do som está no evento de colisão, então enquanto houver colisão o som não será tocado porque a função sound_stop_all() vem antes da sound_play().

Tente isso no evento Colision:


Código:
If not sound_isplaying(FaseCompleta) then
 {
 sound_stop_all();
 sound_play(FaseCompleta);
 prox=1
 }

Convidad
Convidado


Voltar ao Topo Ir em baixo

Re: Ajuda com AUDIO...

Mensagem por Vampire em Sab 13 Dez 2008, 13:07

Não,, tudo bem Brendan, mas assim que ocorre a colisão com o Player a instância do mesmo é destruída, então assim que ocorre o toque a colisão pára.

esse evento ai está na instância que recebe a colisão do Player, e assim que o player toca ela o próprio player se destroi.
então quanto a isso tá funcionando perfeito o som toca certinho, o problema mesmo está sendo identificar QUANDO esse som que está tocando chega ao fim para que dai sim pule para a próxima room.

Vampire

Número de Mensagens : 68
Data de inscrição : 14/07/2008
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Ajuda com AUDIO...

Mensagem por Convidad em Sab 13 Dez 2008, 18:29

Humm. Entendi. Vamos para outras alternativas então.

Assim que chamar o som, use um sleep de 1 segundo ou menos. Ex:


Código:
sound_play(FaseCompleta);
sleep(500);

Confira se você não tem aí, dois sons com o mesmo nome. Se mesmo assim não resolver, tente colocar um link do seu projeto pra gente (ou por mesagem particular, se preferir).


Última edição por Brendan Fawkes em Sab 13 Dez 2008, 20:06, editado 1 vez(es)

Convidad
Convidado


Voltar ao Topo Ir em baixo

Re: Ajuda com AUDIO...

Mensagem por Vampire em Sab 13 Dez 2008, 20:03

blz, vou fazer o teste, mas acredito q não resolva, prq eu já usava o sleep antes pra dar o tempo.. mas vou fazer esses testes denovo.

Vampire

Número de Mensagens : 68
Data de inscrição : 14/07/2008
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Ajuda com AUDIO...

Mensagem por Convidad em Seg 15 Dez 2008, 22:28

Problema estranho cara. affraid Você pode tentar usar outro evento, ou senão postar seu projeto pra gente te ajudar. De qualquer forma tenta isso aqui:

Faz um script chamado checar_som:
Código:
if not sound_isplaying(FaseCompleta) then return(true);
return(false);

Use-o lá no step:

Código:
if checar_som = true and prox = 1 then
 begin
 global.nivel += 1;
 room_goto_next();
 end;

Tenta mudar o nome do som pra outro também, se não der certo, eu não sei. scratch

Convidad
Convidado


Voltar ao Topo Ir em baixo

Re: Ajuda com AUDIO...

Mensagem por Conteúdo patrocinado Hoje à(s) 10:46


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum