X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=To%20Do.txt;h=82bc7fe995b39d872fff9addea50fc47582dfae4;hb=f13c7fbb2a8cc841367e0a4563596592b89cd33b;hp=cabc038fe5d0bf6fab66c184ed177e7cefe9967c;hpb=f852147b2a61dcfebc065b38dff854f609899ff0;p=moosique.git diff --git a/To Do.txt b/To Do.txt index cabc038..82bc7fe 100644 --- a/To Do.txt +++ b/To Do.txt @@ -1,107 +1,63 @@ -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) +jar cmf manif Moosique.jar *.class *.java midi\*.mid images\*.gif Manual.txt +manif: Main-Class: Moosique -VIKTIGT! Implementera playfunktionens beteende. - När låten är slut återställes play-knappen. - Göra detta som en tråd?!? +Varför ritar den ut de tomma spåren i en ny fil? Rätt, men hur? +Lägg till redigeringsfunktionerna i menyn. Metoderna flyttas till MooView? +Fixa kanalnummer 1,2,10 i nya filer. +Kopiera/flytta spår, möjligt? -x Får Moosique vara statisk? Fult? +IO +x Lägg till alla metameddelanden i filerna vi skapar. Annars är det lite dumt. +x Play hänger sig om man ändrar duration på en not. x Spara konfiguration? Arbetskatalog - Fem senast öppnade filerna + Fem senaste öppnade filerna Valda MIDI-enheter - -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. - - -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. - - -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. - - -Moosique - - * getPosition och setPosition - kvar? - - -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."); - } - - -MooNoteProp - * textfält som gör att man bara kan skriva in siffror? +x Stopp +sequencer.addMetaEventListener(new MetaEventListener() { + public void meta(MetaMessage event) { + if (event.getType() == 47 ) sequencer.stop(); // End of stream + } +}; + +TEMPO / TAKTART +x Räkna ut tempo och taktart. Skicka (på nåt sätt) tempovektorn till MooToolbar. +x Räkna ut position (takt, slag, cent) för tick i Moosique. Behövs i NoteProp, ViewCounter, Menu etc. +x Gör en ruta för taktarten i MooViews övre vänstra hörn. +x Gör en ruta för tempot i MooToolbar. + +SWING +x Lägg till en tom panel i MooGUI för att fylla ut skärmen. Använd BoxLayout!! +x Fixa så att toolbarens rutor sitter fast! Använd BoxLayout!! +x Implementera klart menyn, med alla dialoger. +x Mnemonicsarna i menyn är konstiga... + +ANNAT +x Fixa InstrumentList. +x Textfält som gör att man bara kan skriva in siffror? (MooNoteProp) + +MooToolbar + +Volymkontroll? - Använd Moosique.setVolume(long volume); +Progress Bar? - getTickLength() för max, getTickPosition() för position. + +MooTrackView + +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.) \ No newline at end of file