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

core.be.tarsos.dsp.beatroot.Event Maven / Gradle / Ivy

The newest version!
/*
*      _______                       _____   _____ _____  
*     |__   __|                     |  __ \ / ____|  __ \ 
*        | | __ _ _ __ ___  ___  ___| |  | | (___ | |__) |
*        | |/ _` | '__/ __|/ _ \/ __| |  | |\___ \|  ___/ 
*        | | (_| | |  \__ \ (_) \__ \ |__| |____) | |     
*        |_|\__,_|_|  |___/\___/|___/_____/|_____/|_|     
*                                                         
* -------------------------------------------------------------
*
* TarsosDSP is developed by Joren Six at IPEM, University Ghent
*  
* -------------------------------------------------------------
*
*  Info: http://0110.be/tag/TarsosDSP
*  Github: https://github.com/JorenSix/TarsosDSP
*  Releases: http://0110.be/releases/TarsosDSP/
*  
*  TarsosDSP includes modified source code by various authors,
*  for credits and info, see README.
* 
*/

/*
	Copyright (C) 2001, 2006 by Simon Dixon

	This program is free software; you can redistribute it and/or modify
	it under the terms of the GNU General Public License as published by
	the Free Software Foundation; either version 2 of the License, or
	(at your option) any later version.

	This program 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 General Public License for more details.

	You should have received a copy of the GNU General Public License along
	with this program (the file gpl.txt); if not, download it from
	http://www.gnu.org/licenses/gpl.txt or write to the
	Free Software Foundation, Inc.,
	51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/

package be.tarsos.dsp.beatroot;

public class Event implements Comparable, Cloneable {

	public double keyDown, keyUp, pedalUp, scoreBeat, scoreDuration, salience;
	public int midiPitch, midiVelocity, flags, midiCommand, midiChannel,
				midiTrack;
	//public String label;

	public Event(double onset, double offset, double eOffset, int pitch,
				 int velocity, double beat, double duration, int eventFlags,
				 int command, int channel, int track) {
		this(onset, offset, eOffset, pitch, velocity, beat,duration,eventFlags);
		midiCommand = command;
		midiChannel = channel;
		midiTrack = track;
	} // constructor

	public Event(double onset, double offset, double eOffset, int pitch,
				 int velocity, double beat, double duration, int eventFlags) {
		keyDown = onset;
		keyUp = offset;
		pedalUp = eOffset;
		midiPitch = pitch;
		midiVelocity = velocity;
		scoreBeat = beat;
		scoreDuration = duration;
		flags = eventFlags;
		midiCommand = 144;//javax.sound.midi.ShortMessage.NOTE_ON;
		midiChannel = 1;
		midiTrack = 0;
		salience = 0;
	} // constructor

	public Event clone() {
		return new Event(keyDown, keyUp, pedalUp, midiPitch, midiVelocity,
					scoreBeat, scoreDuration, flags, midiCommand, midiChannel,
					midiTrack);
	} // clone()

	// Interface Comparable
	public int compareTo(Event e) {
		return (int)Math.signum(keyDown - e.keyDown);
	} // compareTo()

	public String toString() {
		return "n=" + midiPitch + " v=" + midiVelocity + " t=" + keyDown +
				" to " + keyUp + " (" + pedalUp + ")";
	} // toString()

	public void print(Flags f) {
		System.out.printf("Event:\n");
		System.out.printf("\tkeyDown / Up / pedalUp: %5.3f / %5.3f /  %5.3f\n",
			keyDown, keyUp, pedalUp);
		//System.out.printf("\tkeyUp: %5.3f\n", keyUp);
		//System.out.printf("\tpedalUp: %5.3f\n", pedalUp);
		System.out.printf("\tmidiPitch: %d\n", midiPitch);
		System.out.printf("\tmidiVelocity: %d\n", midiVelocity);
		System.out.printf("\tmidiCommand: %02x\t", midiCommand | midiChannel);
		//System.out.printf("\tmidiChannel: %d\n", midiChannel);
		System.out.printf("\tmidiTrack: %d\n", midiTrack);
		System.out.printf("\tsalience: %5.3f\t", salience);
		System.out.printf("\tscoreBeat: %5.3f\t", scoreBeat);
		System.out.printf("\tscoreDuration: %5.3f\n", scoreDuration);
		System.out.printf("\tflags: %X", flags);
		if (f != null) {
			int ff = flags;
			for (int i=0; ff != 0; i++) {
				if (ff % 2 == 1)
					System.out.print(" " + f.getLabel(i));
				ff >>>= 1;
			}
		}
		System.out.print("\n\n");
	} // print()

} // class Event




© 2015 - 2024 Weber Informatics LLC | Privacy Policy