<commit_before>package piano;

/**
 * Interface for a model of a piano.
 *
 * @author <NAME>
 */

public interface PianoModel extends InstrumentModel
{
    // MIDI constants

    /**
     * MIDI value for middle C.
     */
    public static final int MIDI_MIDDLE_C = 60;

    /**
     * MIDI value for the middle A.
     */
    public static final int MIDI_MIDDLE_A = 69;

    /**
     * Amount of keys in the MIDI standard.
     */
    public static final int MIDI_KEYS = 127;

    // Piano constants

    /**
     * Default octave.
     */
    public static final int PIANO_FIRST_OCTAVE = 0;

    /**
     * Get state of the keys in the current octave.
     * 
     * @return Boolean array with state of keys pressed
     */
    public boolean[] getCurrentOctaveKeys();

    /**
     * Indicate whether the model has more note events.
     *
     * @return Availability of further note events
     */
    public boolean hasMoreNoteEvents();

    /**
     * Return next note event from the note event queue.
     *
     * @return Next note event
     */
    public NoteEvent nextNoteEvent();
}<commit_msg>Extended PianoModel interface to work with octave<commit_after>package piano;

/**
 * Interface for a model of a piano.
 *
 * @author <NAME>
 */

public interface PianoModel extends InstrumentModel
{
    // MIDI constants

    /**
     * MIDI value for middle C.
     */
    public static final int MIDI_MIDDLE_C = 60;

    /**
     * MIDI value for the middle A.
     */
    public static final int MIDI_MIDDLE_A = 69;

    /**
     * Amount of keys in the MIDI standard.
     */
    public static final int MIDI_KEYS = 127;

    // Piano constants

    /**
     * Default octave.
     */
    public static final int PIANO_FIRST_OCTAVE = 0;

    /**
     * Get current octave.
     *
     * @return Current octave value
     */
    public int getOctave();

    /**
     * Set octave value.
     *
     * @param octave New octave value
     */
    public void setOctave(int octave);

    /**
     * Get state of the keys in the current octave.
     * 
     * @return Boolean array with state of keys pressed
     */
    public boolean[] getCurrentOctaveKeys();

    /**
     * Indicate whether the model has more note events.
     *
     * @return Availability of further note events
     */
    public boolean hasMoreNoteEvents();

    /**
     * Return next note event from the note event queue.
     *
     * @return Next note event
     */
    public NoteEvent nextNoteEvent();
}
{'fraction_non_alphanumeric': 0.08999598232221775, 'fraction_numerical': 0.0064282844515869825, 'mean_word_length': 2.0036188178528347, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1430036', 'n_tokens_mistral': 785, 'n_tokens_neox': 722, 'n_words': 262}