]> ruin.nu Git - moosique.git/blobdiff - To Do.txt
Fixed some bugs
[moosique.git] / To Do.txt
index ba19b3be8f46f146e8b303fa2ef3dbdb955d4006..8d026dc37a46270b0a13f906573f7a7a0b91e11b 100644 (file)
--- a/To Do.txt
+++ b/To Do.txt
-* Inställningar
-       - MIDI-enhet     Öppna en dialogruta med innehållet i getMidiDeviceInfo() och låt användaren välja.
 
-* Keyjazz      
-       MidiChannel: noteOn, programChange etc.
+\f
+FÖRDELNING
 
-* Referenser eller objekt?!?
-       tracks.get(tracks.indexOf(noteOffEvent) ???
+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)
 
-* Hur lägga till MooNote och NoteOff?
-       Internt vid skapandet - Då behövs track
-       Externt         new MooNote(...);
-                       ...add(MooNote);
-                       ...add(MooNote.getNoteOffEvent());
+\f
+VIKTIGT! Implementera playfunktionens beteende. När play aktiveras ska följande loop köras:
 
-* Kanalinställning
-       Hur sparas i spår?
+       while(sequencer.isRunning()) {
+               Moosique.getGUI().update();
+       }
 
-* Rolle är dum // Einar
\ No newline at end of file
+       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
+
+x Kom ihåg sökväg vid Open
+
+       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
+Skräp
+
+               // Prints the number of notes in each track
+               int count;
+               Track[] tracks = seq.getTracks();
+               for (int k = 0; k < tracks.length; k++) {
+                       count = 0;
+                       for (int j = 0; j < tracks[k].size(); j++) {
+                               if (tracks[k].get(j) instanceof MooNote) count++;
+                       }
+                       System.out.println("Track " + k + ": " + count + " notes.");
+               }
+
+\f
+MooNoteProp
+       * textfält som gör att man bara kan skriva in siffror?