import javax.sound.midi.*;
import java.awt.event.*;
-/*
+/**
* Functional representation of a MIDI note, which contains two MIDI events, note on and note off.
*
* @author Einar Pehrson
public class MooKeyboard extends KeyAdapter {
private boolean[] isOn = new boolean[120];
- private static final int startNote = 48;
+ private static int startNote = 48;
private static final int[] keyToNote = new int[120];
- /*
+ /**
* Plays the appropriate MIDI NoteOn event.
*/
public void keyPressed(KeyEvent e) {
}
}
- /*
+ /**
* Plays the appropriate MIDI NoteOff event.
*/
public void keyReleased(KeyEvent e) {
}
}
- /* Maps keycodes (array indices) to MIDI note numbers using the following layout:
+ /**
+ * Sets the octave of the lower part of the keyboard (default = 4)
+ * @param n the octave to start at
+ */
+ public void setOctave(int n) {
+ startNote = n * 12;
+ }
+
+ /** Maps keycodes (array indices) to MIDI note numbers using the following layout:
*
* 2 3 5 6 7 9 0 => # # # # # # #
* q w e r t y u i o p => c d e f g a b c d e
* z x c v b n m , . => c d e f g a b c d
*/
static {
- keyToNote[90] = startNote;
+ keyToNote[KeyEvent.VK_Q] = startNote;
keyToNote[83] = startNote + 1;
keyToNote[88] = startNote + 2;
keyToNote[68] = startNote + 3;