]> ruin.nu Git - moosique.git/blob - To Do.txt
.
[moosique.git] / To Do.txt
1
2 \f
3 FÖRDELNING
4
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)
9
10 \f
11 VIKTIGT! Implementera playfunktionens beteende. När play aktiveras ska följande loop köras:
12
13         while(sequencer.isRunning()) {
14                 Moosique.getGUI().update();
15         }
16
17         i GUI:
18
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();
23                 }
24                 // Calls on the toolbar to update the progress indicator.
25                 toolbar.updateProgInd();
26         }
27
28         När låten är slut återställes play-knappen.
29
30         Göra detta som en tråd?!?
31
32 \f
33 x Fixa en progress indicator till filladdningen om den tänker ta så lång tid.
34
35 \f
36 MooMenu
37
38         * Inställningar
39                 - MIDI-enhet     Öppna en dialogruta med innehållet i getMidiDeviceInfo() och låt användaren välja.
40
41         Musikrelaterade menyer i Midisoft Recording Session:
42         
43         Track           Insert New...           Har vi
44                         Delete...               Har vi
45                         Move...                 Har vi
46                         Copy...                 Har vi
47                         Combine...              Onödig
48                         Rechannel...            Kanske
49                         Split by Pitch...       Onödig
50                         
51         Music           Insert Measure...       Lagt till
52                         Delete Measure...       Lagt till
53                         Clef...                 Onödig
54                         Time Signature...       Lagt till
55                         Key Signature...        Onödig
56                         Tempo...                Lagt till
57                         Scale Velocity...       Lagt till
58                         Transpose...            Lagt till
59                         Quantize...             Onödig
60         
61         Kanske också:   Reset Solo / Mute
62
63 \f
64 MooNote / MootrackView / MooNoteElement
65
66         * Hur lägga till MooNote och NoteOff?
67                 Internt vid skapandet - Då behövs track
68                 Externt         new MooNote(...);
69                                 ...add(MooNote);
70                                 ...add(MooNote.getNoteOffEvent());
71
72 \f
73 MooTrackTitle
74
75         * Behöver vi verkligen ha titel för tracks?? Tycker att TrackTitle tar upp mycket plats som det är.. 
76
77         
78
79         * Kanalinställning
80                 Hämta från det första Event i ett spår.
81
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):
84         
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. 
89
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?
92         
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.
98
99
100 \f
101 MooGUI
102
103         * Global KeyListener
104                 Görs uppenbarligen så här:
105         
106                         JFrame someFrame = new JFrame();
107                         
108                         JComponent rootPane = someFrame.getRootPane();
109                         ActionMap am = rootPane.getActionMap();
110                         
111                         Action helpAction = new AbstractAction() {
112                              public void actionPerformed(ActionEvent ae) {
113                                  showHelpWindow();
114                              }};
115                         am.put("help", helpAction);
116                         
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");
120         
121         * Globala kommandon
122         
123                 * Oktavförändring i MooKeyboard
124                         Mappa F9-F12 till MooKeyboard.setOctave(n) där n = {2, 4, 6, 8}
125         
126                 * Play / Stop
127                         Mappa till blanksteg.
128
129 \f
130 Moosique
131
132         * getPosition och setPosition - kvar?
133
134 \f