\f
-FÖRDELNING
-
-Einar: Moosique(4), MooNote(4)
-Micke: MooGUI(4), MooTrackTitle(2), MooNoteElement(6), MooNoteProp(4)
-Björn: MooMenu(8), MooToolbar(3), MooViewCounter(1)
-Rolle: MooTrackView(16)
-
-\f
-VIKTIGT! Implementera playfunktionens beteende. När play aktiveras ska följande loop köras:
-
- while(sequencer.isRunning()) {
- Moosique.getGUI().update();
- }
-
- i View:
-
- public void update() {
- // Calls on each track view to update itself.
- for (int i = 0; i < trackViews.length; i++) {
- trackViews[i].update();
- }
- }
-
- i GUI:
- public void update(){
- view.update();
- // Calls on the toolbar to update the progress indicator.
- toolbar.updateProgInd();
- }
-
- När låten är slut återställes play-knappen.
-
- Göra detta som en tråd?!?
-
-\f
-x Fixa en progress indicator till filladdningen om den tänker ta så lång tid.
-x Scrollningen?!? Horisontell behövs på både MooView och MooTrackView, men vertikal bara på MooView. Hur göra?
-x Får Moosique vara statisk? Fult?
-
-\f
-MIDI Messages
-
-FF 58 Time signature: [0] / [1], [2] MIDI clocks per metronome tick, [3] / 32 per 24 MIDI clocks
-FF 51 Tempo
-FF 03 Track Name String name = new String(getData());
-C0 Program change int pc = getData1();
-
-
-Sequence
- private ShortMessage timeSignature, tempo;
-Track
- private ShortMessage trackName, programChange;
-
-\f
-MooMenu
-
- * Inställningar
- - MIDI-enhet Öppna en dialogruta med innehållet i getMidiDeviceInfo() och låt användaren välja.
-
- Musikrelaterade menyer i Midisoft Recording Session:
-
- Track Insert New... Har vi
- Delete... Har vi
- Move... Har vi
- Copy... Har vi
- Combine... Onödig
- Rechannel... Kanske
- Split by Pitch... Onödig
-
- Music Insert Measure... Lagt till
- Delete Measure... Lagt till
- Clef... Onödig
- Time Signature... Lagt till
- Key Signature... Onödig
- Tempo... Lagt till
- Scale Velocity... Lagt till
- Transpose... Lagt till
- Quantize... Onödig
-
- Kanske också: Reset Solo / Mute
-
-\f
-MooNote / MootrackView / MooNoteElement
-
- * Hur lägga till MooNote och NoteOff?
- Internt vid skapandet - Då behövs track
- Externt new MooNote(...);
- ...add(MooNote);
- ...add(MooNote.getNoteOffEvent());
-
- * set/getDuration verkar inte fungera.
-\f
-MooTrackTitle
-
- * Kanalinställning
- Hämta från det första Event i ett spår.
-
- * Funktioner för att sätta (och läsa?) channel? mute? solo?
- För mute och solo gäller följande metoder (ligger utklistrade i Methods of Key Classes.txt):
-
- boolean getTrackMute(int track) Obtains the current mute state for a track.
- boolean getTrackSolo(int track) Obtains the current solo state for a track.
- void setTrackMute(int track, boolean mute) Sets the mute state for a track.
- void setTrackSolo(int track, boolean solo) Sets the solo state for a track.
-
- När det gäller kanalerna velar jag lite. Antingen gör jag en mappningsmatris i Moosique som
- man får läsa och skriva ifrån (vilket blir FULT!), eller så tar man allt direkt genom
- MooNote. Metoden getChannel ska då leta upp den första MooNoten i det aktuella spåret och
- ta getChannel på den. setChannel ska loopa igenom alla MooNotes (egentligen alla Events)
- och ta setChannel på dem. Kan vara bra att fråga först eftersom det kan ta nån sekund.
-
-\f
-MooGUI
-
- * Global KeyListener
- Görs uppenbarligen så här:
-
- JFrame someFrame = new JFrame();
-
- JComponent rootPane = someFrame.getRootPane();
- ActionMap am = rootPane.getActionMap();
-
- Action helpAction = new AbstractAction() {
- public void actionPerformed(ActionEvent ae) {
- showHelpWindow();
- }};
- am.put("help", helpAction);
-
- InputMap im = rootPane.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
- KeyStroke helpKey = KeyStroke.getKeyStroke(KeyEvent.VK_F1, 0);
- im.put(helpKey, "help");
-
-
- * Globala kommandon
-
- * Oktavförändring i MooKeyboard
- Mappa F9-F12 till MooKeyboard.setOctave(n) där n = {2, 4, 6, 8}
-
- * Play / Stop
- Mappa till blanksteg. <-- Detta fungerar inte.. blanksteget
- används av vår toolbar.
-
-\f
-Moosique
-
- * getPosition och setPosition - kvar?
-
-\f
-MooNoteProp
- * textfält som gör att man bara kan skriva in siffror?
+x Spara konfiguration?
+ Arbetskatalog
+ Fem senast öppnade filerna
+ Valda MIDI-enheter
+x Fixa InstrumentList.
+x Fixa så att toolbarens rutor sitter fast!
+x Räkna ut tempo och taktart. Skicka (på nåt sätt) tempovektorn till MooToolbar.
+x Gör en ruta för tempot i MooToolbar.
+x Gör en ruta för taktarten i MooViews övre vänstra hörn.
+x Implementera klart menyn, med alla dialoger. (Går visst att göra med JOptionPane, kolla denna:
+ http://java.sun.com/tutorial/uiswing/components/example-swing/CustomDialog.java)
+x Lägg till en tom panel i MooGUI för att fylla ut skärmen. Använd setBounds()
+x Textfält som gör att man bara kan skriva in siffror? (MooNoteProp)
+
+MooTrackView
+
+x Fixa markera, kopiera, klipp ut och klistra in.
+x Highlighta noter som spelas? (Enligt kravspec.)
+x Ändra längden på MooNoteElement (JPanel).
+ Känn av klick på panelens gräns, MouseMotionListener känner av när ny ruta nås.
+ void mouseDragged(MouseEvent)
+ Called in response to the user moving the mouse while holding a mouse button down.
+ This event is fired by the component that fired the most recent mouse-pressed event,
+ even if the cursor is no longer over that component.
+ Eller.. ComponentListener.componentMoved(ComponentEvent e)
+
+x Integrera MooViewCounter i MooTrackView genom att istället variera de horisontella streckens gråa nyanser?!?
+ (Omöjligt att följa strecken till högra änden av skärmen.)
+
+\f
\ No newline at end of file