|
Forum Flash, Actionscript, PHP e MySQL
|
|
|
|
|
|
| Autore |
Messaggio |
nannez
nuovo utente

Registrato: 27/03/11 22:04
Messaggi: 1
Località: Italia
|
Oggetto: [AS3]Confrontare due tracce audio
Inviato: 27.03.11 | 22:08 |
|
|
Ciao a tutti,
vorrei realizzare un karaoke che in qualche modo alla fine dell'esecuzione confronti due tracce audio.
Mi spiego meglio: la base dovrebbe essere un file midi, poi una persona canta e alla fine della canzone l'applicazione dovrebbe confrontare le due tracce e dirmi quanto è stata accurata la persona che ha cantato per esempio restituendo una percentuale di accuratezza.
Qui sotto vi riporto il codice con cui acquisisco due file mp3 e ne stampo il grafico.
| Codice: | public function MainSuono():void
{
snd1.load(new URLRequest("record1.mp3"));
snd2.load(new URLRequest("record2.mp3"));
snd1.addEventListener(Event.COMPLETE, Caricato);
snd2.addEventListener(Event.COMPLETE, Caricato);
}
public function Caricato(e:Event):void
{
var bArray:ByteArray = new ByteArray();
var lun:Number = Math.floor((e.target.length / 1000) * 44100);
e.target.extract(bArray, lun);
var step:int = bArray.length / 256;
var alt:Number = 0;
bArray.position = 0;
var vet:Vector.<Number> = new Vector.<Number>();
for (i = 0; i < 256; i++ )
{
vet[i] = bArray.readFloat();
bArray.position = i * step;
}
stampaGrafico(vet);
indice+=400;
}
public function stampaGrafico(v:Vector.<Number>):void
{
var curva:Sprite = new Sprite();
addChild(curva);
curva.graphics.clear();
curva.graphics.moveTo(4, 200 + indice);
if (indice == 1)
{
curva.graphics.lineStyle(3, 0xCCFFAA);
curva.name = "Pino";
arrey.push(v);
}
else
{
curva.graphics.lineStyle(3, 0x00CCEE);
curva.name = "Nino";
arrey.push(v);
}
for (i = 0; i < 256; i++ )
{
curva.graphics.lineTo(i,(200+indice) - (v[i] * 300));
curva.graphics.endFill();
}
curva.addEventListener(MouseEvent.CLICK, Play);
} |
Il mio problema è quindi il confronto delle due tracce, io ho pensando di scorrere il vettore che contiene le tracce e confrontarne i valori, quindi fare un delta tra i valori della prima traccia e quelli della seconda.
Spero di essermi spiegato e che qualcuno riesca ad aiutarmi magari utilizzando gli elementi che ho gia, altrimenti potete suggerirmi qualche tutorial (anche in inglese).
Grazie in anticipo |
|
| Torna in cima |
|
|
Sponsor
|
|
 |
Coach
amministratore


Età: -1981
Registrato: 31/01/03 13:50
Messaggi: 4549
Località: Verona
|
Oggetto:
Inviato: 03.04.11 | 17:13 |
|
|
Ciao nannez,
si l'idea è giusta... se alleghi il FLA o il codice completo compreso di Play ed altri metodi che utilizzi, possiamo provare ad aiutarti... ____________________________________________________________
Il Forum è uno strumento di condivisione, oltre a fare DOMANDE, si possono anche dare RISPOSTE! |
|
| Torna in cima |
|
|
|
|
Non puoi inserire nuovi Topic in questo forum Non puoi rispondere ai Topic in questo forum Non puoi modificare i tuoi messaggi in questo forum Non puoi cancellare i tuoi messaggi in questo forum Non puoi votare nei sondaggi in questo forum Non puoi allegare files in questo forum Non puoi downloadare gli allegati in questo forum
|
|