prite)
				loop.unhook(callback)
				return;	
			}
			// handle friction
			velocity.multiplyScalar( 0.97 )
			// move by velocity
			sprite.position.add( velocity.clone().multiplyScalar(delta) )
			// make it grow
			sprite.scale.multiplyScalar( 1.0075 )
			// handle opacity
			material.opacity= age2Opacity(age)
		})
	}
	function createTweenMidi(maxAge, attackTime, releaseTime){
		return function(age){
			if( age < attackTime ){
				return age / attackTime
			}else if( age < maxAge - releaseTime ){
				ret