package auditory.described;

import javax.sound.midi.*;


/**
 * The requirements of a piece of described auditory content 
 *
 * @author  Prof. David Bernstein, James Madison University
 * @version 1.0
 */
public interface Content
{
    /**
     * Get the type of this Note [i.e., 1 for whole notes, 
     * 2 for half notes, etc...]
     *
     * @return   The  type
     */
    public abstract int  getType();
    
    /**
     * Is this MidiSound dotted?
     *
     * @return true if dotted; false otherwise
     */
    public abstract boolean isDotted();    
    
    /**
     * Render this Note on the given MidiChannel
     *
     * @param MidiChannel   The MIDI channel to use
     */
    public abstract void render(MidiChannel channel);

    /**
     * Set whether this MidiSound is audible or note
     *
     * @param audible  true to make it audible; false otherwise
     */
    public abstract void setAudible(boolean audible);    
}
