From f118ed0cfca8ab717b87e1f00459199acba80bb9 Mon Sep 17 00:00:00 2001 From: "Tim E. Real" 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(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; imsgUpdateSoloStates(); - //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(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; ioutPort(); - // 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(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; iupdate(-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; ioutChannel(); - 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(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(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(*instrument_map[instrument].tracks.begin())->outPort(); + if(port == -1) + { + if(!curPart || !curPart->track() || !curPart->track()->isMidiTrack()) + return; + MidiTrack* mt = static_cast(curPart->track()); + port = mt->outPort(); + } int channel = old_style_drummap_mode ? ourDrumMap[instrument].channel : dynamic_cast(*instrument_map[instrument].tracks.begin())->outChannel(); + if(channel == -1) + { + if(!curPart || !curPart->track() || !curPart->track()->isMidiTrack()) + return; + MidiTrack* mt = static_cast(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(*instrument_map[index].tracks.begin())->outPort(); + if(port == -1) + { + if(!curPart || !curPart->track() || !curPart->track()->isMidiTrack()) + return; + MidiTrack* mt = static_cast(curPart->track()); + port = mt->outPort(); + } int channel = old_style_drummap_mode ? ourDrumMap[index].channel : dynamic_cast(*instrument_map[index].tracks.begin())->outChannel(); + if(channel == -1) + { + if(!curPart || !curPart->track() || !curPart->track()->isMidiTrack()) + return; + MidiTrack* mt = static_cast(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(*instrument_map[index].tracks.begin())->outPort(); + if(port == -1) + { + if(!curPart || !curPart->track() || !curPart->track()->isMidiTrack()) + return; + MidiTrack* mt = static_cast(curPart->track()); + port = mt->outPort(); + } int channel = old_style_drummap_mode ? ourDrumMap[index].channel : dynamic_cast(*instrument_map[index].tracks.begin())->outChannel(); + if(channel == -1) + { + if(!curPart || !curPart->track() || !curPart->track()->isMidiTrack()) + return; + MidiTrack* mt = static_cast(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 #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 "" 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 -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(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(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 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -26,8 +26,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -40,8 +40,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -54,8 +54,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -68,8 +68,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -82,8 +82,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -96,8 +96,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -110,8 +110,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -124,8 +124,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -138,8 +138,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -152,8 +152,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -166,8 +166,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -180,8 +180,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -194,8 +194,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -208,8 +208,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -222,8 +222,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -236,8 +236,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -250,8 +250,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -264,8 +264,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -278,8 +278,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -292,8 +292,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -306,8 +306,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -320,8 +320,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -334,8 +334,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -348,8 +348,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -362,8 +362,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -376,8 +376,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -390,8 +390,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -404,8 +404,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -418,8 +418,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -432,8 +432,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -446,8 +446,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -460,8 +460,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -474,8 +474,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -488,8 +488,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -502,8 +502,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -516,8 +516,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -530,8 +530,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -544,8 +544,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -558,8 +558,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -572,8 +572,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -586,8 +586,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -600,8 +600,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -614,8 +614,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -628,8 +628,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -642,8 +642,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -656,8 +656,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -670,8 +670,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -684,8 +684,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -698,8 +698,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -712,8 +712,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -726,8 +726,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -740,8 +740,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -754,8 +754,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -768,8 +768,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -782,8 +782,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -796,8 +796,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -810,8 +810,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -824,8 +824,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -838,8 +838,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -852,8 +852,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -866,8 +866,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -880,8 +880,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -894,8 +894,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -908,8 +908,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -922,8 +922,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -936,8 +936,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -950,8 +950,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -964,8 +964,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 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 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -26,8 +26,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -40,8 +40,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -54,8 +54,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -68,8 +68,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -82,8 +82,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -96,8 +96,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -110,8 +110,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -124,8 +124,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -138,8 +138,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -152,8 +152,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -166,8 +166,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -180,8 +180,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -194,8 +194,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -208,8 +208,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -222,8 +222,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -236,8 +236,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -250,8 +250,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -264,8 +264,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -278,8 +278,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -292,8 +292,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -306,8 +306,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -320,8 +320,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -334,8 +334,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -348,8 +348,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -362,8 +362,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -376,8 +376,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -390,8 +390,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -404,8 +404,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -418,8 +418,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -432,8 +432,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -446,8 +446,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -460,8 +460,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -474,8 +474,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -488,8 +488,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -502,8 +502,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -516,8 +516,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -530,8 +530,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -544,8 +544,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -558,8 +558,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -572,8 +572,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -586,8 +586,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -600,8 +600,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -614,8 +614,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -628,8 +628,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -642,8 +642,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -656,8 +656,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -670,8 +670,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -684,8 +684,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -698,8 +698,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -712,8 +712,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -726,8 +726,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -740,8 +740,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -754,8 +754,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -768,8 +768,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -782,8 +782,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -796,8 +796,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -810,8 +810,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -824,8 +824,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -838,8 +838,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -852,8 +852,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -866,8 +866,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -880,8 +880,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -894,8 +894,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -908,8 +908,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -922,8 +922,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -936,8 +936,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -950,8 +950,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -964,8 +964,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 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 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -26,8 +26,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -40,8 +40,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -54,8 +54,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -68,8 +68,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -82,8 +82,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -96,8 +96,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -110,8 +110,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -124,8 +124,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -138,8 +138,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -152,8 +152,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -166,8 +166,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -180,8 +180,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -194,8 +194,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -208,8 +208,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -222,8 +222,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -236,8 +236,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -250,8 +250,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -264,8 +264,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -278,8 +278,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -292,8 +292,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -306,8 +306,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -320,8 +320,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -334,8 +334,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -348,8 +348,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -362,8 +362,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -376,8 +376,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -390,8 +390,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -404,8 +404,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -418,8 +418,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -432,8 +432,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -446,8 +446,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -460,8 +460,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -474,8 +474,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -488,8 +488,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -502,8 +502,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -516,8 +516,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -530,8 +530,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -544,8 +544,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -558,8 +558,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -572,8 +572,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -586,8 +586,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -600,8 +600,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -614,8 +614,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -628,8 +628,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -642,8 +642,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -656,8 +656,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -670,8 +670,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -684,8 +684,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -698,8 +698,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -712,8 +712,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -726,8 +726,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -740,8 +740,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -754,8 +754,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -768,8 +768,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -782,8 +782,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -796,8 +796,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -810,8 +810,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -824,8 +824,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -838,8 +838,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -852,8 +852,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -866,8 +866,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -880,8 +880,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -894,8 +894,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -908,8 +908,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -922,8 +922,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -936,8 +936,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -950,8 +950,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -964,8 +964,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -978,8 +978,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -992,8 +992,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1006,8 +1006,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1020,8 +1020,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1034,8 +1034,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1048,8 +1048,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1062,8 +1062,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1076,8 +1076,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1090,8 +1090,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1104,8 +1104,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1118,8 +1118,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1132,8 +1132,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1146,8 +1146,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1160,8 +1160,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1174,8 +1174,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1188,8 +1188,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1202,8 +1202,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1216,8 +1216,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1230,8 +1230,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1244,8 +1244,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1258,8 +1258,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1272,8 +1272,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1286,8 +1286,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1300,8 +1300,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1314,8 +1314,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1328,8 +1328,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1342,8 +1342,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1356,8 +1356,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1370,8 +1370,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1384,8 +1384,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1398,8 +1398,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1412,8 +1412,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 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 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -20,8 +20,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -34,8 +34,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -48,8 +48,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -62,8 +62,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -76,8 +76,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -90,8 +90,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -104,8 +104,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -118,8 +118,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -132,8 +132,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -146,8 +146,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -160,8 +160,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -174,8 +174,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -188,8 +188,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -202,8 +202,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -216,8 +216,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -230,8 +230,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -244,8 +244,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -258,8 +258,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -272,8 +272,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -286,8 +286,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -300,8 +300,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -314,8 +314,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -328,8 +328,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -342,8 +342,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -356,8 +356,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -370,8 +370,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -384,8 +384,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -398,8 +398,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -412,8 +412,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -426,8 +426,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -440,8 +440,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -454,8 +454,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -468,8 +468,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -482,8 +482,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -496,8 +496,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -510,8 +510,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -524,8 +524,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -538,8 +538,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -552,8 +552,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -566,8 +566,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -580,8 +580,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -594,8 +594,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -608,8 +608,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -622,8 +622,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -636,8 +636,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -650,8 +650,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -664,8 +664,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -678,8 +678,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -692,8 +692,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -706,8 +706,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -720,8 +720,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -734,8 +734,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -748,8 +748,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -762,8 +762,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -776,8 +776,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -790,8 +790,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -804,8 +804,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -818,8 +818,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -832,8 +832,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -846,8 +846,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -860,8 +860,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -874,8 +874,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -888,8 +888,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -902,8 +902,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -916,8 +916,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -930,8 +930,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -944,8 +944,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -958,8 +958,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -972,8 +972,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -986,8 +986,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1000,8 +1000,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1014,8 +1014,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1028,8 +1028,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1042,8 +1042,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1056,8 +1056,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1070,8 +1070,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1084,8 +1084,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1098,8 +1098,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1112,8 +1112,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1126,8 +1126,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1140,8 +1140,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1154,8 +1154,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1168,8 +1168,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1182,8 +1182,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1196,8 +1196,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1210,8 +1210,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1224,8 +1224,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1238,8 +1238,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1252,8 +1252,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1266,8 +1266,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1280,8 +1280,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1294,8 +1294,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1308,8 +1308,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1322,8 +1322,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1336,8 +1336,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1350,8 +1350,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1364,8 +1364,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1378,8 +1378,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1392,8 +1392,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 @@ -1406,8 +1406,8 @@ 100 16 32 - 9 - 0 + -1 + -1 70 90 127 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 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -20,8 +20,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -34,8 +34,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -48,8 +48,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -62,8 +62,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -76,8 +76,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -90,8 +90,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -104,8 +104,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -118,8 +118,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -132,8 +132,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -146,8 +146,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -160,8 +160,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -174,8 +174,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -188,8 +188,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -202,8 +202,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -216,8 +216,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -230,8 +230,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -244,8 +244,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -258,8 +258,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -272,8 +272,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -286,8 +286,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -300,8 +300,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -314,8 +314,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -328,8 +328,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -342,8 +342,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -356,8 +356,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -370,8 +370,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -384,8 +384,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -398,8 +398,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -412,8 +412,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -426,8 +426,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -440,8 +440,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -454,8 +454,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -468,8 +468,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -482,8 +482,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -496,8 +496,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -510,8 +510,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -524,8 +524,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -538,8 +538,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -552,8 +552,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -566,8 +566,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -580,8 +580,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -594,8 +594,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -608,8 +608,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -622,8 +622,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -636,8 +636,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -650,8 +650,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -664,8 +664,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -678,8 +678,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -692,8 +692,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -706,8 +706,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -720,8 +720,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -734,8 +734,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -748,8 +748,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -762,8 +762,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -776,8 +776,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -790,8 +790,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -804,8 +804,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -818,8 +818,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -832,8 +832,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -846,8 +846,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -860,8 +860,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -874,8 +874,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -888,8 +888,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -902,8 +902,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -916,8 +916,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -930,8 +930,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -944,8 +944,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -958,8 +958,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -972,8 +972,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -986,8 +986,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -1000,8 +1000,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -1014,8 +1014,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -1028,8 +1028,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -1042,8 +1042,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -1056,8 +1056,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -1070,8 +1070,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -1084,8 +1084,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -1098,8 +1098,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -1112,8 +1112,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -1126,8 +1126,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -1140,8 +1140,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -1154,8 +1154,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -1168,8 +1168,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -1182,8 +1182,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -1196,8 +1196,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -1210,8 +1210,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -1224,8 +1224,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -1238,8 +1238,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -1252,8 +1252,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -1266,8 +1266,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -1280,8 +1280,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -1294,8 +1294,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -1308,8 +1308,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -1322,8 +1322,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -1336,8 +1336,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -1350,8 +1350,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -1364,8 +1364,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -1378,8 +1378,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -1392,8 +1392,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -1406,8 +1406,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -1420,8 +1420,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -1434,8 +1434,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -1448,8 +1448,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -1462,8 +1462,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -1476,8 +1476,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -1490,8 +1490,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -1504,8 +1504,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -1518,8 +1518,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -1532,8 +1532,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -1546,8 +1546,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -1560,8 +1560,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -1574,8 +1574,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -1588,8 +1588,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -1602,8 +1602,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -1616,8 +1616,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -1630,8 +1630,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -1644,8 +1644,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -1658,8 +1658,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -1672,8 +1672,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -1686,8 +1686,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -1700,8 +1700,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -1714,8 +1714,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -1728,8 +1728,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -1742,8 +1742,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -1756,8 +1756,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -1770,8 +1770,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 @@ -1784,8 +1784,8 @@ 100 16 32 - 0 - 0 + -1 + -1 70 90 110 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 @@ PickBass A#13434 PickBass B13535 BD Analog 80813636 -BD R&B 113737 -BD R&B 213838 +BD R&B 113737 +BD R&B 213838 BD Lo-Fi13939 BD Jungle14040 BD Hip 114141 @@ -53,8 +53,8 @@ BD Elec 2 90914949 BD Elec 3 90915050 SD Live15151 -SD R&B 115252 -SD R&B 215353 +SD R&B 115252 +SD R&B 215353 SD Analog 80815454 SD Hip 115555 SD Hip 2 Lo-Fi15656 @@ -62,14 +62,14 @@ SD Cut Jungle15858 SD Dodge15959 SD Timbra16060 -SD D&B16161 +SD D&B16161 SD Dist 90916262 SD Elec 1 90916363 SD Elec 2 90916464 SD Rim 116565 SD Rim 216666 -HH D&B Cls16767 -HH D&B Opn16868 +HH D&B Cls16767 +HH D&B Opn16868 HH Ana Cls 1 90916969 HH Ana Opn 1 80817070 HH Syn Cls17171 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 @@ - + + - + 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", +">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