X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=To%20Do.txt;h=a43a56091f8688a06886aca01e726fa8e86ab82d;hb=0f75f154c6485f6428617af221a282ba03ee20ae;hp=00185b384dfcef4e8856fd12b20c6a12176e3403;hpb=dd6e5fe331907fbbbe9539dd880ce2ec895501d7;p=moosique.git diff --git a/To Do.txt b/To Do.txt index 00185b3..a43a560 100644 --- a/To Do.txt +++ b/To Do.txt @@ -1,35 +1,145 @@ -* Inställningar - - MIDI-enhet Öppna en dialogruta med innehållet i getMidiDeviceInfo() och låt användaren välja. - -* Referenser eller objekt?!? - tracks.get(tracks.indexOf(noteOffEvent) ??? - -* Hur lägga till MooNote och NoteOff? - Internt vid skapandet - Då behövs track - Externt new MooNote(...); - ...add(MooNote); - ...add(MooNote.getNoteOffEvent()); - -* Kanalinställning - Hur sparas i spår? - -* 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"); - -* Oktavförändring i MooKeyboard - Mappa F9-F12 till MooKeyboard.setOctave(n) där n = {2, 4, 6, 8} \ No newline at end of file + + +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) + + +VIKTIGT! Implementera playfunktionens beteende. När play aktiveras ska följande loop köras: + + while(sequencer.isRunning()) { + Moosique.getGUI().update(); + } + + i GUI: + Bör vara i MooView.. MooGUI bör bara ha en update som kör MooView's + updatefunktion.. + + public void update() { + // Calls on each track view to update itself. + for (int i = 0; i < trackViews.length; i++) { + trackViews[i].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?!? + + +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? + + +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; + + +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 + + +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()); + + +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. + + +Moosique + + * getPosition och setPosition - kvar? + +