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();
29 // Calls on the toolbar to update the progress indicator.
30 toolbar.updateProgInd();
33 När låten är slut återställes play-knappen.
35 Göra detta som en tråd?!?
38 x Fixa en progress indicator till filladdningen om den tänker ta så lång tid.
39 x Scrollningen?!? Horisontell behövs på både MooView och MooTrackView, men vertikal bara på MooView. Hur göra?
40 x Får Moosique vara statisk? Fult?
45 FF 58 Time signature: [0] / [1], [2] MIDI clocks per metronome tick, [3] / 32 per 24 MIDI clocks
47 FF 03 Track Name String name = new String(getData());
48 C0 Program change int pc = getData1();
52 private ShortMessage timeSignature, tempo;
54 private ShortMessage trackName, programChange;
59 x Kom ihåg sökväg vid Open
61 Musikrelaterade menyer i Midisoft Recording Session:
63 Track Insert New... Har vi
69 Split by Pitch... Onödig
71 Music Insert Measure... Lagt till
72 Delete Measure... Lagt till
74 Time Signature... Lagt till
75 Key Signature... Onödig
77 Scale Velocity... Lagt till
78 Transpose... Lagt till
81 Kanske också: Reset Solo / Mute
84 MooNote / MootrackView / MooNoteElement
86 * Hur lägga till MooNote och NoteOff?
87 Internt vid skapandet - Då behövs track
88 Externt new MooNote(...);
90 ...add(MooNote.getNoteOffEvent());
92 * set/getDuration verkar inte fungera.
97 Hämta från det första Event i ett spår.
99 * Funktioner för att sätta (och läsa?) channel? mute? solo?
100 För mute och solo gäller följande metoder (ligger utklistrade i Methods of Key Classes.txt):
102 boolean getTrackMute(int track) Obtains the current mute state for a track.
103 boolean getTrackSolo(int track) Obtains the current solo state for a track.
104 void setTrackMute(int track, boolean mute) Sets the mute state for a track.
105 void setTrackSolo(int track, boolean solo) Sets the solo state for a track.
107 När det gäller kanalerna velar jag lite. Antingen gör jag en mappningsmatris i Moosique som
108 man får läsa och skriva ifrån (vilket blir FULT!), eller så tar man allt direkt genom
109 MooNote. Metoden getChannel ska då leta upp den första MooNoten i det aktuella spåret och
110 ta getChannel på den. setChannel ska loopa igenom alla MooNotes (egentligen alla Events)
111 och ta setChannel på dem. Kan vara bra att fråga först eftersom det kan ta nån sekund.
117 Görs uppenbarligen så här:
119 JFrame someFrame = new JFrame();
121 JComponent rootPane = someFrame.getRootPane();
122 ActionMap am = rootPane.getActionMap();
124 Action helpAction = new AbstractAction() {
125 public void actionPerformed(ActionEvent ae) {
128 am.put("help", helpAction);
130 InputMap im = rootPane.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
131 KeyStroke helpKey = KeyStroke.getKeyStroke(KeyEvent.VK_F1, 0);
132 im.put(helpKey, "help");
137 * Oktavförändring i MooKeyboard
138 Mappa F9-F12 till MooKeyboard.setOctave(n) där n = {2, 4, 6, 8}
141 Mappa till blanksteg. <-- Detta fungerar inte.. blanksteget
142 används av vår toolbar.
147 * getPosition och setPosition - kvar?
152 // Prints the number of notes in each track
154 Track[] tracks = seq.getTracks();
155 for (int k = 0; k < tracks.length; k++) {
157 for (int j = 0; j < tracks[k].size(); j++) {
158 if (tracks[k].get(j) instanceof MooNote) count++;
160 System.out.println("Track " + k + ": " + count + " notes.");
165 * textfält som gör att man bara kan skriva in siffror?