All Downloads are FREE. Search and download functionalities are using the official Maven repository.

be.tarsos.dsp.FadeIn Maven / Gradle / Ivy

There is a newer version: 2.4-1
Show newest version
package be.tarsos.dsp;

import be.tarsos.dsp.AudioEvent;
import be.tarsos.dsp.AudioProcessor;
import be.tarsos.dsp.GainProcessor;

public class FadeIn implements AudioProcessor
{
	// VARIABLES
	
	private double duration;
	private double firstTime=-1;
	private double time;
	private GainProcessor gp=new GainProcessor(0.1);
	private boolean fadingIn=true;
	
	// METHODS
	
	// Constructor
	public FadeIn(double d) // d=duration of the fade in in seconds
	{
		this.duration=d;
	}
	
	// Stop fade in processing immediately
	public void stopFadeIn()
	{
		this.fadingIn=false;
	}

	@Override
	public boolean process(AudioEvent audioEvent)
	{
		// Don't do anything after the end of the Fade In
		if(fadingIn)
		{
			if(firstTime==-1)
				firstTime=audioEvent.getTimeStamp();
			
			
			// Increase the gain according to time since the beginning of the Fade In
			time=audioEvent.getTimeStamp()-firstTime;
			gp.setGain(time/duration);
			gp.process(audioEvent);
			if(time > duration){
				fadingIn = false;
			}
		}
		return true;
	}
	
	@Override
	public void processingFinished()
	{
		gp.processingFinished();
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy