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.
12 När låten är slut återställes play-knappen.
13 Göra detta som en tråd?!?
16 x Scrollningen?!? Horisontell behövs på både MooView och MooTrackView, men vertikal bara på MooView. Hur göra?
17 x Får Moosique vara statisk? Fult?
18 x Spara konfiguration?
20 Fem senast öppnade filerna
26 FF 58 Time signature: [0] / [1], [2] MIDI clocks per metronome tick, [3] / 32 per 24 MIDI clocks
28 FF 03 Track Name String name = new String(getData());
29 C0 Program change int pc = getData1();
33 private ShortMessage timeSignature, tempo;
35 private ShortMessage trackName, programChange;
40 x Kom ihåg sökväg vid Open
42 Musikrelaterade menyer i Midisoft Recording Session:
44 Track Insert New... Har vi
50 Split by Pitch... Onödig
52 Music Insert Measure... Lagt till
53 Delete Measure... Lagt till
55 Time Signature... Lagt till
56 Key Signature... Onödig
58 Scale Velocity... Lagt till
59 Transpose... Lagt till
62 Kanske också: Reset Solo / Mute
65 MooNote / MootrackView / MooNoteElement
67 * Hur lägga till MooNote och NoteOff?
68 Internt vid skapandet - Då behövs track
69 Externt new MooNote(...);
71 ...add(MooNote.getNoteOffEvent());
73 * set/getDuration verkar inte fungera.
78 Hämta från det första Event i ett spår.
80 * Funktioner för att sätta (och läsa?) channel? mute? solo?
81 För mute och solo gäller följande metoder (ligger utklistrade i Methods of Key Classes.txt):
83 boolean getTrackMute(int track) Obtains the current mute state for a track.
84 boolean getTrackSolo(int track) Obtains the current solo state for a track.
85 void setTrackMute(int track, boolean mute) Sets the mute state for a track.
86 void setTrackSolo(int track, boolean solo) Sets the solo state for a track.
88 När det gäller kanalerna velar jag lite. Antingen gör jag en mappningsmatris i Moosique som
89 man får läsa och skriva ifrån (vilket blir FULT!), eller så tar man allt direkt genom
90 MooNote. Metoden getChannel ska då leta upp den första MooNoten i det aktuella spåret och
91 ta getChannel på den. setChannel ska loopa igenom alla MooNotes (egentligen alla Events)
92 och ta setChannel på dem. Kan vara bra att fråga först eftersom det kan ta nån sekund.
98 Görs uppenbarligen så här:
100 JFrame someFrame = new JFrame();
102 JComponent rootPane = someFrame.getRootPane();
103 ActionMap am = rootPane.getActionMap();
105 Action helpAction = new AbstractAction() {
106 public void actionPerformed(ActionEvent ae) {
109 am.put("help", helpAction);
111 InputMap im = rootPane.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
112 KeyStroke helpKey = KeyStroke.getKeyStroke(KeyEvent.VK_F1, 0);
113 im.put(helpKey, "help");
118 * Oktavförändring i MooKeyboard
119 Mappa F9-F12 till MooKeyboard.setOctave(n) där n = {2, 4, 6, 8}
122 Mappa till blanksteg. <-- Detta fungerar inte.. blanksteget
123 används av vår toolbar.
128 * getPosition och setPosition - kvar?
133 // Prints the number of notes in each track
135 Track[] tracks = seq.getTracks();
136 for (int k = 0; k < tracks.length; k++) {
138 for (int j = 0; j < tracks[k].size(); j++) {
139 if (tracks[k].get(j) instanceof MooNote) count++;
141 System.out.println("Track " + k + ": " + count + " notes.");
146 * textfält som gör att man bara kan skriva in siffror?