diff options
-rw-r--r-- | muse2/ChangeLog | 16 | ||||
-rw-r--r-- | muse2/muse/arranger/tlist.cpp | 6 | ||||
-rw-r--r-- | muse2/muse/midiedit/dcanvas.h | 10 | ||||
-rw-r--r-- | muse2/muse/midiedit/drumedit.h | 2 | ||||
-rw-r--r-- | muse2/muse/midiedit/scoreedit.cpp | 51 |
5 files changed, 27 insertions, 58 deletions
diff --git a/muse2/ChangeLog b/muse2/ChangeLog index 1445633b..4b9646f4 100644 --- a/muse2/ChangeLog +++ b/muse2/ChangeLog @@ -1,4 +1,20 @@ 03.01.2012: + - ADDED NEW STYLE DRUM TRACKS: (flo93) + + multiple tracks can be displayed in one editor + their drum sound columns can be reordered, mixed up, hidden. + drumtracks can be grouped by channel, not at all, or maximally + each track owns its own drummap + added drummap-definitions to instrument files (gs and xg.idf) + drumtracks' drummap can be automatically set according to + the currently used patch/program/bank + new-style-drumtracks can ignore muted, hidden or both sounds when + recording + + KNOWN ISSUES: when having multiple drumeditors open, the mute-column + may not work, because another editor is overriding this. + this is not a bug. + - Global Cut: Fixed crashes with markers. Re-did marker section in structure.cpp:adjustGlobalLists(). (Tim) TODO: Still get tempo, key, and sig not found warnings. 02.01.2012: diff --git a/muse2/muse/arranger/tlist.cpp b/muse2/muse/arranger/tlist.cpp index 3deeb65a..fe8b4731 100644 --- a/muse2/muse/arranger/tlist.cpp +++ b/muse2/muse/arranger/tlist.cpp @@ -718,10 +718,6 @@ void TList::portsPopupMenu(MusECore::Track* t, int x, int y) case MusECore::Track::MIDI: case MusECore::Track::DRUM: case MusECore::Track::NEW_DRUM: - // FINDMICHJETZT: this is a notice for flo's experimental - // branch! don't forget NEW_DRUM here! - // please don't remove this. i'll do it when - // the time is there. case MusECore::Track::AUDIO_SOFTSYNTH: { MusECore::MidiTrack* track = (MusECore::MidiTrack*)t; @@ -742,7 +738,7 @@ void TList::portsPopupMenu(MusECore::Track* t, int x, int y) QMenu* p = MusECore::midiPortsPopup(this, port); // 0, port); - if (t->type()==MusECore::Track::MIDI || t->type()==MusECore::Track::DRUM) //FINDMICHJETZT + if (t->isMidiTrack()) { // extend that menu a bit diff --git a/muse2/muse/midiedit/dcanvas.h b/muse2/muse/midiedit/dcanvas.h index 0fd4c9e0..ae647709 100644 --- a/muse2/muse/midiedit/dcanvas.h +++ b/muse2/muse/midiedit/dcanvas.h @@ -162,11 +162,13 @@ class DrumCanvas : public EventCanvas { virtual void keyPress(QKeyEvent* event); MusECore::Event *getEventAtCursorPos(); void selectCursorEvent(MusECore::Event *ev); + int pitch_and_track_to_instrument(int pitch, MusECore::Track* track); - MusECore::DrumMap* getOurDrumMap() { return ourDrumMap; } //FINDMICH UGLY - int getOurDrumMapSize() { return instrument_map.size(); } //FINDMICH UGLY - QVector<instrument_number_mapping_t>& get_instrument_map() { return instrument_map; } //FINDMICH UGLY - void propagate_drummap_change(int instrument, bool update_druminmap); //FINDMICH move to drumedit + + MusECore::DrumMap* getOurDrumMap() { return ourDrumMap; } + int getOurDrumMapSize() { return instrument_map.size(); } + QVector<instrument_number_mapping_t>& get_instrument_map() { return instrument_map; } + void propagate_drummap_change(int instrument, bool update_druminmap); void rebuildOurDrumMap(); }; diff --git a/muse2/muse/midiedit/drumedit.h b/muse2/muse/midiedit/drumedit.h index f4e2646b..33491581 100644 --- a/muse2/muse/midiedit/drumedit.h +++ b/muse2/muse/midiedit/drumedit.h @@ -169,7 +169,7 @@ class DrumEdit : public MidiEditor { group_mode_t group_mode() { return _group_mode; } bool ignore_hide() { return _ignore_hide; } - QVector<instrument_number_mapping_t>& get_instrument_map() { return static_cast<DrumCanvas*>(canvas)->get_instrument_map(); } //FINDMICH UGLY + QVector<instrument_number_mapping_t>& get_instrument_map() { return static_cast<DrumCanvas*>(canvas)->get_instrument_map(); } }; } // namespace MusEGui diff --git a/muse2/muse/midiedit/scoreedit.cpp b/muse2/muse/midiedit/scoreedit.cpp index 45ccd4d6..7e40a41f 100644 --- a/muse2/muse/midiedit/scoreedit.cpp +++ b/muse2/muse/midiedit/scoreedit.cpp @@ -4655,20 +4655,6 @@ void ScoreCanvas::add_new_parts(const std::map< MusECore::Part*, std::set<MusECo // every time something changes. -/* STUFF I WANT TO WORK - * - * x multiple new drum tracks can be displayed seperately in ONE drum - * editor - * x reorder drummap - * ? support and correctly map e-note on record and steprec - * ? only record nonmuted/whatever notes - * ? support drum controllers - * x refuse to mix up old-style and new-style drum tracks in ONE editor - * o drummap saving and loading (per-track) - * o drummap import/export - * o drummap automatically adapting to the chosen midi synth / patch - */ - /* BUGS and potential bugs * o tied notes don't work properly when there's a key-change in * between, for example, when a cis is tied to a des @@ -4679,46 +4665,15 @@ void ScoreCanvas::add_new_parts(const std::map< MusECore::Part*, std::set<MusECo * from clipboard failed. ignoring this one... ) [ not reproducible ] * * CURRENT TODO - * o write instrument drummaps - * o GUI for editing instrument drummaps - * * drum controllers - * update ctrlcanvas/panel - * test! - * * drum editor is buggy. propagate_drum_map may operate on old values - * ("BUGGY! problem is: while changing entries, ourDrumMap - * may be reallocated which causes abort()s and/or bugs.") - * [ seems to work now, needs further testing! ] - * x my record flag handling - * * once, using super glue while a score editor displaying the glued - * parts is open let muse segfault. this may or may not be fixed - * now. check! - * state of revision #1337: no segfaults, but the score editors - * close and lots of "ERROR" messages. - * - * o drum editor: channel-stuff - * o clearly state in the changelog: when having multiple drumeditors open, - * the mute-column may not work, because another editor is overriding this. - * > o respect "_drummap_tied_to_patch": IMPLEMENT - * o whenever changing the patch and maintained_automatically==true, - * the drumlist is replaced by the according one (for example, "jazz" drum kit's list) - * o whenever changing the drumlist and maintained_automatically==true, - * ask the user if he wants to proceed, and then set maintained_automatically to false - * o offer some way to set maintained_automatically to true again - * o move generation and deletion of ourDrumMap from DCanvas to DrumEditor and remove ugly wrapper functions + * o test drum controllers + * o test old- and new drumtrack recording, steprecording + * * > o fix valgrind problems (the two "FINDMICHJETZT" lines in scoreedit.cpp) * > o add a songposition scrollbar-toolbar (in different sizes) * this might be equivalent to "redo transport menu" (below). * > o add toolbar(s) for tempo- etc spinboxes from the transport window * - * * o find and fix FINDMICHJETZT - * o fix all segfaults and non-working stuff! - * - creating, changing types to and from, erasing NEW_DRUM tracks - * - move parts around - * - playing them. mute? - * - recording/echoing/steprec them - * - load, save them - * o fix valgrind problems * * IMPORTANT TODO * o allow steprec-insert-rest-note to be set to "off" / "unused" |