flash experiments

Sound.extract et popforge

laisser un commentaire »

Bonjour !!!

Ajourd’hui encore une belle découverte de plus.

Tout d’abord la librairie popforge sur lasquelle je me suis creusé le ciboulo depuis bien longtemps et qui commence enfin a me donner un peu de ses possibilités.

Seulement, puisque je ne cherchait pas a “créer” un son, un synthétiseur a proprement parler directement, mais que je cherchait a travailler des sons deja existant.

J’ai fait une petite classe, permettant de réutiliser les effects de la librairie popforge en convertissant la musique, en tableaux d’objets Samples.

Cela donne cela :

package de.popforge.audio.output{

import flash.events.Event;
import flash.events.SampleDataEvent;
import flash.media.Sound;
import flash.media.SoundChannel;

import flash.net.URLRequest;
import de.popforge.parameter.MappingNumberLinear;
import de.popforge.parameter.Parameter;
import flash.utils.ByteArray;
import flash.utils.Endian;
import de.popforge.audio.output.*;
import de.popforge.audio.processor.effects.*;

public class ArrayConverter {
public static function extractToSampleArray(sound:Sound):Array {
var ba:ByteArray = new ByteArray();
sound.extract(ba,44100*sound.length/1000);
// — conversion en Array
ba.position=0;
var samplesArray:Array = [];
while ( ba.position < ba.length ) {
samplesArray.push(new de.popforge.audio.output.Sample(ba.readFloat(),ba.readFloat()));
}
return samplesArray;
}

public static function extractFromURL(url:URLRequest, callback:Function):void {
var sound=new Sound(url);
function soundLoaded(e) {
var a = extractToSampleArray(sound);

callback(a);
}
sound.addEventListener( Event.COMPLETE, soundLoaded );
}

}
}

Rédigé par lereme

janvier 5, 2010 à 1:43

Publié dans classes, travaux

Tag(s) associé(s):

Répondre

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Twitter picture

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Connexion à %s

Suivre

Get every new post delivered to your Inbox.