/* * JFugue - API for Music Programming * Copyright (C) 2003-2008 David Koelle * * http://www.jfugue.org * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * */ package org.jfugue; /** * Represents tempo changes. Tempo is kept for the whole song, and is * independent of tracks. You may change the tempo during a song. * * As of JFugue 4.0, Tempo represents the Beats Per Minute (BPM). In previous * versions, Tempo was measured in microseconds per beat, which is how MIDI * maintains this information. (tempo = 60000 / BPM, and BPM = 60000 / tempo) * * @author David Koelle * @version 2.0 * @version 4.0 */ public final class Tempo implements JFugueElement { private int tempo; /** * Creates a new Tempo object, with the specified tempo value (in BPM). * * @param tempo * the tempo for this object, in Beats Per Minute */ public Tempo(int tempoInBPM) { setTempo(tempoInBPM); } /** * Sets the value of the tempo for this object. * * @param tempo * the tempo for this object */ public void setTempo(int tempoInBPM) { this.tempo = tempoInBPM; } /** * Returns the value of the tempo for this object. * * @return the value of the tempo for this object */ public int getTempo() { return tempo; } /** * Returns the Music String representing this element and all of its * settings. For a Tempo object, the Music String is <code>T</code> * <i>tempo</i> * * @return the Music String for this element */ @Override public String getMusicString() { StringBuffer buffy = new StringBuffer(); buffy.append("T"); buffy.append(getTempo()); return buffy.toString(); } /** * Returns verification string in this format: Tempo: tempo={#} * * @version 4.0 */ @Override public String getVerifyString() { StringBuffer buffy = new StringBuffer(); buffy.append("Tempo: tempo="); buffy.append(getTempo()); return buffy.toString(); } public static final int GRAVE = 40; public static final int LARGO = 45; public static final int LARGHETTO = 50; public static final int LENTO = 55; public static final int ADAGIO = 60; public static final int ADAGIETTO = 65; public static final int ANDANTE = 70; public static final int ANDANTINO = 80; public static final int MODERATO = 95; public static final int ALLEGRETTO = 110; public static final int ALLEGRO = 120; public static final int VIVACE = 145; public static final int PRESTO = 180; public static final int PRETISSIMO = 220; }