From 623c453a916803c781d32f667fca8698d0814c8c Mon Sep 17 00:00:00 2001 From: Einar Pehrson Date: Sun, 18 May 2003 15:18:38 +0000 Subject: [PATCH] no message --- MooGUI.java | 2 +- MooKeyboard.java | 47 +++++++++++++++++++++++++++-------------------- To Do.txt | 1 + 3 files changed, 29 insertions(+), 21 deletions(-) diff --git a/MooGUI.java b/MooGUI.java index 77883c9..43c553a 100644 --- a/MooGUI.java +++ b/MooGUI.java @@ -93,7 +93,7 @@ public class MooGUI extends JFrame { pack(); setIconImage(logo); Dimension bounds = Toolkit.getDefaultToolkit().getScreenSize(); - setSize(bounds.width,bounds.height - 40); + setSize(bounds.width,bounds.height - 28); setLocation(0, 0); setBackground(Color.white); advanceStatus(); diff --git a/MooKeyboard.java b/MooKeyboard.java index 7031c40..5581172 100644 --- a/MooKeyboard.java +++ b/MooKeyboard.java @@ -11,29 +11,34 @@ public class MooKeyboard extends KeyAdapter { private boolean[] isOn; private static int startNote; - private static int[] keyToNote; + private static int[] keyToNote = new int[120]; /** * Sets up the synthesizer emulation. */ public MooKeyboard() { isOn = new boolean[120]; - keyToNote = new int[120]; - setOctave(4); } + static { + startNote = 48; + makeKeyboardMapping(); + } + /** * Plays the appropriate MIDI NoteOn event. */ public void keyPressed(KeyEvent e) { - try { - // Retrieves the notenumber from the conversion array. - int noteNumber = keyToNote[e.getKeyCode()]; - // If note is not already on and the key is mapped to a note, sends the NoteOn event. - if (!isOn[noteNumber] && noteNumber > 0) Moosique.getActiveChannel().noteOn(noteNumber, 127); - isOn[noteNumber] = true; - } catch (ArrayIndexOutOfBoundsException x) { - return; + if (!e.isControlDown()) { + try { + // Retrieves the notenumber from the conversion array. + int noteNumber = keyToNote[e.getKeyCode()]; + // If note is not already on and the key is mapped to a note, sends the NoteOn event. + if (!isOn[noteNumber] && noteNumber > 0) Moosique.getActiveChannel().noteOn(noteNumber, 127); + isOn[noteNumber] = true; + } catch (ArrayIndexOutOfBoundsException x) { + return; + } } } @@ -41,14 +46,16 @@ public class MooKeyboard extends KeyAdapter { * Plays the appropriate MIDI NoteOff event. */ public void keyReleased(KeyEvent e) { - try { - // Retrieves the notenumber from the conversion array. - int noteNumber = keyToNote[e.getKeyCode()]; - // Sends the NoteOff event. - Moosique.getActiveChannel().noteOff(noteNumber); - isOn[noteNumber] = false; - } catch (ArrayIndexOutOfBoundsException x) { - return; + if (!e.isControlDown()) { + try { + // Retrieves the notenumber from the conversion array. + int noteNumber = keyToNote[e.getKeyCode()]; + // Sends the NoteOff event. + Moosique.getActiveChannel().noteOff(noteNumber); + isOn[noteNumber] = false; + } catch (ArrayIndexOutOfBoundsException x) { + return; + } } } @@ -57,7 +64,7 @@ public class MooKeyboard extends KeyAdapter { * @param n the octave to start at */ public static void setOctave(int n) { - if (startNote == 0 || startNote == 108) return; + if ((startNote == 0 && n == -1) || (startNote == 108 && n == 1)) return; startNote += n*12; makeKeyboardMapping(); } diff --git a/To Do.txt b/To Do.txt index 2a768bd..dedc490 100644 --- a/To Do.txt +++ b/To Do.txt @@ -8,6 +8,7 @@ x Spara konfiguration? Arbetskatalog Fem senast öppnade filerna Valda MIDI-enheter +x Inspelning! TEMPO / TAKTART x Räkna ut tempo och taktart. Skicka (på nåt sätt) tempovektorn till MooToolbar. -- 2.39.2