Beat box version 1

Contenu du snippet

c'est une sorte de boite à rythme inspirée de logiciels comme Reason ou Cubase. J'ai créé 3 pistes de batterie avec un son par piste, on place des petites boules sur la "timeline" comme on le ferait en midi. Ca promet des heures d'amusement pour les musiciens et des heures de prise de tête pour les autres : et oui, la musique, c'est pas si facile.

vous trouverez la source à cette adresse :
http://www.3box.biz/dev/beatbox_.zip

Source / Exemple :


var son:Sound = new Sound();
son.attachSound("son"+numeroLigne);
var quantitePerc:Number = 0;

//clicabilité des percs
function defClics() {
	for (i=1; i<=quantitePerc; i++) {
		//
		this["perc_"+i].onPress = function() {
			this["clic"+i] = true;
			ybase = _ymouse;
			this.onMouseMove = function() {
				if (this["clic"+i]) {
					if (Math.abs(_ymouse-ybase)>=30 || _xmouse>=600 || _xmouse<=90) {
						this.gotoAndStop("poubelle");
					} else {
						this.gotoAndStop(1);
						this._x = (_xmouse+((_global.memoireTempo*4)-(_xmouse%(_global.memoireTempo*4))));
					}
				}
			};
		};
		this["perc_"+i].onRelease = function() {
			this["clic"+i] = false;
			replacement();
		};
		this["perc_"+i].onReleaseOutside = function() {
			//je vire le clip
			if (Math.abs(_ymouse-ybase)>=30) {
				this.removeMovieClip();
				defClic();
			}
			this["clic"+i] = false;
			replacement();
		};
	}
}
defClics();

//placement des perc pour quelles soient dans le _global.Tempo
function replacement() {
	for (i=1; i<=quantitePerc; i++) {
		this["vperc"+i] = this["perc_"+i]._x;
		this["positionTempo"+i] = (this["vperc"+i]+(_global.memoireTempo-(this["vperc"+i]%_global.memoireTempo)));
	}
}
replacement();

//ajout de perc
function ajoutPerc() {
	quantitePerc++;
	perc0.duplicateMovieClip(["perc_"+quantitePerc],quantitePerc);
	this["perc_"+quantitePerc]._x = (_xmouse+((_global.memoireTempo*4)-(_xmouse%(_global.memoireTempo*4))));
	this["perc_"+quantitePerc]._y = perc0._y;
	trace(this["perc_"+quantitePerc]._x);
	defClics();
	replacement();
}

//on press
ligne.onPress = function() {
	ajoutPerc();
};

this.onEnterFrame = function() {

	//déplacement
	if (pointeur._x<=604) {
		pointeur._x += _global.Tempo;
	} else {
		pointeur._x = 100;
	}
	//lancements des sons
	if (_global.Tempo != 0) {
		for (i=1; i<=quantitePerc; i++) {
			if (pointeur._x == this["positionTempo"+i]) {
				pointeur.gotoAndPlay("son");
				son.start();
			}
		}
	}
};

Conclusion :


Dès que j'ai du temps, je passe à la v2 avec le choix des son et l'ajout de nouvelles pistes. Et puis tant qu'on y est un module d'enregistrement mais ça risque de prendre plus de temps si faut que je me lance dans le php.

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.