Pergunta

Eu estou olhando para fazer um pedido laboratório teoria musical, onde você pode ver a relação gráfica entre os conceitos de teoria musical. Gostaria que esta esteja disponível on-line, de modo Flash e Silverlight vêm à mente.

Mas eu gostaria de gerar dinamicamente tons e acordes etc de entrada do usuário. Isso é algo que eu sei é uma área pouco desenvolvida no Flash Player. Então, minha pergunta é qual é o estado atual de recursos para a geração de áudio dinâmico em ambos os jogadores Flash e Silverlight?

Foi útil?

Solução 4

Assim, parece que fora do Silverlight e Flash, que o Flash bate Silverlight em características dinâmica de geração de áudio, (que me surpreendeu considerando como suporte de áudio básica é em Flash). Parece Silverlight não pode gerar áudio dinâmico em tudo, e Flash só pode fazê-lo oficialmente desde a versão 10 do jogador.

posso encontrar muito pouca informação sobre o futuro do áudio dinâmico em ambas as plataformas, mas o Flash tem a maioria das discussões ativas no momento.

Outras dicas

A partir do Flash Player 10 e em diante você não precisa fazer qualquer coisa tipo hacky. Há uma API para gerar som dinamicamente.

Este blog tem um introdução rápida. Seu código lê amostras de um mp3, mas você pode escrever amostras de qualquer maneira que você quer.

Como sempre os docs têm lotes de informações também, juntamente com este exemplo de código que deve você ir muito rapidamente.

var mySound:Sound = new Sound();
function sineWaveGenerator(event:SampleDataEvent):void {
    for ( var c:int=0; c<8192; c++ ) {
        event.data.writeFloat(Math.sin((Number(c+event.position)/Math.PI/2))*0.25);
        event.data.writeFloat(Math.sin((Number(c+event.position)/Math.PI/2))*0.25);
    }
}

mySound.addEventListener(SampleDataEvent.SAMPLE_DATA,sineWaveGenerator);
mySound.play();

Você pode experimentar A Síntese ToolKit AS3 que é portado de C ++ por mim:)

É diferente de onda estacionária e popforge , STK em AS3 fornece instrumentos reais, como flauta e clarinete para você usar que os dois primeiros não.

Existem maneiras de fazer isso, que envolve um pouco de hacking. Não me lembro a mecânica exatas, mas você pode ter um olhar para (ou uso) bibliotecas de streaming existente como onda estacionária: http://code.google.com/p/standingwave/ ou o material em Popforge: http://code.google.com/p/popforge/

Pode espero dar mais informações do que eu posso aqui. :)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top