package com.xenoage.zong.io.midi.out.dynamics.type;
import com.xenoage.zong.core.music.direction.DynamicValue;
import com.xenoage.zong.io.midi.out.dynamics.DynamicsInterpretation;
/**
* Fixed or gradient dynamics.
*
* @author Andreas Wenger
*/
public interface DynamicsType {
/**
* Gets the dynamic at the end of the time in which it is played.
*/
DynamicValue getEndValue();
/**
* Gets the volume at the given time (0 = start of period; 1 = end of period)
* as a value between 0 (silence) and 1 (maximum),
* using the given {@link DynamicsInterpretation}.
*/
float getVolumeAt(float progress, DynamicsInterpretation interpretation);
}