2009-09-20 40 views
8

Müzik teorisi kavramları arasındaki grafiksel ilişkiyi görebileceğiniz bir müzik teorisi laboratuvarı uygulaması yapmak istiyorum. Bunun online olarak kullanılabilir olmasını istiyorum, böylece Flash ve Silverlight akla geliyor.Dinamik Ses Üretimi Actionscript 3

Ancak kullanıcı girdilerinden dinamik olarak ses tonları ve akorları oluşturmak istiyorum. Bu, Flash Player'da çok az gelişmiş bir alan olduğunu biliyorum. Yani benim sorum, hem Flash hem de Silverlight oynatıcılarda dinamik ses üretimi için mevcut özelliklerin durumu nedir?

cevap

0

Öyle görünüyor ki, Silverlight ve Flash'ın dışındaki Flash, dinamik ses oluşturma özelliklerinde Silverlight'ı (temel ses desteğinin Flash'ta nasıl olduğunu düşündüğümü şaşırttığı için) vurdu. Görünüşe göre Silverlight dinamik ses üretemiyor ve Flash sadece oyuncu 10 sürümünden bu yana resmi olarak yapabilir.

Her iki platformdaki dinamik sesin geleceği hakkında çok az bilgi bulabilirim, ancak Flash şu anda en aktif tartışmalara sahiptir.

1

Adil bir korsanlık gerektiren bir çok yol var. StandingWave gibi mevcut akış kütüphaneleri Ben tam mekaniği hatırlamıyorum, ama bir göz (veya kullanmak) olabilir: http://code.google.com/p/standingwave/ veya Popforge at şeyler: http://code.google.com/p/popforge/

O umarım daha fazla bilgi benden daha verebilir tam burada. :)

+0

@Dentoid Linkler için teşekkürler Size bir göz atacağım ve onlar için neler yapabileceğini göreceğiz –

3

Flash Player 10'dan ve sonraki sürümlerde herhangi bir hacky türü malzeme kullanmanıza gerek yoktur. Dinamik olarak ses üretmek için bir API var.

Bu blog post has a quick introduction. Onun kodu bir mp3'den örnekler okuyor ama istediğiniz şekilde örnek yazabilirsiniz.

Her zaman olduğu gibi the docs da size çok hızlı bir şekilde gitmeniz gereken bu kod örneğiyle birlikte pek çok bilgiye sahiptir.

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(); 
+1

Ayrıca, http://lab.andre-michelle.com/ adresinde çok sayıda ilginç kaynak kodu ve örneği bulabilirsiniz. – speps

2

O standingwave ve popforge farklıdır Bana :) tarafından C++ dan taşıdık The Synthesis ToolKit in AS3 denemek olabilir, AS3 STK flüt ve hangi kullanmak için klarnet gibi gerçek yaşam araçlarını sağlar İlk iki yok.

+0

temiz kütüphane! – ina

İlgili konular