5 Einar: Moosique(4), MooNote(4)
6 Micke: MooGUI(4), MooTrackTitle(2), MooNoteElement(6), MooNoteProp(4)
7 Björn: MooMenu(8), MooToolbar(3), MooViewCounter(1)
8 Rolle: MooTrackView(16)
11 VIKTIGT! Implementera playfunktionens beteende. När play aktiveras ska följande loop köras:
13 while(sequencer.isRunning()) {
14 Moosique.getGUI().update();
19 public void update() {
20 // Calls on each track view to update itself.
21 for (int i = 0; i < trackViews.length; i++) {
22 trackViews[i].update();
24 // Calls on the toolbar to update the progress indicator.
25 toolbar.updateProgInd();
28 När låten är slut återställes play-knappen.
30 Göra detta som en tråd?!?
33 x Fixa en progress indicator till filladdningen om den tänker ta så lång tid.
39 - MIDI-enhet Öppna en dialogruta med innehållet i getMidiDeviceInfo() och låt användaren välja.
41 Musikrelaterade menyer i Midisoft Recording Session:
43 Track Insert New... Har vi
49 Split by Pitch... Onödig
51 Music Insert Measure... Lagt till
52 Delete Measure... Lagt till
54 Time Signature... Lagt till
55 Key Signature... Onödig
57 Scale Velocity... Lagt till
58 Transpose... Lagt till
61 Kanske också: Reset Solo / Mute
64 MooNote / MootrackView / MooNoteElement
66 * Hur lägga till MooNote och NoteOff?
67 Internt vid skapandet - Då behövs track
68 Externt new MooNote(...);
70 ...add(MooNote.getNoteOffEvent());
75 * Behöver vi verkligen ha titel för tracks?? Tycker att TrackTitle tar upp mycket plats som det är..
80 Hämta från det första Event i ett spår.
82 * Funktioner för att sätta (och läsa?) channel? mute? solo?
83 För mute och solo gäller följande metoder (ligger utklistrade i Methods of Key Classes.txt):
85 boolean getTrackMute(int track) Obtains the current mute state for a track.
86 boolean getTrackSolo(int track) Obtains the current solo state for a track.
87 void setTrackMute(int track, boolean mute) Sets the mute state for a track.
88 void setTrackSolo(int track, boolean solo) Sets the solo state for a track.
90 * För att kunna använda dessa funktioner behöver vi TrackTitle veta
91 vilken int track den ska arbeta mot.. Skicka in som parameter till konstruktorn?
93 När det gäller kanalerna velar jag lite. Antingen gör jag en mappningsmatris i Moosique som
94 man får läsa och skriva ifrån (vilket blir FULT!), eller så tar man allt direkt genom
95 MooNote. Metoden getChannel ska då leta upp den första MooNoten i det aktuella spåret och
96 ta getChannel på den. setChannel ska loopa igenom alla MooNotes (egentligen alla Events)
97 och ta setChannel på dem. Kan vara bra att fråga först eftersom det kan ta nån sekund.
104 Görs uppenbarligen så här:
106 JFrame someFrame = new JFrame();
108 JComponent rootPane = someFrame.getRootPane();
109 ActionMap am = rootPane.getActionMap();
111 Action helpAction = new AbstractAction() {
112 public void actionPerformed(ActionEvent ae) {
115 am.put("help", helpAction);
117 InputMap im = rootPane.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
118 KeyStroke helpKey = KeyStroke.getKeyStroke(KeyEvent.VK_F1, 0);
119 im.put(helpKey, "help");
123 * Oktavförändring i MooKeyboard
124 Mappa F9-F12 till MooKeyboard.setOctave(n) där n = {2, 4, 6, 8}
127 Mappa till blanksteg.
132 * getPosition och setPosition - kvar?