From f118ed0cfca8ab717b87e1f00459199acba80bb9 Mon Sep 17 00:00:00 2001
From: "Tim E. Real" <termtech@rogers.com>
Date: Sat, 2 Feb 2013 07:37:31 +0000
Subject: Solved: "Old style" Drums: Track channel/port re-enabled, drum list
 columns default to them. Required some icon and colour changes. See
 ChangeLog. Fixed Old Style Drum lockup: Certain item channel overrides caused
 infinite loop in Audio::processMidi().

---
 muse2/ChangeLog                                    |   9 +
 muse2/muse/arranger/tlist.cpp                      | 122 ++---
 muse2/muse/conf.cpp                                |  12 +-
 muse2/muse/ctrl/ctrlcanvas.cpp                     |  37 +-
 muse2/muse/ctrl/ctrlpanel.cpp                      |  23 +-
 muse2/muse/gconfig.cpp                             |   6 +-
 muse2/muse/helper.cpp                              |   4 +-
 muse2/muse/icons.cpp                               |  16 +-
 muse2/muse/icons.h                                 |   1 +
 muse2/muse/liste/editevent.cpp                     |   7 +-
 muse2/muse/midi.cpp                                |  31 +-
 muse2/muse/mididev.cpp                             |  11 +-
 muse2/muse/midiedit/dcanvas.cpp                    |  60 +++
 muse2/muse/midiedit/dlist.cpp                      |  80 +++-
 muse2/muse/midiedit/drumedit.cpp                   |   8 +-
 muse2/muse/midiedit/drummap.cpp                    | 286 ++++++------
 muse2/muse/midiedit/drummap.h                      |   4 +
 muse2/muse/midiport.cpp                            |  26 +-
 muse2/muse/midiport.h                              |   2 +-
 muse2/muse/part.cpp                                | 112 ++---
 muse2/muse/song.cpp                                |  20 +-
 muse2/muse/track.cpp                               |  14 +-
 muse2/muse/widgets/musewidgetsplug.cpp             |   6 +-
 muse2/share/drummaps/AKAI_SG01v_Bank_dr1.map       | 276 +++++------
 muse2/share/drummaps/AKAI_SG01v_Bank_dr2.map       | 276 +++++------
 .../drummaps/KURZWEIL_SP2X_Drum_Map_GM_ReMap.map   | 404 ++++++++--------
 .../drummaps/KURZWEIL_SP2X_Drum_Map_Normal.map     | 404 ++++++++--------
 muse2/share/drummaps/addictive_drums.map           | 512 ++++++++++-----------
 muse2/share/drummaps/dx200_drum.map                |  14 +-
 muse2/share/templates/MusE.cfg                     |   5 +-
 muse2/xpm/addtrack_addmiditrack_2.xpm              |  89 ++++
 muse2/xpm/addtrack_auxsend_2.xpm                   |  62 +++
 muse2/xpm/addtrack_drumtrack_2.xpm                 |  86 ++++
 muse2/xpm/addtrack_old_drumtrack.xpm               |  81 ++++
 34 files changed, 1804 insertions(+), 1302 deletions(-)
 create mode 100644 muse2/xpm/addtrack_addmiditrack_2.xpm
 create mode 100644 muse2/xpm/addtrack_auxsend_2.xpm
 create mode 100644 muse2/xpm/addtrack_drumtrack_2.xpm
 create mode 100644 muse2/xpm/addtrack_old_drumtrack.xpm

diff --git a/muse2/ChangeLog b/muse2/ChangeLog
index d0ab39f7..73585573 100644
--- a/muse2/ChangeLog
+++ b/muse2/ChangeLog
@@ -1,3 +1,12 @@
+02.02.2013:
+         * Solved: "Old style" Drums: Track channel/port re-enabled, drum list columns default to them. (Tim...)
+           The drum list port and channel columns are now blank by default until overriden by user.
+           When blank they default to the track port and channel.
+           Internally, -1 is now an acceptable value for members DrumMap::port and ::channel, meaning default to track.
+           All built-in drum maps have been changed, as well as the initial and blank DrumMap structures.
+         - Since Old Style Drum and New Style Drum had the same icon, and the only way to tell the difference between them
+            was the port and channel columns, and that difference is now gone, this required some icon and colour changes.
+         - Fixed Old Style Drum lockup: Certain item channel overrides caused infinite loop in Audio::processMidi().
 28.01.2013:
          - MusE 2.1.1 released!
          - Added setting for default track height (rj)
diff --git a/muse2/muse/arranger/tlist.cpp b/muse2/muse/arranger/tlist.cpp
index 262527a9..526b36de 100644
--- a/muse2/muse/arranger/tlist.cpp
+++ b/muse2/muse/arranger/tlist.cpp
@@ -330,6 +330,8 @@ void TList::paint(const QRect& r)
                                           pm = addtrack_addmiditrackIcon;
                                           break;
                                     case MusECore::Track::NEW_DRUM:
+                                          pm = addtrack_newDrumtrackIcon;
+                                          break;
                                     case MusECore::Track::DRUM:
                                           pm = addtrack_drumtrackIcon;
                                           break;
@@ -388,11 +390,8 @@ void TList::paint(const QRect& r)
                               {
                               QString s;
                               int n;
-                              if (track->isMidiTrack() && track->type() == MusECore::Track::DRUM) {
-                                    p.drawText(r, Qt::AlignVCenter|Qt::AlignHCenter, "-");
-                                    break;
-                              }
-                              else if (track->isMidiTrack()) {
+                              // Default to track port if -1 and track channel if -1.
+                              if (track->isMidiTrack()) {
                                     n = ((MusECore::MidiTrack*)track)->outChannel() + 1;
                                     }
                               else {
@@ -631,7 +630,8 @@ void TList::chanValueFinished()
     if(editTrack->isMidiTrack()) 
     {
       MusECore::MidiTrack* mt = dynamic_cast<MusECore::MidiTrack*>(editTrack);
-      if (mt && mt->type() != MusECore::Track::DRUM)
+      // Default to track port if -1 and track channel if -1.
+      if (mt)
       {
         int channel = chan_edit->value() - 1;
         if(channel >= MIDI_CHANNELS)
@@ -645,18 +645,10 @@ void TList::chanValueFinished()
                                                           editTrack, 
                                                           mt->outChannel(), 
                                                           channel));
-              //mt->setOutChannel(channel); DELETETHIS 10 (only the comments of course)
               MusEGlobal::audio->msgIdle(true);
-              //MusEGlobal::audio->msgSetTrackOutChannel(mt, channel);
               mt->setOutChanAndUpdate(channel);
               MusEGlobal::audio->msgIdle(false);
-              //if (mt->type() == MusECore::MidiTrack::DRUM) {//Change channel on all drum instruments
-              //      for (int i=0; i<DRUM_MAPSIZE; i++)
-              //            MusEGlobal::drumMap[i].channel = channel;
-              //      }
               MusEGlobal::audio->msgUpdateSoloStates();                   
-              //MusEGlobal::song->endUndo(SC_CHANNELS);
-              //MusEGlobal::song->endUndo(SC_MIDI_TRACK_PROP | SC_ROUTE);  
               MusEGlobal::song->endUndo(SC_MIDI_TRACK_PROP);
         }      
       }
@@ -706,7 +698,10 @@ void TList::ctrlValueFinished()
   if(editTrack && editTrack->isMidiTrack())
   { 
     MusECore::MidiTrack* mt = dynamic_cast<MusECore::MidiTrack*>(editTrack);
-    if (mt && mt->type() != MusECore::Track::DRUM)
+    //if (mt && mt->type() != MusECore::Track::DRUM)
+    // Default to track port if -1 and track channel if -1.
+    // TODO TEST: Why was DRUM excluded? I want to say just "if(mt)", but will it break something with dynamic columns?  // REMOVE Tim.
+    if (mt)
     {
       int val = ctrl_edit->value();
       MusECore::MidiPort* mp = &MusEGlobal::midiPorts[mt->outPort()];
@@ -832,9 +827,9 @@ void TList::mouseDoubleClickEvent(QMouseEvent* ev)
                   editor->show();
                   }
             else if (section == COL_OCHANNEL) {
-                  //if (t->isMidiTrack() && t->type() != MusECore::Track::DRUM)
                   // Enabled for audio tracks. And synth channels cannot be changed ATM.   
-                  if(t->type() == MusECore::Track::DRUM || t->type() == MusECore::Track::AUDIO_SOFTSYNTH)   
+                  // Default to track port if -1 and track channel if -1.
+                  if(t->type() == MusECore::Track::AUDIO_SOFTSYNTH)
                   {
                     mousePressEvent(ev);
                     return;
@@ -1101,36 +1096,9 @@ void TList::portsPopupMenu(MusECore::Track* t, int x, int y)
                     
                     MusEGlobal::song->update();
                   }
-                  // Changed by T356. DELETETHIS 5
-                  //track->setOutPort(n);
-                  //MusEGlobal::audio->msgSetTrackOutPort(track, n);
-                  
-                  //MusEGlobal::song->update();
-                  if (t->type() == MusECore::Track::DRUM) {
-                        bool change = QMessageBox::question(this, tr("Update drummap?"),
-                                      tr("Do you want to use same port for all instruments in the drummap?"),
-                                      tr("&Yes"), tr("&No"), QString::null, 0, 1);
-                        MusEGlobal::audio->msgIdle(true);
-                        if (!change) 
-                        {
-                              // Delete all port controller events.
-                              MusEGlobal::song->changeAllPortDrumCtrlEvents(false);
-                              track->setOutPort(n);
-                  
-                              for (int i=0; i<DRUM_MAPSIZE; i++) //Remap all drum instruments to this port
-                                    MusEGlobal::drumMap[i].port = track->outPort();
-                              // Add all port controller events.
-                              MusEGlobal::song->changeAllPortDrumCtrlEvents(true);
-                        }
-                        else
-                        {
-                          track->setOutPortAndUpdate(n);
-                        }
-                        MusEGlobal::audio->msgIdle(false);
-                        MusEGlobal::audio->msgUpdateSoloStates();                   // (p4.0.14)  p4.0.17
-                        MusEGlobal::song->update();
-                  }
-                  else if (t->type() == MusECore::Track::AUDIO_SOFTSYNTH) 
+
+                  // Default to track port if -1 and track channel if -1. No need anymore to ask to change all items
+                  if (t->type() == MusECore::Track::AUDIO_SOFTSYNTH)
                   {
                     if(md != 0)
                     {
@@ -1149,8 +1117,8 @@ void TList::portsPopupMenu(MusECore::Track* t, int x, int y)
                     MusEGlobal::audio->msgIdle(true);
                     track->setOutPortAndUpdate(n);
                     MusEGlobal::audio->msgIdle(false);
-                    MusEGlobal::audio->msgUpdateSoloStates();                   // (p4.0.14) p4.0.17
-                    MusEGlobal::song->update(SC_MIDI_TRACK_PROP);               //
+                    MusEGlobal::audio->msgUpdateSoloStates();
+                    MusEGlobal::song->update(SC_MIDI_TRACK_PROP);
                   }
                   
                   // Prompt and send init sequences.
@@ -2074,9 +2042,6 @@ void TList::mousePressEvent(QMouseEvent* ev)
                       MusECore::MidiTrack* mt = dynamic_cast<MusECore::MidiTrack*>(t);
                       if (mt == 0)
                         break;
-                      if (mt->type() == MusECore::Track::DRUM)
-                        break;
-
                       int channel = mt->outChannel();
                       channel += delta;
                       if(channel >= MIDI_CHANNELS)
@@ -2085,25 +2050,11 @@ void TList::mousePressEvent(QMouseEvent* ev)
                         channel = 0;
                       if (channel != mt->outChannel()) 
                       {
-                            // Changed by T356.
                             MusEGlobal::audio->msgIdle(true);
                             mt->setOutChanAndUpdate(channel);
                             MusEGlobal::audio->msgIdle(false);
-                            
-                            // DELETETHIS 15?
-                            /* --- I really don't like this, you can mess up the whole map "as easy as dell"
-                            if (mt->type() == MusECore::MidiTrack::DRUM) {//Change channel on all drum instruments
-                                  for (int i=0; i<DRUM_MAPSIZE; i++)
-                                        MusEGlobal::drumMap[i].channel = channel;
-                                  }*/
-                            
-                            // may result in adding/removing mixer strip:
-                            //MusEGlobal::song->update(-1);
-                            //MusEGlobal::song->update(SC_CHANNELS);
-                            //MusEGlobal::song->update(SC_MIDI_TRACK_PROP);
-                            MusEGlobal::audio->msgUpdateSoloStates();                   // p4.0.14
-                            //MusEGlobal::song->update(SC_MIDI_TRACK_PROP | SC_ROUTE);  //
-                            MusEGlobal::song->update(SC_MIDI_TRACK_PROP);               //
+                            MusEGlobal::audio->msgUpdateSoloStates();
+                            MusEGlobal::song->update(SC_MIDI_TRACK_PROP);
                       }
                     }
                     else
@@ -2748,7 +2699,7 @@ void TList::classesPopupMenu(MusECore::Track* t, int x, int y)
       p.clear();
       p.addAction(QIcon(*addtrack_addmiditrackIcon), tr("Midi"))->setData(MusECore::Track::MIDI);
       p.addAction(QIcon(*addtrack_drumtrackIcon), tr("Drum"))->setData(MusECore::Track::DRUM);
-      p.addAction(QIcon(*addtrack_drumtrackIcon), tr("New style drum"))->setData(MusECore::Track::NEW_DRUM);
+      p.addAction(QIcon(*addtrack_newDrumtrackIcon), tr("New style drum"))->setData(MusECore::Track::NEW_DRUM);
       QAction* act = p.exec(mapToGlobal(QPoint(x, y)), 0);
 
       if (!act)
@@ -2769,11 +2720,7 @@ void TList::classesPopupMenu(MusECore::Track* t, int x, int y)
                         if(ev.type() == MusECore::Note)
                         {
                           int pitch = ev.pitch();
-                          // Changed by T356.
-                          // Tested: Notes were being mixed up switching back and forth between midi and drum.
-                          //pitch = MusEGlobal::drumMap[pitch].anote; DELETETHIS
                           pitch = MusEGlobal::drumMap[pitch].enote;
-                          
                           ev.setPitch(pitch);
                         }
                         else
@@ -2786,7 +2733,6 @@ void TList::classesPopupMenu(MusECore::Track* t, int x, int y)
                             // Change the controller event's index into the drum map to an instrument note.
                             ev.setA((ctl & ~0xff) | MusEGlobal::drumMap[ctl & 0x7f].enote);
                         }
-                          
                       }
                   }
             t->setType(MusECore::Track::TrackType(n));
@@ -2797,22 +2743,14 @@ void TList::classesPopupMenu(MusECore::Track* t, int x, int y)
             //
             //    Midi -> Drum
             //
-            bool change = QMessageBox::question(this, tr("Update drummap?"),
-                           tr("Do you want to use same port and channel for all instruments in the drummap?"),
-                           tr("&Yes"), tr("&No"), QString::null, 0, 1);
-            
+
+            // Default to track port if -1 and track channel if -1. No need anymore to ask to change all items.
+
             MusEGlobal::audio->msgIdle(true);
+
             // Delete all port controller events.
             MusEGlobal::song->changeAllPortDrumCtrlEvents(false);
             
-            if (!change) {
-                  MusECore::MidiTrack* m = (MusECore::MidiTrack*) t;
-                  for (int i=0; i<DRUM_MAPSIZE; i++) {
-                        MusEGlobal::drumMap[i].channel = m->outChannel();
-                        MusEGlobal::drumMap[i].port    = m->outPort();
-                        }
-                  }
-
             MusECore::PartList* pl = t->parts();
             MusECore::MidiTrack* m = (MusECore::MidiTrack*) t;
             for (MusECore::iPart ip = pl->begin(); ip != pl->end(); ++ip) {
@@ -2824,7 +2762,7 @@ void TList::classesPopupMenu(MusECore::Track* t, int x, int y)
                           int pitch = ev.pitch();
                           pitch = MusEGlobal::drumInmap[pitch];
                           ev.setPitch(pitch);
-                        }  
+                        }
                         else
                         {
                           if(ev.type() == MusECore::Controller)
@@ -2836,17 +2774,17 @@ void TList::classesPopupMenu(MusECore::Track* t, int x, int y)
                               // Change the controller event's instrument note to an index into the drum map.
                               ev.setA((ctl & ~0xff) | MusEGlobal::drumInmap[ctl & 0x7f]);
                           }
-                          
                         }
-                        
                       }
                   }
+
             t->setType(MusECore::Track::DRUM);
             
-            // Add all port controller events.
-            MusEGlobal::song->changeAllPortDrumCtrlEvents(true);
+             // Add all port controller events.
+             MusEGlobal::song->changeAllPortDrumCtrlEvents(true);
+            
             MusEGlobal::audio->msgIdle(false);
-            MusEGlobal::song->update(SC_EVENT_MODIFIED);
+            MusEGlobal::song->update(SC_EVENT_MODIFIED);   
             }
       else // MIDI -> NEW_DRUM or vice versa. added by flo.
       {
diff --git a/muse2/muse/conf.cpp b/muse2/muse/conf.cpp
index 0d92b239..b63437d2 100644
--- a/muse2/muse/conf.cpp
+++ b/muse2/muse/conf.cpp
@@ -754,9 +754,9 @@ void readConfiguration(Xml& xml, bool doReadMidiPortConfig, bool doReadGlobalCon
                               MusEGlobal::config.mixerBg = readColor(xml);
                         else if (tag == "midiTrackLabelBg")
                               MusEGlobal::config.midiTrackLabelBg = readColor(xml);
-                        else if (tag == "drumTrackLabelBg")
+                        else if (tag == "drumTrackLabelBg2")
                               MusEGlobal::config.drumTrackLabelBg = readColor(xml);
-                        else if (tag == "newDrumTrackLabelBg")
+                        else if (tag == "newDrumTrackLabelBg2")
                               MusEGlobal::config.newDrumTrackLabelBg = readColor(xml);
                         else if (tag == "waveTrackLabelBg")
                               MusEGlobal::config.waveTrackLabelBg = readColor(xml);
@@ -766,7 +766,7 @@ void readConfiguration(Xml& xml, bool doReadMidiPortConfig, bool doReadGlobalCon
                               MusEGlobal::config.inputTrackLabelBg = readColor(xml);
                         else if (tag == "groupTrackLabelBg")
                               MusEGlobal::config.groupTrackLabelBg = readColor(xml);
-                        else if (tag == "auxTrackLabelBg")
+                        else if (tag == "auxTrackLabelBg2")
                               MusEGlobal::config.auxTrackLabelBg = readColor(xml);
                         else if (tag == "synthTrackLabelBg")
                               MusEGlobal::config.synthTrackLabelBg = readColor(xml);
@@ -1334,13 +1334,13 @@ void MusE::writeGlobalConfiguration(int level, MusECore::Xml& xml) const
       
       xml.colorTag(level, "mixerBg",            MusEGlobal::config.mixerBg);
       xml.colorTag(level, "midiTrackLabelBg",   MusEGlobal::config.midiTrackLabelBg);
-      xml.colorTag(level, "drumTrackLabelBg",   MusEGlobal::config.drumTrackLabelBg);
-      xml.colorTag(level, "newDrumTrackLabelBg",MusEGlobal::config.newDrumTrackLabelBg);
+      xml.colorTag(level, "drumTrackLabelBg2",  MusEGlobal::config.drumTrackLabelBg);
+      xml.colorTag(level, "newDrumTrackLabelBg2",MusEGlobal::config.newDrumTrackLabelBg);
       xml.colorTag(level, "waveTrackLabelBg",   MusEGlobal::config.waveTrackLabelBg);
       xml.colorTag(level, "outputTrackLabelBg", MusEGlobal::config.outputTrackLabelBg);
       xml.colorTag(level, "inputTrackLabelBg",  MusEGlobal::config.inputTrackLabelBg);
       xml.colorTag(level, "groupTrackLabelBg",  MusEGlobal::config.groupTrackLabelBg);
-      xml.colorTag(level, "auxTrackLabelBg",    MusEGlobal::config.auxTrackLabelBg);
+      xml.colorTag(level, "auxTrackLabelBg2",   MusEGlobal::config.auxTrackLabelBg);
       xml.colorTag(level, "synthTrackLabelBg",  MusEGlobal::config.synthTrackLabelBg);
       
       xml.colorTag(level, "midiTrackBg",   MusEGlobal::config.midiTrackBg);
diff --git a/muse2/muse/ctrl/ctrlcanvas.cpp b/muse2/muse/ctrl/ctrlcanvas.cpp
index 0028d426..9c19cf8b 100644
--- a/muse2/muse/ctrl/ctrlcanvas.cpp
+++ b/muse2/muse/ctrl/ctrlcanvas.cpp
@@ -518,7 +518,11 @@ void CtrlCanvas::partControllers(const MusECore::MidiPart* part, int num, int* d
       if((mt->type() == MusECore::Track::DRUM))
       {
         n = (num & ~0xff) | MusEGlobal::drumMap[curDrumPitch].anote;  
-        mp = &MusEGlobal::midiPorts[MusEGlobal::drumMap[curDrumPitch].port];
+        // Default to track port if -1 and track channel if -1.
+        int mport = MusEGlobal::drumMap[curDrumPitch].port;
+        if(mport == -1)
+          mport = mt->outPort();
+        mp = &MusEGlobal::midiPorts[mport];
       }
       if(mt->type() == MusECore::Track::NEW_DRUM)
       {
@@ -619,10 +623,19 @@ void CtrlCanvas::updateItems()
                       {
                         if(curDrumPitch < 0)
                           continue;
+                        // Default to track port if -1 and track channel if -1.
                         int port = MusEGlobal::drumMap[ctl & 0x7f].port;
+                        if(port == -1)
+                          port = part->track()->outPort();
                         int chan = MusEGlobal::drumMap[ctl & 0x7f].channel;
+                        if(chan == -1)
+                          chan = part->track()->outChannel();
                         int cur_port = MusEGlobal::drumMap[curDrumPitch].port;
+                        if(cur_port == -1)
+                          cur_port = part->track()->outPort();
                         int cur_chan = MusEGlobal::drumMap[curDrumPitch].channel;
+                        if(cur_chan == -1)
+                          cur_chan = part->track()->outChannel();
                         if((port != cur_port) || (chan != cur_chan))
                           continue;
                         ctl = (ctl & ~0xff) | MusEGlobal::drumMap[ctl & 0x7f].anote;
@@ -1601,7 +1614,11 @@ void CtrlCanvas::pdrawItems(QPainter& p, const QRect& rect, const MusECore::Midi
     
     if(is_drum_ctl)
     {
-      mp = &MusEGlobal::midiPorts[MusEGlobal::drumMap[curDrumPitch].port]; 
+      // Default to track port if -1 and track channel if -1.
+      int mport = MusEGlobal::drumMap[curDrumPitch].port;
+      if(mport == -1)
+        mport = mt->outPort();
+      mp = &MusEGlobal::midiPorts[mport];
       cnum = (_cnum & ~0xff) | MusEGlobal::drumMap[curDrumPitch].anote;
     }
     else
@@ -1736,7 +1753,11 @@ void CtrlCanvas::pdrawExtraDrumCtrlItems(QPainter& p, const QRect& rect, const M
     
     if(is_drum_ctl)
     {
-      mp = &MusEGlobal::midiPorts[MusEGlobal::drumMap[curDrumPitch].port]; 
+      // Default to track port if -1 and track channel if -1.
+      int mport = MusEGlobal::drumMap[curDrumPitch].port;
+      if(mport == -1)
+        mport = mt->outPort();
+      mp = &MusEGlobal::midiPorts[mport];
       cnum = (_cnum & ~0xff) | MusEGlobal::drumMap[curDrumPitch].anote;
     }
     else
@@ -1892,11 +1913,17 @@ void CtrlCanvas::pdraw(QPainter& p, const QRect& rect)
       if(curPart && curPart->track() && curPart->track()->type() == MusECore::Track::DRUM && 
          curDrumPitch >= 0 && ((_cnum & 0xff) == 0xff))
       {
-        int port = MusEGlobal::drumMap[curDrumPitch].port; 
+        // Default to track port if -1 and track channel if -1.
+        int port = MusEGlobal::drumMap[curDrumPitch].port;
+        if(port == -1)
+          port = curPart->track()->outPort();
         int anote = MusEGlobal::drumMap[curDrumPitch].anote;
         for(int i = 0; i < DRUM_MAPSIZE; ++i)
         {
-          if(i != curDrumPitch && MusEGlobal::drumMap[i].port == port && MusEGlobal::drumMap[i].anote == anote)
+          int iport = MusEGlobal::drumMap[i].port;
+          if(iport == -1)
+            iport = curPart->track()->outPort();
+          if(i != curDrumPitch && iport == port && MusEGlobal::drumMap[i].anote == anote)
             pdrawExtraDrumCtrlItems(p, rect, curPart, anote);
         }
       }
diff --git a/muse2/muse/ctrl/ctrlpanel.cpp b/muse2/muse/ctrl/ctrlpanel.cpp
index 84d155ea..7856f51c 100644
--- a/muse2/muse/ctrl/ctrlpanel.cpp
+++ b/muse2/muse/ctrl/ctrlpanel.cpp
@@ -188,8 +188,13 @@ void CtrlPanel::heartBeat()
       int cdp = ctrlcanvas->getCurDrumPitch();
       if(_track->type() == MusECore::Track::DRUM && _ctrl->isPerNoteController() && cdp != -1)
       {
+        // Default to track port if -1 and track channel if -1.
         outport = MusEGlobal::drumMap[cdp].port;
+        if(outport == -1)
+          outport = _track->outPort();
         chan = MusEGlobal::drumMap[cdp].channel;
+        if(chan == -1)
+          chan = _track->outChannel();
       }  
       else  
       {
@@ -284,8 +289,13 @@ void CtrlPanel::labelDoubleClicked()
   int cdp = ctrlcanvas->getCurDrumPitch();
   if(_track->type() == MusECore::Track::DRUM && _ctrl->isPerNoteController() && cdp != -1)
   {
+    // Default to track port if -1 and track channel if -1.
     outport = MusEGlobal::drumMap[cdp].port;
+    if(outport == -1)
+      outport = _track->outPort();
     chan = MusEGlobal::drumMap[cdp].channel;
+    if(chan == -1)
+      chan = _track->outChannel();
   }  
   else  
   {
@@ -389,8 +399,13 @@ void CtrlPanel::ctrlChanged(double val)
       int cdp = ctrlcanvas->getCurDrumPitch();
       if(_track->type() == MusECore::Track::DRUM && _ctrl->isPerNoteController() && cdp != -1)
       {
+        // Default to track port if -1 and track channel if -1.
         outport = MusEGlobal::drumMap[cdp].port;
+        if(outport == -1)
+          outport = _track->outPort();
         chan = MusEGlobal::drumMap[cdp].channel;
+        if(chan == -1)
+          chan = _track->outChannel();
       }  
       else  
       {
@@ -465,8 +480,14 @@ void CtrlPanel::setHWController(MusECore::MidiTrack* t, MusECore::MidiController
   if(_track->type() == MusECore::Track::DRUM && _ctrl->isPerNoteController() && cdp != -1)
   {
     _dnum = (_dnum & ~0xff) | MusEGlobal::drumMap[cdp].anote;
-    mp = &MusEGlobal::midiPorts[MusEGlobal::drumMap[cdp].port];          
+    int mport = MusEGlobal::drumMap[cdp].port;
+    // Default to track port if -1 and track channel if -1.
+    if(mport == -1)   
+      mport = _track->outPort();
+    mp = &MusEGlobal::midiPorts[mport];
     ch = MusEGlobal::drumMap[cdp].channel;
+    if(ch == -1)
+      ch = _track->outChannel();
   }  
   else if((_track->type() == MusECore::Track::NEW_DRUM || _track->type() == MusECore::Track::MIDI) && _ctrl->isPerNoteController() && cdp != -1)
   {
diff --git a/muse2/muse/gconfig.cpp b/muse2/muse/gconfig.cpp
index ab743572..ac7c50a6 100644
--- a/muse2/muse/gconfig.cpp
+++ b/muse2/muse/gconfig.cpp
@@ -102,13 +102,13 @@ GlobalConfigValues config = {
       QColor(0x00, 0x00, 0x00),     // selected track Fg;
       
       QColor(74, 150, 194),         // midiTrackLabelBg;   // Med blue
-      QColor(74, 150, 194),         // drumTrackLabelBg;   // Med blue
-      QColor(74, 150, 194),         // newDrumTrackLabelBg;   // Med blue
+      QColor(150, 177, 189),        // drumTrackLabelBg;   // Pale pastel blue
+      QColor(116, 232, 242),        // newDrumTrackLabelBg; // Light blue
       QColor(213, 128, 202),        // waveTrackLabelBg;   // magenta
       QColor(84, 185, 58),          // outputTrackLabelBg; // green
       QColor(199, 75, 64),          // inputTrackLabelBg;  // red
       QColor(236, 214, 90),         // groupTrackLabelBg;  // yellow
-      QColor(161, 234, 242),        // auxTrackLabelBg;    // Light blue
+      QColor(142, 157, 6),          // auxTrackLabelBg;    // Med olive
       QColor(229, 157, 101),        // synthTrackLabelBg;  // Med orange
       
       QColor(215, 220, 230),     // midiTrackBg;
diff --git a/muse2/muse/helper.cpp b/muse2/muse/helper.cpp
index 0d9b74bd..2a6992fc 100644
--- a/muse2/muse/helper.cpp
+++ b/muse2/muse/helper.cpp
@@ -457,7 +457,7 @@ QActionGroup* populateAddTrack(QMenu* addTrack, bool populateAll, bool evenIgnor
 
         if (!evenIgnoreDrumPreference && (MusEGlobal::config.drumTrackPreference==MusEGlobal::PREFER_NEW || MusEGlobal::config.drumTrackPreference==MusEGlobal::ONLY_NEW))
         {
-          QAction* newdrum = addTrack->addAction(QIcon(*addtrack_drumtrackIcon),
+          QAction* newdrum = addTrack->addAction(QIcon(*addtrack_newDrumtrackIcon),
                                             qApp->translate("@default", QT_TRANSLATE_NOOP("@default", "Add Drum Track")));
           newdrum->setData(MusECore::Track::NEW_DRUM);
           grp->addAction(newdrum);
@@ -472,7 +472,7 @@ QActionGroup* populateAddTrack(QMenu* addTrack, bool populateAll, bool evenIgnor
         }
         if (evenIgnoreDrumPreference || MusEGlobal::config.drumTrackPreference==MusEGlobal::PREFER_OLD)
         {
-          QAction* newdrum = addTrack->addAction(QIcon(*addtrack_drumtrackIcon),
+          QAction* newdrum = addTrack->addAction(QIcon(*addtrack_newDrumtrackIcon),
                                             qApp->translate("@default", QT_TRANSLATE_NOOP("@default", "Add New Style Drum Track")));
           newdrum->setData(MusECore::Track::NEW_DRUM);
           grp->addAction(newdrum);
diff --git a/muse2/muse/icons.cpp b/muse2/muse/icons.cpp
index 9a36b11b..2c48bcab 100644
--- a/muse2/muse/icons.cpp
+++ b/muse2/muse/icons.cpp
@@ -220,12 +220,13 @@
 #include "xpm/velo_all.xpm"
 #include "xpm/velo_per_note.xpm"
 
-#include "xpm/addtrack_addmiditrack.xpm"
+#include "xpm/addtrack_addmiditrack_2.xpm"
 #include "xpm/addtrack_audiogroup.xpm"
 #include "xpm/addtrack_audioinput.xpm"
 #include "xpm/addtrack_audiooutput.xpm"
-#include "xpm/addtrack_auxsend.xpm"
-#include "xpm/addtrack_drumtrack.xpm"
+#include "xpm/addtrack_auxsend_2.xpm"
+#include "xpm/addtrack_old_drumtrack.xpm"
+#include "xpm/addtrack_drumtrack_2.xpm"
 #include "xpm/addtrack_wavetrack.xpm"
 #include "xpm/edit_drumms.xpm"
 #include "xpm/edit_list.xpm"
@@ -453,6 +454,7 @@ QPixmap* addtrack_audioinputIcon;
 QPixmap* addtrack_audiooutputIcon;
 QPixmap* addtrack_auxsendIcon;
 QPixmap* addtrack_drumtrackIcon;
+QPixmap* addtrack_newDrumtrackIcon;
 QPixmap* addtrack_wavetrackIcon;
 QPixmap* edit_drummsIcon;
 QPixmap* edit_listIcon;
@@ -700,12 +702,13 @@ void initIcons()
       veloPerNote_OnIcon   = new MPIXMAP(velo_per_note_xpm, NULL);
       veloPerNote_OffIcon  = new MPIXMAP(velo_all_xpm, NULL);
 
-      addtrack_addmiditrackIcon     = new MPIXMAP(addtrack_addmiditrack_xpm, NULL);
+      addtrack_addmiditrackIcon     = new MPIXMAP(addtrack_addmiditrack_2_xpm, NULL);
       addtrack_audiogroupIcon       = new MPIXMAP(addtrack_audiogroup_xpm, NULL);
       addtrack_audioinputIcon       = new MPIXMAP(addtrack_audioinput_xpm, NULL);
       addtrack_audiooutputIcon      = new MPIXMAP(addtrack_audiooutput_xpm, NULL);
-      addtrack_auxsendIcon          = new MPIXMAP(addtrack_auxsend_xpm, NULL);
-      addtrack_drumtrackIcon        = new MPIXMAP(addtrack_drumtrack_xpm, NULL);
+      addtrack_auxsendIcon          = new MPIXMAP(addtrack_auxsend_2_xpm, NULL);
+      addtrack_drumtrackIcon        = new MPIXMAP(addtrack_old_drumtrack_xpm, NULL);
+      addtrack_newDrumtrackIcon     = new MPIXMAP(addtrack_drumtrack_2_xpm, NULL);
       addtrack_wavetrackIcon        = new MPIXMAP(addtrack_wavetrack_xpm, NULL);
       edit_drummsIcon               = new MPIXMAP(edit_drumms_xpm, NULL);
       edit_listIcon                 = new MPIXMAP(edit_list_xpm, NULL);
@@ -948,6 +951,7 @@ void deleteIcons()
       delete addtrack_audiooutputIcon;      
       delete addtrack_auxsendIcon;          
       delete addtrack_drumtrackIcon;        
+      delete addtrack_newDrumtrackIcon;
       delete addtrack_wavetrackIcon;        
       delete edit_drummsIcon;               
       delete edit_listIcon;                 
diff --git a/muse2/muse/icons.h b/muse2/muse/icons.h
index 673392da..2bba40cd 100644
--- a/muse2/muse/icons.h
+++ b/muse2/muse/icons.h
@@ -209,6 +209,7 @@ extern QPixmap* addtrack_audioinputIcon;
 extern QPixmap* addtrack_audiooutputIcon;
 extern QPixmap* addtrack_auxsendIcon;
 extern QPixmap* addtrack_drumtrackIcon;
+extern QPixmap* addtrack_newDrumtrackIcon;
 extern QPixmap* addtrack_wavetrackIcon;
 extern QPixmap* edit_drummsIcon;
 extern QPixmap* edit_listIcon;
diff --git a/muse2/muse/liste/editevent.cpp b/muse2/muse/liste/editevent.cpp
index e75a7359..14bd0d8a 100644
--- a/muse2/muse/liste/editevent.cpp
+++ b/muse2/muse/liste/editevent.cpp
@@ -456,8 +456,11 @@ MusECore::Event EditCtrlDialog::event()
         {
           MusECore::DrumMap* dm = &MusEGlobal::drumMap[noteSpinBox->value() & 0x7f];
           num     = (cnum & ~0xff) | dm->anote;
-          port    = &MusEGlobal::midiPorts[dm->port];
-          channel = dm->channel;
+          // Default to track port if -1 and track channel if -1.
+          if(dm->port != -1)
+            port    = &MusEGlobal::midiPorts[dm->port];
+          if(dm->channel != -1)
+            channel = dm->channel;
         }
       }
 
diff --git a/muse2/muse/midi.cpp b/muse2/muse/midi.cpp
index 61053739..2751d562 100644
--- a/muse2/muse/midi.cpp
+++ b/muse2/muse/midi.cpp
@@ -679,8 +679,13 @@ void Audio::collectEvents(MusECore::MidiTrack* track, unsigned int cts, unsigned
                                     // Map drum-notes to the drum-map values
                                    int instr = ev.pitch();
                                    pitch     = MusEGlobal::drumMap[instr].anote;
+                                   // Default to track port if -1 and track channel if -1.
                                    port      = MusEGlobal::drumMap[instr].port; //This changes to non-default port
+                                   if(port == -1)
+                                     port = track->outPort();
                                    channel   = MusEGlobal::drumMap[instr].channel;
+                                   if(channel == -1)
+                                     channel = track->outChannel();
                                    velo      = int(double(velo) * (double(MusEGlobal::drumMap[instr].vol) / 100.0)) ;
                                    }
                               else if (track->type() != Track::NEW_DRUM) {
@@ -744,8 +749,13 @@ void Audio::collectEvents(MusECore::MidiTrack* track, unsigned int cts, unsigned
                                     int instr = ctl & 0x7f;
                                     ctl &=  ~0xff;
                                     int pitch = MusEGlobal::drumMap[instr].anote & 0x7f;
+                                    // Default to track port if -1 and track channel if -1.
                                     port      = MusEGlobal::drumMap[instr].port; //This changes to non-default port
+                                    if(port == -1)
+                                      port = track->outPort();
                                     channel   = MusEGlobal::drumMap[instr].channel;
+                                    if(channel == -1)
+                                      channel = track->outChannel();
                                     MidiDevice* mdAlt = MusEGlobal::midiPorts[port].device();
                                     if(mdAlt) 
                                     {
@@ -1044,11 +1054,15 @@ void Audio::processMidi()
                                             int pitch = event.dataA();
                                             //Map note that is played according to MusEGlobal::drumInmap
                                             drumRecPitch = MusEGlobal::drumMap[(unsigned int)MusEGlobal::drumInmap[pitch]].enote;
+                                            // Default to track port if -1 and track channel if -1.
                                             devport = MusEGlobal::drumMap[(unsigned int)MusEGlobal::drumInmap[pitch]].port;
+                                            if(devport == -1)
+                                              devport = track->outPort();
                                             event.setPort(devport);
-                                            channel = MusEGlobal::drumMap[(unsigned int)MusEGlobal::drumInmap[pitch]].channel;
+                                            int mapchan = MusEGlobal::drumMap[(unsigned int)MusEGlobal::drumInmap[pitch]].channel;
+                                            if(mapchan != -1)
+                                              event.setChannel(mapchan);
                                             event.setA(MusEGlobal::drumMap[(unsigned int)MusEGlobal::drumInmap[pitch]].anote);
-                                            event.setChannel(channel);
                                       }
                                       else if (track->type() == Track::NEW_DRUM)
                                       {
@@ -1100,11 +1114,15 @@ void Audio::processMidi()
                                       int dmindex = MusEGlobal::drumInmap[pitch] & 0x7f;
                                       //Map note that is played according to MusEGlobal::drumInmap
                                       drumRecPitch = MusEGlobal::drumMap[dmindex].enote;
+                                      // Default to track port if -1 and track channel if -1.
                                       devport = MusEGlobal::drumMap[dmindex].port;
+                                      if(devport == -1)
+                                        devport = track->outPort();
                                       event.setPort(devport);
-                                      channel = MusEGlobal::drumMap[dmindex].channel;
+                                      int mapchan = MusEGlobal::drumMap[dmindex].channel;
+                                      if(mapchan != -1)
+                                        event.setChannel(mapchan);
                                       event.setA(ctl | MusEGlobal::drumMap[dmindex].anote);
-                                      event.setChannel(channel);
                                     }  
                                   }
                                   else if (track->type() == Track::NEW_DRUM) //FINDMICHJETZT TEST
@@ -1197,10 +1215,9 @@ void Audio::processMidi()
                                             MusECore::MidiPlayEvent drumRecEvent = event;
                                             drumRecEvent.setA(drumRecPitch);
                                             drumRecEvent.setB(preVelo);
-                                            // Tested: Events were not being recorded for a drum map entry pointing to a 
-                                            //  different port. This must have been wrong - buildMidiEventList would ignore this. Tim.
+                                            // Changed to 'port'. Events were not being recorded for a drum map entry pointing to a
+                                            //  different port. That must have been wrong - buildMidiEventList would ignore that. Tim.
                                             drumRecEvent.setPort(port);  //rec-event to current port
-                                            
                                             drumRecEvent.setChannel(track->outChannel()); //rec-event to current channel
                                             rl->add(drumRecEvent);
                                         }    
diff --git a/muse2/muse/mididev.cpp b/muse2/muse/mididev.cpp
index 46db236a..8657991f 100644
--- a/muse2/muse/mididev.cpp
+++ b/muse2/muse/mididev.cpp
@@ -730,9 +730,16 @@ void MidiDevice::handleSeek()
         drum_found = true; 
         for(int i = 0; i < DRUM_MAPSIZE; ++i)
         {
-          if(MusEGlobal::drumMap[i].port != _port || usedChans[MusEGlobal::drumMap[i].channel])
+          // Default to track port if -1 and track channel if -1.
+          int mport = MusEGlobal::drumMap[i].port;
+          if(mport == -1)
+            mport = (*imt)->outPort();
+          int mchan = MusEGlobal::drumMap[i].channel;
+          if(mchan == -1)
+            mchan = (*imt)->outChannel();
+          if(mport != _port || usedChans[mchan])
             continue;
-          usedChans[MusEGlobal::drumMap[i].channel] = true;
+          usedChans[mchan] = true;
           ++usedChanCount;
           if(usedChanCount >= MIDI_CHANNELS)
             break;  // All are used, done searching.
diff --git a/muse2/muse/midiedit/dcanvas.cpp b/muse2/muse/midiedit/dcanvas.cpp
index 300f6927..7984d904 100644
--- a/muse2/muse/midiedit/dcanvas.cpp
+++ b/muse2/muse/midiedit/dcanvas.cpp
@@ -420,8 +420,23 @@ CItem* DrumCanvas::newItem(int tick, int instrument, int velocity)
     int port, channel;
     if(old_style_drummap_mode)
     {
+      // Default to track port if -1 and track channel if -1.
       port = ourDrumMap[instrument].port;
+      if(port == -1)
+      {
+        if(!curPart || !curPart->track() || !curPart->track()->isMidiTrack())
+          return 0;
+        MidiTrack* mt = static_cast<MidiTrack*>(curPart->track());
+        port = mt->outPort();
+      }
       channel = ourDrumMap[instrument].channel;
+      if(channel == -1)
+      {
+        if(!curPart || !curPart->track() || !curPart->track()->isMidiTrack())
+          return 0;
+        MidiTrack* mt = static_cast<MidiTrack*>(curPart->track());
+        channel = mt->outChannel();
+      }
     }
     else
     {
@@ -649,8 +664,23 @@ void DrumCanvas::drawMoving(QPainter& p, const CItem* item, const QRect& rect)
       if (pitch != playedPitch && _playEvents) {
             keyReleased(playedPitch, true); // kinda backwards but this should pick the right port, stopPlayEvent does not know.
             if (moving.size() == 1) {
+                // Default to track port if -1 and track channel if -1.
                 int port = old_style_drummap_mode ? ourDrumMap[instrument].port : dynamic_cast<MidiTrack*>(*instrument_map[instrument].tracks.begin())->outPort();
+                if(port == -1)
+                {
+                  if(!curPart || !curPart->track() || !curPart->track()->isMidiTrack())
+                    return;
+                  MidiTrack* mt = static_cast<MidiTrack*>(curPart->track());
+                  port = mt->outPort();
+                }
                 int channel = old_style_drummap_mode ? ourDrumMap[instrument].channel : dynamic_cast<MidiTrack*>(*instrument_map[instrument].tracks.begin())->outChannel();
+                if(channel == -1)
+                {
+                  if(!curPart || !curPart->track() || !curPart->track()->isMidiTrack())
+                    return;
+                  MidiTrack* mt = static_cast<MidiTrack*>(curPart->track());
+                  channel = mt->outChannel();
+                }
                 startPlayEvent(pitch, e.velo(), port, channel);
                 }
             }
@@ -930,8 +960,23 @@ void DrumCanvas::keyPressed(int index, int velocity)
         return;
       
       // called from DList - play event
+      // Default to track port if -1 and track channel if -1.
       int port = old_style_drummap_mode ? ourDrumMap[index].port : dynamic_cast<MidiTrack*>(*instrument_map[index].tracks.begin())->outPort();
+      if(port == -1)
+      {
+        if(!curPart || !curPart->track() || !curPart->track()->isMidiTrack())
+          return;
+        MidiTrack* mt = static_cast<MidiTrack*>(curPart->track());
+        port = mt->outPort();
+      }
       int channel = old_style_drummap_mode ? ourDrumMap[index].channel : dynamic_cast<MidiTrack*>(*instrument_map[index].tracks.begin())->outChannel();
+      if(channel == -1)
+      {
+        if(!curPart || !curPart->track() || !curPart->track()->isMidiTrack())
+          return;
+        MidiTrack* mt = static_cast<MidiTrack*>(curPart->track());
+        channel = mt->outChannel();
+      }
       int pitch = old_style_drummap_mode ? ourDrumMap[index].anote : instrument_map[index].pitch;
       // play note:
       if(_playEvents)
@@ -966,8 +1011,23 @@ void DrumCanvas::keyReleased(int index, bool)
         return;
       
       // called from DList - silence playing event
+      // Default to track port if -1 and track channel if -1.
       int port = old_style_drummap_mode ? ourDrumMap[index].port : dynamic_cast<MidiTrack*>(*instrument_map[index].tracks.begin())->outPort();
+      if(port == -1)
+      {
+        if(!curPart || !curPart->track() || !curPart->track()->isMidiTrack())
+          return;
+        MidiTrack* mt = static_cast<MidiTrack*>(curPart->track());
+        port = mt->outPort();
+      }
       int channel = old_style_drummap_mode ? ourDrumMap[index].channel : dynamic_cast<MidiTrack*>(*instrument_map[index].tracks.begin())->outChannel();
+      if(channel == -1)
+      {
+        if(!curPart || !curPart->track() || !curPart->track()->isMidiTrack())
+          return;
+        MidiTrack* mt = static_cast<MidiTrack*>(curPart->track());
+        channel = mt->outChannel();
+      }
       int pitch = old_style_drummap_mode ? ourDrumMap[index].anote : instrument_map[index].pitch;
 
       // release note:
diff --git a/muse2/muse/midiedit/dlist.cpp b/muse2/muse/midiedit/dlist.cpp
index de89834f..a8555cc9 100644
--- a/muse2/muse/midiedit/dlist.cpp
+++ b/muse2/muse/midiedit/dlist.cpp
@@ -30,6 +30,7 @@
 #include <stdio.h>
 
 #include "globals.h"
+#include "globaldefs.h"
 #include "app.h"
 #include "audio.h"
 #include "pitchedit.h"
@@ -178,8 +179,14 @@ void DList::draw(QPainter& p, const QRect& rect)
 
                                     if(old_style_drummap_mode)
                                     {
-                                      int channel              = dm->channel;
-                                      MusECore::MidiPort* mp = &MusEGlobal::midiPorts[dm->port];
+                                      // Default to track port if -1 and track channel if -1.
+                                      int channel = dm->channel;
+                                      if(channel == -1)
+                                        channel = cur_channel;
+                                      int mport = dm->port;
+                                      if(mport == -1)
+                                        mport = cur_track->outPort();
+                                      MusECore::MidiPort* mp = &MusEGlobal::midiPorts[mport];
                                       int instr_pitch = dm->anote;
                                       MusECore::MidiCtrlValListList* cll = mp->controller();
                                       const int min = channel << 24;
@@ -351,11 +358,15 @@ void DList::draw(QPainter& p, const QRect& rect)
                                 p.drawText(r.x() + 8, r.y(), r.width() - 8, r.height(), align, str);
                               }
                               break;
+                              
+                        // Default to track port if -1 and track channel if -1.
                         case COL_OUTCHANNEL:
-                              s.setNum(dm->channel+1);
+                              if(dm->channel != -1)
+                                s.setNum(dm->channel+1);
                               break;
                         case COL_OUTPORT:
-                              s.sprintf("%d:%s", dm->port+1, MusEGlobal::midiPorts[dm->port].portname().toLatin1().constData());
+                              if(dm->port != -1)
+                                s.sprintf("%d:%s", dm->port+1, MusEGlobal::midiPorts[dm->port].portname().toLatin1().constData());
                               align = Qt::AlignVCenter | Qt::AlignLeft;
                               break;
                         }
@@ -411,7 +422,7 @@ void DList::devicesPopupMenu(MusECore::DrumMap* t, int x, int y, bool changeAll)
         return;
       }
       
-      QMenu* p = MusECore::midiPortsPopup(this, t->port);
+      QMenu* p = MusECore::midiPortsPopup(this, t->port, true);  // Include a "<Default>" entry.
       QAction* act = p->exec(mapToGlobal(QPoint(x, y)), 0);
       bool doemit = false;
       if(!act)
@@ -423,23 +434,41 @@ void DList::devicesPopupMenu(MusECore::DrumMap* t, int x, int y, bool changeAll)
       int n = act->data().toInt();
       delete p;
 
-      if(n < 0)              // Invalid item.
+      const int openConfigId = MIDI_PORTS;
+      const int defaultId    = MIDI_PORTS + 1;
+
+      if(n < 0 || n > defaultId)     // Invalid item.
         return;
-      
-      if(n >= MIDI_PORTS)    // Show port config dialog.
+
+      if(n == openConfigId)    // Show port config dialog.
       {
         MusEGlobal::muse->configMidiPorts();
         return;
       }
-                  
+
+      if(n == defaultId)   // Means the <default> -1
+        n = -1;
+      
       if (!changeAll)
       {
           if(n != t->port)
           {
+            int mport = n;
+            // Default to track port if -1 and track channel if -1.
+            if(mport == -1)
+            {
+              if(!dcanvas || !dcanvas->part())
+                return;
+              MusECore::Part* cur_part = dcanvas->part();
+              if(!cur_part->track() || !cur_part->track()->isMidiTrack())
+                return;
+              MusECore::MidiTrack* cur_track = static_cast<MusECore::MidiTrack*>(cur_part->track());
+              mport = cur_track->outPort();
+            }
             MusEGlobal::audio->msgIdle(true);
-            MusEGlobal::song->remapPortDrumCtrlEvents(getSelectedInstrument(), -1, -1, n);
+            MusEGlobal::song->remapPortDrumCtrlEvents(getSelectedInstrument(), -1, -1, mport);
             MusEGlobal::audio->msgIdle(false);
-            t->port = n;
+            t->port = n;      // -1 is allowed
             doemit = true;
           }  
       }      
@@ -631,8 +660,9 @@ void DList::viewMousePressEvent(QMouseEvent* ev)
                   break;
             case COL_OUTCHANNEL: // this column isn't visible in new style drum mode
                   val = dm->channel + incVal;
-                  if (val < 0)
-                        val = 0;
+                  // Default to track port if -1 and track channel if -1.
+                  if (val < -1)
+                        val = -1;
                   else if (val > 127)
                         val = 127;
                   
@@ -653,7 +683,11 @@ void DList::viewMousePressEvent(QMouseEvent* ev)
                       if(val != dm->channel)
                       {
                         MusEGlobal::audio->msgIdle(true);
-                        MusEGlobal::song->remapPortDrumCtrlEvents(instrument, -1, val, -1);
+                        int mchan = val;
+                        if(mchan == -1 && dcanvas && dcanvas->part() && dcanvas->part()->track() && dcanvas->part()->track()->isMidiTrack())
+                          mchan = static_cast<MusECore::MidiTrack*>(dcanvas->part()->track())->outChannel();
+                        if(val != -1)
+                          MusEGlobal::song->remapPortDrumCtrlEvents(instrument, -1, val, -1);
                         MusEGlobal::audio->msgIdle(false);
                         dm->channel = val;
                         MusEGlobal::song->update(SC_DRUMMAP);
@@ -836,7 +870,9 @@ void DList::lineEdit(int line, int section)
                   break;
 
                   case COL_OUTCHANNEL:
-                  editor->setText(QString::number(dm->channel+1));
+                  // Default to track port if -1 and track channel if -1.
+                  if(dm->channel != -1)  
+                    editor->setText(QString::number(dm->channel+1));
                   break;
             }
 
@@ -970,11 +1006,13 @@ void DList::returnPressed()
                   break;
                   
               case COL_OUTCHANNEL:
-                  val--;
-                  if (val >= 16)
-                  val = 15;
-                  if (val < 0)
-                  val = 0;
+                  // Default to track port if -1 and track channel if -1.
+                  if(val <= 0)
+                    val = -1;
+                  else
+                    val--;
+                  if (val >= MIDI_CHANNELS)
+                    val = MIDI_CHANNELS - 1;
                   break;
                   
               default: break;
@@ -1016,7 +1054,7 @@ void DList::returnPressed()
                   break;
 
             case COL_OUTCHANNEL:
-                  editEntry->channel = val;
+                    editEntry->channel = val;
                   break;
 
             default:
diff --git a/muse2/muse/midiedit/drumedit.cpp b/muse2/muse/midiedit/drumedit.cpp
index c64641e9..fd28d8ea 100644
--- a/muse2/muse/midiedit/drumedit.cpp
+++ b/muse2/muse/midiedit/drumedit.cpp
@@ -96,8 +96,8 @@ void DrumEdit::setHeaderWhatsThis()
       header->setWhatsThis(COL_INPUTTRIGGER, tr("this input note triggers the sound"));
       header->setWhatsThis(COL_NOTELENGTH, tr("note length"));
       header->setWhatsThis(COL_NOTE, tr("this is the note which is played"));
-      header->setWhatsThis(COL_OUTCHANNEL, tr("output channel (hold ctl to affect all rows)"));
-      header->setWhatsThis(COL_OUTPORT, tr("output port (hold ctl to affect all rows)"));
+      header->setWhatsThis(COL_OUTCHANNEL, tr("override track output channel (hold ctl to affect all rows)"));
+      header->setWhatsThis(COL_OUTPORT, tr("override track output port (hold ctl to affect all rows)"));
       header->setWhatsThis(COL_LEVEL1, tr("shift + control key: draw velocity level 1"));
       header->setWhatsThis(COL_LEVEL2, tr("control key: draw velocity level 2"));
       header->setWhatsThis(COL_LEVEL3, tr("shift key: draw velocity level 3"));
@@ -118,8 +118,8 @@ void DrumEdit::setHeaderToolTips()
       header->setToolTip(COL_INPUTTRIGGER, tr("this input note triggers the sound"));
       header->setToolTip(COL_NOTELENGTH, tr("note length"));
       header->setToolTip(COL_NOTE, tr("this is the note which is played"));
-      header->setToolTip(COL_OUTCHANNEL, tr("output channel (ctl: affect all rows)"));
-      header->setToolTip(COL_OUTPORT, tr("output port (ctl: affect all rows)"));
+      header->setToolTip(COL_OUTCHANNEL, tr("override track output channel (ctl: affect all rows)"));
+      header->setToolTip(COL_OUTPORT, tr("override track output port (ctl: affect all rows)"));
       header->setToolTip(COL_LEVEL1, tr("shift + control key: draw velocity level 1"));
       header->setToolTip(COL_LEVEL2, tr("control key: draw velocity level 2"));
       header->setToolTip(COL_LEVEL3, tr("shift key: draw velocity level 3"));
diff --git a/muse2/muse/midiedit/drummap.cpp b/muse2/muse/midiedit/drummap.cpp
index 477b2f9d..6853a3e5 100644
--- a/muse2/muse/midiedit/drummap.cpp
+++ b/muse2/muse/midiedit/drummap.cpp
@@ -41,7 +41,8 @@ namespace MusECore {
 //    GM default drum map
 //---------------------------------------------------------
 
-const DrumMap blankdm = { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 127, 127, false };
+// Default to track port if -1 and track channel if -1.  (These used to say 9, 0 for chan, port).
+const DrumMap blankdm = { QString(""), 100, 16, 32, -1, -1, 70, 90, 127, 110, 127, 127, false };
 
 // this map should have 128 entries, as it's used for initalising iNewDrumMap as well.
 // iNewDrumMap only has 128 entries. also, the every "out-note" ("anote") should be
@@ -51,141 +52,141 @@ const DrumMap blankdm = { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 127,
 //         iNewDrumMap[ idrumMap[i].anote ] = idrumMap[i]
 // if you ever want to change this, you will need to fix the initNewDrumMap() function.
 const DrumMap idrumMap[DRUM_MAPSIZE] = {
-      { QString("Acoustic Bass Drum"), 100, 16, 32, 9, 0, 70, 90, 127, 110, 35, 35, false },
-      { QString("Bass Drum 1"),        100, 16, 32, 9, 0, 70, 90, 127, 110, 36, 36, false },
-      { QString("Side Stick"),         100, 16, 32, 9, 0, 70, 90, 127, 110, 37, 37, false },
-      { QString("Acoustic Snare"),     100, 16, 32, 9, 0, 70, 90, 127, 110, 38, 38, false },
-      { QString("Hand Clap"),          100, 16, 32, 9, 0, 70, 90, 127, 110, 39, 39, false },
-      { QString("Electric Snare"),     100, 16, 32, 9, 0, 70, 90, 127, 110, 40, 40, false },
-      { QString("Low Floor Tom"),      100, 16, 32, 9, 0, 70, 90, 127, 110, 41, 41, false },
-      { QString("Closed Hi-Hat"),      100, 16, 32, 9, 0, 70, 90, 127, 110, 42, 42, false },
-      { QString("High Floor Tom"),     100, 16, 32, 9, 0, 70, 90, 127, 110, 43, 43, false },
-      { QString("Pedal Hi-Hat"),       100, 16, 32, 9, 0, 70, 90, 127, 110, 44, 44, false },
-      { QString("Low Tom"),            100, 16, 32, 9, 0, 70, 90, 127, 110, 45, 45, false },
-      { QString("Open Hi-Hat"),        100, 16, 32, 9, 0, 70, 90, 127, 110, 46, 46, false },
-      { QString("Low-Mid Tom"),        100, 16, 32, 9, 0, 70, 90, 127, 110, 47, 47, false },
-      { QString("Hi-Mid Tom"),         100, 16, 32, 9, 0, 70, 90, 127, 110, 48, 48, false },
-      { QString("Crash Cymbal 1"),     100, 16, 32, 9, 0, 70, 90, 127, 110, 49, 49, false },
-      { QString("High Tom"),           100, 16, 32, 9, 0, 70, 90, 127, 110, 50, 50, false },
-
-      { QString("Ride Cymbal 1"),      100, 16, 32, 9, 0, 70, 90, 127, 110, 51, 51, false },
-      { QString("Chinese Cymbal"),     100, 16, 32, 9, 0, 70, 90, 127, 110, 52, 52, false },
-      { QString("Ride Bell"),          100, 16, 32, 9, 0, 70, 90, 127, 110, 53, 53, false },
-      { QString("Tambourine"),         100, 16, 32, 9, 0, 70, 90, 127, 110, 54, 54, false },
-      { QString("Splash Cymbal"),      100, 16, 32, 9, 0, 70, 90, 127, 110, 55, 55, false },
-      { QString("Cowbell"),            100, 16, 32, 9, 0, 70, 90, 127, 110, 56, 56, false },
-      { QString("Crash Cymbal 2"),     100, 16, 32, 9, 0, 70, 90, 127, 110, 57, 57, false },
-      { QString("Vibraslap"),          100, 16, 32, 9, 0, 70, 90, 127, 110, 58, 58, false },
-      { QString("Ride Cymbal 2"),      100, 16, 32, 9, 0, 70, 90, 127, 110, 59, 59, false },
-      { QString("Hi Bongo"),           100, 16, 32, 9, 0, 70, 90, 127, 110, 60, 60, false },
-      { QString("Low Bongo"),          100, 16, 32, 9, 0, 70, 90, 127, 110, 61, 61, false },
-      { QString("Mute Hi Conga"),      100, 16, 32, 9, 0, 70, 90, 127, 110, 62, 62, false },
-      { QString("Open Hi Conga"),      100, 16, 32, 9, 0, 70, 90, 127, 110, 63, 63, false },
-      { QString("Low Conga"),          100, 16, 32, 9, 0, 70, 90, 127, 110, 64, 64, false },
-      { QString("High Timbale"),       100, 16, 32, 9, 0, 70, 90, 127, 110, 65, 65, false },
-      { QString("Low Timbale"),        100, 16, 32, 9, 0, 70, 90, 127, 110, 66, 66, false },
-
-      { QString("High Agogo"),         100, 16, 32, 9, 0, 70, 90, 127, 110, 67, 67, false },
-      { QString("Low Agogo"),          100, 16, 32, 9, 0, 70, 90, 127, 110, 68, 68, false },
-      { QString("Cabasa"),             100, 16, 32, 9, 0, 70, 90, 127, 110, 69, 69, false },
-      { QString("Maracas"),            100, 16, 32, 9, 0, 70, 90, 127, 110, 70, 70, false },
-      { QString("Short Whistle"),      100, 16, 32, 9, 0, 70, 90, 127, 110, 71, 71, false },
-      { QString("Long Whistle"),       100, 16, 32, 9, 0, 70, 90, 127, 110, 72, 72, false },
-      { QString("Short Guiro"),        100, 16, 32, 9, 0, 70, 90, 127, 110, 73, 73, false },
-      { QString("Long Guiro"),         100, 16, 32, 9, 0, 70, 90, 127, 110, 74, 74, false },
-      { QString("Claves"),             100, 16, 32, 9, 0, 70, 90, 127, 110, 75, 75, false },
-      { QString("Hi Wood Block"),      100, 16, 32, 9, 0, 70, 90, 127, 110, 76, 76, false },
-      { QString("Low Wood Block"),     100, 16, 32, 9, 0, 70, 90, 127, 110, 77, 77, false },
-      { QString("Mute Cuica"),         100, 16, 32, 9, 0, 70, 90, 127, 110, 78, 78, false },
-      { QString("Open Cuica"),         100, 16, 32, 9, 0, 70, 90, 127, 110, 79, 79, false },
-      { QString("Mute Triangle"),      100, 16, 32, 9, 0, 70, 90, 127, 110, 80, 80, false },
-      { QString("Open Triangle"),      100, 16, 32, 9, 0, 70, 90, 127, 110, 81, 81, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 82, 82, false },
-
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 83, 83, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 84, 84, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 85, 85, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 86, 86, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 87, 87, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 88, 88, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 89, 89, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 90, 90, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 91, 91, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 92, 92, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 93, 93, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 94, 94, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 95, 95, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 96, 96, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 97, 97, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 98, 98, false },
-
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 99, 99, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 100, 100, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 101, 101, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 102, 102, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 103, 103, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 104, 104, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 105, 105, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 106, 106, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 107, 107, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 108, 108, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 109, 109, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 110, 110, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 111, 111, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 112, 112, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 113, 113, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 114, 114, false },
-
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 115, 115, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 116, 116, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 117, 117, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 118, 118, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 119, 119, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 120, 120, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 121, 121, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 122, 122, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 123, 123, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 124, 124, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 125, 125, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 126, 126, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 127, 127, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 0, 0, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 1, 1, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 2, 2, false },
-
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 3, 3, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 4, 4, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 5, 5, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 6, 6, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 7, 7, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 8, 8, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 9, 9, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 10, 10, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 11, 11, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 12, 12, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 13, 13, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 14, 14, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 15, 15, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 16, 16, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 17, 17, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 18, 18, false },
-
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 19, 19, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 20, 20, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 21, 21, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 22, 22, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 23, 23, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 24, 24, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 25, 25, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 26, 26, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 27, 27, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 28, 28, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 29, 29, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 30, 30, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 31, 31, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 32, 32, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 33, 33, false },
-      { QString(""),                   100, 16, 32, 9, 0, 70, 90, 127, 110, 34, 34, false }
+      { QString("Acoustic Bass Drum"), 100, 16, 32, -1, -1, 70, 90, 127, 110, 35, 35, false },
+      { QString("Bass Drum 1"),        100, 16, 32, -1, -1, 70, 90, 127, 110, 36, 36, false },
+      { QString("Side Stick"),         100, 16, 32, -1, -1, 70, 90, 127, 110, 37, 37, false },
+      { QString("Acoustic Snare"),     100, 16, 32, -1, -1, 70, 90, 127, 110, 38, 38, false },
+      { QString("Hand Clap"),          100, 16, 32, -1, -1, 70, 90, 127, 110, 39, 39, false },
+      { QString("Electric Snare"),     100, 16, 32, -1, -1, 70, 90, 127, 110, 40, 40, false },
+      { QString("Low Floor Tom"),      100, 16, 32, -1, -1, 70, 90, 127, 110, 41, 41, false },
+      { QString("Closed Hi-Hat"),      100, 16, 32, -1, -1, 70, 90, 127, 110, 42, 42, false },
+      { QString("High Floor Tom"),     100, 16, 32, -1, -1, 70, 90, 127, 110, 43, 43, false },
+      { QString("Pedal Hi-Hat"),       100, 16, 32, -1, -1, 70, 90, 127, 110, 44, 44, false },
+      { QString("Low Tom"),            100, 16, 32, -1, -1, 70, 90, 127, 110, 45, 45, false },
+      { QString("Open Hi-Hat"),        100, 16, 32, -1, -1, 70, 90, 127, 110, 46, 46, false },
+      { QString("Low-Mid Tom"),        100, 16, 32, -1, -1, 70, 90, 127, 110, 47, 47, false },
+      { QString("Hi-Mid Tom"),         100, 16, 32, -1, -1, 70, 90, 127, 110, 48, 48, false },
+      { QString("Crash Cymbal 1"),     100, 16, 32, -1, -1, 70, 90, 127, 110, 49, 49, false },
+      { QString("High Tom"),           100, 16, 32, -1, -1, 70, 90, 127, 110, 50, 50, false },
+
+      { QString("Ride Cymbal 1"),      100, 16, 32, -1, -1, 70, 90, 127, 110, 51, 51, false },
+      { QString("Chinese Cymbal"),     100, 16, 32, -1, -1, 70, 90, 127, 110, 52, 52, false },
+      { QString("Ride Bell"),          100, 16, 32, -1, -1, 70, 90, 127, 110, 53, 53, false },
+      { QString("Tambourine"),         100, 16, 32, -1, -1, 70, 90, 127, 110, 54, 54, false },
+      { QString("Splash Cymbal"),      100, 16, 32, -1, -1, 70, 90, 127, 110, 55, 55, false },
+      { QString("Cowbell"),            100, 16, 32, -1, -1, 70, 90, 127, 110, 56, 56, false },
+      { QString("Crash Cymbal 2"),     100, 16, 32, -1, -1, 70, 90, 127, 110, 57, 57, false },
+      { QString("Vibraslap"),          100, 16, 32, -1, -1, 70, 90, 127, 110, 58, 58, false },
+      { QString("Ride Cymbal 2"),      100, 16, 32, -1, -1, 70, 90, 127, 110, 59, 59, false },
+      { QString("Hi Bongo"),           100, 16, 32, -1, -1, 70, 90, 127, 110, 60, 60, false },
+      { QString("Low Bongo"),          100, 16, 32, -1, -1, 70, 90, 127, 110, 61, 61, false },
+      { QString("Mute Hi Conga"),      100, 16, 32, -1, -1, 70, 90, 127, 110, 62, 62, false },
+      { QString("Open Hi Conga"),      100, 16, 32, -1, -1, 70, 90, 127, 110, 63, 63, false },
+      { QString("Low Conga"),          100, 16, 32, -1, -1, 70, 90, 127, 110, 64, 64, false },
+      { QString("High Timbale"),       100, 16, 32, -1, -1, 70, 90, 127, 110, 65, 65, false },
+      { QString("Low Timbale"),        100, 16, 32, -1, -1, 70, 90, 127, 110, 66, 66, false },
+
+      { QString("High Agogo"),         100, 16, 32, -1, -1, 70, 90, 127, 110, 67, 67, false },
+      { QString("Low Agogo"),          100, 16, 32, -1, -1, 70, 90, 127, 110, 68, 68, false },
+      { QString("Cabasa"),             100, 16, 32, -1, -1, 70, 90, 127, 110, 69, 69, false },
+      { QString("Maracas"),            100, 16, 32, -1, -1, 70, 90, 127, 110, 70, 70, false },
+      { QString("Short Whistle"),      100, 16, 32, -1, -1, 70, 90, 127, 110, 71, 71, false },
+      { QString("Long Whistle"),       100, 16, 32, -1, -1, 70, 90, 127, 110, 72, 72, false },
+      { QString("Short Guiro"),        100, 16, 32, -1, -1, 70, 90, 127, 110, 73, 73, false },
+      { QString("Long Guiro"),         100, 16, 32, -1, -1, 70, 90, 127, 110, 74, 74, false },
+      { QString("Claves"),             100, 16, 32, -1, -1, 70, 90, 127, 110, 75, 75, false },
+      { QString("Hi Wood Block"),      100, 16, 32, -1, -1, 70, 90, 127, 110, 76, 76, false },
+      { QString("Low Wood Block"),     100, 16, 32, -1, -1, 70, 90, 127, 110, 77, 77, false },
+      { QString("Mute Cuica"),         100, 16, 32, -1, -1, 70, 90, 127, 110, 78, 78, false },
+      { QString("Open Cuica"),         100, 16, 32, -1, -1, 70, 90, 127, 110, 79, 79, false },
+      { QString("Mute Triangle"),      100, 16, 32, -1, -1, 70, 90, 127, 110, 80, 80, false },
+      { QString("Open Triangle"),      100, 16, 32, -1, -1, 70, 90, 127, 110, 81, 81, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 82, 82, false },
+
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 83, 83, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 84, 84, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 85, 85, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 86, 86, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 87, 87, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 88, 88, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 89, 89, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 90, 90, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 91, 91, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 92, 92, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 93, 93, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 94, 94, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 95, 95, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 96, 96, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 97, 97, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 98, 98, false },
+
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 99, 99, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 100, 100, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 101, 101, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 102, 102, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 103, 103, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 104, 104, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 105, 105, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 106, 106, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 107, 107, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 108, 108, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 109, 109, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 110, 110, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 111, 111, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 112, 112, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 113, 113, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 114, 114, false },
+
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 115, 115, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 116, 116, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 117, 117, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 118, 118, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 119, 119, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 120, 120, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 121, 121, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 122, 122, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 123, 123, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 124, 124, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 125, 125, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 126, 126, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 127, 127, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 0, 0, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 1, 1, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 2, 2, false },
+
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 3, 3, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 4, 4, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 5, 5, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 6, 6, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 7, 7, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 8, 8, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 9, 9, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 10, 10, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 11, 11, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 12, 12, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 13, 13, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 14, 14, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 15, 15, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 16, 16, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 17, 17, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 18, 18, false },
+
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 19, 19, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 20, 20, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 21, 21, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 22, 22, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 23, 23, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 24, 24, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 25, 25, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 26, 26, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 27, 27, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 28, 28, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 29, 29, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 30, 30, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 31, 31, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 32, 32, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 33, 33, false },
+      { QString(""),                   100, 16, 32, -1, -1, 70, 90, 127, 110, 34, 34, false }
       };
       
 DrumMap iNewDrumMap[128];
@@ -237,7 +238,18 @@ void initNewDrumMap()
   }
 }
 
+//---------------------------------------------------------
+//   clearDrumMap
+//    One-time only early init
+//---------------------------------------------------------
 
+void clearDrumMap()
+      {
+      for (int i = 0; i < DRUM_MAPSIZE; ++i) {
+            DrumMap& d = MusEGlobal::drumMap[i];
+            d.vol = d.len = d.channel = d.port = d.lv1 = d.lv2 = d.lv3 = d.lv4 = d.enote = d.anote = d.mute = 0;
+         }
+      }
 //---------------------------------------------------------
 //   initDrumMap
 //    populate Inmap and Outmap
@@ -246,7 +258,7 @@ void initNewDrumMap()
 void initDrumMap()
       {
       for (int i = 0; i < DRUM_MAPSIZE; ++i) {
-            DrumMap d = MusEGlobal::drumMap[i];
+            DrumMap& d = MusEGlobal::drumMap[i];
             //Make sure we're not overwriting any values loaded
             //On init, all these values are zero. If so, just set the drummap entry to the initial drummap entry.
             if (!(d.vol || d.len || d.channel || d.port || d.lv1 || d.lv2 || d.lv3 || d.lv4 || d.enote || d.anote || d.mute))
diff --git a/muse2/muse/midiedit/drummap.h b/muse2/muse/midiedit/drummap.h
index 2dca10d6..f8633b2f 100644
--- a/muse2/muse/midiedit/drummap.h
+++ b/muse2/muse/midiedit/drummap.h
@@ -40,8 +40,11 @@ struct DrumMap {
       unsigned char vol;            // playback volume, percent.
       int quant;
       int len;                      // len of event in ticks
+
+      // Default to track port if -1 and track channel if -1.
       int channel;                  // midi channel
       int port;                     // midi port
+
       char lv1, lv2, lv3, lv4;      // velocities
       char enote, anote;            // input note - output note
       bool mute;
@@ -57,6 +60,7 @@ struct DrumMap {
 extern DrumMap iNewDrumMap[128];
 extern void initNewDrumMap();
 
+extern void clearDrumMap();  // One-time only early init
 extern void initDrumMap();
 extern void writeDrumMap(int level, Xml& xml, bool external);
 extern void readDrumMap(Xml& xml, bool external);
diff --git a/muse2/muse/midiport.cpp b/muse2/muse/midiport.cpp
index e4759d31..758f577b 100644
--- a/muse2/muse/midiport.cpp
+++ b/muse2/muse/midiport.cpp
@@ -261,9 +261,16 @@ bool MidiPort::sendInitialControllers(unsigned start_time)
         drum_found = true; 
         for(int i = 0; i < DRUM_MAPSIZE; ++i)
         {
-          if(MusEGlobal::drumMap[i].port != port || usedChans[MusEGlobal::drumMap[i].channel])
+          // Default to track port if -1 and track channel if -1.
+          int mport = MusEGlobal::drumMap[i].port;
+          if(mport == -1)
+            mport = (*imt)->outPort();
+          int mchan = MusEGlobal::drumMap[i].channel;
+          if(mchan == -1)
+            mchan = (*imt)->outChannel();
+          if(mport != port || usedChans[mchan])
             continue;
-          usedChans[MusEGlobal::drumMap[i].channel] = true;
+          usedChans[mchan] = true;
           ++usedChanCount;
           if(usedChanCount >= MIDI_CHANNELS)
             break;  // All are used, done searching.
@@ -383,13 +390,15 @@ int MidiPort::portno() const
 //   midiPortsPopup
 //---------------------------------------------------------
 
-QMenu* midiPortsPopup(QWidget* parent, int checkPort)
+QMenu* midiPortsPopup(QWidget* parent, int checkPort, bool includeDefaultEntry)
       {
       QMenu* p = new QMenu(parent);
       QMenu* subp = 0;
       QAction *act = 0;
       QString name;
-
+      const int openConfigId = MIDI_PORTS;
+      const int defaultId    = MIDI_PORTS + 1;
+      
       // Warn if no devices available. Add an item to open midi config. 
       int pi = 0;
       for( ; pi < MIDI_PORTS; ++pi)
@@ -407,11 +416,18 @@ QMenu* midiPortsPopup(QWidget* parent, int checkPort)
       }
       act = p->addAction(QIcon(*MusEGui::settings_midiport_softsynthsIcon), qApp->translate("@default", QT_TRANSLATE_NOOP("@default", "Open midi config...")));
       act->setCheckable(false);
-      act->setData(MIDI_PORTS);  
+      act->setData(openConfigId);  
       p->addSeparator();
       
       p->addAction(new MusEGui::MenuTitleItem(qApp->translate("@default", QT_TRANSLATE_NOOP("@default", "Output port/device")), p));
 
+      if(includeDefaultEntry)
+      {
+        act = p->addAction(qApp->translate("@default", QT_TRANSLATE_NOOP("@default", "default")));
+        act->setCheckable(false);
+        act->setData(defaultId); 
+      }
+        
       for (int i = 0; i < MIDI_PORTS; ++i) {
             MidiPort* port = &MusEGlobal::midiPorts[i];
             MusECore::MidiDevice* md = port->device();
diff --git a/muse2/muse/midiport.h b/muse2/muse/midiport.h
index 71e36154..a8b09ed7 100644
--- a/muse2/muse/midiport.h
+++ b/muse2/muse/midiport.h
@@ -165,7 +165,7 @@ extern void initMidiPorts();
 extern void setPortExclusiveDefOutChan(int /*port*/, int /*chan*/);
 #endif
 
-extern QMenu* midiPortsPopup(QWidget* parent = 0, int checkPort = -1);
+extern QMenu* midiPortsPopup(QWidget* parent = 0, int checkPort = -1, bool includeDefaultEntry = false);
 extern MidiControllerList defaultManagedMidiController;
 
 } // namespace MusECore
diff --git a/muse2/muse/part.cpp b/muse2/muse/part.cpp
index 3f9fbd62..5f3aa8ee 100644
--- a/muse2/muse/part.cpp
+++ b/muse2/muse/part.cpp
@@ -381,37 +381,39 @@ void addPortCtrlEvents(Event& event, Part* part, bool doClones)
     if(t && t->isMidiTrack())
     {
       MidiTrack* mt = (MidiTrack*)t;
-      int port = mt->outPort();
+      MidiPort* mp = &MusEGlobal::midiPorts[mt->outPort()];
+      int ch = mt->outChannel();
       unsigned len = p->lenTick();
         
-        // Do not add events which are past the end of the part.
-        if(event.tick() >= len)
-          break;
-                          
-        if(event.type() == Controller)
+      // Do not add events which are past the end of the part.
+      if(event.tick() >= len)
+        break;
+
+      if(event.type() == Controller)
+      {
+        int tck  = event.tick() + p->tick();
+        int cntrl = event.dataA();
+        int val   = event.dataB();
+
+        // Is it a drum controller event, according to the track port's instrument?
+        if(mt->type() == Track::DRUM)
         {
-          int ch = mt->outChannel();
-          int tck  = event.tick() + p->tick();
-          int cntrl = event.dataA();
-          int val   = event.dataB();
-          MidiPort* mp = &MusEGlobal::midiPorts[port];
-          
-          // Is it a drum controller event, according to the track port's instrument?
-          if(mt->type() == Track::DRUM)
+          MidiController* mc = mp->drumController(cntrl);
+          if(mc)
           {
-            MidiController* mc = mp->drumController(cntrl);
-            if(mc)
-            {
-              int note = cntrl & 0x7f;
-              cntrl &= ~0xff;
+            int note = cntrl & 0x7f;
+            cntrl &= ~0xff;
+            // Default to track port if -1 and track channel if -1.
+            if(MusEGlobal::drumMap[note].channel != -1)
               ch = MusEGlobal::drumMap[note].channel;
+            if(MusEGlobal::drumMap[note].port != -1)
               mp = &MusEGlobal::midiPorts[MusEGlobal::drumMap[note].port];
-              cntrl |= MusEGlobal::drumMap[note].anote;
-            }
+            cntrl |= MusEGlobal::drumMap[note].anote;
           }
-          
-          mp->setControllerVal(ch, tck, cntrl, val, p);
         }
+
+        mp->setControllerVal(ch, tck, cntrl, val, p);
+      }
     }
     
     if(!doClones)
@@ -441,7 +443,8 @@ void addPortCtrlEvents(Part* part, bool doClones)
     if(t && t->isMidiTrack())
     {
       MidiTrack* mt = (MidiTrack*)t;
-      int port = mt->outPort();
+      MidiPort* mp = &MusEGlobal::midiPorts[mt->outPort()];
+      int ch = mt->outChannel();
       const EventList* el = p->cevents();
       unsigned len = p->lenTick();
       for(ciEvent ie = el->begin(); ie != el->end(); ++ie)
@@ -453,11 +456,9 @@ void addPortCtrlEvents(Part* part, bool doClones)
                           
         if(ev.type() == Controller)
         {
-          int ch = mt->outChannel();
           int tck  = ev.tick() + p->tick();
           int cntrl = ev.dataA();
           int val   = ev.dataB();
-          MidiPort* mp = &MusEGlobal::midiPorts[port];
           
           // Is it a drum controller event, according to the track port's instrument?
           if(mt->type() == Track::DRUM)
@@ -467,8 +468,11 @@ void addPortCtrlEvents(Part* part, bool doClones)
             {
               int note = cntrl & 0x7f;
               cntrl &= ~0xff;
-              ch = MusEGlobal::drumMap[note].channel;
-              mp = &MusEGlobal::midiPorts[MusEGlobal::drumMap[note].port];
+              // Default to track port if -1 and track channel if -1.
+              if(MusEGlobal::drumMap[note].channel != -1)
+                ch = MusEGlobal::drumMap[note].channel;
+              if(MusEGlobal::drumMap[note].port != -1)
+                mp = &MusEGlobal::midiPorts[MusEGlobal::drumMap[note].port];
               cntrl |= MusEGlobal::drumMap[note].anote;
             }
           }
@@ -504,32 +508,34 @@ void removePortCtrlEvents(Event& event, Part* part, bool doClones)
     if(t && t->isMidiTrack())
     {
       MidiTrack* mt = (MidiTrack*)t;
-      int port = mt->outPort();
+      MidiPort* mp = &MusEGlobal::midiPorts[mt->outPort()];
+      int ch = mt->outChannel();
                           
-        if(event.type() == Controller)
+      if(event.type() == Controller)
+      {
+        int tck  = event.tick() + p->tick();
+        int cntrl = event.dataA();
+
+        // Is it a drum controller event, according to the track port's instrument?
+        if(mt->type() == Track::DRUM)
         {
-          int ch = mt->outChannel();
-          int tck  = event.tick() + p->tick();
-          int cntrl = event.dataA();
-          MidiPort* mp = &MusEGlobal::midiPorts[port];
-          
-          // Is it a drum controller event, according to the track port's instrument?
-          if(mt->type() == Track::DRUM)
+          MidiController* mc = mp->drumController(cntrl);
+          if(mc)
           {
-            MidiController* mc = mp->drumController(cntrl);
-            if(mc)
-            {
-              int note = cntrl & 0x7f;
-              cntrl &= ~0xff;
+            int note = cntrl & 0x7f;
+            cntrl &= ~0xff;
+            // Default to track port if -1 and track channel if -1.
+            if(MusEGlobal::drumMap[note].channel != -1)
               ch = MusEGlobal::drumMap[note].channel;
+            if(MusEGlobal::drumMap[note].port != -1)
               mp = &MusEGlobal::midiPorts[MusEGlobal::drumMap[note].port];
-              cntrl |= MusEGlobal::drumMap[note].anote;
-            }
+            cntrl |= MusEGlobal::drumMap[note].anote;
           }
-          
-          mp->deleteController(ch, tck, cntrl, p);
         }
-    }  
+
+        mp->deleteController(ch, tck, cntrl, p);
+      }
+    }
     
     if(!doClones)
       break;
@@ -558,7 +564,8 @@ void removePortCtrlEvents(Part* part, bool doClones)
     if(t && t->isMidiTrack())
     {
       MidiTrack* mt = (MidiTrack*)t;
-      int port = mt->outPort();
+      MidiPort* mp = &MusEGlobal::midiPorts[mt->outPort()];
+      int ch = mt->outChannel();
       const EventList* el = p->cevents();
       //unsigned len = p->lenTick();
       for(ciEvent ie = el->begin(); ie != el->end(); ++ie)
@@ -572,10 +579,8 @@ void removePortCtrlEvents(Part* part, bool doClones)
                           
         if(ev.type() == Controller)
         {
-          int ch = mt->outChannel();
           int tck  = ev.tick() + p->tick();
           int cntrl = ev.dataA();
-          MidiPort* mp = &MusEGlobal::midiPorts[port];
           
           // Is it a drum controller event, according to the track port's instrument?
           if(mt->type() == Track::DRUM)
@@ -585,8 +590,11 @@ void removePortCtrlEvents(Part* part, bool doClones)
             {
               int note = cntrl & 0x7f;
               cntrl &= ~0xff;
-              ch = MusEGlobal::drumMap[note].channel;
-              mp = &MusEGlobal::midiPorts[MusEGlobal::drumMap[note].port];
+              // Default to track port if -1 and track channel if -1.
+              if(MusEGlobal::drumMap[note].channel != -1)
+                ch = MusEGlobal::drumMap[note].channel;
+              if(MusEGlobal::drumMap[note].port != -1)
+                mp = &MusEGlobal::midiPorts[MusEGlobal::drumMap[note].port];
               cntrl |= MusEGlobal::drumMap[note].anote;
             }
           }
diff --git a/muse2/muse/song.cpp b/muse2/muse/song.cpp
index 3349686b..1ef45cd1 100644
--- a/muse2/muse/song.cpp
+++ b/muse2/muse/song.cpp
@@ -93,6 +93,7 @@ Song::Song(const char* name)
       bounceTrack = NULL;
       bounceOutput = NULL;
       showSongInfo=true;
+      clearDrumMap(); // One-time only early init
       clear(false);
       }
 
@@ -669,8 +670,13 @@ void Song::remapPortDrumCtrlEvents(int mapidx, int newnote, int newchan, int new
         if(note == mapidx)
         {
           int tick = ev.tick() + part->tick();
+          // Default to track port if -1 and track channel if -1.
           int ch = MusEGlobal::drumMap[note].channel;
+          if(ch == -1)
+            ch = mt->outChannel();
           int port = MusEGlobal::drumMap[note].port;
+          if(port == -1)
+            port = mt->outPort();
           MidiPort* mp = &MusEGlobal::midiPorts[port];
           cntrl = (cntrl & ~0xff) | MusEGlobal::drumMap[note].anote;
           
@@ -738,8 +744,11 @@ void Song::changeAllPortDrumCtrlEvents(bool add, bool drumonly)
         if(trackmp->drumController(cntrl))
         {
           int note = cntrl & 0x7f;
-          ch = MusEGlobal::drumMap[note].channel;
-          mp = &MusEGlobal::midiPorts[MusEGlobal::drumMap[note].port];
+          // Default to track port if -1 and track channel if -1.
+          if(MusEGlobal::drumMap[note].channel != -1)
+            ch = MusEGlobal::drumMap[note].channel;
+          if(MusEGlobal::drumMap[note].port != -1)
+            mp = &MusEGlobal::midiPorts[MusEGlobal::drumMap[note].port];
           cntrl = (cntrl & ~0xff) | MusEGlobal::drumMap[note].anote;
         }
         else
@@ -2663,8 +2672,11 @@ int Song::execMidiAutomationCtlPopup(MidiTrack* track, MidiPart* part, const QPo
     // Change the controller event's index into the drum map to an instrument note.
     int note = ctlnum & 0x7f;
     dctl &= ~0xff;
-    channel = MusEGlobal::drumMap[note].channel;
-    mp = &MusEGlobal::midiPorts[MusEGlobal::drumMap[note].port];
+    // Default to track port if -1 and track channel if -1.
+    if(MusEGlobal::drumMap[note].channel != -1)
+      channel = MusEGlobal::drumMap[note].channel;
+    if(MusEGlobal::drumMap[note].port != -1)
+      mp = &MusEGlobal::midiPorts[MusEGlobal::drumMap[note].port];
     dctl |= MusEGlobal::drumMap[note].anote;
   }
     
diff --git a/muse2/muse/track.cpp b/muse2/muse/track.cpp
index cbe8fd8c..25f93804 100644
--- a/muse2/muse/track.cpp
+++ b/muse2/muse/track.cpp
@@ -90,8 +90,11 @@ void addPortCtrlEvents(MidiTrack* t)
           {
             int note = cntrl & 0x7f;
             cntrl &= ~0xff;
-            ch = MusEGlobal::drumMap[note].channel;
-            mp = &MusEGlobal::midiPorts[MusEGlobal::drumMap[note].port];
+            // Default to track port if -1 and track channel if -1.
+            if(MusEGlobal::drumMap[note].channel != -1)
+              ch = MusEGlobal::drumMap[note].channel;
+            if(MusEGlobal::drumMap[note].port != -1)
+              mp = &MusEGlobal::midiPorts[MusEGlobal::drumMap[note].port];
             cntrl |= MusEGlobal::drumMap[note].anote;
           }
         }
@@ -132,8 +135,11 @@ void removePortCtrlEvents(MidiTrack* t)
           {
             int note = cntrl & 0x7f;
             cntrl &= ~0xff;
-            ch = MusEGlobal::drumMap[note].channel;
-            mp = &MusEGlobal::midiPorts[MusEGlobal::drumMap[note].port];
+            // Default to track port if -1 and track channel if -1.
+            if(MusEGlobal::drumMap[note].channel != -1)
+              ch = MusEGlobal::drumMap[note].channel;
+            if(MusEGlobal::drumMap[note].port != -1)
+              mp = &MusEGlobal::midiPorts[MusEGlobal::drumMap[note].port];
             cntrl |= MusEGlobal::drumMap[note].anote;
           }
         }
diff --git a/muse2/muse/widgets/musewidgetsplug.cpp b/muse2/muse/widgets/musewidgetsplug.cpp
index 967ab9ac..90eec237 100644
--- a/muse2/muse/widgets/musewidgetsplug.cpp
+++ b/muse2/muse/widgets/musewidgetsplug.cpp
@@ -130,13 +130,13 @@ MusEGlobal::GlobalConfigValues config = {
       QColor(0x00, 0x00, 0x00),     // selected track Fg;
       
       QColor(0, 160, 255),          // midiTrackLabelBg;   // Med blue
-      QColor(0, 160, 255),          // drumTrackLabelBg;   // Med blue
-      QColor(0, 160, 255),          // newDrumTrackLabelBg;   // Med blue
+      QColor(150, 177, 189),        // drumTrackLabelBg;   // Pale pastel blue
+      QColor(116, 232, 242),        // newDrumTrackLabelBg; // Light blue
       Qt::magenta,                  // waveTrackLabelBg;
       Qt::green,                    // outputTrackLabelBg;
       Qt::red,                      // inputTrackLabelBg;
       Qt::yellow,                   // groupTrackLabelBg;
-      QColor(120, 255, 255),        // auxTrackLabelBg;    // Light blue
+      QColor(142, 157, 6),          // auxTrackLabelBg;    // Med olive
       QColor(255, 130, 0),          // synthTrackLabelBg;  // Med orange
       
       QColor(220, 220, 220),     // midiTrackBg;
diff --git a/muse2/share/drummaps/AKAI_SG01v_Bank_dr1.map b/muse2/share/drummaps/AKAI_SG01v_Bank_dr1.map
index adf9b5c0..14e6bce5 100644
--- a/muse2/share/drummaps/AKAI_SG01v_Bank_dr1.map
+++ b/muse2/share/drummaps/AKAI_SG01v_Bank_dr1.map
@@ -12,8 +12,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -26,8 +26,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -40,8 +40,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -54,8 +54,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -68,8 +68,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -82,8 +82,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -96,8 +96,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -110,8 +110,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -124,8 +124,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -138,8 +138,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -152,8 +152,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -166,8 +166,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -180,8 +180,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -194,8 +194,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -208,8 +208,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -222,8 +222,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -236,8 +236,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -250,8 +250,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -264,8 +264,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -278,8 +278,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -292,8 +292,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -306,8 +306,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -320,8 +320,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -334,8 +334,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -348,8 +348,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -362,8 +362,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -376,8 +376,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -390,8 +390,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -404,8 +404,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -418,8 +418,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -432,8 +432,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -446,8 +446,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -460,8 +460,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -474,8 +474,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -488,8 +488,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -502,8 +502,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -516,8 +516,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -530,8 +530,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -544,8 +544,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -558,8 +558,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -572,8 +572,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -586,8 +586,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -600,8 +600,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -614,8 +614,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -628,8 +628,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -642,8 +642,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -656,8 +656,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -670,8 +670,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -684,8 +684,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -698,8 +698,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -712,8 +712,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -726,8 +726,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -740,8 +740,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -754,8 +754,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -768,8 +768,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -782,8 +782,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -796,8 +796,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -810,8 +810,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -824,8 +824,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -838,8 +838,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -852,8 +852,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -866,8 +866,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -880,8 +880,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -894,8 +894,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -908,8 +908,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -922,8 +922,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -936,8 +936,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -950,8 +950,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -964,8 +964,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
diff --git a/muse2/share/drummaps/AKAI_SG01v_Bank_dr2.map b/muse2/share/drummaps/AKAI_SG01v_Bank_dr2.map
index 46db39a0..e9f82cf4 100644
--- a/muse2/share/drummaps/AKAI_SG01v_Bank_dr2.map
+++ b/muse2/share/drummaps/AKAI_SG01v_Bank_dr2.map
@@ -12,8 +12,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -26,8 +26,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -40,8 +40,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -54,8 +54,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -68,8 +68,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -82,8 +82,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -96,8 +96,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -110,8 +110,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -124,8 +124,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -138,8 +138,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -152,8 +152,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -166,8 +166,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -180,8 +180,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -194,8 +194,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -208,8 +208,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -222,8 +222,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -236,8 +236,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -250,8 +250,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -264,8 +264,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -278,8 +278,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -292,8 +292,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -306,8 +306,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -320,8 +320,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -334,8 +334,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -348,8 +348,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -362,8 +362,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -376,8 +376,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -390,8 +390,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -404,8 +404,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -418,8 +418,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -432,8 +432,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -446,8 +446,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -460,8 +460,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -474,8 +474,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -488,8 +488,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -502,8 +502,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -516,8 +516,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -530,8 +530,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -544,8 +544,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -558,8 +558,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -572,8 +572,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -586,8 +586,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -600,8 +600,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -614,8 +614,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -628,8 +628,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -642,8 +642,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -656,8 +656,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -670,8 +670,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -684,8 +684,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -698,8 +698,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -712,8 +712,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -726,8 +726,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -740,8 +740,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -754,8 +754,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -768,8 +768,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -782,8 +782,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -796,8 +796,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -810,8 +810,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -824,8 +824,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -838,8 +838,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -852,8 +852,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -866,8 +866,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -880,8 +880,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -894,8 +894,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -908,8 +908,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -922,8 +922,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -936,8 +936,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -950,8 +950,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -964,8 +964,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
diff --git a/muse2/share/drummaps/KURZWEIL_SP2X_Drum_Map_GM_ReMap.map b/muse2/share/drummaps/KURZWEIL_SP2X_Drum_Map_GM_ReMap.map
index 1106bda1..91bda70d 100644
--- a/muse2/share/drummaps/KURZWEIL_SP2X_Drum_Map_GM_ReMap.map
+++ b/muse2/share/drummaps/KURZWEIL_SP2X_Drum_Map_GM_ReMap.map
@@ -12,8 +12,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -26,8 +26,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -40,8 +40,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -54,8 +54,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -68,8 +68,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -82,8 +82,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -96,8 +96,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -110,8 +110,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -124,8 +124,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -138,8 +138,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -152,8 +152,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -166,8 +166,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -180,8 +180,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -194,8 +194,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -208,8 +208,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -222,8 +222,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -236,8 +236,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -250,8 +250,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -264,8 +264,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -278,8 +278,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -292,8 +292,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -306,8 +306,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -320,8 +320,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -334,8 +334,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -348,8 +348,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -362,8 +362,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -376,8 +376,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -390,8 +390,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -404,8 +404,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -418,8 +418,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -432,8 +432,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -446,8 +446,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -460,8 +460,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -474,8 +474,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -488,8 +488,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -502,8 +502,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -516,8 +516,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -530,8 +530,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -544,8 +544,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -558,8 +558,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -572,8 +572,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -586,8 +586,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -600,8 +600,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -614,8 +614,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -628,8 +628,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -642,8 +642,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -656,8 +656,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -670,8 +670,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -684,8 +684,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -698,8 +698,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -712,8 +712,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -726,8 +726,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -740,8 +740,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -754,8 +754,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -768,8 +768,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -782,8 +782,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -796,8 +796,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -810,8 +810,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -824,8 +824,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -838,8 +838,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -852,8 +852,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -866,8 +866,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -880,8 +880,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -894,8 +894,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -908,8 +908,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -922,8 +922,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -936,8 +936,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -950,8 +950,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -964,8 +964,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -978,8 +978,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -992,8 +992,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1006,8 +1006,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1020,8 +1020,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1034,8 +1034,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1048,8 +1048,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1062,8 +1062,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1076,8 +1076,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1090,8 +1090,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1104,8 +1104,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1118,8 +1118,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1132,8 +1132,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1146,8 +1146,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1160,8 +1160,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1174,8 +1174,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1188,8 +1188,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1202,8 +1202,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1216,8 +1216,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1230,8 +1230,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1244,8 +1244,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1258,8 +1258,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1272,8 +1272,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1286,8 +1286,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1300,8 +1300,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1314,8 +1314,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1328,8 +1328,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1342,8 +1342,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1356,8 +1356,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1370,8 +1370,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1384,8 +1384,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1398,8 +1398,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1412,8 +1412,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
diff --git a/muse2/share/drummaps/KURZWEIL_SP2X_Drum_Map_Normal.map b/muse2/share/drummaps/KURZWEIL_SP2X_Drum_Map_Normal.map
index a7d9632e..83494014 100644
--- a/muse2/share/drummaps/KURZWEIL_SP2X_Drum_Map_Normal.map
+++ b/muse2/share/drummaps/KURZWEIL_SP2X_Drum_Map_Normal.map
@@ -6,8 +6,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -20,8 +20,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -34,8 +34,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -48,8 +48,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -62,8 +62,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -76,8 +76,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -90,8 +90,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -104,8 +104,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -118,8 +118,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -132,8 +132,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -146,8 +146,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -160,8 +160,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -174,8 +174,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -188,8 +188,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -202,8 +202,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -216,8 +216,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -230,8 +230,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -244,8 +244,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -258,8 +258,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -272,8 +272,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -286,8 +286,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -300,8 +300,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -314,8 +314,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -328,8 +328,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -342,8 +342,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -356,8 +356,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -370,8 +370,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -384,8 +384,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -398,8 +398,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -412,8 +412,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -426,8 +426,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -440,8 +440,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -454,8 +454,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -468,8 +468,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -482,8 +482,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -496,8 +496,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -510,8 +510,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -524,8 +524,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -538,8 +538,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -552,8 +552,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -566,8 +566,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -580,8 +580,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -594,8 +594,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -608,8 +608,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -622,8 +622,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -636,8 +636,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -650,8 +650,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -664,8 +664,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -678,8 +678,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -692,8 +692,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -706,8 +706,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -720,8 +720,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -734,8 +734,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -748,8 +748,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -762,8 +762,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -776,8 +776,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -790,8 +790,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -804,8 +804,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -818,8 +818,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -832,8 +832,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -846,8 +846,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -860,8 +860,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -874,8 +874,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -888,8 +888,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -902,8 +902,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -916,8 +916,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -930,8 +930,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -944,8 +944,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -958,8 +958,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -972,8 +972,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -986,8 +986,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1000,8 +1000,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1014,8 +1014,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1028,8 +1028,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1042,8 +1042,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1056,8 +1056,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1070,8 +1070,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1084,8 +1084,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1098,8 +1098,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1112,8 +1112,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1126,8 +1126,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1140,8 +1140,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1154,8 +1154,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1168,8 +1168,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1182,8 +1182,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1196,8 +1196,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1210,8 +1210,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1224,8 +1224,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1238,8 +1238,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1252,8 +1252,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1266,8 +1266,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1280,8 +1280,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1294,8 +1294,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1308,8 +1308,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1322,8 +1322,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1336,8 +1336,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1350,8 +1350,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1364,8 +1364,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1378,8 +1378,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1392,8 +1392,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
@@ -1406,8 +1406,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>9</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>127</lv3>
diff --git a/muse2/share/drummaps/addictive_drums.map b/muse2/share/drummaps/addictive_drums.map
index a513f67f..eb855d80 100644
--- a/muse2/share/drummaps/addictive_drums.map
+++ b/muse2/share/drummaps/addictive_drums.map
@@ -6,8 +6,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -20,8 +20,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -34,8 +34,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -48,8 +48,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -62,8 +62,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -76,8 +76,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -90,8 +90,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -104,8 +104,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -118,8 +118,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -132,8 +132,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -146,8 +146,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -160,8 +160,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -174,8 +174,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -188,8 +188,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -202,8 +202,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -216,8 +216,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -230,8 +230,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -244,8 +244,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -258,8 +258,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -272,8 +272,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -286,8 +286,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -300,8 +300,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -314,8 +314,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -328,8 +328,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -342,8 +342,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -356,8 +356,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -370,8 +370,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -384,8 +384,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -398,8 +398,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -412,8 +412,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -426,8 +426,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -440,8 +440,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -454,8 +454,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -468,8 +468,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -482,8 +482,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -496,8 +496,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -510,8 +510,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -524,8 +524,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -538,8 +538,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -552,8 +552,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -566,8 +566,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -580,8 +580,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -594,8 +594,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -608,8 +608,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -622,8 +622,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -636,8 +636,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -650,8 +650,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -664,8 +664,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -678,8 +678,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -692,8 +692,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -706,8 +706,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -720,8 +720,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -734,8 +734,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -748,8 +748,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -762,8 +762,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -776,8 +776,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -790,8 +790,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -804,8 +804,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -818,8 +818,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -832,8 +832,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -846,8 +846,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -860,8 +860,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -874,8 +874,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -888,8 +888,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -902,8 +902,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -916,8 +916,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -930,8 +930,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -944,8 +944,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -958,8 +958,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -972,8 +972,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -986,8 +986,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -1000,8 +1000,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -1014,8 +1014,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -1028,8 +1028,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -1042,8 +1042,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -1056,8 +1056,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -1070,8 +1070,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -1084,8 +1084,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -1098,8 +1098,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -1112,8 +1112,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -1126,8 +1126,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -1140,8 +1140,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -1154,8 +1154,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -1168,8 +1168,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -1182,8 +1182,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -1196,8 +1196,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -1210,8 +1210,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -1224,8 +1224,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -1238,8 +1238,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -1252,8 +1252,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -1266,8 +1266,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -1280,8 +1280,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -1294,8 +1294,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -1308,8 +1308,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -1322,8 +1322,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -1336,8 +1336,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -1350,8 +1350,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -1364,8 +1364,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -1378,8 +1378,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -1392,8 +1392,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -1406,8 +1406,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -1420,8 +1420,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -1434,8 +1434,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -1448,8 +1448,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -1462,8 +1462,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -1476,8 +1476,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -1490,8 +1490,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -1504,8 +1504,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -1518,8 +1518,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -1532,8 +1532,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -1546,8 +1546,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -1560,8 +1560,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -1574,8 +1574,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -1588,8 +1588,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -1602,8 +1602,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -1616,8 +1616,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -1630,8 +1630,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -1644,8 +1644,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -1658,8 +1658,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -1672,8 +1672,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -1686,8 +1686,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -1700,8 +1700,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -1714,8 +1714,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -1728,8 +1728,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -1742,8 +1742,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -1756,8 +1756,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -1770,8 +1770,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
@@ -1784,8 +1784,8 @@
       <vol>100</vol>
       <quant>16</quant>
       <len>32</len>
-      <channel>0</channel>
-      <port>0</port>
+      <channel>-1</channel>
+      <port>-1</port>
       <lv1>70</lv1>
       <lv2>90</lv2>
       <lv3>110</lv3>
diff --git a/muse2/share/drummaps/dx200_drum.map b/muse2/share/drummaps/dx200_drum.map
index 25011979..b283bb61 100644
--- a/muse2/share/drummaps/dx200_drum.map
+++ b/muse2/share/drummaps/dx200_drum.map
@@ -38,8 +38,8 @@
 <entry><name>PickBass A#</name><channel>1</channel><enote>34</enote><anote>34</anote></entry>
 <entry><name>PickBass B</name><channel>1</channel><enote>35</enote><anote>35</anote></entry>
 <entry><name>BD Analog 808</name><channel>1</channel><enote>36</enote><anote>36</anote></entry>
-<entry><name>BD R&B 1</name><channel>1</channel><enote>37</enote><anote>37</anote></entry>
-<entry><name>BD R&B 2</name><channel>1</channel><enote>38</enote><anote>38</anote></entry>
+<entry><name>BD R&amp;B 1</name><channel>1</channel><enote>37</enote><anote>37</anote></entry>
+<entry><name>BD R&amp;B 2</name><channel>1</channel><enote>38</enote><anote>38</anote></entry>
 <entry><name>BD Lo-Fi</name><channel>1</channel><enote>39</enote><anote>39</anote></entry>
 <entry><name>BD Jungle</name><channel>1</channel><enote>40</enote><anote>40</anote></entry>
 <entry><name>BD Hip 1</name><channel>1</channel><enote>41</enote><anote>41</anote></entry>
@@ -53,8 +53,8 @@
 <entry><name>BD Elec 2 909</name><channel>1</channel><enote>49</enote><anote>49</anote></entry>
 <entry><name>BD Elec 3 909</name><channel>1</channel><enote>50</enote><anote>50</anote></entry>
 <entry><name>SD Live</name><channel>1</channel><enote>51</enote><anote>51</anote></entry>
-<entry><name>SD R&B 1</name><channel>1</channel><enote>52</enote><anote>52</anote></entry>
-<entry><name>SD R&B 2</name><channel>1</channel><enote>53</enote><anote>53</anote></entry>
+<entry><name>SD R&amp;B 1</name><channel>1</channel><enote>52</enote><anote>52</anote></entry>
+<entry><name>SD R&amp;B 2</name><channel>1</channel><enote>53</enote><anote>53</anote></entry>
 <entry><name>SD Analog 808</name><channel>1</channel><enote>54</enote><anote>54</anote></entry>
 <entry><name>SD Hip 1</name><channel>1</channel><enote>55</enote><anote>55</anote></entry>
 <entry><name>SD Hip 2 Lo-Fi</name><channel>1</channel><enote>56</enote><anote>56</anote></entry>
@@ -62,14 +62,14 @@
 <entry><name>SD Cut Jungle</name><channel>1</channel><enote>58</enote><anote>58</anote></entry>
 <entry><name>SD Dodge</name><channel>1</channel><enote>59</enote><anote>59</anote></entry>
 <entry><name>SD Timbra</name><channel>1</channel><enote>60</enote><anote>60</anote></entry>
-<entry><name>SD D&B</name><channel>1</channel><enote>61</enote><anote>61</anote></entry>
+<entry><name>SD D&amp;B</name><channel>1</channel><enote>61</enote><anote>61</anote></entry>
 <entry><name>SD Dist 909</name><channel>1</channel><enote>62</enote><anote>62</anote></entry>
 <entry><name>SD Elec 1 909</name><channel>1</channel><enote>63</enote><anote>63</anote></entry>
 <entry><name>SD Elec 2 909</name><channel>1</channel><enote>64</enote><anote>64</anote></entry>
 <entry><name>SD Rim 1</name><channel>1</channel><enote>65</enote><anote>65</anote></entry>
 <entry><name>SD Rim 2</name><channel>1</channel><enote>66</enote><anote>66</anote></entry>
-<entry><name>HH D&B Cls</name><channel>1</channel><enote>67</enote><anote>67</anote></entry>
-<entry><name>HH D&B Opn</name><channel>1</channel><enote>68</enote><anote>68</anote></entry>
+<entry><name>HH D&amp;B Cls</name><channel>1</channel><enote>67</enote><anote>67</anote></entry>
+<entry><name>HH D&amp;B Opn</name><channel>1</channel><enote>68</enote><anote>68</anote></entry>
 <entry><name>HH Ana Cls 1 909</name><channel>1</channel><enote>69</enote><anote>69</anote></entry>
 <entry><name>HH Ana Opn 1 808</name><channel>1</channel><enote>70</enote><anote>70</anote></entry>
 <entry><name>HH Syn Cls</name><channel>1</channel><enote>71</enote><anote>71</anote></entry>
diff --git a/muse2/share/templates/MusE.cfg b/muse2/share/templates/MusE.cfg
index b8be1eff..9634696a 100644
--- a/muse2/share/templates/MusE.cfg
+++ b/muse2/share/templates/MusE.cfg
@@ -139,12 +139,13 @@
     <selectTrackFg r="0" g="0" b="0"></selectTrackFg>
     <mixerBg r="0" g="0" b="0"></mixerBg>
     <midiTrackLabelBg r="74" g="150" b="194"></midiTrackLabelBg>
-    <drumTrackLabelBg r="74" g="150" b="194"></drumTrackLabelBg>
+    <drumTrackLabelBg2 r="150" g="177" b="189"></drumTrackLabelBg2>
+    <newDrumTrackLabelBg2 r="116" g="232" b="242"></newDrumTrackLabelBg2>
     <waveTrackLabelBg r="213" g="128" b="202"></waveTrackLabelBg>
     <outputTrackLabelBg r="84" g="185" b="58"></outputTrackLabelBg>
     <inputTrackLabelBg r="199" g="75" b="64"></inputTrackLabelBg>
     <groupTrackLabelBg r="236" g="214" b="90"></groupTrackLabelBg>
-    <auxTrackLabelBg r="161" g="234" b="242"></auxTrackLabelBg>
+    <auxTrackLabelBg2 r="142" g="157" b="6"></auxTrackLabelBg2>
     <synthTrackLabelBg r="229" g="157" b="101"></synthTrackLabelBg>
     <midiTrackBg r="215" g="220" b="230"></midiTrackBg>
     <ctrlGraphFg r="255" g="170" b="0"></ctrlGraphFg>
diff --git a/muse2/xpm/addtrack_addmiditrack_2.xpm b/muse2/xpm/addtrack_addmiditrack_2.xpm
new file mode 100644
index 00000000..27b28259
--- /dev/null
+++ b/muse2/xpm/addtrack_addmiditrack_2.xpm
@@ -0,0 +1,89 @@
+/* XPM */
+static const char * addtrack_addmiditrack_2_xpm[] = {
+"16 16 70 1",
+" 	c None",
+".	c #739BFF",
+"+	c #799FFF",
+"@	c #83A6FF",
+"#	c #87A9FF",
+"$	c #8FAFFF",
+"%	c #97B4FF",
+"&	c #85A7FF",
+"*	c #000000",
+"=	c #8BACFF",
+"-	c #A3BDFF",
+";	c #BBCEFF",
+">	c #CFDDFF",
+",	c #95B3FF",
+"'	c #99B6FF",
+")	c #9DB9FF",
+"!	c #BDD0FF",
+"~	c #CDDBFF",
+"{	c #9FBAFF",
+"]	c #ABC3FF",
+"^	c #A1BCFF",
+"/	c #A9C1FF",
+"(	c #B1C7FF",
+"_	c #B7CBFF",
+":	c #B3C8FF",
+"<	c #C9DAFF",
+"[	c #BFD1FF",
+"}	c #C3D4FF",
+"|	c #0048FE",
+"1	c #A7C2FF",
+"2	c #C7D7FF",
+"3	c #002174",
+"4	c #C5D5FF",
+"5	c #ADC4FF",
+"6	c #91B0FF",
+"7	c #D3DFFF",
+"8	c #DFE9FF",
+"9	c #D9E5FF",
+"0	c #DBE5FF",
+"a	c #E1E9FF",
+"b	c #E3EAFF",
+"c	c #D5E1FF",
+"d	c #D1DEFF",
+"e	c #D9E3FF",
+"f	c #D3E3FF",
+"g	c #D1DCFF",
+"h	c #D7E1FF",
+"i	c #DDE6FF",
+"j	c #D7E3FF",
+"k	c #C9D4FF",
+"l	c #AFC4FF",
+"m	c #B7C6FF",
+"n	c #C9D8FF",
+"o	c #CBD8FF",
+"p	c #D3DEFF",
+"q	c #D7E2FF",
+"r	c #D9E6FF",
+"s	c #C3D5FF",
+"t	c #B5C6FF",
+"u	c #A1B7FF",
+"v	c #97B2FF",
+"w	c #C7D4FF",
+"x	c #BFD0FF",
+"y	c #BDCEFF",
+"z	c #C9D7FF",
+"A	c #CBDBFF",
+"B	c #CDD9FF",
+"C	c #95B0FF",
+"D	c #9DB2FF",
+"E	c #8FB1FF",
+".+@#$%%&+**+=-;>",
+"+@$,'-)$@***$-!~",
+"&,{]]]^%$****]!~",
+"/(_:(]-{%*,**];<",
+"[}|_|(|1^*')*/_2",
+"~3333333-*'33334",
+">~|_|5|]-*,6|-(}",
+"<2|_|5|]1*,6|-:}",
+"42|;|((5]*{'|]!2",
+"[<|}|!****]]|;<7",
+"[333<*****_33338",
+"4>|9|*****2<|0ab",
+"4c8a80***d>d0aef",
+"<ghibba00j>>2klm",
+"nopqegr>~stlu')v",
+"wxyzABnzx_-C{'DE"};
diff --git a/muse2/xpm/addtrack_auxsend_2.xpm b/muse2/xpm/addtrack_auxsend_2.xpm
new file mode 100644
index 00000000..1a3a93db
--- /dev/null
+++ b/muse2/xpm/addtrack_auxsend_2.xpm
@@ -0,0 +1,62 @@
+/* XPM */
+static const char * addtrack_auxsend_2_xpm[] = {
+"16 16 43 1",
+" 	c None",
+".	c #000000",
+"+	c #A1C400",
+"@	c #94B400",
+"#	c #98B800",
+"$	c #8EAC00",
+"%	c #809C00",
+"&	c #6D8400",
+"*	c #5C7000",
+"=	c #687E00",
+"-	c #829E00",
+";	c #8FAE00",
+">	c #9EC000",
+",	c #99BA00",
+"'	c #91B000",
+")	c #738C00",
+"!	c #637800",
+"~	c #728A00",
+"{	c #8CAA00",
+"]	c #93B200",
+"^	c #9BBC00",
+"/	c #87A400",
+"(	c #7A9400",
+"_	c #5B6E00",
+":	c #84A000",
+"<	c #A3C600",
+"[	c #85A200",
+"}	c #7D9800",
+"|	c #708800",
+"1	c #698000",
+"2	c #758E00",
+"3	c #A0C200",
+"4	c #7F9A00",
+"5	c #96B600",
+"6	c #5E7200",
+"7	c #516200",
+"8	c #8AA800",
+"9	c #7C9600",
+"0	c #4C5C00",
+"a	c #789200",
+"b	c #89A600",
+"c	c #596C00",
+"d	c #6E8600",
+".........+@#$%&*",
+"=-;$@.....>,'-)!",
+"=~%{]>#....^]/(&",
+"_):',@#'<...[[}|",
+"!)%/;>@'',...$:}",
+"12:/#]$.........",
+"~}%{.$3+.......4",
+"}:}...5#<.....;%",
+"2}.....<,<...@[~",
+"%.......<<+.^'}6",
+".........,;@;-&7",
+"%8{...,<<#3>@:|7",
+"9[']...<<#3>@:&0",
+"a}[b@....+3>$%&c",
+"d:;#@+.....@,$}1",
+"d:'#5+<........."};
diff --git a/muse2/xpm/addtrack_drumtrack_2.xpm b/muse2/xpm/addtrack_drumtrack_2.xpm
new file mode 100644
index 00000000..3a44bae1
--- /dev/null
+++ b/muse2/xpm/addtrack_drumtrack_2.xpm
@@ -0,0 +1,86 @@
+/* XPM */
+static const char * addtrack_drumtrack_2_xpm[] = {
+"16 16 67 1",
+" 	c None",
+".	c #37A6A6",
+"+	c #3DB7B7",
+"@	c #54C6C6",
+"#	c #6FCFCF",
+"$	c #95DCDC",
+"%	c #B5E6E6",
+"&	c #D4F0F0",
+"*	c #E2F5F5",
+"=	c #E8F7F7",
+"-	c #EBF8F8",
+";	c #000000",
+">	c #E7F7F7",
+",	c #D9F2F2",
+"'	c #CFEFEF",
+")	c #B8E7E7",
+"!	c #9DDEDE",
+"~	c #65CCCC",
+"{	c #6CCECE",
+"]	c #7BD2D2",
+"^	c #9ADDDD",
+"/	c #B0E4E4",
+"(	c #B9E7E7",
+"_	c #A1DFDF",
+":	c #8BD8D8",
+"<	c #B2E5E5",
+"[	c #BFEAEA",
+"}	c #DEF3F3",
+"|	c #6DCECE",
+"1	c #B7E7E7",
+"2	c #9CDEDE",
+"3	c #C4EBEB",
+"4	c #C8EDED",
+"5	c #DBF2F2",
+"6	c #D6F1F1",
+"7	c #8FDADA",
+"8	c #E4F6F6",
+"9	c #C5ECEC",
+"0	c #7FD4D4",
+"a	c #EEF9F9",
+"b	c #174646",
+"c	c #94DBDB",
+"d	c #F1FAFA",
+"e	c #4BC2C2",
+"f	c #84D6D6",
+"g	c #A0DFDF",
+"h	c #82D5D5",
+"i	c #5CC8C8",
+"j	c #A4E0E0",
+"k	c #55C6C6",
+"l	c #A3E0E0",
+"m	c #92DBDB",
+"n	c #7DD3D3",
+"o	c #5BC8C8",
+"p	c #36A3A3",
+"q	c #61CACA",
+"r	c #40BFBF",
+"s	c #49C2C2",
+"t	c #76D1D1",
+"u	c #80D4D4",
+"v	c #ABE2E2",
+"w	c #C1EAEA",
+"x	c #C7ECEC",
+"y	c #71CFCF",
+"z	c #85D6D6",
+"A	c #97DCDC",
+"B	c #A9E2E2",
+".+@#$%&*=-;>,')!",
+"~{]^/',*=;;#*'(_",
+":^<[',}};;|#,;12",
+"34&,}56;;##,;;#7",
+">88*5&;;||9;;##0",
+"a-bb;;;bb/;;##c{",
+"d;ef;;ee;;;||ghi",
+"bef'''f;;;##j^0k",
+"bbef'fe;;b|jg$]@",
+"b.bbbbb;;b|l!mno",
+"b.e''fepb;;;;;0q",
+"b.f'''[.;;l|lr;{",
+"&be''fsbb;rll;;t",
+")[bbbbbb[;;;;;;u",
+"7^v1wx49[;#rr;$:",
+"qyzAv([3[(;;;jBl"};
diff --git a/muse2/xpm/addtrack_old_drumtrack.xpm b/muse2/xpm/addtrack_old_drumtrack.xpm
new file mode 100644
index 00000000..1fb633de
--- /dev/null
+++ b/muse2/xpm/addtrack_old_drumtrack.xpm
@@ -0,0 +1,81 @@
+/* XPM */
+static const char * addtrack_old_drumtrack_xpm[] = {
+"16 16 62 1",
+" 	c None",
+".	c #396398",
+"+	c #3F6EA8",
+"@	c #4E7FBD",
+"#	c #6791C6",
+"$	c #8CACD3",
+"%	c #A9C1DE",
+"&	c #C6D6E9",
+"*	c #D1DEEE",
+"=	c #D7E2F0",
+"-	c #DAE4F1",
+";	c #D6E1EF",
+">	c #CAD9EB",
+",	c #C0D1E7",
+"'	c #ACC3DF",
+")	c #000000",
+"!	c #5E8BC3",
+"~	c #648FC5",
+"{	c #739ACA",
+"]	c #90AFD5",
+"^	c #A4BDDD",
+"/	c #ADC4E0",
+"(	c #81A4D0",
+"_	c #A6BEDD",
+":	c #B1C7E2",
+"<	c #CDDBEC",
+"[	c #6690C5",
+"}	c #AAC2DF",
+"|	c #B6CAE3",
+"1	c #BACDE5",
+"2	c #C7D7EA",
+"3	c #D3DFEE",
+"4	c #B7CBE4",
+"5	c #DDE6F2",
+"6	c #172940",
+"7	c #8AAAD3",
+"8	c #E0E8F3",
+"9	c #4679B9",
+"0	c #7A9FCD",
+"a	c #94B2D7",
+"b	c #97B4D8",
+"c	c #99B5D8",
+"d	c #96B3D7",
+"e	c #92B0D6",
+"f	c #91AFD5",
+"g	c #7FA2CC",
+"h	c #89A9D1",
+"i	c #7EA0CB",
+"j	c #386195",
+"k	c #85A6CF",
+"l	c #7D9FCB",
+"m	c #8EADD3",
+"n	c #87A7D0",
+"o	c #4578B8",
+"p	c #82A4CE",
+"q	c #7FA1CD",
+"r	c #8AAAD2",
+"s	c #7EA0CC",
+"t	c #86A7D1",
+"u	c #9EB9DB",
+"v	c #B3C8E2",
+"w	c #B9CCE4",
+"..+@#$%&*=-;;>,'",
+"..+@#$%&*=-);>,'",
+"!!~{]^,>*=))#*,/",
+"((]_:,><<))[#>)}",
+"||1&><>2))##>))#",
+";;33*>&))[[4))##",
+"55-66)))66^))##7",
+"88)90))99)))[[ab",
+"8690,,,0)))##cde",
+"86690,09))6[cbfg",
+"86.66666))6[bbhi",
+"86.9,,09j6[bbekl",
+"86.0,,,:.6[bbmnl",
+"&&69,,0o66[bepql",
+"'':666666:bbrsll",
+"tt]u}vw14:bbrlll"};
-- 
cgit v1.2.3