package apes.lib; /** * Helper methods to convert from and to time units from and to samples. * * @author Johan Andersson (johandy@student.chalmers.se) */ public class SampleHelper { /** * Calculates how many samples <code>milliseconds</code> are with * <code>sampleRate</code>. * * @param sampleRate The sample rate. * @param milliseconds The number of milliseconds. * @return Milliseconds in samples. */ public static int millisecondsToSamples(int sampleRate, int milliseconds) { return Math.round((milliseconds / 1000.0f) * sampleRate); } /** * Calculates how many samples <code>seconds</code> are with * <code>sampleRate</code>. * * @param sampleRate The sample rate. * @param seconds The number of seconds. * @return Seconds in samples. */ public static int secondsToSamples(int sampleRate, int seconds) { return seconds * sampleRate; } /** * Calculates how many samples <code>minutes</code> are with * <code>sampleRate</code>. * * @param sampleRate The sample rate. * @param minutes The number of minutes. * @return Minutes in samples. */ public static int minutesToSamples(int sampleRate, int minutes) { return (minutes * 60) * sampleRate; } /** * Calculates how many milliseconds <code>samples</code> are with * <code>sampleRate</code>. * * @param sampleRate The sample rate. * @param samples The number of samples. * @return Samples in milliseconds. */ public static int samplesToMilliseconds(int sampleRate, int samples) { return Math.round((float)samples / sampleRate * 1000); } /** * Calculates how many seconds <code>samples</code> are with * <code>sampleRate</code>. * * @param sampleRate The sample rate. * @param samples The number of samples. * @return Samples in seconds. */ public static int samplesToSeconds(int sampleRate, int samples) { return Math.round((float)samples / sampleRate); } /** * Calculates how many minutes <code>samples</code> are with * <code>sampleRate</code>. * * @param sampleRate The sample rate. * @param samples The number of samples. * @return Samples in minutes. */ public static int samplesToMinutes(int sampleRate, int samples) { return Math.round(((float)samples / sampleRate) / 60.0f); } }