diff options
25 files changed, 1730 insertions, 1391 deletions
diff --git a/muse2/ChangeLog b/muse2/ChangeLog index 8f49d5c9..c53b445b 100644 --- a/muse2/ChangeLog +++ b/muse2/ChangeLog @@ -1,3 +1,12 @@ +10.01.2014: + - Instrument Editor now basically complete: Added Initialization Sequence editor. (Tim) + Initialization sequence sysex's can be entered manually or chosen from pre-defined list + using sysex event editor. + - Sysex event editor now allows selection from pre-defined Instrument Sysex list. + - Revised and edited Roland SD-50.idf by Patrick (split into GM2/nonGM2). + - Fixed GM2.idf file prog numbers wrong. + - MusE now imports GM2 midi files. (Properly selects GM2 instrument.) + - Fixed several build-system ordering problems. Also some code cleanups, tweaks. 06.01.2014: - Midi instrument can now be changed from midi track info panel. (Tim) - Some minor code tweaks, code cleanup in mtrackinfo.cpp, confmport.cpp. diff --git a/muse2/muse/app.cpp b/muse2/muse/app.cpp index df061217..97781a2a 100644 --- a/muse2/muse/app.cpp +++ b/muse2/muse/app.cpp @@ -2864,7 +2864,7 @@ again: // startEditInstrument //--------------------------------------------------------- -void MusE::startEditInstrument(const QString& find_instrument, EditInstrument::TabType show_tab) +void MusE::startEditInstrument(const QString& find_instrument, EditInstrumentTabType show_tab) { if(editInstrument == 0) { diff --git a/muse2/muse/app.h b/muse2/muse/app.h index 5d17f096..4fe7658c 100644 --- a/muse2/muse/app.h +++ b/muse2/muse/app.h @@ -25,8 +25,8 @@ #define __APP_H__ #include "config.h" +#include "globaldefs.h" #include "cobject.h" -#include <editinstrument.h> #include <QFileInfo> #include <list> @@ -60,7 +60,6 @@ class WaveTrack; class Xml; } - namespace MusEGui { class Appearance; class Arranger; @@ -342,7 +341,7 @@ class MusE : public QMainWindow void showArranger(bool); void importMidi(const QString &file); void showDidYouKnowDialog(); - void startEditInstrument(const QString& find_instrument = QString(), EditInstrument::TabType show_tab = EditInstrument::Patches); + void startEditInstrument(const QString& find_instrument = QString(), EditInstrumentTabType show_tab = EditInstrumentPatches); void configMidiPorts(); void startEditor(MusECore::PartList*, int); diff --git a/muse2/muse/ctrl/ctrlpanel.cpp b/muse2/muse/ctrl/ctrlpanel.cpp index c8ed9bbd..dbbbc2f9 100644 --- a/muse2/muse/ctrl/ctrlpanel.cpp +++ b/muse2/muse/ctrl/ctrlpanel.cpp @@ -36,11 +36,11 @@ #include <math.h> +#include "globaldefs.h" #include "app.h" #include "globals.h" #include "midictrl.h" #include "instruments/minstrument.h" -#include "editinstrument.h" #include "midiport.h" #include "mididev.h" #include "xml.h" @@ -646,7 +646,7 @@ void CtrlPanel::ctrlPopupTriggered(QAction* act) } else if (rv == edit_ins) { // edit instrument MusECore::MidiInstrument* instr = port->instrument(); - MusEGlobal::muse->startEditInstrument(instr ? instr->iname() : QString(), EditInstrument::Controllers); + MusEGlobal::muse->startEditInstrument(instr ? instr->iname() : QString(), EditInstrumentControllers); } else { // Select a control MusECore::iMidiCtrlValList i = cll->find(channel, rv); diff --git a/muse2/muse/globaldefs.h b/muse2/muse/globaldefs.h index 300aa07d..70fd4b02 100644 --- a/muse2/muse/globaldefs.h +++ b/muse2/muse/globaldefs.h @@ -28,8 +28,9 @@ // MT_GM - General Midi // MT_GS - Roland GS // MT_XG - Yamaha XG +// MT_GM2 - General Midi Level 2 -enum MType { MT_UNKNOWN=0, MT_GM, MT_GS, MT_XG }; +enum MType { MT_UNKNOWN=0, MT_GM, MT_GS, MT_XG, MT_GM2 }; enum AutomationType { AUTO_OFF, AUTO_READ, AUTO_TOUCH, AUTO_WRITE @@ -49,5 +50,9 @@ const int MIDI_PORTS = 200; // max Number of Midi Ports #define MIDI_CHANNELS 16 // Channels per Port #endif +namespace MusEGui { +enum EditInstrumentTabType { EditInstrumentPatches=0, EditInstrumentDrumMaps=1, EditInstrumentControllers=2, EditInstrumentSysex=3, EditInstrumentInitSeq=4 }; +} + #endif diff --git a/muse2/muse/helper.cpp b/muse2/muse/helper.cpp index 75cbce9f..5aae9905 100644 --- a/muse2/muse/helper.cpp +++ b/muse2/muse/helper.cpp @@ -40,6 +40,7 @@ #include "audiodev.h" #include "midi.h" #include "midiseq.h" +#include "midictrl.h" #include "popupmenu.h" #include "menutitleitem.h" diff --git a/muse2/muse/instruments/CMakeLists.txt b/muse2/muse/instruments/CMakeLists.txt index 5a3bedad..7fcc22b6 100644 --- a/muse2/muse/instruments/CMakeLists.txt +++ b/muse2/muse/instruments/CMakeLists.txt @@ -43,9 +43,7 @@ QT4_WRAP_UI ( instruments_uis ${instruments_ui_files} ) ## file (GLOB instruments_source_files editinstrument.cpp - editinstrument.h minstrument.cpp - minstrument.h ) ## diff --git a/muse2/muse/instruments/editinstrument.cpp b/muse2/muse/instruments/editinstrument.cpp index c0d82595..b3efdb8a 100644 --- a/muse2/muse/instruments/editinstrument.cpp +++ b/muse2/muse/instruments/editinstrument.cpp @@ -37,20 +37,25 @@ #include <QScrollBar> #include <QVariant> #include <QList> +#include <QString> +#include <QObject> +#include <QTreeWidgetItem> #include <list> -#include "editinstrument.h" #include "minstrument.h" +#include "midictrl.h" +#include "editinstrument.h" #include "globals.h" #include "song.h" #include "xml.h" -#include "midictrl.h" +#include "midi.h" #include "gconfig.h" #include "icons.h" #include "popupmenu.h" #include "dlist.h" #include "drummap.h" #include "header.h" +#include "editevent.h" namespace MusECore { extern int string2sysex(const QString& s, unsigned char** data); @@ -65,6 +70,120 @@ enum { }; //--------------------------------------------------------- +// InitListItem +//--------------------------------------------------------- + +class InitListItem : public QTreeWidgetItem { + public: + MusECore::Event _event; + MusECore::MidiInstrument* _instr; + + InitListItem(QTreeWidget* parent, MusECore::Event ev, MusECore::MidiInstrument* ins) + : QTreeWidgetItem(parent) { + _event = ev; + _instr = ins; + setData(0, Qt::DisplayRole, colText(0)); + setData(1, Qt::DisplayRole, colText(1)); + setData(2, Qt::DisplayRole, colText(2)); + setData(3, Qt::DisplayRole, colText(3)); + } + virtual QString colText(int col) const; + + //virtual QVariant data(int col, int role) const; + + virtual bool operator< ( const QTreeWidgetItem & other ) const + { + int col = other.treeWidget()->sortColumn(); + InitListItem* eli = (InitListItem*) &other; + switch(col) + { + case 0: + return _event.tick() < eli->_event.tick(); + break; + case 1: + return _event.dataLen() < eli->_event.dataLen(); + break; + case 2: + return colText(col).localeAwareCompare(other.text(col)) < 0; + break; + case 3: + return colText(col).localeAwareCompare(other.text(col)) < 0; + break; + default: + break; + } + return 0; + } + }; + +// //--------------------------------------------------------- +// // data +// //--------------------------------------------------------- +// +// QVariant InitListItem::data(int col, int role) const +// { +// if(role != Qt::DisplayRole && role != Qt::EditRole) +// return QString(); +// return colText(col); +// } + +//--------------------------------------------------------- +// colText +//--------------------------------------------------------- + +QString InitListItem::colText(int col) const + { + QString s; + QString commentLabel; + switch(col) { + case 0: + s.setNum(_event.tick()); + break; + case 1: + s.setNum(_event.dataLen()); + break; + case 2: + switch(_event.type()) { + case MusECore::Sysex: + { + int i; + for (i = 0; i < 10; ++i) { + if (i >= _event.dataLen()) + break; + s += QString(" 0x"); + QString k; + k.setNum(_event.data()[i] & 0xff, 16); + s += k; + } + if (i == 10) + s += QString("..."); + } + break; + default: + break; + } + break; + case 3: + switch(_event.type()) { + case MusECore::Sysex: + { + return MusECore::nameSysex(_event.dataLen(), _event.data(), _instr); + } + break; + case MusECore::Controller: + s = QObject::tr("Controller !"); + break; + default: + s = QObject::tr("Other !"); + break; + } + break; + + } + return s; + } + +//--------------------------------------------------------- // EditInstrument //--------------------------------------------------------- @@ -73,6 +192,8 @@ EditInstrument::EditInstrument(QWidget* parent, Qt::WFlags fl) { setupUi(this); + workingInstrument = new MusECore::MidiInstrument(); + ctrlType->addItem(tr("Control7"), MusECore::MidiController::Controller7); ctrlType->addItem(tr("Control14"), MusECore::MidiController::Controller14); ctrlType->addItem(tr("RPN"), MusECore::MidiController::RPN); @@ -141,6 +262,26 @@ EditInstrument::EditInstrument(QWidget* parent, Qt::WFlags fl) dlist_header->hideSection(COL_MUTE); dlist_header->hide(); + QFontMetrics fm(initEventList->font()); + int n = fm.width('9'); + int b = 24; + initEventList->setAllColumnsShowFocus(true); + initEventList->setSelectionMode(QAbstractItemView::SingleSelection); + QStringList columnnames; + columnnames << tr("Tick") + << tr("Len") + << tr("Data") + << tr("Name"); + initEventList->setHeaderLabels(columnnames); + initEventList->setColumnWidth(0, n * 6 + b); + initEventList->setColumnWidth(1, n * 6 + b); + //initEventList->setSortingEnabled(true); // No sorting - we want same order of event list! + //initEventList->sortByColumn(0, Qt::AscendingOrder); + connect(initEventList, SIGNAL(itemDoubleClicked(QTreeWidgetItem*, int)), SLOT(editInitListItem(QTreeWidgetItem*))); + connect(initChangeButton, SIGNAL(clicked(bool)), SLOT(initListChangeClicked())); + connect(initAddButton, SIGNAL(clicked(bool)), SLOT(initListAddClicked())); + connect(initDeleteButton, SIGNAL(clicked(bool)), SLOT(initListDeleteClicked())); + ctrlValidLabel->setPixmap(*greendotIcon); connect(patchFromBox, SIGNAL(valueChanged(int)), this, SLOT(patchCollectionSpinboxChanged(int))); @@ -223,6 +364,11 @@ EditInstrument::EditInstrument(QWidget* parent, Qt::WFlags fl) connect(newSysex, SIGNAL(clicked()), SLOT(newSysexClicked())); } +EditInstrument::~EditInstrument() +{ + delete workingInstrument; +} + void EditInstrument::findInstrument(const QString& find_instrument) { if(find_instrument.isEmpty()) @@ -232,7 +378,7 @@ void EditInstrument::findInstrument(const QString& find_instrument) instrumentList->setCurrentItem(found.at(0)); } -void EditInstrument::showTab(TabType n) +void EditInstrument::showTab(EditInstrumentTabType n) { if(n >= tabWidget3->count()) return; @@ -264,7 +410,7 @@ void EditInstrument::storePatchCollection() using MusECore::patch_drummap_mapping_t; int idx=patchCollections->currentIndex().row(); - std::list<patch_drummap_mapping_t>* pdm = workingInstrument.get_patch_drummap_mapping(); + std::list<patch_drummap_mapping_t>* pdm = workingInstrument->get_patch_drummap_mapping(); if (idx>=0 && (unsigned)idx<pdm->size()) { std::list<patch_drummap_mapping_t>::iterator it=pdm->begin(); @@ -303,7 +449,7 @@ void EditInstrument::storePatchCollection() it->affected_patches.last_hbank=127; } - workingInstrument.setDirty(true); + workingInstrument->setDirty(true); repopulatePatchCollections(); } } @@ -313,7 +459,7 @@ void EditInstrument::fetchPatchCollection() using MusECore::patch_drummap_mapping_t; int idx=patchCollections->currentIndex().row(); - std::list<patch_drummap_mapping_t>* pdm = workingInstrument.get_patch_drummap_mapping(); + std::list<patch_drummap_mapping_t>* pdm = workingInstrument->get_patch_drummap_mapping(); if (idx>=0 && (unsigned)idx<pdm->size()) { std::list<patch_drummap_mapping_t>::iterator it=pdm->begin(); @@ -357,7 +503,7 @@ void EditInstrument::patchActivated(const QModelIndex& idx) { using MusECore::DrumMap; - std::list<patch_drummap_mapping_t>* tmp = workingInstrument.get_patch_drummap_mapping(); + std::list<patch_drummap_mapping_t>* tmp = workingInstrument->get_patch_drummap_mapping(); std::list<patch_drummap_mapping_t>::iterator it=tmp->begin(); if ((unsigned)idx.row()>=tmp->size()) printf("THIS SHOULD NEVER HAPPEN: idx.row()>=tmp->size() in EditInstrument::patchActivated()\n"); @@ -401,7 +547,7 @@ void EditInstrument::addPatchCollection() int idx=patchCollections->currentIndex().row(); - std::list<patch_drummap_mapping_t>* tmp = workingInstrument.get_patch_drummap_mapping(); + std::list<patch_drummap_mapping_t>* tmp = workingInstrument->get_patch_drummap_mapping(); std::list<patch_drummap_mapping_t>::iterator it=tmp->begin(); advance(it,idx+1); tmp->insert(it,patch_drummap_mapping_t()); @@ -410,7 +556,7 @@ void EditInstrument::addPatchCollection() patchCollections->setCurrentIndex(patch_coll_model->index(idx+1)); patchActivated(patchCollections->currentIndex()); - workingInstrument.setDirty(true); + workingInstrument->setDirty(true); } void EditInstrument::delPatchCollection() @@ -436,7 +582,7 @@ void EditInstrument::delPatchCollection() collUpBtn->setEnabled(false); collDownBtn->setEnabled(false); - std::list<patch_drummap_mapping_t>* tmp = workingInstrument.get_patch_drummap_mapping(); + std::list<patch_drummap_mapping_t>* tmp = workingInstrument->get_patch_drummap_mapping(); std::list<patch_drummap_mapping_t>::iterator it=tmp->begin(); advance(it,idx); tmp->erase(it); @@ -444,7 +590,7 @@ void EditInstrument::delPatchCollection() repopulatePatchCollections(); patchActivated(patchCollections->currentIndex()); - workingInstrument.setDirty(true); + workingInstrument->setDirty(true); } } @@ -454,7 +600,7 @@ void EditInstrument::copyPatchCollection() int idx=patchCollections->currentIndex().row(); - std::list<patch_drummap_mapping_t>* tmp = workingInstrument.get_patch_drummap_mapping(); + std::list<patch_drummap_mapping_t>* tmp = workingInstrument->get_patch_drummap_mapping(); std::list<patch_drummap_mapping_t>::iterator it=tmp->begin(); advance(it,idx); patch_drummap_mapping_t tmp2(*it); @@ -465,14 +611,14 @@ void EditInstrument::copyPatchCollection() patch_coll_model->setData(patch_coll_model->index(idx+1), patch_coll_model->index(idx).data()); patchCollections->setCurrentIndex(patch_coll_model->index(idx+1)); patchActivated(patchCollections->currentIndex()); - workingInstrument.setDirty(true); + workingInstrument->setDirty(true); } void EditInstrument::patchCollectionUp() { using MusECore::patch_drummap_mapping_t; - std::list<patch_drummap_mapping_t>* pdm = workingInstrument.get_patch_drummap_mapping(); + std::list<patch_drummap_mapping_t>* pdm = workingInstrument->get_patch_drummap_mapping(); int idx=patchCollections->currentIndex().row(); if (idx>=1) @@ -492,7 +638,7 @@ void EditInstrument::patchCollectionUp() patchCollections->setCurrentIndex(patch_coll_model->index(idx-1)); patchActivated(patchCollections->currentIndex()); - workingInstrument.setDirty(true); + workingInstrument->setDirty(true); } } @@ -500,7 +646,7 @@ void EditInstrument::patchCollectionDown() { using MusECore::patch_drummap_mapping_t; - std::list<patch_drummap_mapping_t>* pdm = workingInstrument.get_patch_drummap_mapping(); + std::list<patch_drummap_mapping_t>* pdm = workingInstrument->get_patch_drummap_mapping(); int idx=patchCollections->currentIndex().row(); if ((unsigned)idx<pdm->size()-1) @@ -520,7 +666,7 @@ void EditInstrument::patchCollectionDown() patchCollections->setCurrentIndex(patch_coll_model->index(idx+1)); patchActivated(patchCollections->currentIndex()); - workingInstrument.setDirty(true); + workingInstrument->setDirty(true); } } @@ -531,7 +677,7 @@ void EditInstrument::repopulatePatchCollections() int idx=patchCollections->currentIndex().row(); QStringList strlist; - std::list<patch_drummap_mapping_t>* pdm = workingInstrument.get_patch_drummap_mapping(); + std::list<patch_drummap_mapping_t>* pdm = workingInstrument->get_patch_drummap_mapping(); for (std::list<patch_drummap_mapping_t>::iterator it=pdm->begin(); it!=pdm->end(); it++) strlist << it->affected_patches.to_string(); @@ -572,7 +718,7 @@ void EditInstrument::fileNew() MusECore::MidiInstrument* oi = 0; if(oldMidiInstrument) oi = (MusECore::MidiInstrument*)oldMidiInstrument->data(Qt::UserRole).value<void*>(); - MusECore::MidiInstrument* wip = &workingInstrument; + MusECore::MidiInstrument* wip = workingInstrument; if(checkDirty(wip)) // No save was chosen. Restore the actual instrument name. { if(oi) @@ -586,13 +732,13 @@ void EditInstrument::fileNew() } } - workingInstrument.setDirty(false); + workingInstrument->setDirty(false); MusECore::MidiInstrument* ni = new MusECore::MidiInstrument(s); MusECore::midiInstruments.push_back(ni); QListWidgetItem* item = new QListWidgetItem(ni->iname()); - workingInstrument.assign( *ni ); + workingInstrument->assign( *ni ); QVariant v = qVariantFromValue((void*)(ni)); item->setData(Qt::UserRole, v); @@ -607,7 +753,7 @@ void EditInstrument::fileNew() changeInstrument(); // We have our new instrument! So set dirty to true. - workingInstrument.setDirty(true); + workingInstrument->setDirty(true); break; } @@ -629,21 +775,21 @@ void EditInstrument::fileOpen() //DELETETHIS? void EditInstrument::fileSave() { - if (workingInstrument.filePath().isEmpty()) + if (workingInstrument->filePath().isEmpty()) { saveAs(); return; } // Do not allow a direct overwrite of a 'built-in' muse instrument. - QFileInfo qfi(workingInstrument.filePath()); + QFileInfo qfi(workingInstrument->filePath()); if(qfi.absolutePath() == MusEGlobal::museInstruments) { saveAs(); return; } - FILE* f = fopen(workingInstrument.filePath().toLatin1().constData(), "w"); + FILE* f = fopen(workingInstrument->filePath().toLatin1().constData(), "w"); if(f == 0) { saveAs(); @@ -657,14 +803,14 @@ void EditInstrument::fileSave() if(fclose(f) != 0) { - QString s = QString("Creating file:\n") + workingInstrument.filePath() + QString("\nfailed: ") + QString s = QString("Creating file:\n") + workingInstrument->filePath() + QString("\nfailed: ") + QString(strerror(errno) ); QMessageBox::critical(this, tr("MusE: Create file failed"), s); return; } - if(fileSave(&workingInstrument, workingInstrument.filePath())) - workingInstrument.setDirty(false); + if(fileSave(workingInstrument, workingInstrument->filePath())) + workingInstrument->setDirty(false); } //--------------------------------------------------------- @@ -695,7 +841,7 @@ bool EditInstrument::fileSave(MusECore::MidiInstrument* instrument, const QStrin MusECore::MidiInstrument* oi = (MusECore::MidiInstrument*)oldMidiInstrument->data(Qt::UserRole).value<void*>(); if(oi) { - oi->assign(workingInstrument); + oi->assign(*workingInstrument); // Now signal the rest of the app so stuff can change... MusEGlobal::song->update(SC_CONFIG | SC_MIDI_CONTROLLER); @@ -732,10 +878,10 @@ void EditInstrument::saveAs() //path = MusEGlobal::configPath; } - if (workingInstrument.filePath().isEmpty()) - path += QString("/%1.idf").arg(workingInstrument.iname()); + if (workingInstrument->filePath().isEmpty()) + path += QString("/%1.idf").arg(workingInstrument->iname()); else { - QFileInfo fi(workingInstrument.filePath()); + QFileInfo fi(workingInstrument->filePath()); // Prompt for a new instrument name if the name has not been changed, to avoid duplicates. if(oldMidiInstrument) @@ -743,13 +889,13 @@ void EditInstrument::saveAs() MusECore::MidiInstrument* oi = (MusECore::MidiInstrument*)oldMidiInstrument->data(Qt::UserRole).value<void*>(); if(oi) { - if(oi->iname() == workingInstrument.iname()) + if(oi->iname() == workingInstrument->iname()) { // Prompt only if it's a user instrument, to avoid duplicates in the user instrument dir. // This will still allow a user instrument to override a built-in instrument with the same name. if(fi.absolutePath() != MusEGlobal::museInstruments) { - printf("EditInstrument::saveAs Error: Instrument name %s already used!\n", workingInstrument.iname().toLatin1().constData()); + printf("EditInstrument::saveAs Error: Instrument name %s already used!\n", workingInstrument->iname().toLatin1().constData()); return; } } @@ -762,10 +908,10 @@ void EditInstrument::saveAs() path, tr("Instrument Definition (*.idf)")); if (s.isEmpty()) return; - workingInstrument.setFilePath(s); + workingInstrument->setFilePath(s); - if(fileSave(&workingInstrument, s)) - workingInstrument.setDirty(false); + if(fileSave(workingInstrument, s)) + workingInstrument->setDirty(false); } //--------------------------------------------------------- @@ -775,7 +921,7 @@ void EditInstrument::saveAs() void EditInstrument::fileSaveAs() { // Is this a new unsaved instrument? Just do a normal save. - if(workingInstrument.filePath().isEmpty()) + if(workingInstrument->filePath().isEmpty()) { saveAs(); return; @@ -790,12 +936,12 @@ void EditInstrument::fileSaveAs() if(oldMidiInstrument) oi = (MusECore::MidiInstrument*)oldMidiInstrument->data(Qt::UserRole).value<void*>(); - int res = checkDirty(&workingInstrument, true); + int res = checkDirty(workingInstrument, true); switch(res) { // No save: case 1: - workingInstrument.setDirty(false); + workingInstrument->setDirty(false); if(oi) { oldMidiInstrument->setText(oi->iname()); @@ -821,16 +967,16 @@ void EditInstrument::fileSaveAs() // Save: case 0: - workingInstrument.setDirty(false); + workingInstrument->setDirty(false); break; } bool isuser = false; QString so; - if(workingInstrument.iname().isEmpty()) + if(workingInstrument->iname().isEmpty()) so = QString("Instrument"); else - so = workingInstrument.iname(); + so = workingInstrument->iname(); for(int i = 1;; ++i) { @@ -872,7 +1018,7 @@ void EditInstrument::fileSaveAs() if((*imi)->iname() == s) { // If it's not the same name as the working instrument, and it's not an internal instrument (soft synth etc.)... - if(s != workingInstrument.iname() && !(*imi)->filePath().isEmpty()) + if(s != workingInstrument->iname() && !(*imi)->filePath().isEmpty()) { QFileInfo fi((*imi)->filePath()); // Allow override of built-in and user instruments: @@ -889,7 +1035,7 @@ void EditInstrument::fileSaveAs() Qt::NoButton) == QMessageBox::Ok) { // Set the working instrument's file path to the found instrument's path. - workingInstrument.setFilePath((*imi)->filePath()); + workingInstrument->setFilePath((*imi)->filePath()); // Mark as overwriting a user instrument. isuser = true; } @@ -901,7 +1047,7 @@ void EditInstrument::fileSaveAs() } // Assign the found instrument name to the working instrument name. - workingInstrument.setIName(s); + workingInstrument->setIName(s); // Find the instrument in the list and set the old instrument to the item. oldMidiInstrument = instrumentList->findItems(s, Qt::MatchExactly)[0]; @@ -927,13 +1073,13 @@ void EditInstrument::fileSaveAs() if(!builtin) { MusECore::MidiInstrument* ni = new MusECore::MidiInstrument(); - ni->assign(workingInstrument); + ni->assign(*workingInstrument); ni->setIName(so); ni->setFilePath(QString()); MusECore::midiInstruments.push_back(ni); QListWidgetItem* item = new QListWidgetItem(so); - workingInstrument.assign( *ni ); + workingInstrument->assign( *ni ); QVariant v = qVariantFromValue((void*)(ni)); item->setData(Qt::UserRole, v); @@ -948,7 +1094,7 @@ void EditInstrument::fileSaveAs() changeInstrument(); // We have our new instrument! So set dirty to true. - workingInstrument.setDirty(true); + workingInstrument->setDirty(true); } break; @@ -975,11 +1121,11 @@ void EditInstrument::fileSaveAs() path, tr("Instrument Definition (*.idf)")); if (sfn.isEmpty()) return; - workingInstrument.setFilePath(sfn); + workingInstrument->setFilePath(sfn); } - if(fileSave(&workingInstrument, sfn)) - workingInstrument.setDirty(false); + if(fileSave(workingInstrument, sfn)) + workingInstrument->setDirty(false); } //--------------------------------------------------------- @@ -1006,12 +1152,12 @@ void EditInstrument::closeEvent(QCloseEvent* ev) if(oldMidiInstrument) oi = (MusECore::MidiInstrument*)oldMidiInstrument->data(Qt::UserRole).value<void*>(); - int res = checkDirty(&workingInstrument, true); + int res = checkDirty(workingInstrument, true); switch(res) { // No save: case 1: - workingInstrument.setDirty(false); + workingInstrument->setDirty(false); if(oi) { oldMidiInstrument->setText(oi->iname()); @@ -1037,7 +1183,7 @@ void EditInstrument::closeEvent(QCloseEvent* ev) // Save: case 0: - workingInstrument.setDirty(false); + workingInstrument->setDirty(false); break; } @@ -1060,9 +1206,9 @@ void EditInstrument::changeInstrument() // Assignment // Assign will 'delete' any existing patches, groups, or controllers. - workingInstrument.assign( *((MusECore::MidiInstrument*)sel->data(Qt::UserRole).value<void*>()) ); + workingInstrument->assign( *((MusECore::MidiInstrument*)sel->data(Qt::UserRole).value<void*>()) ); - workingInstrument.setDirty(false); + workingInstrument->setDirty(false); // populate patch list patchView->blockSignals(true); @@ -1076,12 +1222,12 @@ void EditInstrument::changeInstrument() viewController->clear(); instrumentName->blockSignals(true); - instrumentName->setText(workingInstrument.iname()); + instrumentName->setText(workingInstrument->iname()); instrumentName->blockSignals(false); nullParamSpinBoxH->blockSignals(true); nullParamSpinBoxL->blockSignals(true); - int nv = workingInstrument.nullSendValue(); + int nv = workingInstrument->nullSendValue(); if(nv == -1) { nullParamSpinBoxH->setValue(-1); @@ -1105,7 +1251,9 @@ void EditInstrument::changeInstrument() sysexList->blockSignals(true); sysexList->clear(); - foreach(const MusECore::SysEx* s, workingInstrument.sysex()) { + foreach(const MusECore::SysEx* s, workingInstrument->sysex()) { + if(!s) + continue; QListWidgetItem* item = new QListWidgetItem(s->name); QVariant v = QVariant::fromValue((void*)s); item->setData(Qt::UserRole, v); @@ -1115,8 +1263,10 @@ void EditInstrument::changeInstrument() sysexList->item(0)->setSelected(true); sysexList->blockSignals(false); sysexChanged(sysexList->item(0), 0); + + populateInitEventList(); - MusECore::PatchGroupList* pg = workingInstrument.groups(); + MusECore::PatchGroupList* pg = workingInstrument->groups(); for (MusECore::ciPatchGroup g = pg->begin(); g != pg->end(); ++g) { MusECore::PatchGroup* pgp = *g; if(pgp) @@ -1154,7 +1304,7 @@ void EditInstrument::changeInstrument() patchChanged(); - MusECore::MidiControllerList* cl = workingInstrument.controller(); + MusECore::MidiControllerList* cl = workingInstrument->controller(); for (MusECore::ciMidiController ic = cl->begin(); ic != cl->end(); ++ic) { MusECore::MidiController* c = ic->second; addControllerToView(c); @@ -1205,7 +1355,7 @@ void EditInstrument::instrumentChanged() MusECore::MidiInstrument* oi = 0; if(oldMidiInstrument) oi = (MusECore::MidiInstrument*)oldMidiInstrument->data(Qt::UserRole).value<void*>(); - MusECore::MidiInstrument* wip = &workingInstrument; + MusECore::MidiInstrument* wip = workingInstrument; // Returns true if aborted. if(checkDirty(wip)) { @@ -1224,7 +1374,7 @@ void EditInstrument::instrumentChanged() } } - workingInstrument.setDirty(false); + workingInstrument->setDirty(false); changeInstrument(); } @@ -1267,8 +1417,8 @@ void EditInstrument::instrumentNameReturn() } item->setText(s); - workingInstrument.setIName(s); - workingInstrument.setDirty(true); + workingInstrument->setIName(s); + workingInstrument->setDirty(true); } //--------------------------------------------------------- @@ -1321,9 +1471,9 @@ void EditInstrument::tabChanged(QWidget* w) { // Don't bother calling patchChanged, just update the patch or group. if(oldPatchItem->QTreeWidgetItem::parent()) - updatePatch(&workingInstrument, (MusECore::Patch*)oldPatchItem->data(0, Qt::UserRole).value<void*>()); + updatePatch(workingInstrument, (MusECore::Patch*)oldPatchItem->data(0, Qt::UserRole).value<void*>()); else - updatePatchGroup(&workingInstrument, (MusECore::PatchGroup*)oldPatchItem->data(0, Qt::UserRole).value<void*>()); + updatePatchGroup(workingInstrument, (MusECore::PatchGroup*)oldPatchItem->data(0, Qt::UserRole).value<void*>()); } // We're still on the same item. No need to set oldPatchItem as in patchChanged... @@ -1362,7 +1512,7 @@ void EditInstrument::patchNameReturn() if(item->text(0) == s) return; - MusECore::PatchGroupList* pg = workingInstrument.groups(); + MusECore::PatchGroupList* pg = workingInstrument->groups(); for(MusECore::iPatchGroup g = pg->begin(); g != pg->end(); ++g) { MusECore::PatchGroup* pgp = *g; @@ -1414,7 +1564,7 @@ void EditInstrument::patchNameReturn() } item->setText(0, s); - workingInstrument.setDirty(true); + workingInstrument->setDirty(true); } //--------------------------------------------------------- @@ -1425,9 +1575,9 @@ void EditInstrument::patchChanged() if(oldPatchItem) { if(oldPatchItem->parent()) - updatePatch(&workingInstrument, (MusECore::Patch*)oldPatchItem->data(0, Qt::UserRole).value<void*>()); + updatePatch(workingInstrument, (MusECore::Patch*)oldPatchItem->data(0, Qt::UserRole).value<void*>()); else - updatePatchGroup(&workingInstrument, (MusECore::PatchGroup*)oldPatchItem->data(0, Qt::UserRole).value<void*>()); + updatePatchGroup(workingInstrument, (MusECore::PatchGroup*)oldPatchItem->data(0, Qt::UserRole).value<void*>()); } QTreeWidgetItem* sel = patchView->selectedItems().size() ? patchView->selectedItems()[0] : 0; @@ -1439,7 +1589,8 @@ void EditInstrument::patchChanged() spinBoxHBank->setEnabled(false); spinBoxLBank->setEnabled(false); spinBoxProgram->setEnabled(false); - checkBoxDrum->setEnabled(false); + showPatchInMidiButton->setEnabled(false); + showPatchInDrumsButton->setEnabled(false); // REMOVE Tim. OBSOLETE. When gui boxes are finally removed. //checkBoxGM->setEnabled(false); //checkBoxGS->setEnabled(false); @@ -1455,7 +1606,8 @@ void EditInstrument::patchChanged() spinBoxHBank->setEnabled(true); spinBoxLBank->setEnabled(true); spinBoxProgram->setEnabled(true); - checkBoxDrum->setEnabled(true); + showPatchInMidiButton->setEnabled(true); + showPatchInDrumsButton->setEnabled(true); // REMOVE Tim. OBSOLETE. When gui boxes are finally removed. //checkBoxGM->setEnabled(true); //checkBoxGS->setEnabled(true); @@ -1467,7 +1619,8 @@ void EditInstrument::patchChanged() spinBoxHBank->setValue(hb); spinBoxLBank->setValue(lb); spinBoxProgram->setValue(pr); - checkBoxDrum->setChecked(p->drum); + showPatchInMidiButton->setChecked(!p->drum); + showPatchInDrumsButton->setChecked(p->drum); // REMOVE Tim. OBSOLETE. When gui boxes are finally removed. //checkBoxGM->setChecked(p->typ & 1); //checkBoxGS->setChecked(p->typ & 2); @@ -1480,7 +1633,8 @@ void EditInstrument::patchChanged() spinBoxHBank->setEnabled(false); spinBoxLBank->setEnabled(false); spinBoxProgram->setEnabled(false); - checkBoxDrum->setEnabled(false); + showPatchInMidiButton->setEnabled(false); + showPatchInDrumsButton->setEnabled(false); // REMOVE Tim. OBSOLETE. When gui boxes are finally removed. //checkBoxGM->setEnabled(false); //checkBoxGS->setEnabled(false); @@ -1508,7 +1662,7 @@ void EditInstrument::defPatchChanged(int) setDefaultPatchName(val); item->setText(COL_DEF, getPatchItemText(val)); - workingInstrument.setDirty(true); + workingInstrument->setDirty(true); } //--------------------------------------------------------- @@ -1519,7 +1673,7 @@ void EditInstrument::patchButtonClicked() { QMenu* patchpopup = new QMenu; - MusECore::PatchGroupList* pg = workingInstrument.groups(); + MusECore::PatchGroupList* pg = workingInstrument->groups(); if (pg->size() > 1) { for (MusECore::ciPatchGroup i = pg->begin(); i != pg->end(); ++i) { @@ -1578,7 +1732,7 @@ void EditInstrument::patchButtonClicked() item->setText(COL_DEF, getPatchItemText(rv)); } - workingInstrument.setDirty(true); + workingInstrument->setDirty(true); } } @@ -1856,7 +2010,7 @@ void EditInstrument::ctrlNameReturn() QString cName = ctrlName->text(); - MusECore::MidiControllerList* cl = workingInstrument.controller(); + MusECore::MidiControllerList* cl = workingInstrument->controller(); for(MusECore::ciMidiController ic = cl->begin(); ic != cl->end(); ++ic) { MusECore::MidiController* mc = ic->second; @@ -1882,7 +2036,7 @@ void EditInstrument::ctrlNameReturn() c->setName(ctrlName->text()); item->setText(COL_CNAME, ctrlName->text()); - workingInstrument.setDirty(true); + workingInstrument->setDirty(true); } //--------------------------------------------------------- @@ -1948,7 +2102,7 @@ void EditInstrument::ctrlTypeChanged(int idx) } int new_num = MusECore::MidiController::genNum(t, hnum, lnum); - MusECore::MidiControllerList* cl = workingInstrument.controller(); + MusECore::MidiControllerList* cl = workingInstrument->controller(); // Check if either a per-note controller, or else a regular controller already exists. if(!cl->ctrlAvailable(new_num, c)) { @@ -2097,7 +2251,7 @@ void EditInstrument::ctrlTypeChanged(int idx) c->setInitVal(spinBoxDefault->value()); } - workingInstrument.setDirty(true); + workingInstrument->setDirty(true); } //--------------------------------------------------------- @@ -2123,7 +2277,7 @@ void EditInstrument::ctrlShowInMidiChanged(int state) c->setShowInTracks(show & ~MusECore::MidiController::ShowInMidi); item->setText(COL_SHOW_MIDI, ""); } - workingInstrument.setDirty(true); + workingInstrument->setDirty(true); } //--------------------------------------------------------- @@ -2149,7 +2303,7 @@ void EditInstrument::ctrlShowInDrumChanged(int state) c->setShowInTracks(show & ~MusECore::MidiController::ShowInDrum); item->setText(COL_SHOW_DRUM, ""); } - workingInstrument.setDirty(true); + workingInstrument->setDirty(true); } //--------------------------------------------------------- @@ -2195,7 +2349,7 @@ void EditInstrument::ctrlNumChanged() return; } - MusECore::MidiControllerList* cl = workingInstrument.controller(); + MusECore::MidiControllerList* cl = workingInstrument->controller(); MusECore::MidiController* c = (MusECore::MidiController*)item->data(0, Qt::UserRole).value<void*>(); // Check if either a per-note controller, or else a regular controller already exists. @@ -2234,7 +2388,7 @@ void EditInstrument::ctrlNumChanged() return; } item->setText(COL_TYPE, ctrlType->currentText()); - workingInstrument.setDirty(true); + workingInstrument->setDirty(true); } //--------------------------------------------------------- @@ -2320,7 +2474,7 @@ void EditInstrument::ctrlMinChanged(int val) spinBoxDefault->blockSignals(false); - workingInstrument.setDirty(true); + workingInstrument->setDirty(true); } //--------------------------------------------------------- @@ -2406,7 +2560,7 @@ void EditInstrument::ctrlMaxChanged(int val) spinBoxDefault->blockSignals(false); - workingInstrument.setDirty(true); + workingInstrument->setDirty(true); } //--------------------------------------------------------- @@ -2432,7 +2586,7 @@ void EditInstrument::ctrlDefaultChanged(int val) c->setInitVal(val); item->setText(COL_DEF, QString().setNum(val)); } - workingInstrument.setDirty(true); + workingInstrument->setDirty(true); } //--------------------------------------------------------- @@ -2460,10 +2614,10 @@ void EditInstrument::ctrlNullParamHChanged(int nvh) } } if(nvh == -1 && nvl == -1) - workingInstrument.setNullSendValue(-1); + workingInstrument->setNullSendValue(-1); else - workingInstrument.setNullSendValue((nvh << 8) | nvl); - workingInstrument.setDirty(true); + workingInstrument->setNullSendValue((nvh << 8) | nvl); + workingInstrument->setDirty(true); } //--------------------------------------------------------- @@ -2491,10 +2645,10 @@ void EditInstrument::ctrlNullParamLChanged(int nvl) } } if(nvh == -1 && nvl == -1) - workingInstrument.setNullSendValue(-1); + workingInstrument->setNullSendValue(-1); else - workingInstrument.setNullSendValue((nvh << 8) | nvl); - workingInstrument.setDirty(true); + workingInstrument->setNullSendValue((nvh << 8) | nvl); + workingInstrument->setDirty(true); } //--------------------------------------------------------- @@ -2537,7 +2691,7 @@ void EditInstrument::sysexChanged(QListWidgetItem* sel, QListWidgetItem* old) { if (old) { MusECore::SysEx* so = (MusECore::SysEx*)old->data(Qt::UserRole).value<void*>(); - updateSysex(&workingInstrument, so); + updateSysex(workingInstrument, so); } if (sel == 0) { sysexName->setText(""); @@ -2568,9 +2722,9 @@ void EditInstrument::deleteSysexClicked() if(item2 == 0) return; MusECore::SysEx* sysex = (MusECore::SysEx*)item2->data(Qt::UserRole).value<void*>(); - workingInstrument.removeSysex(sysex); + workingInstrument->removeSysex(sysex); delete item2; - workingInstrument.setDirty(true); + workingInstrument->setDirty(true); } //--------------------------------------------------------- @@ -2584,7 +2738,7 @@ void EditInstrument::newSysexClicked() sysexName = QString("Sysex-%1").arg(i); bool found = false; - foreach(const MusECore::SysEx* s, workingInstrument.sysex()) { + foreach(const MusECore::SysEx* s, workingInstrument->sysex()) { if (s->name == sysexName) { found = true; break; @@ -2595,14 +2749,14 @@ void EditInstrument::newSysexClicked() } MusECore::SysEx* nsysex = new MusECore::SysEx; nsysex->name = sysexName; - workingInstrument.addSysex(nsysex); + workingInstrument->addSysex(nsysex); QListWidgetItem* item = new QListWidgetItem(sysexName); QVariant v = QVariant::fromValue((void*)nsysex); item->setData(Qt::UserRole, v); sysexList->addItem(item); sysexList->setCurrentItem(item); - workingInstrument.setDirty(true); + workingInstrument->setDirty(true); } @@ -2640,7 +2794,7 @@ void EditInstrument::deletePatchClicked() if(group) { - MusECore::PatchGroupList* pg = workingInstrument.groups(); + MusECore::PatchGroupList* pg = workingInstrument->groups(); for(MusECore::iPatchGroup ipg = pg->begin(); ipg != pg->end(); ++ipg) { @@ -2676,7 +2830,7 @@ void EditInstrument::deletePatchClicked() oldPatchItem = 0; patchChanged(); - workingInstrument.setDirty(true); + workingInstrument->setDirty(true); } //--------------------------------------------------------- @@ -2688,12 +2842,12 @@ void EditInstrument::newPatchClicked() if(oldPatchItem) { if(oldPatchItem->parent()) - updatePatch(&workingInstrument, (MusECore::Patch*)oldPatchItem->data(0, Qt::UserRole).value<void*>()); + updatePatch(workingInstrument, (MusECore::Patch*)oldPatchItem->data(0, Qt::UserRole).value<void*>()); else - updatePatchGroup(&workingInstrument, (MusECore::PatchGroup*)oldPatchItem->data(0, Qt::UserRole).value<void*>()); + updatePatchGroup(workingInstrument, (MusECore::PatchGroup*)oldPatchItem->data(0, Qt::UserRole).value<void*>()); } - MusECore::PatchGroupList* pg = workingInstrument.groups(); + MusECore::PatchGroupList* pg = workingInstrument->groups(); QString patchName; for (int i = 1;; ++i) { patchName = QString("Patch-%1").arg(i); @@ -2834,7 +2988,8 @@ void EditInstrument::newPatchClicked() spinBoxHBank->setEnabled(true); spinBoxLBank->setEnabled(true); spinBoxProgram->setEnabled(true); - checkBoxDrum->setEnabled(true); + showPatchInMidiButton->setEnabled(true); + showPatchInDrumsButton->setEnabled(true); // REMOVE Tim. OBSOLETE. When gui boxes are finally removed. //checkBoxGM->setEnabled(true); //checkBoxGS->setEnabled(true); @@ -2843,7 +2998,7 @@ void EditInstrument::newPatchClicked() oldPatchItem = 0; patchChanged(); - workingInstrument.setDirty(true); + workingInstrument->setDirty(true); } //--------------------------------------------------------- @@ -2855,12 +3010,12 @@ void EditInstrument::newGroupClicked() if(oldPatchItem) { if(oldPatchItem->parent()) - updatePatch(&workingInstrument, (MusECore::Patch*)oldPatchItem->data(0, Qt::UserRole).value<void*>()); + updatePatch(workingInstrument, (MusECore::Patch*)oldPatchItem->data(0, Qt::UserRole).value<void*>()); else - updatePatchGroup(&workingInstrument, (MusECore::PatchGroup*)oldPatchItem->data(0, Qt::UserRole).value<void*>()); + updatePatchGroup(workingInstrument, (MusECore::PatchGroup*)oldPatchItem->data(0, Qt::UserRole).value<void*>()); } - MusECore::PatchGroupList* pg = workingInstrument.groups(); + MusECore::PatchGroupList* pg = workingInstrument->groups(); QString groupName; for (int i = 1;; ++i) { groupName = QString("Group-%1").arg(i); @@ -2903,13 +3058,14 @@ void EditInstrument::newGroupClicked() spinBoxHBank->setEnabled(false); spinBoxLBank->setEnabled(false); spinBoxProgram->setEnabled(false); - checkBoxDrum->setEnabled(false); + showPatchInMidiButton->setEnabled(false); + showPatchInDrumsButton->setEnabled(false); // REMOVE Tim. OBSOLETE. When gui boxes are finally removed. //checkBoxGM->setEnabled(false); //checkBoxGS->setEnabled(false); //checkBoxXG->setEnabled(false); - workingInstrument.setDirty(true); + workingInstrument->setDirty(true); } //--------------------------------------------------------- @@ -2927,7 +3083,7 @@ void EditInstrument::deleteControllerClicked() if(!ctrl) return; - workingInstrument.controller()->erase(ctrl->num()); + workingInstrument->controller()->erase(ctrl->num()); // Now delete the controller. delete ctrl; @@ -2941,7 +3097,7 @@ void EditInstrument::deleteControllerClicked() controllerChanged(); - workingInstrument.setDirty(true); + workingInstrument->setDirty(true); } //--------------------------------------------------------- @@ -2951,7 +3107,7 @@ void EditInstrument::deleteControllerClicked() void EditInstrument::newControllerClicked() { QString cName; - MusECore::MidiControllerList* cl = workingInstrument.controller(); + MusECore::MidiControllerList* cl = workingInstrument->controller(); for (int i = 1;; ++i) { cName = QString("Controller-%1").arg(i); bool found = false; @@ -3069,7 +3225,7 @@ void EditInstrument::newControllerClicked() ctrl->setName(cName); - workingInstrument.controller()->add(ctrl); + workingInstrument->controller()->add(ctrl); QTreeWidgetItem* item = addControllerToView(ctrl); if(viewController->currentItem() != item) @@ -3080,7 +3236,7 @@ void EditInstrument::newControllerClicked() controllerChanged(); } - workingInstrument.setDirty(true); + workingInstrument->setDirty(true); } //--------------------------------------------------------- @@ -3091,7 +3247,7 @@ void EditInstrument::addControllerClicked() { // Add Common Controls not already found in instrument: PopupMenu* pup = new PopupMenu(true); // true = enable stay open. Don't bother with parent. - MusECore::MidiControllerList* cl = workingInstrument.controller(); + MusECore::MidiControllerList* cl = workingInstrument->controller(); for(int num = 0; num < 127; ++num) { // If it's not already in the parent menu... @@ -3112,7 +3268,7 @@ void EditInstrument::ctrlPopupTriggered(QAction* act) if(!act || (act->data().toInt() == -1)) return; int rv = act->data().toInt(); - MusECore::MidiControllerList* cl = workingInstrument.controller(); + MusECore::MidiControllerList* cl = workingInstrument->controller(); if(cl->find(rv) == cl->end()) { int num = rv; // = MusECore::MidiController::genNum(MusECore::MidiController::Controller7, 0, rv); @@ -3123,7 +3279,7 @@ void EditInstrument::ctrlPopupTriggered(QAction* act) ctrl->setInitVal(MusECore::CTRL_VAL_UNKNOWN); ctrl->setName(MusECore::midiCtrlName(num, false)); - workingInstrument.controller()->add(ctrl); + workingInstrument->controller()->add(ctrl); QTreeWidgetItem* item = addControllerToView(ctrl); @@ -3135,7 +3291,7 @@ void EditInstrument::ctrlPopupTriggered(QAction* act) controllerChanged(); } - workingInstrument.setDirty(true); + workingInstrument->setDirty(true); } } @@ -3185,11 +3341,11 @@ void EditInstrument::updatePatch(MusECore::MidiInstrument* instrument, MusECore: instrument->setDirty(true); } - if (p->drum != checkBoxDrum->isChecked()) { - p->drum = checkBoxDrum->isChecked(); + if (p->drum != showPatchInDrumsButton->isChecked()) { // Midi and drums radio buttons are exclusive. + p->drum = showPatchInDrumsButton->isChecked(); instrument->setDirty(true); } - + // there is no logical xor in c++ // REMOVE Tim. OBSOLETE. When gui boxes are finally removed. // bool a = p->typ & 1; @@ -3488,7 +3644,7 @@ QString EditInstrument::getPatchName(int prog) int hbank = (prog >> 16) & 0xff; int lbank = (prog >> 8) & 0xff; - MusECore::PatchGroupList* pg = workingInstrument.groups(); + MusECore::PatchGroupList* pg = workingInstrument->groups(); for(MusECore::ciPatchGroup i = pg->begin(); i != pg->end(); ++i) { const MusECore::PatchList& pl = (*i)->patches; @@ -3509,4 +3665,102 @@ QString EditInstrument::getPatchName(int prog) return "---"; } +//--------------------------------------------------------- +// populateInitEventList +//--------------------------------------------------------- + +void EditInstrument::populateInitEventList() +{ + initEventList->blockSignals(true); + initEventList->clear(); + MusECore::EventList* el = workingInstrument->midiInit(); + for(MusECore::iEvent ie = el->begin(); ie != el->end(); ++ie) + { + InitListItem* item = new InitListItem(initEventList, ie->second, workingInstrument); + initEventList->addTopLevelItem(item); + } + if(initEventList->topLevelItem(0)) + initEventList->topLevelItem(0)->setSelected(true); + initEventList->blockSignals(false); +} + +//--------------------------------------------------------- +// initListChangeClicked +//--------------------------------------------------------- + +void EditInstrument::initListChangeClicked() +{ + InitListItem* item = static_cast<InitListItem*>(initEventList->currentItem()); + if(!item) + return; + editInitListItem(item); +} + +//--------------------------------------------------------- +// editInitListItem +//--------------------------------------------------------- + +void EditInstrument::editInitListItem(QTreeWidgetItem* item) +{ + InitListItem* ev = (InitListItem*)item; + if(ev->_event.type() != MusECore::Sysex) + return; + int tick = ev->_event.tick(); + MusECore::Event nevent = EditSysexDialog::getEvent(tick, ev->_event, this, workingInstrument); + if(!nevent.empty()) + { + MusECore::EventList* el = workingInstrument->midiInit(); + MusECore::iEvent ie = el->find(ev->_event); + if(ie != el->end()) + el->erase(ie); + el->add(nevent); + //delete item; + //item = new InitListItem(initEventList, nevent, &workingInstrument); + //initEventList->addTopLevelItem(item); + //initEventList->setCurrentItem(item); + populateInitEventList(); + workingInstrument->setDirty(true); + } +} + +//--------------------------------------------------------- +// initListAddClicked +//--------------------------------------------------------- + +void EditInstrument::initListAddClicked() +{ + //MusECore::Event event = EditSysexDialog::getEvent(curPart->tick(), MusECore::Event(), this); + // TODO Get current item tick, if any + MusECore::Event event = EditSysexDialog::getEvent(0, MusECore::Event(), this, workingInstrument); + if(!event.empty()) + { + workingInstrument->midiInit()->add(event); + //InitListItem* item = new InitListItem(initEventList, event, &workingInstrument); + //initEventList->addTopLevelItem(item); + //initEventList->setCurrentItem(item); + populateInitEventList(); + workingInstrument->setDirty(true); + } +} + +//--------------------------------------------------------- +// initListDeleteClicked +//--------------------------------------------------------- + +void EditInstrument::initListDeleteClicked() +{ + InitListItem* item = static_cast<InitListItem*>(initEventList->currentItem()); + if(!item) + return; + MusECore::EventList* el = workingInstrument->midiInit(); + MusECore::iEvent ie = el->find(item->_event); + if(ie != el->end()) + { + el->erase(ie); + populateInitEventList(); + } + //delete item; + workingInstrument->setDirty(true); +} + } // namespace MusEGui diff --git a/muse2/muse/instruments/editinstrument.h b/muse2/muse/instruments/editinstrument.h index ff156988..1a753bf0 100644 --- a/muse2/muse/instruments/editinstrument.h +++ b/muse2/muse/instruments/editinstrument.h @@ -26,8 +26,8 @@ #define __EDITINSTRUMENT_H__ #include "ui_editinstrumentbase.h" -#include "minstrument.h" -#include "midictrl.h" + +#include "globaldefs.h" class QDialog; class QMenu; @@ -37,6 +37,15 @@ class QStringListModel; class QString; class QAction; +namespace MusECore { + +class MidiInstrument; +class MidiController; +class Patch; +class PatchGroup; +class SysEx; +} + namespace MusEGui { class Header; @@ -49,7 +58,7 @@ class DList; class EditInstrument : public QMainWindow, public Ui::EditInstrumentBase { Q_OBJECT - MusECore::MidiInstrument workingInstrument; + MusECore::MidiInstrument* workingInstrument; QListWidgetItem* oldMidiInstrument; QTreeWidgetItem* oldPatchItem; @@ -70,6 +79,7 @@ class EditInstrument : public QMainWindow, public Ui::EditInstrumentBase { void updatePatchGroup(MusECore::MidiInstrument*, MusECore::PatchGroup*); void updateSysex(MusECore::MidiInstrument*, MusECore::SysEx*); void changeInstrument(); + void populateInitEventList(); QTreeWidgetItem* addControllerToView(MusECore::MidiController* mctrl); QString getPatchItemText(int); void enableDefaultControls(bool, bool); @@ -116,6 +126,10 @@ class EditInstrument : public QMainWindow, public Ui::EditInstrumentBase { void newSysexClicked(); void ctrlNullParamHChanged(int); void ctrlNullParamLChanged(int); + void editInitListItem(QTreeWidgetItem* item); + void initListDeleteClicked(); + void initListAddClicked(); + void initListChangeClicked(); void patchCollectionSpinboxChanged(int); void patchCollectionCheckboxChanged(bool); @@ -130,11 +144,10 @@ class EditInstrument : public QMainWindow, public Ui::EditInstrumentBase { void fetchPatchCollection(); public: - enum TabType { Patches=0, DrumMaps=1, Controllers=2, Sysex=3 }; - EditInstrument(QWidget* parent = 0, Qt::WFlags fl = Qt::Window); + virtual ~EditInstrument(); void findInstrument(const QString& find_instrument); - void showTab(TabType); + void showTab(EditInstrumentTabType); }; } // namespace MusEGui diff --git a/muse2/muse/instruments/editinstrumentbase.ui b/muse2/muse/instruments/editinstrumentbase.ui index 5140b27d..471f1318 100644 --- a/muse2/muse/instruments/editinstrumentbase.ui +++ b/muse2/muse/instruments/editinstrumentbase.ui @@ -7,7 +7,7 @@ <x>0</x> <y>0</y> <width>772</width> - <height>421</height> + <height>431</height> </rect> </property> <property name="minimumSize"> @@ -289,22 +289,6 @@ <item> <layout class="QHBoxLayout"> <item> - <widget class="QCheckBox" name="checkBoxDrum"> - <property name="toolTip"> - <string>Drum patch</string> - </property> - <property name="whatsThis"> - <string>If set, the patch is available only for drum channels.</string> - </property> - <property name="text"> - <string>Drum</string> - </property> - <property name="shortcut"> - <string/> - </property> - </widget> - </item> - <item> <widget class="QCheckBox" name="checkBoxGM"> <property name="toolTip"> <string>GM patch</string> @@ -361,6 +345,44 @@ </item> </layout> </item> + <item> + <layout class="QHBoxLayout" name="horizontalLayout_9"> + <item> + <widget class="QLabel" name="label_11"> + <property name="text"> + <string>Show in tracks:</string> + </property> + </widget> + </item> + <item> + <widget class="QRadioButton" name="showPatchInMidiButton"> + <property name="text"> + <string>Midi</string> + </property> + </widget> + </item> + <item> + <widget class="QRadioButton" name="showPatchInDrumsButton"> + <property name="text"> + <string>Drum</string> + </property> + </widget> + </item> + <item> + <spacer name="horizontalSpacer_5"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> </layout> </widget> </item> @@ -1799,6 +1821,67 @@ Caution! Watch out for controllers such as </item> </layout> </widget> + <widget class="QWidget" name="initTab"> + <attribute name="title"> + <string>&Initialization</string> + </attribute> + <layout class="QVBoxLayout" name="verticalLayout_5"> + <item> + <widget class="QLabel" name="label_4"> + <property name="text"> + <string>Instrument initialization sequence:</string> + </property> + </widget> + </item> + <item> + <widget class="QTreeWidget" name="initEventList"> + <column> + <property name="text"> + <string notr="true">1</string> + </property> + </column> + </widget> + </item> + <item> + <layout class="QHBoxLayout" name="horizontalLayout_8"> + <item> + <spacer name="horizontalSpacer_4"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="QToolButton" name="initAddButton"> + <property name="text"> + <string>&Add...</string> + </property> + </widget> + </item> + <item> + <widget class="QToolButton" name="initChangeButton"> + <property name="text"> + <string>&Change...</string> + </property> + </widget> + </item> + <item> + <widget class="QToolButton" name="initDeleteButton"> + <property name="text"> + <string>&Delete</string> + </property> + </widget> + </item> + </layout> + </item> + </layout> + </widget> </widget> </widget> </item> @@ -1825,7 +1908,7 @@ Caution! Watch out for controllers such as <x>0</x> <y>0</y> <width>772</width> - <height>23</height> + <height>21</height> </rect> </property> <property name="defaultUp"> @@ -1959,7 +2042,6 @@ Caution! Watch out for controllers such as <tabstop>spinBoxHBank</tabstop> <tabstop>spinBoxLBank</tabstop> <tabstop>spinBoxProgram</tabstop> - <tabstop>checkBoxDrum</tabstop> <tabstop>checkBoxGM</tabstop> <tabstop>checkBoxGS</tabstop> <tabstop>checkBoxXG</tabstop> diff --git a/muse2/muse/instruments/minstrument.cpp b/muse2/muse/instruments/minstrument.cpp index ecfc2da4..a85f1c02 100644 --- a/muse2/muse/instruments/minstrument.cpp +++ b/muse2/muse/instruments/minstrument.cpp @@ -457,6 +457,8 @@ MType MidiInstrument::midiType() const { if(_name == "GM") return MT_GM; + if(_name == "GM2") + return MT_GM2; if(_name == "GS") return MT_GS; if(_name == "XG") diff --git a/muse2/muse/liste/CMakeLists.txt b/muse2/muse/liste/CMakeLists.txt index c846d665..fce9974b 100644 --- a/muse2/muse/liste/CMakeLists.txt +++ b/muse2/muse/liste/CMakeLists.txt @@ -25,33 +25,13 @@ ## Expand Qt macros in source files ## QT4_WRAP_CPP ( liste_mocs - # listedit.h - # ctrllistedit.h - # tracklistedit.h - # partlistedit.h - # ieventdialog.h - editevent.h listedit.h ) ## -## UI files -## -file (GLOB liste_ui_files - editctrlbase.ui - ) -QT4_WRAP_UI ( liste_uis ${liste_ui_files} ) - -## ## List of source files to compile ## file (GLOB liste_source_files - # listedit.cpp - # ctrllistedit.cpp - # partlistedit.cpp - # tracklistedit.cpp - # ieventdialog.cpp - editevent.cpp listedit.cpp ) @@ -61,7 +41,6 @@ file (GLOB liste_source_files add_library ( liste ${MODULES_BUILD} ${liste_source_files} ${liste_mocs} - ${liste_uis} ) ## @@ -70,7 +49,6 @@ add_library ( liste ${MODULES_BUILD} set (FILES_TO_TRANSLATE ${FILES_TO_TRANSLATE} ${liste_source_files} - ${liste_ui_files} CACHE INTERNAL "" ) @@ -88,7 +66,6 @@ set_target_properties( liste target_link_libraries ( liste ${QT_LIBRARIES} awl - widgets ) ## diff --git a/muse2/muse/liste/listedit.cpp b/muse2/muse/liste/listedit.cpp index 730ab5d8..79f10b4b 100644 --- a/muse2/muse/liste/listedit.cpp +++ b/muse2/muse/liste/listedit.cpp @@ -45,6 +45,7 @@ #include "event.h" #include "midiport.h" #include "midictrl.h" +#include "minstrument.h" #include "app.h" #include "gconfig.h" @@ -201,7 +202,8 @@ void ListEdit::songChanged(MusECore::SongChangedFlags_t type) if (type == 0) return; - if (type & (SC_PART_REMOVED | SC_PART_MODIFIED + if (type & (// SC_MIDI_TRACK_PROP FIXME Needed, but might make it slow! + SC_PART_REMOVED | SC_PART_MODIFIED | SC_PART_INSERTED | SC_EVENT_REMOVED | SC_EVENT_MODIFIED | SC_EVENT_INSERTED | SC_SELECTION)) { if (type & (SC_PART_REMOVED | SC_PART_INSERTED | SC_PART_MODIFIED)) @@ -285,7 +287,6 @@ void ListEdit::songChanged(MusECore::SongChangedFlags_t type) QString EventListItem::text(int col) const { QString s; - QString commentLabel; switch(col) { case 0: s.setNum(event.tick()); @@ -324,30 +325,9 @@ QString EventListItem::text(int col) const } break; case MusECore::Sysex: - { - commentLabel = QString("len "); - QString k; - k.setNum(event.dataLen()); - commentLabel += k; - commentLabel += QString(" "); - - commentLabel += MusECore::nameSysex(event.dataLen(), event.data()); - int i; - for (i = 0; i < 10; ++i) { - if (i >= event.dataLen()) - break; - commentLabel += QString(" 0x"); - QString k; - k.setNum(event.data()[i] & 0xff, 16); - commentLabel += k; - } - if (i == 10) - commentLabel += QString("..."); - } s = QString("SysEx"); break; case MusECore::Meta: - commentLabel = midiMetaComment(event); s = QString("Meta"); break; case MusECore::Wave: @@ -357,7 +337,14 @@ QString EventListItem::text(int col) const } break; case 3: - s.setNum(part->track()->outChannel() + 1); + switch(event.type()) { + case MusECore::Sysex: + case MusECore::Meta: + break; + + default: + s.setNum(part->track()->outChannel() + 1); + } break; case 4: if (event.isNote()) @@ -365,7 +352,16 @@ QString EventListItem::text(int col) const else if (event.type() == MusECore::Controller) s.setNum(event.dataA() & 0xffff); // mask off type bits else - s.setNum(event.dataA()); + { + switch(event.type()) { + case MusECore::Sysex: + case MusECore::Meta: + break; + + default: + s.setNum(event.dataA()); + } + } break; case 5: if(event.type() == MusECore::Controller && @@ -384,13 +380,41 @@ QString EventListItem::text(int col) const s.sprintf("%d-%d-%d", hb, lb, pr); } else - s.setNum(event.dataB()); + { + switch(event.type()) { + case MusECore::Sysex: + case MusECore::Meta: + break; + + default: + s.setNum(event.dataB()); + } + } break; case 6: - s.setNum(event.dataC()); + switch(event.type()) { + case MusECore::Sysex: + case MusECore::Meta: + break; + + default: + s.setNum(event.dataC()); + } break; case 7: - s.setNum(event.lenTick()); + switch(event.type()) { + case MusECore::Sysex: + case MusECore::Meta: + s.setNum(event.dataLen()); + break; + + case MusECore::Controller: + break; + + default: + s.setNum(event.lenTick()); + break; + } break; case 8: switch(event.type()) { @@ -402,14 +426,13 @@ QString EventListItem::text(int col) const } break; case MusECore::Sysex: + case MusECore::Meta: { - s = QString("len "); - QString k; - k.setNum(event.dataLen()); - s += k; - s += QString(" "); - - commentLabel += MusECore::nameSysex(event.dataLen(), event.data()); + if(event.type() == MusECore::Sysex) + s = MusECore::nameSysex(event.dataLen(), event.data(), + MusEGlobal::midiPorts[part->track()->outPort()].instrument()) + QString(" "); + else if(event.type() == MusECore::Meta) + s = midiMetaComment(event) + QString(" "); int i; for (i = 0; i < 10; ++i) { if (i >= event.dataLen()) @@ -421,11 +444,9 @@ QString EventListItem::text(int col) const } if (i == 10) s += QString("..."); + } break; - case MusECore::Meta: - s = midiMetaComment(event); - break; default: break; } @@ -623,7 +644,10 @@ void ListEdit::editInsertSysEx() if(!curPart) return; - MusECore::Event event = EditSysexDialog::getEvent(curPart->tick(), MusECore::Event(), this); + MusECore::MidiInstrument* minstr = NULL; + if(curPart->track()) + minstr = MusEGlobal::midiPorts[curPart->track()->outPort()].instrument(); + MusECore::Event event = EditSysexDialog::getEvent(curPart->tick(), MusECore::Event(), this, minstr); if (!event.empty()) { //No events before beginning of part + take Part offset into consideration unsigned tick = event.tick(); @@ -699,7 +723,12 @@ void ListEdit::editEvent(MusECore::Event& event, MusECore::MidiPart* part) nevent = EditCtrlDialog::getEvent(tick, event, part, this); break; case MusECore::Sysex: - nevent = EditSysexDialog::getEvent(tick, event, this); + { + MusECore::MidiInstrument* minstr = NULL; + if(part->track()) + minstr = MusEGlobal::midiPorts[part->track()->outPort()].instrument(); + nevent = EditSysexDialog::getEvent(tick, event, this, minstr); + } break; case MusECore::Meta: nevent = EditMetaDialog::getEvent(tick, event, this); diff --git a/muse2/muse/midi.cpp b/muse2/muse/midi.cpp index d70b132c..24876813 100644 --- a/muse2/muse/midi.cpp +++ b/muse2/muse/midi.cpp @@ -33,6 +33,7 @@ #include "midictrl.h" #include "marker/marker.h" #include "midiport.h" +#include "minstrument.h" #include "midictrl.h" #include "sync.h" #include "audio.h" @@ -52,11 +53,15 @@ extern void dump(const unsigned char* p, int n); const unsigned char gmOnMsg[] = { 0x7e, 0x7f, 0x09, 0x01 }; +const unsigned char gm2OnMsg[] = { 0x7e, 0x7f, 0x09, 0x03 }; +const unsigned char gmOffMsg[] = { 0x7e, 0x7f, 0x09, 0x02 }; const unsigned char gsOnMsg[] = { 0x41, 0x10, 0x42, 0x12, 0x40, 0x00, 0x7f, 0x00, 0x41 }; const unsigned char gsOnMsg2[] = { 0x41, 0x10, 0x42, 0x12, 0x40, 0x01, 0x33, 0x50, 0x3c }; const unsigned char gsOnMsg3[] = { 0x41, 0x10, 0x42, 0x12, 0x40, 0x01, 0x34, 0x50, 0x3b }; const unsigned char xgOnMsg[] = { 0x43, 0x10, 0x4c, 0x00, 0x00, 0x7e, 0x00 }; const unsigned int gmOnMsgLen = sizeof(gmOnMsg); +const unsigned int gm2OnMsgLen = sizeof(gm2OnMsg); +const unsigned int gmOffMsgLen = sizeof(gmOffMsg); const unsigned int gsOnMsgLen = sizeof(gsOnMsg); const unsigned int gsOnMsg2Len = sizeof(gsOnMsg2); const unsigned int gsOnMsg3Len = sizeof(gsOnMsg3); @@ -115,11 +120,12 @@ QString midiMetaName(int meta) // QString nameSysex //--------------------------------------------------------- -QString nameSysex(unsigned int len, const unsigned char* buf) +QString nameSysex(unsigned int len, const unsigned char* buf, MidiInstrument* instr) { QString s; if(len == 0) return s; + switch(buf[0]) { case 0x00: if(len < 3) @@ -127,12 +133,12 @@ QString nameSysex(unsigned int len, const unsigned char* buf) if (buf[1] == 0 && buf[2] == 0x41) s = "Microsoft"; break; - case 0x01: s = "Sequential Circuits: "; break; - case 0x02: s = "Big Briar: "; break; - case 0x03: s = "Octave / Plateau: "; break; - case 0x04: s = "Moog: "; break; - case 0x05: s = "Passport Designs: "; break; - case 0x06: s = "Lexicon: "; break; + case 0x01: s = "Sequential Circuits"; break; + case 0x02: s = "Big Briar"; break; + case 0x03: s = "Octave / Plateau"; break; + case 0x04: s = "Moog"; break; + case 0x05: s = "Passport Designs"; break; + case 0x06: s = "Lexicon"; break; case 0x07: s = "Kurzweil"; break; case 0x08: s = "Fender"; break; case 0x09: s = "Gulbransen"; break; @@ -142,18 +148,18 @@ QString nameSysex(unsigned int len, const unsigned char* buf) case 0x0d: s = "Techmar"; break; case 0x0e: s = "Matthews Research"; break; case 0x10: s = "Oberheim"; break; - case 0x11: s = "PAIA: "; break; - case 0x12: s = "Simmons: "; break; + case 0x11: s = "PAIA"; break; + case 0x12: s = "Simmons"; break; case 0x13: s = "DigiDesign"; break; - case 0x14: s = "Fairlight: "; break; + case 0x14: s = "Fairlight"; break; case 0x15: s = "JL Cooper"; break; case 0x16: s = "Lowery"; break; case 0x17: s = "Lin"; break; case 0x18: s = "Emu"; break; case 0x1b: s = "Peavy"; break; - case 0x20: s = "Bon Tempi: "; break; - case 0x21: s = "S.I.E.L: "; break; - case 0x23: s = "SyntheAxe: "; break; + case 0x20: s = "Bon Tempi"; break; + case 0x21: s = "S.I.E.L"; break; + case 0x23: s = "SyntheAxe"; break; case 0x24: s = "Hohner"; break; case 0x25: s = "Crumar"; break; case 0x26: s = "Solton"; break; @@ -163,28 +169,77 @@ QString nameSysex(unsigned int len, const unsigned char* buf) case 0x2f: s = "Elka"; break; case 0x36: s = "Cheetah"; break; case 0x3e: s = "Waldorf"; break; - case 0x40: s = "Kawai: "; break; - case 0x41: s = "Roland: "; break; - case 0x42: s = "Korg: "; break; - case 0x43: s = "Yamaha: "; break; + case 0x40: s = "Kawai"; break; + case 0x41: s = "Roland"; break; + case 0x42: s = "Korg"; break; + case 0x43: s = "Yamaha"; break; case 0x44: s = "Casio"; break; case 0x45: s = "Akai"; break; case MUSE_SYNTH_SYSEX_MFG_ID: s = "MusE Soft Synth"; break; case 0x7d: s = "Educational Use"; break; case 0x7e: s = "Universal: Non Real Time"; break; case 0x7f: s = "Universal: Real Time"; break; - default: s = "??: "; break; + default: s = "??"; break; } + + if(instr) + { + // Check for user-defined sysex in instrument... + foreach(const MusECore::SysEx* sx, instr->sysex()) + { + if(len == sx->dataLen && memcmp(buf, sx->data, len) == 0) + return s + QString(": ") + sx->name; + } + } + // // following messages should not show up in event list // they are filtered while importing midi files // if ((len == gmOnMsgLen) && memcmp(buf, gmOnMsg, gmOnMsgLen) == 0) - s += "GM-ON"; + s += ": GM-ON"; + else if ((len == gm2OnMsgLen) && memcmp(buf, gm2OnMsg, gm2OnMsgLen) == 0) + s += ": GM2-ON"; + else if ((len == gmOffMsgLen) && memcmp(buf, gmOffMsg, gmOffMsgLen) == 0) + s += ": GM-OFF"; + else if ((len == gsOnMsgLen) && memcmp(buf, gsOnMsg, gsOnMsgLen) == 0) + s += ": GS-ON"; + else if ((len == xgOnMsgLen) && memcmp(buf, xgOnMsg, xgOnMsgLen) == 0) + s += ": XG-ON"; + return s; + } + +//--------------------------------------------------------- +// QString sysexComment +//--------------------------------------------------------- + +QString sysexComment(unsigned int len, const unsigned char* buf, MidiInstrument* instr) + { + QString s; + if(len == 0) + return s; + + if(instr) + { + // Check for user-defined sysex in instrument... + foreach(const MusECore::SysEx* sx, instr->sysex()) + { + if(len == sx->dataLen && memcmp(buf, sx->data, len) == 0) + return sx->comment; + } + } + + // These are the common ones we know about so far... + if ((len == gmOnMsgLen) && memcmp(buf, gmOnMsg, gmOnMsgLen) == 0) + s = QObject::tr("Switch on General Midi Level 1 mode"); + else if ((len == gm2OnMsgLen) && memcmp(buf, gm2OnMsg, gm2OnMsgLen) == 0) + s = QObject::tr("Switch on General Midi Level 2 mode"); + else if ((len == gmOffMsgLen) && memcmp(buf, gmOffMsg, gmOffMsgLen) == 0) + s = QObject::tr("Switch off General Midi Level 1 or 2"); else if ((len == gsOnMsgLen) && memcmp(buf, gsOnMsg, gsOnMsgLen) == 0) - s += "GS-ON"; + s = QObject::tr("Switch on Roland GS mode"); else if ((len == xgOnMsgLen) && memcmp(buf, xgOnMsg, xgOnMsgLen) == 0) - s += "XG-ON"; + s = QObject::tr("Switch on Yamaha XG mode"); return s; } diff --git a/muse2/muse/midi.h b/muse2/muse/midi.h index c0f6e07f..41d9812a 100644 --- a/muse2/muse/midi.h +++ b/muse2/muse/midi.h @@ -97,6 +97,8 @@ enum AudioTickSound { }; extern const unsigned char gmOnMsg[]; +extern const unsigned char gm2OnMsg[]; +extern const unsigned char gmOffMsg[]; extern const unsigned char gsOnMsg[]; extern const unsigned char gsOnMsg2[]; @@ -107,6 +109,8 @@ extern const unsigned char mmcStopMsg[]; extern const unsigned char mmcLocateMsg[]; extern const unsigned int gmOnMsgLen; +extern const unsigned int gm2OnMsgLen; +extern const unsigned int gmOffMsgLen; extern const unsigned int gsOnMsgLen; extern const unsigned int gsOnMsg2Len; extern const unsigned int gsOnMsg3Len; @@ -115,7 +119,9 @@ extern const unsigned int mmcDeferredPlayMsgLen; extern const unsigned int mmcStopMsgLen; extern const unsigned int mmcLocateMsgLen; -QString nameSysex(unsigned int len, const unsigned char* buf); +class MidiInstrument; +QString nameSysex(unsigned int len, const unsigned char* buf, MidiInstrument* instr = 0); +QString sysexComment(unsigned int len, const unsigned char* buf, MidiInstrument* instr = 0); QString midiMetaName(int); // Use these in all the synths and their guis. diff --git a/muse2/muse/midiedit/drumedit.cpp b/muse2/muse/midiedit/drumedit.cpp index b45c8be4..2f0ba12c 100644 --- a/muse2/muse/midiedit/drumedit.cpp +++ b/muse2/muse/midiedit/drumedit.cpp @@ -43,6 +43,7 @@ #include <QPoint> #include <QRect> +#include "globaldefs.h" #include "drumedit.h" #include "dcanvas.h" #include "mtscale.h" @@ -69,7 +70,6 @@ #include "popupmenu.h" #include "menutitleitem.h" #include "widgets/function_dialogs/quantize.h" -#include "editinstrument.h" namespace MusEGui { @@ -1350,7 +1350,7 @@ void DrumEdit::ctrlPopupTriggered(QAction* act) } else if (rv == edit_ins) { // edit instrument MusECore::MidiInstrument* instr = port->instrument(); - MusEGlobal::muse->startEditInstrument(instr ? instr->iname() : QString(), EditInstrument::Controllers); + MusEGlobal::muse->startEditInstrument(instr ? instr->iname() : QString(), EditInstrumentControllers); } else { // Select a control if(cll->find(channel, rv) == cll->end()) diff --git a/muse2/muse/midiedit/pianoroll.cpp b/muse2/muse/midiedit/pianoroll.cpp index 7f281712..539818f8 100644 --- a/muse2/muse/midiedit/pianoroll.cpp +++ b/muse2/muse/midiedit/pianoroll.cpp @@ -49,6 +49,7 @@ #include <stdio.h> +#include "globaldefs.h" #include "xml.h" #include "mtscale.h" #include "prcanvas.h" @@ -69,8 +70,6 @@ #include "helper.h" #include "popupmenu.h" #include "menutitleitem.h" -#include "editinstrument.h" - #include "cmd.h" #include "shortcuts.h" @@ -868,7 +867,7 @@ void PianoRoll::ctrlPopupTriggered(QAction* act) } else if (rv == edit_ins) { // edit instrument MusECore::MidiInstrument* instr = port->instrument(); - MusEGlobal::muse->startEditInstrument(instr ? instr->iname() : QString(), EditInstrument::Controllers); + MusEGlobal::muse->startEditInstrument(instr ? instr->iname() : QString(), EditInstrumentControllers); } else { // Select a control if(cll->find(channel, rv) == cll->end()) diff --git a/muse2/muse/midifile.cpp b/muse2/muse/midifile.cpp index 39b2e51d..424edd72 100644 --- a/muse2/muse/midifile.cpp +++ b/muse2/muse/midifile.cpp @@ -419,6 +419,10 @@ int MidiFile::readEvent(MidiPlayEvent* event, MidiFileTrack* t) lastMtype = MT_GM; return -1; } + if (((unsigned)len == gm2OnMsgLen) && memcmp(buffer, gm2OnMsg, gm2OnMsgLen) == 0) { + lastMtype = MT_GM2; + return -1; + } if (((unsigned)len == gsOnMsgLen) && memcmp(buffer, gsOnMsg, gsOnMsgLen) == 0) { lastMtype = MT_GS; return -1; diff --git a/muse2/muse/widgets/CMakeLists.txt b/muse2/muse/widgets/CMakeLists.txt index a4db13af..9ca9bcd7 100644 --- a/muse2/muse/widgets/CMakeLists.txt +++ b/muse2/muse/widgets/CMakeLists.txt @@ -37,6 +37,7 @@ QT4_WRAP_CPP (widget_mocs bigtime.h canvas.h checkbox.h + choose_sysex.h colorframe.h comboQuant.h combobox.h @@ -48,6 +49,7 @@ QT4_WRAP_CPP (widget_mocs didyouknow.h doublelabel.h doublespinbox.h + editevent.h filedialog.h genset.h mdisettings.h @@ -117,11 +119,13 @@ file (GLOB widgets_ui_files aboutbox.ui arrangercolumnsbase.ui appearancebase.ui + choose_sysex_base.ui cliplisteditorbase.ui commentbase.ui configmidifilebase.ui copy_on_write_base.ui didyouknow.ui + editctrlbase.ui editnotedialogbase.ui editsysexdialogbase.ui fdialogbuttons.ui @@ -158,6 +162,7 @@ file (GLOB widgets_source_files bigtime.cpp canvas.cpp checkbox.cpp + choose_sysex.cpp citem.cpp colorframe.cpp comboQuant.cpp @@ -171,6 +176,7 @@ file (GLOB widgets_source_files doublelabel.cpp doublespinbox.cpp drange.cpp + editevent.cpp filedialog.cpp genset.cpp mdisettings.cpp @@ -272,7 +278,6 @@ set_target_properties( widgets target_link_libraries ( widgets ${QT_LIBRARIES} icons - instruments ) ## diff --git a/muse2/muse/liste/editctrlbase.ui b/muse2/muse/widgets/editctrlbase.ui index c63e1c22..c63e1c22 100644 --- a/muse2/muse/liste/editctrlbase.ui +++ b/muse2/muse/widgets/editctrlbase.ui diff --git a/muse2/muse/liste/editevent.cpp b/muse2/muse/widgets/editevent.cpp index 14bd0d8a..873c60f6 100644 --- a/muse2/muse/liste/editevent.cpp +++ b/muse2/muse/widgets/editevent.cpp @@ -51,6 +51,7 @@ #include "instruments/minstrument.h" #include "midi.h" #include "popupmenu.h" +#include "choose_sysex.h" namespace MusEGui { @@ -77,7 +78,7 @@ QString string2hex(const unsigned char* data, int len) // hex2string //--------------------------------------------------------- -char* hex2string(QWidget* parent, const char* src, int& len) +char* hex2string(QWidget* parent, const char* src, int& len, bool warn = true) { char buffer[2048]; char* dst = buffer; @@ -88,17 +89,19 @@ char* hex2string(QWidget* parent, const char* src, int& len) char* ep; long val = strtol(src, &ep, 16); if (ep == src) { - QMessageBox::information(parent, - QString("MusE"), - QWidget::tr("Cannot convert sysex string")); + if(warn) + QMessageBox::information(parent, + QString("MusE"), + QWidget::tr("Cannot convert sysex string")); return 0; } src = ep; *dst++ = val; if (dst - buffer >= 2048) { - QMessageBox::information(parent, - QString("MusE"), - QWidget::tr("Hex String too long (2048 bytes limit)")); + if(warn) + QMessageBox::information(parent, + QString("MusE"), + QWidget::tr("Hex String too long (2048 bytes limit)")); return 0; } } @@ -126,9 +129,9 @@ MusECore::Event EditNoteDialog::getEvent(int tick, const MusECore::Event& event, return nevent; } -MusECore::Event EditSysexDialog::getEvent(int tick, const MusECore::Event& event, QWidget* parent) +MusECore::Event EditSysexDialog::getEvent(int tick, const MusECore::Event& event, QWidget* parent, MusECore::MidiInstrument* instr) { - EditSysexDialog* dlg = new EditSysexDialog(tick, event, parent); + EditSysexDialog* dlg = new EditSysexDialog(tick, event, parent, instr); MusECore::Event nevent; if (dlg->exec() == QDialog::Accepted) { nevent = dlg->event(); @@ -224,18 +227,26 @@ MusECore::Event EditNoteDialog::event() //--------------------------------------------------------- EditSysexDialog::EditSysexDialog(int tick, const MusECore::Event& event, - QWidget* parent) + QWidget* parent, MusECore::MidiInstrument* instr) : QDialog(parent) { setupUi(this); sysex = 0; + _instr = instr; if (!event.empty()) { epos->setValue(tick); edit->setText(string2hex(event.data(), event.dataLen())); + if(_instr) + { + typeLabel->setText(MusECore::nameSysex(event.dataLen(), event.data(), _instr)); + commentLabel->setText(MusECore::sysexComment(event.dataLen(), event.data(), _instr)); + } } else { epos->setValue(tick); } + connect(edit, SIGNAL(textChanged()), SLOT(editChanged())); + connect(buttonSelect, SIGNAL(clicked(bool)), SLOT(selectSysex())); } //--------------------------------------------------------- @@ -276,6 +287,53 @@ void EditSysexDialog::accept() } //--------------------------------------------------------- +// editChanged +//--------------------------------------------------------- + +void EditSysexDialog::editChanged() +{ + if(!_instr) + return; + + QString qsrc = edit->toPlainText(); + QByteArray ba = qsrc.toLatin1(); + const char* src = ba.constData(); + + int l; + unsigned char* data = (unsigned char*)hex2string(this, src, l, false); // false = Don't warn with popups + if(data && l > 0) + { + typeLabel->setText(MusECore::nameSysex(l, data, _instr)); + commentLabel->setText(MusECore::sysexComment(l, data, _instr)); + } + else + { + typeLabel->clear(); + commentLabel->clear(); + } +} + +//--------------------------------------------------------- +// selectSysex +//--------------------------------------------------------- + +void EditSysexDialog::selectSysex() +{ + ChooseSysexDialog* dlg = new ChooseSysexDialog(this, _instr); + if(dlg->exec() == QDialog::Accepted) + { + MusECore::SysEx* s = dlg->sysex(); + if(s) + { + edit->setText(string2hex(s->data, s->dataLen)); + typeLabel->setText(s->name); + commentLabel->setText(s->comment); + } + } + delete dlg; +} + +//--------------------------------------------------------- // EditMetaDialog //--------------------------------------------------------- diff --git a/muse2/muse/liste/editevent.h b/muse2/muse/widgets/editevent.h index 0674fe30..9a5732ce 100644 --- a/muse2/muse/liste/editevent.h +++ b/muse2/muse/widgets/editevent.h @@ -26,7 +26,6 @@ #include "ui_editnotedialogbase.h" #include "ui_editsysexdialogbase.h" #include "ui_editctrlbase.h" -#include "event.h" class QDialog; class QLabel; @@ -41,7 +40,9 @@ namespace Awl { }; namespace MusECore { +class Event; class MidiPart; +class MidiInstrument; } namespace MusEGui { @@ -49,7 +50,6 @@ namespace MusEGui { class IntLabel; class PitchEdit; - //--------------------------------------------------------- // EditEventDialog //--------------------------------------------------------- @@ -87,6 +87,7 @@ class EditNoteDialog : public QDialog, public Ui::EditNoteDialogBase { class EditSysexDialog : public QDialog, public Ui::EditSysexDialogBase { Q_OBJECT + MusECore::MidiInstrument* _instr; unsigned char* sysex; int len; @@ -95,13 +96,15 @@ class EditSysexDialog : public QDialog, public Ui::EditSysexDialogBase { private slots: virtual void accept(); + virtual void editChanged(); + virtual void selectSysex(); public: EditSysexDialog(int tick, const MusECore::Event&, - QWidget* parent=0); + QWidget* parent=0, MusECore::MidiInstrument* instr = 0); ~EditSysexDialog(); static MusECore::Event getEvent(int tick, const MusECore::Event&, - QWidget* parent = 0); + QWidget* parent = 0, MusECore::MidiInstrument* instr = 0); virtual MusECore::Event event(); }; diff --git a/muse2/muse/widgets/editsysexdialogbase.ui b/muse2/muse/widgets/editsysexdialogbase.ui index adf5b186..7c7a3491 100644 --- a/muse2/muse/widgets/editsysexdialogbase.ui +++ b/muse2/muse/widgets/editsysexdialogbase.ui @@ -42,7 +42,7 @@ </widget> </item> <item> - <widget class="Awl::PosEdit" name="epos"/> + <widget class="Awl::PosEdit" name="epos" native="true"/> </item> <item> <spacer name="Spacer2"> @@ -82,6 +82,26 @@ <item> <widget class="QLabel" name="TextLabel2"> <property name="text"> + <string>Name:</string> + </property> + <property name="wordWrap"> + <bool>false</bool> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="typeLabel"> + <property name="frameShape"> + <enum>QFrame::Panel</enum> + </property> + <property name="frameShadow"> + <enum>QFrame::Sunken</enum> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="TextLabel3"> + <property name="text"> <string>Comment:</string> </property> <property name="wordWrap"> @@ -90,7 +110,14 @@ </widget> </item> <item> - <widget class="QTextEdit" name="comment"/> + <widget class="QLabel" name="commentLabel"> + <property name="frameShape"> + <enum>QFrame::Panel</enum> + </property> + <property name="frameShadow"> + <enum>QFrame::Sunken</enum> + </property> + </widget> </item> <item> <layout class="QHBoxLayout"> @@ -117,9 +144,16 @@ </spacer> </item> <item> + <widget class="QPushButton" name="buttonSelect"> + <property name="text"> + <string>&Select...</string> + </property> + </widget> + </item> + <item> <widget class="QPushButton" name="buttonOk"> <property name="text"> - <string>OK</string> + <string>&OK</string> </property> <property name="shortcut"> <number>0</number> @@ -135,7 +169,7 @@ <item> <widget class="QPushButton" name="buttonCancel"> <property name="text"> - <string>Cancel</string> + <string>&Cancel</string> </property> <property name="shortcut"> <number>0</number> @@ -155,7 +189,6 @@ <class>Awl::PosEdit</class> <extends>QWidget</extends> <header>awl/posedit.h</header> - <container>0</container> </customwidget> </customwidgets> <resources/> diff --git a/muse2/share/instruments/Roland SD-50.idf b/muse2/share/instruments/Roland SD-50.idf index e23e01ae..1e70cf03 100644 --- a/muse2/share/instruments/Roland SD-50.idf +++ b/muse2/share/instruments/Roland SD-50.idf @@ -1,306 +1,18 @@ <?xml version="1.0"?> <muse version="1.0"> - <MidiInstrument name="Roland SD-50"> - <PatchGroup name="Solo"> - <Patch name="Violin" hbank="89" lbank="64" prog="41" /> - <Patch name="Trombone" hbank="89" lbank="64" prog="58" /> - <Patch name="Shakuhachi" hbank="89" lbank="64" prog="78" /> - </PatchGroup> - <PatchGroup name="GM2"> - <Patch name="Piano 1" hbank="121" lbank="0" prog="0" /> - <Patch name="Piano 1 w" hbank="121" lbank="1" prog="0" /> - <Patch name="European Pf" hbank="121" lbank="2" prog="0" /> - <Patch name="Piano 2" hbank="121" lbank="0" prog="1" /> - <Patch name="Piano 2 w" hbank="121" lbank="1" prog="1" /> - <Patch name="Piano 3" hbank="121" lbank="0" prog="2" /> - <Patch name="Piano 3 w" hbank="121" lbank="1" prog="2" /> - <Patch name="Honky-tonk" hbank="121" lbank="0" prog="3" /> - <Patch name="Honky-tonk w" hbank="121" lbank="1" prog="3" /> - <Patch name="E.Piano 1" hbank="121" lbank="0" prog="4" /> - <Patch name="St.Soft EP" hbank="121" lbank="1" prog="4" /> - <Patch name="EP Legend 1" hbank="121" lbank="2" prog="4" /> - <Patch name="Wurly" hbank="121" lbank="3" prog="4" /> - <Patch name="E.Piano 2" hbank="121" lbank="0" prog="5" /> - <Patch name="Detuned EP" hbank="121" lbank="1" prog="5" /> - <Patch name="St.FM EP" hbank="121" lbank="2" prog="5" /> - <Patch name="EP Legend 2" hbank="121" lbank="3" prog="5" /> - <Patch name="EP Phase" hbank="121" lbank="4" prog="5" /> - <Patch name="Harpsichord" hbank="121" lbank="0" prog="6" /> - <Patch name="Coupled Hps" hbank="121" lbank="1" prog="6" /> - <Patch name="Harpsi w" hbank="121" lbank="2" prog="6" /> - <Patch name="Harpsi o" hbank="121" lbank="3" prog="6" /> - <Patch name="Clav" hbank="121" lbank="0" prog="7" /> - <Patch name="Pulse Clav" hbank="121" lbank="1" prog="7" /> - <Patch name="Celesta" hbank="121" lbank="0" prog="8" /> - <Patch name="Glockenspiel" hbank="121" lbank="0" prog="9" /> - <Patch name="Music Box" hbank="121" lbank="0" prog="10" /> - <Patch name="Vibraphone" hbank="121" lbank="0" prog="11" /> - <Patch name="Vibraphone w" hbank="121" lbank="1" prog="11" /> - <Patch name="Marimba" hbank="121" lbank="0" prog="12" /> - <Patch name="Marimba w" hbank="121" lbank="1" prog="12" /> - <Patch name="Xylophone" hbank="121" lbank="0" prog="13" /> - <Patch name="TubularBells" hbank="121" lbank="0" prog="14" /> - <Patch name="Church Bell" hbank="121" lbank="1" prog="14" /> - <Patch name="Carillon" hbank="121" lbank="2" prog="14" /> - <Patch name="Santur" hbank="121" lbank="0" prog="15" /> - <Patch name="Organ 1" hbank="121" lbank="0" prog="16" /> - <Patch name="Trem. Organ" hbank="121" lbank="1" prog="16" /> - <Patch name="60\s Organ" hbank="121" lbank="2" prog="16" /> - <Patch name="70\s E.Organ" hbank="121" lbank="3" prog="16" /> - <Patch name="Organ 2" hbank="121" lbank="0" prog="17" /> - <Patch name="Chorus Organ" hbank="121" lbank="1" prog="17" /> - <Patch name="Perc. Organ" hbank="121" lbank="2" prog="17" /> - <Patch name="Organ 3" hbank="121" lbank="0" prog="18" /> - <Patch name="Church Org 1" hbank="121" lbank="0" prog="19" /> - <Patch name="Church Org 2" hbank="121" lbank="1" prog="19" /> - <Patch name="Church Org 3" hbank="121" lbank="2" prog="19" /> - <Patch name="Reed Organ" hbank="121" lbank="0" prog="20" /> - <Patch name="Puff Organ" hbank="121" lbank="1" prog="20" /> - <Patch name="Accordion Fr" hbank="121" lbank="0" prog="21" /> - <Patch name="Accordion It" hbank="121" lbank="1" prog="21" /> - <Patch name="Harmonica" hbank="121" lbank="0" prog="22" /> - <Patch name="Bandoneon" hbank="121" lbank="0" prog="23" /> - <Patch name="Nylon Gtr 1" hbank="121" lbank="0" prog="24" /> - <Patch name="Ukulele" hbank="121" lbank="1" prog="24" /> - <Patch name="Nylon Gtr 1o" hbank="121" lbank="2" prog="24" /> - <Patch name="Nylon Gtr 2" hbank="121" lbank="3" prog="24" /> - <Patch name="Steel-str.Gt" hbank="121" lbank="0" prog="25" /> - <Patch name="12-str. Gtr" hbank="121" lbank="1" prog="25" /> - <Patch name="Mandolin" hbank="121" lbank="2" prog="25" /> - <Patch name="Steel + Body" hbank="121" lbank="3" prog="25" /> - <Patch name="Jazz Guitar" hbank="121" lbank="0" prog="26" /> - <Patch name="Pedal Steel" hbank="121" lbank="1" prog="26" /> - <Patch name="Clean Guitar" hbank="121" lbank="0" prog="27" /> - <Patch name="Chorus Gtr" hbank="121" lbank="1" prog="27" /> - <Patch name="Mid Tone Gtr" hbank="121" lbank="2" prog="27" /> - <Patch name="Muted Guitar" hbank="121" lbank="0" prog="28" /> - <Patch name="Funk Pop" hbank="121" lbank="1" prog="28" /> - <Patch name="Funk Guitar" hbank="121" lbank="2" prog="28" /> - <Patch name="Jazz Man" hbank="121" lbank="3" prog="28" /> - <Patch name="Overdrive Gt" hbank="121" lbank="0" prog="29" /> - <Patch name="Guitar Pinch" hbank="121" lbank="1" prog="29" /> - <Patch name="DistortionGt" hbank="121" lbank="0" prog="30" /> - <Patch name="Gt Feedback1" hbank="121" lbank="1" prog="30" /> - <Patch name="Dist Rtm Gtr" hbank="121" lbank="2" prog="30" /> - <Patch name="Gt Harmonics" hbank="121" lbank="0" prog="31" /> - <Patch name="Gt Feedback2" hbank="121" lbank="1" prog="31" /> - <Patch name="Acoustic Bs" hbank="121" lbank="0" prog="32" /> - <Patch name="Fingered Bs" hbank="121" lbank="0" prog="33" /> - <Patch name="Finger Slap" hbank="121" lbank="1" prog="33" /> - <Patch name="Picked Bass" hbank="121" lbank="0" prog="34" /> - <Patch name="Fretless Bs" hbank="121" lbank="0" prog="35" /> - <Patch name="Slap Bass 1" hbank="121" lbank="0" prog="36" /> - <Patch name="Slap Bass 2" hbank="121" lbank="0" prog="37" /> - <Patch name="Synth Bass 1" hbank="121" lbank="0" prog="38" /> - <Patch name="SynthBass101" hbank="121" lbank="1" prog="38" /> - <Patch name="Acid Bass" hbank="121" lbank="2" prog="38" /> - <Patch name="Clav Bass" hbank="121" lbank="3" prog="38" /> - <Patch name="Hammer Bass" hbank="121" lbank="4" prog="38" /> - <Patch name="Synth Bass 2" hbank="121" lbank="0" prog="39" /> - <Patch name="SynSlap Bass" hbank="121" lbank="1" prog="39" /> - <Patch name="Rubber Bass" hbank="121" lbank="2" prog="39" /> - <Patch name="Attack Pulse" hbank="121" lbank="3" prog="39" /> - <Patch name="Violin" hbank="121" lbank="0" prog="40" /> - <Patch name="Slow Violin" hbank="121" lbank="1" prog="40" /> - <Patch name="Viola" hbank="121" lbank="0" prog="41" /> - <Patch name="Cello" hbank="121" lbank="0" prog="42" /> - <Patch name="Contrabass" hbank="121" lbank="0" prog="43" /> - <Patch name="Tremolo Str" hbank="121" lbank="0" prog="44" /> - <Patch name="PizzicatoStr" hbank="121" lbank="0" prog="45" /> - <Patch name="Harp" hbank="121" lbank="0" prog="46" /> - <Patch name="Yang Qin" hbank="121" lbank="1" prog="46" /> - <Patch name="Timpani" hbank="121" lbank="0" prog="47" /> - <Patch name="Strings" hbank="121" lbank="0" prog="48" /> - <Patch name="Orchestra" hbank="121" lbank="1" prog="48" /> - <Patch name="Oct Strings" hbank="121" lbank="2" prog="48" /> - <Patch name="Slow Strings" hbank="121" lbank="0" prog="49" /> - <Patch name="Syn.Strings1" hbank="121" lbank="0" prog="50" /> - <Patch name="Syn.Strings3" hbank="121" lbank="1" prog="50" /> - <Patch name="Syn.Strings2" hbank="121" lbank="0" prog="51" /> - <Patch name="Choir Aahs" hbank="121" lbank="0" prog="52" /> - <Patch name="Chorus Aahs" hbank="121" lbank="1" prog="52" /> - <Patch name="Voice Oohs" hbank="121" lbank="0" prog="53" /> - <Patch name="Humming" hbank="121" lbank="1" prog="53" /> - <Patch name="SynVox" hbank="121" lbank="0" prog="54" /> - <Patch name="Analog Voice" hbank="121" lbank="1" prog="54" /> - <Patch name="OrchestraHit" hbank="121" lbank="0" prog="55" /> - <Patch name="Bass Hit" hbank="121" lbank="1" prog="55" /> - <Patch name="6th Hit" hbank="121" lbank="2" prog="55" /> - <Patch name="Euro Hit" hbank="121" lbank="3" prog="55" /> - <Patch name="Trumpet" hbank="121" lbank="0" prog="56" /> - <Patch name="Dark Trumpet" hbank="121" lbank="1" prog="56" /> - <Patch name="Trombone 1" hbank="121" lbank="0" prog="57" /> - <Patch name="Trombone 2" hbank="121" lbank="1" prog="57" /> - <Patch name="Bright Tb" hbank="121" lbank="2" prog="57" /> - <Patch name="Tuba" hbank="121" lbank="0" prog="58" /> - <Patch name="MuteTrumpet1" hbank="121" lbank="0" prog="59" /> - <Patch name="MuteTrumpet2" hbank="121" lbank="1" prog="59" /> - <Patch name="F.Horn Sect" hbank="121" lbank="0" prog="60" /> - <Patch name="French Horn" hbank="121" lbank="1" prog="60" /> - <Patch name="Brass 1" hbank="121" lbank="0" prog="61" /> - <Patch name="Brass 2" hbank="121" lbank="1" prog="61" /> - <Patch name="Synth Brass1" hbank="121" lbank="0" prog="62" /> - <Patch name="JP Brass" hbank="121" lbank="1" prog="62" /> - <Patch name="Oct SynBrass" hbank="121" lbank="2" prog="62" /> - <Patch name="Jump Brass" hbank="121" lbank="3" prog="62" /> - <Patch name="Synth Brass2" hbank="121" lbank="0" prog="63" /> - <Patch name="SynBrass sfz" hbank="121" lbank="1" prog="63" /> - <Patch name="Velo Brass" hbank="121" lbank="2" prog="63" /> - <Patch name="Soprano Sax" hbank="121" lbank="0" prog="64" /> - <Patch name="Alto Sax" hbank="121" lbank="0" prog="65" /> - <Patch name="Tenor Sax" hbank="121" lbank="0" prog="66" /> - <Patch name="Baritone Sax" hbank="121" lbank="0" prog="67" /> - <Patch name="Oboe" hbank="121" lbank="0" prog="68" /> - <Patch name="English Horn" hbank="121" lbank="0" prog="69" /> - <Patch name="Bassoon" hbank="121" lbank="0" prog="70" /> - <Patch name="Clarinet" hbank="121" lbank="0" prog="71" /> - <Patch name="Piccolo" hbank="121" lbank="0" prog="72" /> - <Patch name="Flute" hbank="121" lbank="0" prog="73" /> - <Patch name="Recorder" hbank="121" lbank="0" prog="74" /> - <Patch name="Pan Flute" hbank="121" lbank="0" prog="75" /> - <Patch name="Bottle Blow" hbank="121" lbank="0" prog="76" /> - <Patch name="Shakuhachi" hbank="121" lbank="0" prog="77" /> - <Patch name="Whistle" hbank="121" lbank="0" prog="78" /> - <Patch name="Ocarina" hbank="121" lbank="0" prog="79" /> - <Patch name="Square Wave" hbank="121" lbank="0" prog="80" /> - <Patch name="MG Square" hbank="121" lbank="1" prog="80" /> - <Patch name="2600 Sine" hbank="121" lbank="2" prog="80" /> - <Patch name="Saw Wave" hbank="121" lbank="0" prog="81" /> - <Patch name="OB2 Saw" hbank="121" lbank="1" prog="81" /> - <Patch name="Doctor Solo" hbank="121" lbank="2" prog="81" /> - <Patch name="Natural Lead" hbank="121" lbank="3" prog="81" /> - <Patch name="SequencedSaw" hbank="121" lbank="4" prog="81" /> - <Patch name="Syn.Calliope" hbank="121" lbank="0" prog="82" /> - <Patch name="Chiffer Lead" hbank="121" lbank="0" prog="83" /> - <Patch name="Charang" hbank="121" lbank="0" prog="84" /> - <Patch name="Wire Lead" hbank="121" lbank="1" prog="84" /> - <Patch name="Solo Vox" hbank="121" lbank="0" prog="85" /> - <Patch name="5th Saw Wave" hbank="121" lbank="0" prog="86" /> - <Patch name="Bass & Lead" hbank="121" lbank="0" prog="87" /> - <Patch name="Delayed Lead" hbank="121" lbank="1" prog="87" /> - <Patch name="Fantasia" hbank="121" lbank="0" prog="88" /> - <Patch name="Warm Pad" hbank="121" lbank="0" prog="89" /> - <Patch name="Sine Pad" hbank="121" lbank="1" prog="89" /> - <Patch name="Poly Synth" hbank="121" lbank="0" prog="90" /> - <Patch name="Space Voice" hbank="121" lbank="0" prog="91" /> - <Patch name="Itopia" hbank="121" lbank="1" prog="91" /> - <Patch name="Bowed Glass" hbank="121" lbank="0" prog="92" /> - <Patch name="Metal Pad" hbank="121" lbank="0" prog="93" /> - <Patch name="Halo Pad" hbank="121" lbank="0" prog="94" /> - <Patch name="Sweep Pad" hbank="121" lbank="0" prog="95" /> - <Patch name="Ice Rain" hbank="121" lbank="0" prog="96" /> - <Patch name="Soundtrack" hbank="121" lbank="0" prog="97" /> - <Patch name="Crystal" hbank="121" lbank="0" prog="98" /> - <Patch name="Syn Mallet" hbank="121" lbank="1" prog="98" /> - <Patch name="Atmosphere" hbank="121" lbank="0" prog="99" /> - <Patch name="Brightness" hbank="121" lbank="0" prog="100" /> - <Patch name="Goblin" hbank="121" lbank="0" prog="101" /> - <Patch name="Echo Drops" hbank="121" lbank="0" prog="102" /> - <Patch name="Echo Bell" hbank="121" lbank="1" prog="102" /> - <Patch name="Echo Pan" hbank="121" lbank="2" prog="102" /> - <Patch name="Star Theme" hbank="121" lbank="0" prog="103" /> - <Patch name="Sitar 1" hbank="121" lbank="0" prog="104" /> - <Patch name="Sitar 2" hbank="121" lbank="1" prog="104" /> - <Patch name="Banjo" hbank="121" lbank="0" prog="105" /> - <Patch name="Shamisen" hbank="121" lbank="0" prog="106" /> - <Patch name="Koto" hbank="121" lbank="0" prog="107" /> - <Patch name="Taisho Koto" hbank="121" lbank="1" prog="107" /> - <Patch name="Kalimba" hbank="121" lbank="0" prog="108" /> - <Patch name="Bagpipe" hbank="121" lbank="0" prog="109" /> - <Patch name="Fiddle" hbank="121" lbank="0" prog="110" /> - <Patch name="Shanai" hbank="121" lbank="0" prog="111" /> - <Patch name="Tinkle Bell" hbank="121" lbank="0" prog="112" /> - <Patch name="Agogo" hbank="121" lbank="0" prog="113" /> - <Patch name="Steel Drums" hbank="121" lbank="0" prog="114" /> - <Patch name="Woodblock" hbank="121" lbank="0" prog="115" /> - <Patch name="Castanets" hbank="121" lbank="1" prog="115" /> - <Patch name="Taiko" hbank="121" lbank="0" prog="116" /> - <Patch name="Concert BD" hbank="121" lbank="1" prog="116" /> - <Patch name="Melo. Tom 1" hbank="121" lbank="0" prog="117" /> - <Patch name="Melo. Tom 2" hbank="121" lbank="1" prog="117" /> - <Patch name="Synth Drum" hbank="121" lbank="0" prog="118" /> - <Patch name="808 Tom" hbank="121" lbank="1" prog="118" /> - <Patch name="Elec Perc" hbank="121" lbank="2" prog="118" /> - <Patch name="Reverse Cymb" hbank="121" lbank="0" prog="119" /> - <Patch name="Gt FretNoise" hbank="121" lbank="0" prog="120" /> - <Patch name="Gt Cut Noise" hbank="121" lbank="1" prog="120" /> - <Patch name="String Slap" hbank="121" lbank="2" prog="120" /> - <Patch name="Breath Noise" hbank="121" lbank="0" prog="121" /> - <Patch name="Fl.Key Click" hbank="121" lbank="1" prog="121" /> - <Patch name="Seashore" hbank="121" lbank="0" prog="122" /> - <Patch name="Rain" hbank="121" lbank="1" prog="122" /> - <Patch name="Thunder" hbank="121" lbank="2" prog="122" /> - <Patch name="Wind" hbank="121" lbank="3" prog="122" /> - <Patch name="Stream" hbank="121" lbank="4" prog="122" /> - <Patch name="Bubble" hbank="121" lbank="5" prog="122" /> - <Patch name="Bird 1" hbank="121" lbank="0" prog="123" /> - <Patch name="Dog" hbank="121" lbank="1" prog="123" /> - <Patch name="Horse Gallop" hbank="121" lbank="2" prog="123" /> - <Patch name="Bird 2" hbank="121" lbank="3" prog="123" /> - <Patch name="Telephone 1" hbank="121" lbank="0" prog="124" /> - <Patch name="Telephone 2" hbank="121" lbank="1" prog="124" /> - <Patch name="DoorCreaking" hbank="121" lbank="2" prog="124" /> - <Patch name="Door" hbank="121" lbank="3" prog="124" /> - <Patch name="Scratch" hbank="121" lbank="4" prog="124" /> - <Patch name="Wind Chimes" hbank="121" lbank="5" prog="124" /> - <Patch name="Helicopter" hbank="121" lbank="0" prog="125" /> - <Patch name="Car Engine" hbank="121" lbank="1" prog="125" /> - <Patch name="Car Stop" hbank="121" lbank="2" prog="125" /> - <Patch name="Car Pass" hbank="121" lbank="3" prog="125" /> - <Patch name="Car Crash" hbank="121" lbank="4" prog="125" /> - <Patch name="Siren" hbank="121" lbank="5" prog="125" /> - <Patch name="Train" hbank="121" lbank="6" prog="125" /> - <Patch name="Jetplane" hbank="121" lbank="7" prog="125" /> - <Patch name="Starship" hbank="121" lbank="8" prog="125" /> - <Patch name="Burst Noise" hbank="121" lbank="9" prog="125" /> - <Patch name="Applause" hbank="121" lbank="0" prog="126" /> - <Patch name="Laughing" hbank="121" lbank="1" prog="126" /> - <Patch name="Screaming" hbank="121" lbank="2" prog="126" /> - <Patch name="Punch" hbank="121" lbank="3" prog="126" /> - <Patch name="Heart Beat" hbank="121" lbank="4" prog="126" /> - <Patch name="Footsteps" hbank="121" lbank="5" prog="126" /> - <Patch name="Gun Shot" hbank="121" lbank="0" prog="127" /> - <Patch name="Machine Gun" hbank="121" lbank="1" prog="127" /> - <Patch name="Laser Gun" hbank="121" lbank="2" prog="127" /> - <Patch name="Explosion" hbank="121" lbank="3" prog="127" /> - </PatchGroup> - <PatchGroup name="GM Drums"> - <Patch name="GM2 STANDARD" hbank="120" lbank="0" prog="1" drum="1" /> - <Patch name="GM2 ROOM" hbank="120" lbank="0" prog="9" drum="1" /> - <Patch name="GM2 POWER" hbank="120" lbank="0" prog="17" drum="1" /> - <Patch name="GM2 ELECTRIC" hbank="120" lbank="0" prog="25" drum="1" /> - <Patch name="GM2 ANALOG" hbank="120" lbank="0" prog="26" drum="1" /> - <Patch name="GM2 JAZZ" hbank="120" lbank="0" prog="33" drum="1" /> - <Patch name="GM2 BRUSH" hbank="120" lbank="0" prog="41" drum="1" /> - <Patch name="GM2 ORCHSTRA" hbank="120" lbank="0" prog="49" drum="1" /> - <Patch name="GM2 SFX" hbank="120" lbank="0" prog="57" drum="1" /> - </PatchGroup> - <PatchGroup name="Other Drums"> - <Patch name="Standard 1" hbank="86" lbank="0" prog="1" drum="1" /> - <Patch name="Standard 2" hbank="86" lbank="0" prog="2" drum="1" /> - <Patch name="Standard 3" hbank="86" lbank="0" prog="3" drum="1" /> - <Patch name="Rock Kit" hbank="86" lbank="0" prog="4" drum="1" /> - <Patch name="Jazz Kit" hbank="86" lbank="0" prog="5" drum="1" /> - <Patch name="Brush Kit" hbank="86" lbank="0" prog="6" drum="1" /> - <Patch name="Machine Kit" hbank="86" lbank="0" prog="7" drum="1" /> - <Patch name="R&B T-Analog" hbank="86" lbank="0" prog="8" drum="1" /> - <Patch name="R&B Mini Kit" hbank="86" lbank="0" prog="9" drum="1" /> - <Patch name="HipHop Kit" hbank="86" lbank="0" prog="10" drum="1" /> - <Patch name="R&B Kit" hbank="86" lbank="0" prog="11" drum="1"/> - <Patch name="Dance Kit 1" hbank="86" lbank="0" prog="12" drum="1" /> - <Patch name="Dance Kit 2" hbank="86" lbank="0" prog="13" drum="1" /> - <Patch name="Dance Kit 3" hbank="86" lbank="0" prog="14" drum="1" /> + <MidiInstrument name="Roland SD-50-GM2"> + <PatchGroup name="GM2 Drums"> + <Patch name="GM2 STANDARD" hbank="120" lbank="0" prog="0" drum="1" /> + <Patch name="GM2 ROOM" hbank="120" lbank="0" prog="8" drum="1" /> + <Patch name="GM2 POWER" hbank="120" lbank="0" prog="16" drum="1" /> + <Patch name="GM2 ELECTRIC" hbank="120" lbank="0" prog="24" drum="1" /> + <Patch name="GM2 ANALOG" hbank="120" lbank="0" prog="25" drum="1" /> + <Patch name="GM2 JAZZ" hbank="120" lbank="0" prog="32" drum="1" /> + <Patch name="GM2 BRUSH" hbank="120" lbank="0" prog="40" drum="1" /> + <Patch name="GM2 ORCHESTRA" hbank="120" lbank="0" prog="48" drum="1" /> + <Patch name="GM2 SFX" hbank="120" lbank="0" prog="56" drum="1" /> </PatchGroup> <PatchGroup name="Piano"> - <Patch name="St.Piano 1" hbank="87" lbank="0" prog="0" /> - <Patch name="St.Piano 2" hbank="87" lbank="0" prog="1" /> - <Patch name="St.Piano 3" hbank="87" lbank="0" prog="2" /> - <Patch name="St.Piano 4" hbank="87" lbank="0" prog="3" /> - <Patch name="St.Piano 5" hbank="87" lbank="0" prog="4" /> - <Patch name="Brite Piano" hbank="87" lbank="0" prog="5" /> - <Patch name="Stage Piano" hbank="87" lbank="0" prog="6" /> - <Patch name="Honky Tonk" hbank="87" lbank="0" prog="7" /> - <Patch name="LoFi Piano" hbank="87" lbank="4" prog="62" /> <Patch name="Piano 1" hbank="121" lbank="0" prog="0" /> <Patch name="Piano 2" hbank="121" lbank="0" prog="1" /> <Patch name="Honky-tonk" hbank="121" lbank="0" prog="3" /> @@ -308,45 +20,13 @@ <Patch name="Piano 2 w" hbank="121" lbank="1" prog="1" /> <Patch name="Honky-tonk w" hbank="121" lbank="1" prog="3" /> <Patch name="European Pf" hbank="121" lbank="2" prog="0" /> - <Patch name="Pop Piano 1" hbank="87" lbank="0" prog="8" /> - <Patch name="Pop Piano 2" hbank="87" lbank="0" prog="9" /> - <Patch name="Pop Piano 3" hbank="87" lbank="0" prog="10" /> <Patch name="Piano 3" hbank="121" lbank="0" prog="2" /> <Patch name="Piano 3 w" hbank="121" lbank="1" prog="2" /> </PatchGroup> <PatchGroup name="E.Piano"> - <Patch name="Stage EP 1" hbank="87" lbank="0" prog="11" /> - <Patch name="Stage EP 2" hbank="87" lbank="0" prog="12" /> - <Patch name="Stage EP Trm" hbank="87" lbank="0" prog="13" /> - <Patch name="Tremolo EP 1" hbank="87" lbank="0" prog="14" /> - <Patch name="E.Piano 3" hbank="87" lbank="0" prog="15" /> - <Patch name="E.Piano 4" hbank="87" lbank="0" prog="16" /> - <Patch name="E.Piano 5" hbank="87" lbank="0" prog="17" /> - <Patch name="E.Piano 6" hbank="87" lbank="0" prog="18" /> - <Patch name="E.Piano 7" hbank="87" lbank="0" prog="19" /> - <Patch name="E.Piano 8" hbank="87" lbank="0" prog="20" /> - <Patch name="Dyno EP" hbank="87" lbank="0" prog="21" /> - <Patch name="Dyno EP Trm" hbank="87" lbank="0" prog="22" /> - <Patch name="Tremolo EP 2" hbank="87" lbank="0" prog="23" /> - <Patch name="Back2the60s" hbank="87" lbank="0" prog="24" /> - <Patch name="Tine EP" hbank="87" lbank="0" prog="25" /> - <Patch name="SA EP 1" hbank="87" lbank="0" prog="26" /> - <Patch name="SA EP 2" hbank="87" lbank="0" prog="27" /> - <Patch name="Psy EP" hbank="87" lbank="0" prog="28" /> - <Patch name="Wurly EP" hbank="87" lbank="0" prog="29" /> - <Patch name="Wurly EP Trm" hbank="87" lbank="0" prog="30" /> - <Patch name="Curly Wurly" hbank="87" lbank="0" prog="31" /> - <Patch name="Super Wurly" hbank="87" lbank="0" prog="32" /> <Patch name="E.Piano 1" hbank="121" lbank="0" prog="4" /> <Patch name="St.Soft EP" hbank="121" lbank="1" prog="4" /> <Patch name="Wurly" hbank="121" lbank="3" prog="4" /> - <Patch name="EP Legend 3" hbank="87" lbank="0" prog="33" /> - <Patch name="EP Belle" hbank="87" lbank="0" prog="34" /> - <Patch name="80\s EP" hbank="87" lbank="0" prog="35" /> - <Patch name="FM EP 1" hbank="87" lbank="0" prog="36" /> - <Patch name="FM EP 2" hbank="87" lbank="0" prog="37" /> - <Patch name="Sinus EP" hbank="87" lbank="0" prog="38" /> - <Patch name="Spirit Tines" hbank="87" lbank="0" prog="39" /> <Patch name="E.Piano 2" hbank="121" lbank="0" prog="5" /> <Patch name="Detuned EP" hbank="121" lbank="1" prog="5" /> <Patch name="EP Legend 1" hbank="121" lbank="2" prog="4" /> @@ -355,30 +35,6 @@ <Patch name="EP Phase" hbank="121" lbank="4" prog="5" /> </PatchGroup> <PatchGroup name="Organ "> - <Patch name="Rock Organ 1" hbank="87" lbank="0" prog="76" /> - <Patch name="Rock Organ 2" hbank="87" lbank="0" prog="77" /> - <Patch name="Rock Organ 3" hbank="87" lbank="0" prog="78" /> - <Patch name="Rock Organ 4" hbank="87" lbank="0" prog="79" /> - <Patch name="Rock Organ 5" hbank="87" lbank="0" prog="80" /> - <Patch name="RotaryOrgan1" hbank="87" lbank="0" prog="81" /> - <Patch name="RotaryOrgan2" hbank="87" lbank="0" prog="82" /> - <Patch name="Perc.Organ 2" hbank="87" lbank="0" prog="83" /> - <Patch name="Perc.Organ 3" hbank="87" lbank="0" prog="84" /> - <Patch name="Perc.Organ 4" hbank="87" lbank="0" prog="85" /> - <Patch name="E.Organ 1" hbank="87" lbank="0" prog="86" /> - <Patch name="E.Organ 2" hbank="87" lbank="0" prog="87" /> - <Patch name="E.Organ 3" hbank="87" lbank="0" prog="88" /> - <Patch name="E.Organ 4" hbank="87" lbank="0" prog="89" /> - <Patch name="E.Organ 5" hbank="87" lbank="0" prog="90" /> - <Patch name="E.Organ 6" hbank="87" lbank="0" prog="91" /> - <Patch name="E.Organ 7" hbank="87" lbank="0" prog="92" /> - <Patch name="70\s E.Org 1" hbank="87" lbank="0" prog="93" /> - <Patch name="70\s E.Org 2" hbank="87" lbank="0" prog="94" /> - <Patch name="Ana Organ 1" hbank="87" lbank="4" prog="6" /> - <Patch name="Ana Organ 2" hbank="87" lbank="4" prog="7" /> - <Patch name="Ana Organ 3" hbank="87" lbank="4" prog="8" /> - <Patch name="Ana Organ 4" hbank="87" lbank="4" prog="9" /> - <Patch name="Ana Organ 5" hbank="87" lbank="4" prog="10" /> <Patch name="Organ 1" hbank="121" lbank="0" prog="16" /> <Patch name="Organ 2" hbank="121" lbank="0" prog="17" /> <Patch name="Organ 3" hbank="121" lbank="0" prog="18" /> @@ -387,7 +43,6 @@ <Patch name="60\s Organ" hbank="121" lbank="2" prog="16" /> <Patch name="Perc. Organ" hbank="121" lbank="2" prog="17" /> <Patch name="70\s E.Organ" hbank="121" lbank="3" prog="16" /> - <Patch name="Grand Pipes" hbank="87" lbank="0" prog="95" /> <Patch name="Church Org 1" hbank="121" lbank="0" prog="19" /> <Patch name="Church Org 2" hbank="121" lbank="1" prog="19" /> <Patch name="Puff Organ" hbank="121" lbank="1" prog="20" /> @@ -395,68 +50,27 @@ <Patch name="Reed Organ" hbank="121" lbank="0" prog="20" /> </PatchGroup> <PatchGroup name="Other Keyboards "> - <Patch name="Harpsichord 2" hbank="87" lbank="0" prog="40" /> <Patch name="Harpsichord" hbank="121" lbank="0" prog="6" /> <Patch name="Coupled Hps" hbank="121" lbank="1" prog="6" /> <Patch name="Harpsi w" hbank="121" lbank="2" prog="6" /> <Patch name="Harpsi o" hbank="121" lbank="3" prog="6" /> - <Patch name="Clav 2" hbank="87" lbank="0" prog="41" /> - <Patch name="Pulse Clav 2" hbank="87" lbank="0" prog="42" /> - <Patch name="Sweepin Clav" hbank="87" lbank="0" prog="43" /> - <Patch name="Analog Clav" hbank="87" lbank="0" prog="44" /> - <Patch name="Biting Clav" hbank="87" lbank="0" prog="45" /> - <Patch name="Pulse Clv St" hbank="87" lbank="0" prog="46" /> <Patch name="Clav" hbank="121" lbank="0" prog="7" /> <Patch name="Pulse Clav" hbank="121" lbank="1" prog="7" /> <Patch name="Celesta" hbank="121" lbank="0" prog="8" /> </PatchGroup> <PatchGroup name="Accordion/Harmonica "> - <Patch name="AccordionIt2" hbank="87" lbank="0" prog="96" /> - <Patch name="Musette" hbank="87" lbank="0" prog="97" /> - <Patch name="Vodkakordion" hbank="87" lbank="0" prog="98" /> <Patch name="Accordion Fr" hbank="121" lbank="0" prog="21" /> <Patch name="Bandoneon" hbank="121" lbank="0" prog="23" /> <Patch name="Accordion It" hbank="121" lbank="1" prog="21" /> - <Patch name="Harmonica 2" hbank="87" lbank="0" prog="99" /> <Patch name="Harmonica" hbank="121" lbank="0" prog="22" /> </PatchGroup> <PatchGroup name="Bell/Mallet "> - <Patch name="FM Sparkles" hbank="87" lbank="0" prog="47" /> - <Patch name="FM Syn Bell" hbank="87" lbank="0" prog="48" /> - <Patch name="FM Heaven" hbank="87" lbank="0" prog="49" /> - <Patch name="Dreaming Bel" hbank="87" lbank="0" prog="52" /> - <Patch name="Analog Bell" hbank="87" lbank="0" prog="53" /> - <Patch name="Music Box 2" hbank="87" lbank="0" prog="54" /> - <Patch name="Music Bell\s" hbank="87" lbank="0" prog="55" /> - <Patch name="Kalimbells" hbank="87" lbank="0" prog="56" /> - <Patch name="Bell 1" hbank="87" lbank="0" prog="57" /> - <Patch name="Bell 2" hbank="87" lbank="0" prog="58" /> - <Patch name="Icy Keys" hbank="87" lbank="0" prog="59" /> - <Patch name="Carillon 2" hbank="87" lbank="0" prog="61" /> - <Patch name="Tower Bell" hbank="87" lbank="0" prog="62" /> - <Patch name="TubularBell2" hbank="87" lbank="0" prog="63" /> - <Patch name="Bell Ring" hbank="87" lbank="0" prog="64" /> <Patch name="Music Box" hbank="121" lbank="0" prog="10" /> <Patch name="TubularBells" hbank="121" lbank="0" prog="14" /> <Patch name="Crystal" hbank="121" lbank="0" prog="98" /> <Patch name="Tinkle Bell" hbank="121" lbank="0" prog="112" /> <Patch name="Church Bell" hbank="121" lbank="1" prog="14" /> <Patch name="Carillon" hbank="121" lbank="2" prog="14" /> - <Patch name="Toy Box" hbank="87" lbank="0" prog="60" /> - <Patch name="Vibraphone 2" hbank="87" lbank="0" prog="67" /> - <Patch name="VibraphoneTr" hbank="87" lbank="0" prog="68" /> - <Patch name="Tremolo Vib" hbank="87" lbank="0" prog="69" /> - <Patch name="Marimba 2" hbank="87" lbank="0" prog="70" /> - <Patch name="Marimba 3" hbank="87" lbank="0" prog="71" /> - <Patch name="Steel Drums2" hbank="87" lbank="0" prog="72" /> - <Patch name="Xylophone 2" hbank="87" lbank="0" prog="73" /> - <Patch name="Xylophone 3" hbank="87" lbank="0" prog="74" /> - <Patch name="Ethno Keys" hbank="87" lbank="0" prog="75" /> - <Patch name="Soft StlDrm" hbank="87" lbank="4" prog="1" /> - <Patch name="Jazz Vib" hbank="87" lbank="4" prog="2" /> - <Patch name="BsMarimba 1" hbank="87" lbank="4" prog="3" /> - <Patch name="BsMarimba 2" hbank="87" lbank="4" prog="4" /> - <Patch name="Sine Mallet" hbank="87" lbank="4" prog="5" /> <Patch name="Glockenspiel" hbank="121" lbank="0" prog="9" /> <Patch name="Vibraphone" hbank="121" lbank="0" prog="11" /> <Patch name="Marimba" hbank="121" lbank="0" prog="12" /> @@ -464,31 +78,8 @@ <Patch name="Steel Drums" hbank="121" lbank="0" prog="114" /> <Patch name="Vibraphone w" hbank="121" lbank="1" prog="11" /> <Patch name="Marimba w" hbank="121" lbank="1" prog="12" /> - <Patch name="D50 Fantasy" hbank="87" lbank="0" prog="50" /> - <Patch name="D50 Bell" hbank="87" lbank="0" prog="51" /> - <Patch name="Dreambell" hbank="87" lbank="0" prog="65" /> - <Patch name="Dreaming Box" hbank="87" lbank="0" prog="66" /> - <Patch name="Air Key 1" hbank="87" lbank="3" prog="16" /> - <Patch name="Sweet Keys" hbank="87" lbank="3" prog="17" /> - <Patch name="Soft Bell" hbank="87" lbank="3" prog="19" /> - <Patch name="Air Key 2" hbank="87" lbank="3" prog="20" /> - <Patch name="Stacc Heaven" hbank="87" lbank="3" prog="22" /> - <Patch name="DigitalDream" hbank="87" lbank="3" prog="23" /> - <Patch name="Analog Dream" hbank="87" lbank="3" prog="24" /> - <Patch name="Harp Pad" hbank="87" lbank="3" prog="25" /> - <Patch name="Org Bell" hbank="87" lbank="4" prog="0" /> </PatchGroup> <PatchGroup name="Guitar "> - <Patch name="Nylon Gtr 3" hbank="87" lbank="0" prog="100" /> - <Patch name="Nylon Gtr 4" hbank="87" lbank="0" prog="101" /> - <Patch name="Nylon Gtr 5" hbank="87" lbank="0" prog="102" /> - <Patch name="Nylon Gtr 6" hbank="87" lbank="0" prog="103" /> - <Patch name="Wet Nyln Gtr" hbank="87" lbank="0" prog="104" /> - <Patch name="Ukulele 2" hbank="87" lbank="0" prog="105" /> - <Patch name="Folk Gtr 1" hbank="87" lbank="0" prog="106" /> - <Patch name="Folk Gtr 2" hbank="87" lbank="0" prog="107" /> - <Patch name="Folk Gtr 3" hbank="87" lbank="0" prog="108" /> - <Patch name="Latin Gtr" hbank="87" lbank="0" prog="109" /> <Patch name="Nylon Gtr 1" hbank="121" lbank="0" prog="24" /> <Patch name="Steel-str.Gt" hbank="121" lbank="0" prog="25" /> <Patch name="Gt FretNoise" hbank="121" lbank="0" prog="120" /> @@ -497,14 +88,6 @@ <Patch name="Nylon Gtr 1o" hbank="121" lbank="2" prog="24" /> <Patch name="Nylon Gtr 2" hbank="121" lbank="3" prog="24" /> <Patch name="Steel + Body" hbank="121" lbank="3" prog="25" /> - <Patch name="Clean Gtr 1" hbank="87" lbank="0" prog="116" /> - <Patch name="Clean Gtr 2" hbank="87" lbank="0" prog="117" /> - <Patch name="Clean Gtr 3" hbank="87" lbank="0" prog="118" /> - <Patch name="Jazz Guitar2" hbank="87" lbank="0" prog="119" /> - <Patch name="Pick E.Gtr" hbank="87" lbank="0" prog="120" /> - <Patch name="Funk Guitar2" hbank="87" lbank="0" prog="121" /> - <Patch name="Wet E.Gtr" hbank="87" lbank="0" prog="122" /> - <Patch name="Pedal Steel2" hbank="87" lbank="4" prog="11" /> <Patch name="Jazz Guitar" hbank="121" lbank="0" prog="26" /> <Patch name="Clean Guitar" hbank="121" lbank="0" prog="27" /> <Patch name="Muted Guitar" hbank="121" lbank="0" prog="28" /> @@ -515,10 +98,6 @@ <Patch name="Mid Tone Gtr" hbank="121" lbank="2" prog="27" /> <Patch name="Funk Guitar" hbank="121" lbank="2" prog="28" /> <Patch name="Jazz Man" hbank="121" lbank="3" prog="28" /> - <Patch name="OverdriveGt2" hbank="87" lbank="0" prog="123" /> - <Patch name="Dist Gtr 1" hbank="87" lbank="0" prog="124" /> - <Patch name="Dist Gtr 2" hbank="87" lbank="0" prog="125" /> - <Patch name="Dist Gtr 3" hbank="87" lbank="0" prog="126" /> <Patch name="Overdrive Gt" hbank="121" lbank="0" prog="29" /> <Patch name="DistortionGt" hbank="121" lbank="0" prog="30" /> <Patch name="Gt Harmonics" hbank="121" lbank="0" prog="31" /> @@ -528,102 +107,14 @@ <Patch name="Dist Rtm Gtr" hbank="121" lbank="2" prog="30" /> </PatchGroup> <PatchGroup name="Bass "> - <Patch name="Acoustic Bs2" hbank="87" lbank="0" prog="127" /> - <Patch name="Acoustic Bs3" hbank="87" lbank="1" prog="0" /> <Patch name="Acoustic Bs" hbank="121" lbank="0" prog="32" /> <Patch name="String Slap" hbank="121" lbank="2" prog="120" /> - <Patch name="Fingered Bs2" hbank="87" lbank="1" prog="1" /> - <Patch name="Fingered Bs3" hbank="87" lbank="1" prog="2" /> - <Patch name="Fingered Bs4" hbank="87" lbank="1" prog="3" /> - <Patch name="Pick Bass" hbank="87" lbank="1" prog="4" /> - <Patch name="FretlessBs 2" hbank="87" lbank="1" prog="5" /> - <Patch name="FretlessBs 3" hbank="87" lbank="1" prog="6" /> - <Patch name="Finger Slap2" hbank="87" lbank="1" prog="7" /> - <Patch name="Return2Base!" hbank="87" lbank="1" prog="8" /> <Patch name="Fingered Bs" hbank="121" lbank="0" prog="33" /> <Patch name="Picked Bass" hbank="121" lbank="0" prog="34" /> <Patch name="Fretless Bs" hbank="121" lbank="0" prog="35" /> <Patch name="Slap Bass 1" hbank="121" lbank="0" prog="36" /> <Patch name="Slap Bass 2" hbank="121" lbank="0" prog="37" /> <Patch name="Finger Slap" hbank="121" lbank="1" prog="33" /> - <Patch name="MG Bass 1" hbank="87" lbank="1" prog="9" /> - <Patch name="MG Bass 2" hbank="87" lbank="1" prog="10" /> - <Patch name="MG Bass 3" hbank="87" lbank="1" prog="11" /> - <Patch name="Modular Bs 1" hbank="87" lbank="1" prog="12" /> - <Patch name="Modular Bs 2" hbank="87" lbank="1" prog="13" /> - <Patch name="PWM Bass 1" hbank="87" lbank="1" prog="14" /> - <Patch name="PWM Bass 2" hbank="87" lbank="1" prog="15" /> - <Patch name="Big Mini" hbank="87" lbank="1" prog="16" /> - <Patch name="Fat Analog" hbank="87" lbank="1" prog="17" /> - <Patch name="Spike Bass" hbank="87" lbank="1" prog="18" /> - <Patch name="SH Bass" hbank="87" lbank="1" prog="19" /> - <Patch name="Intrusive Bs" hbank="87" lbank="1" prog="20" /> - <Patch name="Synth Bass 3" hbank="87" lbank="1" prog="21" /> - <Patch name="Synth Bass 4" hbank="87" lbank="1" prog="22" /> - <Patch name="Synth Bass 5" hbank="87" lbank="1" prog="23" /> - <Patch name="Synth Bass 6" hbank="87" lbank="1" prog="24" /> - <Patch name="Synth Bass 7" hbank="87" lbank="1" prog="25" /> - <Patch name="Synth Bass 8" hbank="87" lbank="1" prog="26" /> - <Patch name="Synth Bass 9" hbank="87" lbank="1" prog="27" /> - <Patch name="Synth Bass10" hbank="87" lbank="1" prog="28" /> - <Patch name="Synth Bass11" hbank="87" lbank="1" prog="29" /> - <Patch name="Synth Bass12" hbank="87" lbank="1" prog="30" /> - <Patch name="Synth Bass13" hbank="87" lbank="1" prog="31" /> - <Patch name="Synth Bass14" hbank="87" lbank="1" prog="32" /> - <Patch name="Reso Bass 1" hbank="87" lbank="1" prog="33" /> - <Patch name="Reso Bass 2" hbank="87" lbank="1" prog="34" /> - <Patch name="Reso Bass 3" hbank="87" lbank="1" prog="35" /> - <Patch name="Reso Bass 4" hbank="87" lbank="1" prog="36" /> - <Patch name="Reso Bass 5" hbank="87" lbank="1" prog="37" /> - <Patch name="Reso Bass 6" hbank="87" lbank="1" prog="38" /> - <Patch name="Reso Bass 7" hbank="87" lbank="1" prog="39" /> - <Patch name="Reso Bass 8" hbank="87" lbank="1" prog="40" /> - <Patch name="Acid Bass 2" hbank="87" lbank="1" prog="41" /> - <Patch name="Acid Bass 3" hbank="87" lbank="1" prog="42" /> - <Patch name="Acid Bass 4" hbank="87" lbank="1" prog="43" /> - <Patch name="Alpha Bass 1" hbank="87" lbank="1" prog="44" /> - <Patch name="TB Bass 1" hbank="87" lbank="1" prog="45" /> - <Patch name="TB Bass 2" hbank="87" lbank="1" prog="46" /> - <Patch name="Alpha Bass 2" hbank="87" lbank="1" prog="47" /> - <Patch name="Alpha ResoBs" hbank="87" lbank="1" prog="48" /> - <Patch name="Nu Saw Bass" hbank="87" lbank="1" prog="49" /> - <Patch name="Nu RnB SawBs" hbank="87" lbank="1" prog="50" /> - <Patch name="Storm Bass" hbank="87" lbank="1" prog="51" /> - <Patch name="Detune Bass" hbank="87" lbank="1" prog="52" /> - <Patch name="Gashed Bass" hbank="87" lbank="1" prog="53" /> - <Patch name="Hi-Energy Bs" hbank="87" lbank="1" prog="54" /> - <Patch name="Pedal Bass 1" hbank="87" lbank="1" prog="55" /> - <Patch name="Monster Bass" hbank="87" lbank="1" prog="56" /> - <Patch name="JunoSqr Bs 1" hbank="87" lbank="1" prog="57" /> - <Patch name="JunoSqr Bs 2" hbank="87" lbank="1" prog="58" /> - <Patch name="101 Bass" hbank="87" lbank="1" prog="59" /> - <Patch name="106 Bass 1" hbank="87" lbank="1" prog="60" /> - <Patch name="106 Bass 2" hbank="87" lbank="1" prog="61" /> - <Patch name="Compu Bass 1" hbank="87" lbank="1" prog="62" /> - <Patch name="Compu Bass 2" hbank="87" lbank="1" prog="63" /> - <Patch name="Triangle Bs" hbank="87" lbank="1" prog="64" /> - <Patch name="Muffled Bass" hbank="87" lbank="1" prog="65" /> - <Patch name="Garage Bass" hbank="87" lbank="1" prog="66" /> - <Patch name="TransistorBs" hbank="87" lbank="1" prog="67" /> - <Patch name="Fazee Bass" hbank="87" lbank="1" prog="68" /> - <Patch name="TB Bass 3" hbank="87" lbank="4" prog="12" /> - <Patch name="TB Bass 4" hbank="87" lbank="4" prog="13" /> - <Patch name="Acid Bass 5" hbank="87" lbank="4" prog="14" /> - <Patch name="Acid Bass 6" hbank="87" lbank="4" prog="15" /> - <Patch name="Acid Bass 7" hbank="87" lbank="4" prog="16" /> - <Patch name="Brite Bass" hbank="87" lbank="4" prog="17" /> - <Patch name="Pedal Bass 2" hbank="87" lbank="4" prog="18" /> - <Patch name="Saw Bass" hbank="87" lbank="4" prog="19" /> - <Patch name="Reso Bass 9" hbank="87" lbank="4" prog="20" /> - <Patch name="Reso Bass 10" hbank="87" lbank="4" prog="21" /> - <Patch name="Sub Bass" hbank="87" lbank="4" prog="22" /> - <Patch name="Ramp Bass" hbank="87" lbank="4" prog="23" /> - <Patch name="Fat Bass 1" hbank="87" lbank="4" prog="24" /> - <Patch name="Fat Bass 2" hbank="87" lbank="4" prog="25" /> - <Patch name="Fat Bass 3" hbank="87" lbank="4" prog="26" /> - <Patch name="Flat Bass" hbank="87" lbank="4" prog="27" /> - <Patch name="Electro Rubb" hbank="87" lbank="4" prog="28" /> - <Patch name="80s Bass" hbank="87" lbank="4" prog="29" /> <Patch name="Synth Bass 1" hbank="121" lbank="0" prog="38" /> <Patch name="Synth Bass 2" hbank="121" lbank="0" prog="39" /> <Patch name="SynthBass101" hbank="121" lbank="1" prog="38" /> @@ -635,13 +126,6 @@ <Patch name="Hammer Bass" hbank="121" lbank="4" prog="38" /> </PatchGroup> <PatchGroup name="Other Plucked/Stroke"> - <Patch name="Santur 2" hbank="87" lbank="0" prog="110" /> - <Patch name="Santur 3" hbank="87" lbank="0" prog="111" /> - <Patch name="Aerial Harp" hbank="87" lbank="0" prog="112" /> - <Patch name="LostParadise" hbank="87" lbank="0" prog="113" /> - <Patch name="Sitar 3" hbank="87" lbank="0" prog="114" /> - <Patch name="Indian Frtls" hbank="87" lbank="0" prog="115" /> - <Patch name="Sitar Pad" hbank="87" lbank="3" prog="26" /> <Patch name="Santur" hbank="121" lbank="0" prog="15" /> <Patch name="Harp" hbank="121" lbank="0" prog="46" /> <Patch name="Sitar 1" hbank="121" lbank="0" prog="104" /> @@ -655,54 +139,23 @@ <Patch name="Mandolin" hbank="121" lbank="2" prog="25" /> </PatchGroup> <PatchGroup name="Strings "> - <Patch name="Violin 2" hbank="87" lbank="1" prog="84" /> - <Patch name="Bright Vln" hbank="87" lbank="4" prog="30" /> - <Patch name="Bright Vc" hbank="87" lbank="4" prog="31" /> - <Patch name="Violin" hbank="89" lbank="64" prog="40" /> <Patch name="Violin" hbank="121" lbank="0" prog="40" /> <Patch name="Viola" hbank="121" lbank="0" prog="41" /> <Patch name="Cello" hbank="121" lbank="0" prog="42" /> <Patch name="Contrabass" hbank="121" lbank="0" prog="43" /> <Patch name="Fiddle" hbank="121" lbank="0" prog="110" /> <Patch name="Slow Violin" hbank="121" lbank="1" prog="40" /> - <Patch name="Mood Strings" hbank="87" lbank="1" prog="69" /> - <Patch name="Strings 2" hbank="87" lbank="1" prog="70" /> - <Patch name="Strings 3" hbank="87" lbank="1" prog="71" /> - <Patch name="Strings 4" hbank="87" lbank="1" prog="72" /> - <Patch name="Strings 5" hbank="87" lbank="1" prog="73" /> - <Patch name="Stage Str 1" hbank="87" lbank="1" prog="74" /> - <Patch name="Stage Str 2" hbank="87" lbank="1" prog="75" /> - <Patch name="Pop Str" hbank="87" lbank="1" prog="76" /> - <Patch name="Marc.Str" hbank="87" lbank="1" prog="77" /> - <Patch name="StringsStacc" hbank="87" lbank="1" prog="78" /> - <Patch name="Pizz 1" hbank="87" lbank="1" prog="79" /> - <Patch name="Pizz 2" hbank="87" lbank="1" prog="80" /> - <Patch name="TapeStrings1" hbank="87" lbank="1" prog="81" /> - <Patch name="TapeStrings2" hbank="87" lbank="1" prog="82" /> - <Patch name="Hybrid Str" hbank="87" lbank="1" prog="83" /> - <Patch name="Strings 6" hbank="87" lbank="4" prog="32" /> - <Patch name="Hall Strings" hbank="87" lbank="4" prog="33" /> <Patch name="Tremolo Str" hbank="121" lbank="0" prog="44" /> <Patch name="PizzicatoStr" hbank="121" lbank="0" prog="45" /> <Patch name="Strings" hbank="121" lbank="0" prog="48" /> <Patch name="Slow Strings" hbank="121" lbank="0" prog="49" /> <Patch name="Oct Strings" hbank="121" lbank="2" prog="48" /> - <Patch name="Orc.Unison 1" hbank="87" lbank="1" prog="85" /> - <Patch name="Orc.Unison 2" hbank="87" lbank="1" prog="86" /> - <Patch name="Full Orc" hbank="87" lbank="4" prog="34" /> <Patch name="Orchestra" hbank="121" lbank="1" prog="48" /> </PatchGroup> <PatchGroup name="Brass"> - <Patch name="Brass 3" hbank="87" lbank="1" prog="95" /> - <Patch name="Brass 4" hbank="87" lbank="1" prog="96" /> - <Patch name="Brass 5" hbank="87" lbank="1" prog="97" /> - <Patch name="Brass 6" hbank="87" lbank="1" prog="98" /> <Patch name="F.Horn Sect" hbank="121" lbank="0" prog="60" /> <Patch name="Brass 1" hbank="121" lbank="0" prog="61" /> <Patch name="Brass 2" hbank="121" lbank="1" prog="61" /> - <Patch name="Trumpet 2" hbank="87" lbank="1" prog="93" /> - <Patch name="Fr.Horn" hbank="87" lbank="1" prog="94" /> - <Patch name="Trombone" hbank="89" lbank="64" prog="57" /> <Patch name="Trumpet" hbank="121" lbank="0" prog="56" /> <Patch name="Trombone 1" hbank="121" lbank="0" prog="57" /> <Patch name="Tuba" hbank="121" lbank="0" prog="58" /> @@ -714,19 +167,12 @@ <Patch name="Bright Tb" hbank="121" lbank="2" prog="57" /> </PatchGroup> <PatchGroup name="Sax/Wind "> - <Patch name="Bassoon 2" hbank="87" lbank="1" prog="87" /> <Patch name="Oboe" hbank="121" lbank="0" prog="68" /> <Patch name="English Horn" hbank="121" lbank="0" prog="69" /> <Patch name="Bassoon" hbank="121" lbank="0" prog="70" /> <Patch name="Clarinet" hbank="121" lbank="0" prog="71" /> <Patch name="Bagpipe" hbank="121" lbank="0" prog="109" /> <Patch name="Shanai" hbank="121" lbank="0" prog="111" /> - <Patch name="Flute 2" hbank="87" lbank="1" prog="88" /> - <Patch name="Pan Flute 2" hbank="87" lbank="1" prog="89" /> - <Patch name="Pan Pipes 1" hbank="87" lbank="1" prog="90" /> - <Patch name="Shakuhachi 2" hbank="87" lbank="1" prog="91" /> - <Patch name="Pan Pipes 2" hbank="87" lbank="4" prog="35" /> - <Patch name="Shakuhachi" hbank="89" lbank="64" prog="77" /> <Patch name="Piccolo" hbank="121" lbank="0" prog="72" /> <Patch name="Flute" hbank="121" lbank="0" prog="73" /> <Patch name="Pan Flute" hbank="121" lbank="0" prog="75" /> @@ -734,39 +180,15 @@ <Patch name="Shakuhachi" hbank="121" lbank="0" prog="77" /> <Patch name="Breath Noise" hbank="121" lbank="0" prog="121" /> <Patch name="Fl.Key Click" hbank="121" lbank="1" prog="121" /> - <Patch name="Soprano Sax2" hbank="87" lbank="1" prog="123" /> - <Patch name="BreathyTenor" hbank="87" lbank="1" prog="124" /> - <Patch name="Tenor Sax 2" hbank="87" lbank="1" prog="125" /> <Patch name="Soprano Sax" hbank="121" lbank="0" prog="64" /> <Patch name="Alto Sax" hbank="121" lbank="0" prog="65" /> <Patch name="Tenor Sax" hbank="121" lbank="0" prog="66" /> <Patch name="Baritone Sax" hbank="121" lbank="0" prog="67" /> - <Patch name="Ocarina 2" hbank="87" lbank="1" prog="92" /> <Patch name="Recorder" hbank="121" lbank="0" prog="74" /> <Patch name="Whistle" hbank="121" lbank="0" prog="78" /> <Patch name="Ocarina" hbank="121" lbank="0" prog="79" /> </PatchGroup> <PatchGroup name="Vox/Choir "> - <Patch name="Dreamvox 1" hbank="87" lbank="3" prog="13" /> - <Patch name="Dreamvox 2" hbank="87" lbank="3" prog="14" /> - <Patch name="Choir Pad" hbank="87" lbank="3" prog="88" /> - <Patch name="Angels Choir" hbank="87" lbank="3" prog="89" /> - <Patch name="Aerial Choir" hbank="87" lbank="3" prog="90" /> - <Patch name="Doo Pad" hbank="87" lbank="3" prog="91" /> - <Patch name="Humming 2" hbank="87" lbank="3" prog="92" /> - <Patch name="Humming 3" hbank="87" lbank="3" prog="93" /> - <Patch name="Gospel Hum" hbank="87" lbank="3" prog="94" /> - <Patch name="Vox Pad 1" hbank="87" lbank="3" prog="95" /> - <Patch name="Vox Pad 2" hbank="87" lbank="3" prog="96" /> - <Patch name="80s Vox" hbank="87" lbank="3" prog="97" /> - <Patch name="SynVox 2" hbank="87" lbank="3" prog="98" /> - <Patch name="SynVox 3" hbank="87" lbank="3" prog="99" /> - <Patch name="Mini Vox" hbank="87" lbank="3" prog="100" /> - <Patch name="Chipmunk" hbank="87" lbank="3" prog="101" /> - <Patch name="Sample Opera" hbank="87" lbank="3" prog="102" /> - <Patch name="Sad Ceremony" hbank="87" lbank="3" prog="103" /> - <Patch name="5th Voice" hbank="87" lbank="4" prog="51" /> - <Patch name="Sop Vox" hbank="87" lbank="4" prog="93" /> <Patch name="Choir Aahs" hbank="121" lbank="0" prog="52" /> <Patch name="Voice Oohs" hbank="121" lbank="0" prog="53" /> <Patch name="SynVox" hbank="121" lbank="0" prog="54" /> @@ -775,118 +197,8 @@ <Patch name="Humming" hbank="121" lbank="1" prog="53" /> <Patch name="Analog Voice" hbank="121" lbank="1" prog="54" /> <Patch name="Itopia" hbank="121" lbank="1" prog="91" /> - <Patch name="Jazz Scat 1" hbank="87" lbank="3" prog="86" /> - <Patch name="Jazz Scat 2" hbank="87" lbank="3" prog="87" /> </PatchGroup> <PatchGroup name="Synth Lead"> - <Patch name="Saw Lead 1" hbank="87" lbank="1" prog="126" /> - <Patch name="Saw Lead 2" hbank="87" lbank="1" prog="127" /> - <Patch name="Saw Lead 3" hbank="87" lbank="2" prog="0" /> - <Patch name="Saw Lead 4" hbank="87" lbank="2" prog="1" /> - <Patch name="Saw Lead 5" hbank="87" lbank="2" prog="2" /> - <Patch name="Saw Lead 6" hbank="87" lbank="2" prog="3" /> - <Patch name="Saw Lead 7" hbank="87" lbank="2" prog="4" /> - <Patch name="Saw Lead 8" hbank="87" lbank="2" prog="5" /> - <Patch name="Saw Lead 9" hbank="87" lbank="2" prog="6" /> - <Patch name="GR300 Lead 1" hbank="87" lbank="2" prog="7" /> - <Patch name="GR300 Lead 2" hbank="87" lbank="2" prog="8" /> - <Patch name="Classic GR" hbank="87" lbank="2" prog="9" /> - <Patch name="Bright GR" hbank="87" lbank="2" prog="10" /> - <Patch name="Fat GR Lead" hbank="87" lbank="2" prog="11" /> - <Patch name="MODified Ld" hbank="87" lbank="2" prog="12" /> - <Patch name="Syn Lead 1" hbank="87" lbank="2" prog="13" /> - <Patch name="Syn Lead 2" hbank="87" lbank="2" prog="14" /> - <Patch name="Syn Lead 3" hbank="87" lbank="2" prog="15" /> - <Patch name="Syn Lead 4" hbank="87" lbank="2" prog="16" /> - <Patch name="Syn Lead 5" hbank="87" lbank="2" prog="17" /> - <Patch name="Syn Lead 6" hbank="87" lbank="2" prog="18" /> - <Patch name="Syn Lead 7" hbank="87" lbank="2" prog="19" /> - <Patch name="Pro Fat Ld 1" hbank="87" lbank="2" prog="20" /> - <Patch name="JupiterLead1" hbank="87" lbank="2" prog="21" /> - <Patch name="JupiterLead2" hbank="87" lbank="2" prog="22" /> - <Patch name="Porta Lead" hbank="87" lbank="2" prog="23" /> - <Patch name="Classic Lead" hbank="87" lbank="2" prog="24" /> - <Patch name="On Air" hbank="87" lbank="2" prog="25" /> - <Patch name="Pro Fat Ld 2" hbank="87" lbank="2" prog="26" /> - <Patch name="Wormy Lead" hbank="87" lbank="2" prog="27" /> - <Patch name="Waspy Lead" hbank="87" lbank="2" prog="28" /> - <Patch name="Brite ResoLd" hbank="87" lbank="2" prog="29" /> - <Patch name="Brass Lead" hbank="87" lbank="2" prog="30" /> - <Patch name="Legato Tkno" hbank="87" lbank="2" prog="31" /> - <Patch name="Follow Me" hbank="87" lbank="2" prog="32" /> - <Patch name="Octa Juice" hbank="87" lbank="2" prog="33" /> - <Patch name="Juicy Jupe" hbank="87" lbank="2" prog="34" /> - <Patch name="Octa Saw" hbank="87" lbank="2" prog="35" /> - <Patch name="Vintager 1" hbank="87" lbank="2" prog="36" /> - <Patch name="Vintager 2" hbank="87" lbank="2" prog="37" /> - <Patch name="Sync Lead" hbank="87" lbank="2" prog="38" /> - <Patch name="Octa Sync" hbank="87" lbank="2" prog="39" /> - <Patch name="Leading Sync" hbank="87" lbank="2" prog="40" /> - <Patch name="A Leader" hbank="87" lbank="2" prog="41" /> - <Patch name="Hot Coffee" hbank="87" lbank="2" prog="42" /> - <Patch name="Hot Sync" hbank="87" lbank="2" prog="43" /> - <Patch name="Synchro Lead" hbank="87" lbank="2" prog="44" /> - <Patch name="Space Solo" hbank="87" lbank="2" prog="45" /> - <Patch name="Squareheads" hbank="87" lbank="2" prog="46" /> - <Patch name="Mod Lead" hbank="87" lbank="2" prog="47" /> - <Patch name="Alpha Spit" hbank="87" lbank="2" prog="48" /> - <Patch name="Air Lead" hbank="87" lbank="2" prog="49" /> - <Patch name="Pulstar Lead" hbank="87" lbank="2" prog="50" /> - <Patch name="Therasaw" hbank="87" lbank="2" prog="51" /> - <Patch name="Warmy Lead" hbank="87" lbank="2" prog="52" /> - <Patch name="ResoSawLead" hbank="87" lbank="2" prog="53" /> - <Patch name="Soft Reso Ld" hbank="87" lbank="2" prog="54" /> - <Patch name="Reso Lead 1" hbank="87" lbank="2" prog="55" /> - <Patch name="Reso Lead 2" hbank="87" lbank="2" prog="56" /> - <Patch name="Reso Lead 3" hbank="87" lbank="2" prog="57" /> - <Patch name="Reso Lead 4" hbank="87" lbank="2" prog="58" /> - <Patch name="Reso Lead 5" hbank="87" lbank="2" prog="59" /> - <Patch name="Juicy Lead" hbank="87" lbank="2" prog="60" /> - <Patch name="DC Triangle" hbank="87" lbank="2" prog="61" /> - <Patch name="Soft Lead 1" hbank="87" lbank="2" prog="62" /> - <Patch name="Soft Lead 2" hbank="87" lbank="2" prog="63" /> - <Patch name="Soft Lead 3" hbank="87" lbank="2" prog="64" /> - <Patch name="Soft Lead 4" hbank="87" lbank="2" prog="65" /> - <Patch name="Soft Lead 5" hbank="87" lbank="2" prog="66" /> - <Patch name="Soft Lead 6" hbank="87" lbank="2" prog="67" /> - <Patch name="Soft Lead 7" hbank="87" lbank="2" prog="68" /> - <Patch name="Soft Lead 8" hbank="87" lbank="2" prog="69" /> - <Patch name="Soft Lead 9" hbank="87" lbank="2" prog="70" /> - <Patch name="Soft Lead 10" hbank="87" lbank="2" prog="71" /> - <Patch name="Tri Lead" hbank="87" lbank="2" prog="72" /> - <Patch name="Pulse Lead 1" hbank="87" lbank="2" prog="73" /> - <Patch name="Pulse Lead 2" hbank="87" lbank="2" prog="74" /> - <Patch name="Simple Tri" hbank="87" lbank="2" prog="75" /> - <Patch name="Simple Sine" hbank="87" lbank="2" prog="76" /> - <Patch name="Whistle Ld 1" hbank="87" lbank="2" prog="77" /> - <Patch name="Whistle Ld 2" hbank="87" lbank="2" prog="78" /> - <Patch name="Square Pipe" hbank="87" lbank="2" prog="79" /> - <Patch name="CosmicDrops1" hbank="87" lbank="2" prog="80" /> - <Patch name="Spooky Lead" hbank="87" lbank="2" prog="81" /> - <Patch name="Pure Lead" hbank="87" lbank="2" prog="82" /> - <Patch name="303 NRG" hbank="87" lbank="2" prog="83" /> - <Patch name="Round SQR" hbank="87" lbank="2" prog="84" /> - <Patch name="Brite SQR" hbank="87" lbank="2" prog="85" /> - <Patch name="Square SAW" hbank="87" lbank="2" prog="86" /> - <Patch name="Simple SQR" hbank="87" lbank="2" prog="87" /> - <Patch name="Sqr Lead" hbank="87" lbank="2" prog="88" /> - <Patch name="Atk Lead" hbank="87" lbank="2" prog="89" /> - <Patch name="Octa Square" hbank="87" lbank="2" prog="90" /> - <Patch name="CS Lead" hbank="87" lbank="2" prog="91" /> - <Patch name="Mini Growl" hbank="87" lbank="2" prog="92" /> - <Patch name="Hoover Again" hbank="87" lbank="2" prog="93" /> - <Patch name="Tranceformer" hbank="87" lbank="2" prog="94" /> - <Patch name="Juno SQR" hbank="87" lbank="2" prog="120" /> - <Patch name="Pulse Lead 3" hbank="87" lbank="4" prog="41" /> - <Patch name="Pulse Lead 4" hbank="87" lbank="4" prog="42" /> - <Patch name="Ramp Lead 1" hbank="87" lbank="4" prog="43" /> - <Patch name="Ramp Lead 2" hbank="87" lbank="4" prog="44" /> - <Patch name="Saw Lead 10" hbank="87" lbank="4" prog="45" /> - <Patch name="Sine Lead 1" hbank="87" lbank="4" prog="46" /> - <Patch name="Sine Lead 2" hbank="87" lbank="4" prog="47" /> - <Patch name="Dance Saws1" hbank="87" lbank="4" prog="56" /> - <Patch name="Resoform" hbank="87" lbank="4" prog="57" /> - <Patch name="Dance Saws 2" hbank="87" lbank="4" prog="69" /> <Patch name="Square Wave" hbank="121" lbank="0" prog="80" /> <Patch name="Saw Wave" hbank="121" lbank="0" prog="81" /> <Patch name="Syn.Calliope" hbank="121" lbank="0" prog="82" /> @@ -904,39 +216,6 @@ <Patch name="Natural Lead" hbank="121" lbank="3" prog="81" /> </PatchGroup> <PatchGroup name="Synth Brass"> - <Patch name="80s Brass 1" hbank="87" lbank="1" prog="99" /> - <Patch name="80s Brass 2" hbank="87" lbank="1" prog="100" /> - <Patch name="80s Brass 3" hbank="87" lbank="1" prog="101" /> - <Patch name="80s Brass 4" hbank="87" lbank="1" prog="102" /> - <Patch name="80s Brass 5" hbank="87" lbank="1" prog="103" /> - <Patch name="80s Brass 6" hbank="87" lbank="1" prog="104" /> - <Patch name="80s Brass 7" hbank="87" lbank="1" prog="105" /> - <Patch name="80s Brass 8" hbank="87" lbank="1" prog="106" /> - <Patch name="Soft SynBrs1" hbank="87" lbank="1" prog="107" /> - <Patch name="Warm SynBrs" hbank="87" lbank="1" prog="108" /> - <Patch name="Brite SynBrs" hbank="87" lbank="1" prog="109" /> - <Patch name="Express Brs" hbank="87" lbank="1" prog="110" /> - <Patch name="EuroExpress1" hbank="87" lbank="1" prog="111" /> - <Patch name="JP Brass 1" hbank="87" lbank="1" prog="112" /> - <Patch name="Juno Brass" hbank="87" lbank="1" prog="113" /> - <Patch name="Ox Brass" hbank="87" lbank="1" prog="114" /> - <Patch name="Reso Brass" hbank="87" lbank="1" prog="115" /> - <Patch name="Wide SynBrs" hbank="87" lbank="1" prog="116" /> - <Patch name="Soft SynBrs2" hbank="87" lbank="1" prog="117" /> - <Patch name="JP Brass 2" hbank="87" lbank="1" prog="118" /> - <Patch name="106 Brass" hbank="87" lbank="1" prog="119" /> - <Patch name="Octa Brass" hbank="87" lbank="1" prog="120" /> - <Patch name="Poly Brass 1" hbank="87" lbank="1" prog="121" /> - <Patch name="Dual Saw Brs" hbank="87" lbank="1" prog="122" /> - <Patch name="Jump Poly" hbank="87" lbank="2" prog="108" /> - <Patch name="Reso Key 1" hbank="87" lbank="2" prog="123" /> - <Patch name="EuroExpress2" hbank="87" lbank="2" prog="126" /> - <Patch name="Ox Synth" hbank="87" lbank="3" prog="4" /> - <Patch name="VintageBrs 1" hbank="87" lbank="4" prog="36" /> - <Patch name="VintageBrs 2" hbank="87" lbank="4" prog="37" /> - <Patch name="VintageBrs 3" hbank="87" lbank="4" prog="38" /> - <Patch name="VintageBrs 4" hbank="87" lbank="4" prog="39" /> - <Patch name="Poly Brass 2" hbank="87" lbank="4" prog="40" /> <Patch name="Synth Brass1" hbank="121" lbank="0" prog="62" /> <Patch name="Synth Brass2" hbank="121" lbank="0" prog="63" /> <Patch name="JP Brass" hbank="121" lbank="1" prog="62" /> @@ -946,79 +225,6 @@ <Patch name="Jump Brass" hbank="121" lbank="3" prog="62" /> </PatchGroup> <PatchGroup name="Synth Pad/Strings"> - <Patch name="Heaven Pad 1" hbank="87" lbank="3" prog="11" /> - <Patch name="Heaven Pad 2" hbank="87" lbank="3" prog="12" /> - <Patch name="Dreamheaven" hbank="87" lbank="3" prog="15" /> - <Patch name="Oct Heaven" hbank="87" lbank="3" prog="21" /> - <Patch name="Soft Pad 1" hbank="87" lbank="3" prog="27" /> - <Patch name="Soft Pad 2" hbank="87" lbank="3" prog="28" /> - <Patch name="Soft Pad 3" hbank="87" lbank="3" prog="29" /> - <Patch name="Soft Pad 4" hbank="87" lbank="3" prog="30" /> - <Patch name="Soft Pad 5" hbank="87" lbank="3" prog="31" /> - <Patch name="Soft Pad 6" hbank="87" lbank="3" prog="32" /> - <Patch name="Soft Pad 7" hbank="87" lbank="3" prog="33" /> - <Patch name="Soft Pad 8" hbank="87" lbank="3" prog="34" /> - <Patch name="Soft Pad 9" hbank="87" lbank="3" prog="35" /> - <Patch name="Soft Pad 10" hbank="87" lbank="3" prog="36" /> - <Patch name="VintageStr 1" hbank="87" lbank="3" prog="37" /> - <Patch name="VintageStr 2" hbank="87" lbank="3" prog="38" /> - <Patch name="VintageStr 3" hbank="87" lbank="3" prog="39" /> - <Patch name="VintageStr 4" hbank="87" lbank="3" prog="40" /> - <Patch name="VintageStr 5" hbank="87" lbank="3" prog="41" /> - <Patch name="VintageStr 6" hbank="87" lbank="3" prog="42" /> - <Patch name="VintageStr 7" hbank="87" lbank="3" prog="43" /> - <Patch name="JX Strings" hbank="87" lbank="3" prog="44" /> - <Patch name="JP Strings 1" hbank="87" lbank="3" prog="45" /> - <Patch name="JP Strings 2" hbank="87" lbank="3" prog="46" /> - <Patch name="106 Strings" hbank="87" lbank="3" prog="47" /> - <Patch name="PWM Str 1" hbank="87" lbank="3" prog="48" /> - <Patch name="PWM Str 2" hbank="87" lbank="3" prog="49" /> - <Patch name="Fading Str" hbank="87" lbank="3" prog="50" /> - <Patch name="ParadisePad" hbank="87" lbank="3" prog="51" /> - <Patch name="80s Strings" hbank="87" lbank="3" prog="52" /> - <Patch name="Stringship" hbank="87" lbank="3" prog="53" /> - <Patch name="Airy Pad" hbank="87" lbank="3" prog="54" /> - <Patch name="Neo RS-202" hbank="87" lbank="3" prog="55" /> - <Patch name="Sawtooth Str" hbank="87" lbank="3" prog="56" /> - <Patch name="Pulse Pad" hbank="87" lbank="3" prog="57" /> - <Patch name="Hollow Pad 1" hbank="87" lbank="3" prog="58" /> - <Patch name="WarmHeaven 1" hbank="87" lbank="3" prog="59" /> - <Patch name="WarmHeaven 2" hbank="87" lbank="3" prog="60" /> - <Patch name="Heaven Pad 3" hbank="87" lbank="3" prog="61" /> - <Patch name="Heaven Pad 4" hbank="87" lbank="3" prog="62" /> - <Patch name="FineWinePad1" hbank="87" lbank="3" prog="63" /> - <Patch name="FineWinePad2" hbank="87" lbank="3" prog="64" /> - <Patch name="5th Pad 1" hbank="87" lbank="3" prog="65" /> - <Patch name="5th Pad 2" hbank="87" lbank="3" prog="66" /> - <Patch name="Nu Epic Pad" hbank="87" lbank="3" prog="67" /> - <Patch name="Angelis Pad" hbank="87" lbank="3" prog="68" /> - <Patch name="TrnsSweepPad" hbank="87" lbank="3" prog="69" /> - <Patch name="Giant Sweep" hbank="87" lbank="3" prog="70" /> - <Patch name="Voyager" hbank="87" lbank="3" prog="71" /> - <Patch name="Digital Pad" hbank="87" lbank="3" prog="72" /> - <Patch name="NuSoundtrack" hbank="87" lbank="3" prog="73" /> - <Patch name="Xadecimal" hbank="87" lbank="3" prog="74" /> - <Patch name="Strobe Pad" hbank="87" lbank="3" prog="78" /> - <Patch name="BUBBLE 2" hbank="87" lbank="4" prog="65" /> - <Patch name="BUBBLE 3" hbank="87" lbank="4" prog="66" /> - <Patch name="Soft PWM Pad" hbank="87" lbank="4" prog="74" /> - <Patch name="Org Pad" hbank="87" lbank="4" prog="75" /> - <Patch name="Hollow Pad 2" hbank="87" lbank="4" prog="76" /> - <Patch name="SavannaPad 1" hbank="87" lbank="4" prog="77" /> - <Patch name="SavannaPad 2" hbank="87" lbank="4" prog="78" /> - <Patch name="SavannaPad 3" hbank="87" lbank="4" prog="79" /> - <Patch name="PWM Str 3" hbank="87" lbank="4" prog="80" /> - <Patch name="PWM Pad 2" hbank="87" lbank="4" prog="81" /> - <Patch name="Str Machine" hbank="87" lbank="4" prog="82" /> - <Patch name="Reso Pad" hbank="87" lbank="4" prog="83" /> - <Patch name="BPF Pad" hbank="87" lbank="4" prog="84" /> - <Patch name="Sweep Pad 2" hbank="87" lbank="4" prog="86" /> - <Patch name="Sweep Pad 3" hbank="87" lbank="4" prog="87" /> - <Patch name="Sweep Pad 4" hbank="87" lbank="4" prog="88" /> - <Patch name="Scoop Pad 1" hbank="87" lbank="4" prog="89" /> - <Patch name="Scoop Pad 2" hbank="87" lbank="4" prog="90" /> - <Patch name="Brite Wine" hbank="87" lbank="4" prog="91" /> - <Patch name="Wine Pad" hbank="87" lbank="4" prog="92" /> <Patch name="Syn.Strings1" hbank="121" lbank="0" prog="50" /> <Patch name="Syn.Strings2" hbank="121" lbank="0" prog="51" /> <Patch name="Warm Pad" hbank="121" lbank="0" prog="89" /> @@ -1038,156 +244,25 @@ <Patch name="Brightness" hbank="121" lbank="0" prog="100" /> </PatchGroup> <PatchGroup name="Synth PolyKey"> - <Patch name="Dream Trance" hbank="87" lbank="2" prog="95" /> - <Patch name="Dream Saws" hbank="87" lbank="2" prog="96" /> - <Patch name="Dream Pulse" hbank="87" lbank="2" prog="97" /> - <Patch name="Trance Synth" hbank="87" lbank="2" prog="98" /> - <Patch name="Trancy" hbank="87" lbank="2" prog="99" /> - <Patch name="Trance Keys" hbank="87" lbank="2" prog="100" /> - <Patch name="Trance Saws" hbank="87" lbank="2" prog="101" /> - <Patch name="Auto Trance1" hbank="87" lbank="2" prog="102" /> - <Patch name="Super Saws 1" hbank="87" lbank="2" prog="103" /> - <Patch name="Analog Saws" hbank="87" lbank="2" prog="104" /> - <Patch name="Uni-G" hbank="87" lbank="2" prog="105" /> - <Patch name="Digitaless" hbank="87" lbank="2" prog="106" /> - <Patch name="Bustranza" hbank="87" lbank="2" prog="107" /> - <Patch name="Super Saws 2" hbank="87" lbank="2" prog="109" /> - <Patch name="Poly Synth 2" hbank="87" lbank="2" prog="110" /> - <Patch name="Poly Synth 3" hbank="87" lbank="2" prog="111" /> - <Patch name="Poly Synth 4" hbank="87" lbank="2" prog="112" /> - <Patch name="Poly Synth 5" hbank="87" lbank="2" prog="113" /> - <Patch name="Poly Synth 6" hbank="87" lbank="2" prog="114" /> - <Patch name="Poly Synth 7" hbank="87" lbank="2" prog="115" /> - <Patch name="Juno Saw Key" hbank="87" lbank="2" prog="116" /> - <Patch name="Saw Key 1" hbank="87" lbank="2" prog="117" /> - <Patch name="Saw Key 2" hbank="87" lbank="2" prog="118" /> - <Patch name="Waspy Synth" hbank="87" lbank="2" prog="119" /> - <Patch name="Vintage Key" hbank="87" lbank="2" prog="121" /> - <Patch name="Ju-D Fifths" hbank="87" lbank="2" prog="122" /> - <Patch name="Reso Key 2" hbank="87" lbank="2" prog="124" /> - <Patch name="Fat Synth" hbank="87" lbank="2" prog="125" /> - <Patch name="DOC Stack" hbank="87" lbank="2" prog="127" /> - <Patch name="2 Saws" hbank="87" lbank="3" prog="0" /> - <Patch name="Hi Saw Band" hbank="87" lbank="3" prog="1" /> - <Patch name="Brite Synth" hbank="87" lbank="3" prog="2" /> - <Patch name="PWM Pad 1" hbank="87" lbank="3" prog="3" /> - <Patch name="RAVtune" hbank="87" lbank="3" prog="5" /> - <Patch name="Heaven Key" hbank="87" lbank="3" prog="10" /> - <Patch name="Pipe Key" hbank="87" lbank="3" prog="18" /> - <Patch name="Shroomy" hbank="87" lbank="4" prog="60" /> - <Patch name="AnalogDays 1" hbank="87" lbank="4" prog="68" /> - <Patch name="Sync Key" hbank="87" lbank="4" prog="70" /> - <Patch name="Detune Ramp" hbank="87" lbank="4" prog="71" /> - <Patch name="Reso Saw" hbank="87" lbank="4" prog="72" /> - <Patch name="EuroExpress3" hbank="87" lbank="4" prog="73" /> - <Patch name="Sweep Saw" hbank="87" lbank="4" prog="85" /> <Patch name="Poly Synth" hbank="121" lbank="0" prog="90" /> <Patch name="Syn Mallet" hbank="121" lbank="1" prog="98" /> </PatchGroup> <PatchGroup name="Synth FX"> - <Patch name="Enigmatic" hbank="87" lbank="3" prog="104" /> - <Patch name="Planetz" hbank="87" lbank="3" prog="105" /> - <Patch name="Shimmer Pad" hbank="87" lbank="3" prog="106" /> - <Patch name="Sci-Fi" hbank="87" lbank="3" prog="107" /> - <Patch name="ResoSweep Dn" hbank="87" lbank="3" prog="108" /> - <Patch name="Jet Noise" hbank="87" lbank="3" prog="109" /> - <Patch name="Brandish" hbank="87" lbank="3" prog="110" /> - <Patch name="909 Fx" hbank="87" lbank="3" prog="111" /> - <Patch name="Zap" hbank="87" lbank="3" prog="112" /> - <Patch name="PolySweep Nz" hbank="87" lbank="3" prog="113" /> - <Patch name="Passing By" hbank="87" lbank="3" prog="114" /> - <Patch name="Lazer Points" hbank="87" lbank="3" prog="115" /> - <Patch name="CosmicDrops2" hbank="87" lbank="3" prog="116" /> - <Patch name="Crystal Fx" hbank="87" lbank="3" prog="117" /> - <Patch name="Crystal Ice" hbank="87" lbank="3" prog="118" /> - <Patch name="Mad Noise" hbank="87" lbank="3" prog="119" /> - <Patch name="Robot Sci-Fi" hbank="87" lbank="3" prog="120" /> - <Patch name="Computer 1" hbank="87" lbank="3" prog="121" /> - <Patch name="Computer 2" hbank="87" lbank="3" prog="122" /> - <Patch name="S&H Noise" hbank="87" lbank="3" prog="123" /> - <Patch name="S&H Ramp" hbank="87" lbank="3" prog="124" /> - <Patch name="S&H PWM" hbank="87" lbank="3" prog="125" /> - <Patch name="S&H Saw 1" hbank="87" lbank="3" prog="126" /> - <Patch name="S&H Saw 2" hbank="87" lbank="3" prog="127" /> - <Patch name="Electrostar" hbank="87" lbank="4" prog="55" /> - <Patch name="Alpha Said" hbank="87" lbank="4" prog="59" /> - <Patch name="FX Ramp" hbank="87" lbank="4" prog="63" /> - <Patch name="BUBBLE 1" hbank="87" lbank="4" prog="64" /> <Patch name="Goblin" hbank="121" lbank="0" prog="101" /> <Patch name="Echo Drops" hbank="121" lbank="0" prog="102" /> <Patch name="Echo Bell" hbank="121" lbank="1" prog="102" /> </PatchGroup> <PatchGroup name="Synth Seq/Pop"> - <Patch name="Analog Seq" hbank="87" lbank="3" prog="6" /> - <Patch name="Seq Pop" hbank="87" lbank="3" prog="7" /> - <Patch name="Periscope" hbank="87" lbank="3" prog="8" /> - <Patch name="Major 7" hbank="87" lbank="3" prog="9" /> - <Patch name="Juno-D Maj7" hbank="87" lbank="4" prog="52" /> - <Patch name="Sweet House" hbank="87" lbank="4" prog="53" /> - <Patch name="Detune Saws" hbank="87" lbank="4" prog="54" /> - <Patch name="Melodic Drum" hbank="87" lbank="4" prog="58" /> - <Patch name="Detune Seq" hbank="87" lbank="4" prog="61" /> <Patch name="Echo Pan" hbank="121" lbank="2" prog="102" /> <Patch name="SequencedSaw" hbank="121" lbank="4" prog="81" /> </PatchGroup> - <PatchGroup name="Pulsating"> - <Patch name="PanninFormnt" hbank="87" lbank="3" prog="75" /> - <Patch name="Fairy\s Song" hbank="87" lbank="3" prog="76" /> - <Patch name="Atmospherics" hbank="87" lbank="3" prog="77" /> - <Patch name="StrobeBell 1" hbank="87" lbank="3" prog="79" /> - <Patch name="StrobeBell 2" hbank="87" lbank="3" prog="80" /> - <Patch name="Flying Pad 1" hbank="87" lbank="3" prog="81" /> - <Patch name="Flying Pad 2" hbank="87" lbank="3" prog="82" /> - <Patch name="Flying Pad 3" hbank="87" lbank="3" prog="83" /> - <Patch name="Flying Pad 4" hbank="87" lbank="3" prog="84" /> - <Patch name="Flying Pad 5" hbank="87" lbank="3" prog="85" /> - <Patch name="Sine Magic" hbank="87" lbank="4" prog="94" /> - <Patch name="Pulsatron" hbank="87" lbank="4" prog="95" /> - <Patch name="Motion Bass" hbank="87" lbank="4" prog="96" /> - <Patch name="Trance Splt" hbank="87" lbank="4" prog="97" /> - <Patch name="Rhythmic 5th" hbank="87" lbank="4" prog="98" /> - <Patch name="Rhythmic 1" hbank="87" lbank="4" prog="99" /> - <Patch name="Rhythmic 2" hbank="87" lbank="4" prog="100" /> - <Patch name="Mega Sync 1" hbank="87" lbank="4" prog="101" /> - <Patch name="StrobeBell 3" hbank="87" lbank="4" prog="102" /> - <Patch name="Strobe 1" hbank="87" lbank="4" prog="103" /> - <Patch name="Strobe 2" hbank="87" lbank="4" prog="104" /> - <Patch name="Strobe 3" hbank="87" lbank="4" prog="105" /> - <Patch name="Strobe 4" hbank="87" lbank="4" prog="106" /> - <Patch name="LFO Saw" hbank="87" lbank="4" prog="107" /> - <Patch name="Keep Going" hbank="87" lbank="4" prog="108" /> - <Patch name="Keep Running" hbank="87" lbank="4" prog="109" /> - <Patch name="Electrons" hbank="87" lbank="4" prog="110" /> - <Patch name="BriskVortex" hbank="87" lbank="4" prog="111" /> - <Patch name="LFO Vox" hbank="87" lbank="4" prog="112" /> - <Patch name="Pulsasaw" hbank="87" lbank="4" prog="113" /> - <Patch name="Arposphere" hbank="87" lbank="4" prog="114" /> - <Patch name="Mega Sync 2" hbank="87" lbank="4" prog="115" /> - </PatchGroup> - <PatchGroup name="Beat&Groove"> - <Patch name="Compusonic 1" hbank="87" lbank="4" prog="116" /> - <Patch name="Compusonic 2" hbank="87" lbank="4" prog="117" /> - <Patch name="Compusonic 3" hbank="87" lbank="4" prog="118" /> - <Patch name="Compusonic 4" hbank="87" lbank="4" prog="119" /> - <Patch name="Compusonic 5" hbank="87" lbank="4" prog="120" /> - <Patch name="AnalogDays 2" hbank="87" lbank="4" prog="121" /> - <Patch name="Groove 007" hbank="87" lbank="4" prog="122" /> - <Patch name="Juno Pop" hbank="87" lbank="4" prog="123" /> - <Patch name="Auto Trance2" hbank="87" lbank="4" prog="124" /> - <Patch name="In Da Groove" hbank="87" lbank="4" prog="125" /> - <Patch name="80s Beat" hbank="87" lbank="4" prog="126" /> - </PatchGroup> <PatchGroup name="Hit"> - <Patch name="Cheezy Movie" hbank="87" lbank="4" prog="48" /> - <Patch name="Mod Chord" hbank="87" lbank="4" prog="49" /> - <Patch name="Housechord" hbank="87" lbank="4" prog="50" /> <Patch name="OrchestraHit" hbank="121" lbank="0" prog="55" /> <Patch name="Bass Hit" hbank="121" lbank="1" prog="55" /> <Patch name="6th Hit" hbank="121" lbank="2" prog="55" /> <Patch name="Euro Hit" hbank="121" lbank="3" prog="55" /> </PatchGroup> <PatchGroup name="Sound FX"> - <Patch name="Scratch 2" hbank="87" lbank="4" prog="67" /> <Patch name="Seashore" hbank="121" lbank="0" prog="122" /> <Patch name="Bird 1" hbank="121" lbank="0" prog="123" /> <Patch name="Telephone 1" hbank="121" lbank="0" prog="124" /> @@ -1225,33 +300,7 @@ <Patch name="Starship" hbank="121" lbank="8" prog="125" /> <Patch name="Burst Noise" hbank="121" lbank="9" prog="125" /> </PatchGroup> - <PatchGroup name="Drums"> - <Patch name="Standard 1" hbank="86" lbank="0" prog="0" /> - <Patch name="Standard 2" hbank="86" lbank="0" prog="1" /> - <Patch name="Standard 3" hbank="86" lbank="0" prog="2" /> - <Patch name="Rock Kit" hbank="86" lbank="0" prog="3" /> - <Patch name="Jazz Kit" hbank="86" lbank="0" prog="4" /> - <Patch name="Brush Kit" hbank="86" lbank="0" prog="5" /> - <Patch name="Machine Kit" hbank="86" lbank="0" prog="6" /> - <Patch name="R&B T-Analog" hbank="86" lbank="0" prog="7" /> - <Patch name="R&B Mini Kit" hbank="86" lbank="0" prog="8" /> - <Patch name="HipHop Kit" hbank="86" lbank="0" prog="9" /> - <Patch name="R&B Kit" hbank="86" lbank="0" prog="10" /> - <Patch name="Dance Kit 1" hbank="86" lbank="0" prog="11" /> - <Patch name="Dance Kit 2" hbank="86" lbank="0" prog="12" /> - <Patch name="Dance Kit 3" hbank="86" lbank="0" prog="13" /> - <Patch name="GM2 STANDARD" hbank="120" lbank="0" prog="0" /> - <Patch name="GM2 ROOM" hbank="120" lbank="0" prog="8" /> - <Patch name="GM2 POWER" hbank="120" lbank="0" prog="16" /> - <Patch name="GM2 ELECTRIC" hbank="120" lbank="0" prog="24" /> - <Patch name="GM2 ANALOG" hbank="120" lbank="0" prog="25" /> - <Patch name="GM2 JAZZ" hbank="120" lbank="0" prog="32" /> - <Patch name="GM2 BRUSH" hbank="120" lbank="0" prog="40" /> - <Patch name="GM2 ORCHSTRA" hbank="120" lbank="0" prog="48" /> - <Patch name="GM2 SFX" hbank="120" lbank="0" prog="56" /> - </PatchGroup> <PatchGroup name="Percussion"> - <Patch name="Ride Cymbal" hbank="87" lbank="4" prog="127" /> <Patch name="Timpani" hbank="121" lbank="0" prog="47" /> <Patch name="Agogo" hbank="121" lbank="0" prog="113" /> <Patch name="Woodblock" hbank="121" lbank="0" prog="115" /> @@ -1265,18 +314,14 @@ <Patch name="808 Tom" hbank="121" lbank="1" prog="118" /> <Patch name="Elec Perc" hbank="121" lbank="2" prog="118" /> </PatchGroup> - <Controller name="BankSelMSB" l="0" /> <Controller name="Modulation" l="1" /> <Controller name="BreathCtrl" l="2" /> <Controller name="Foot Ctrl" l="4" /> <Controller name="Porta Time" l="5" /> - <Controller name="Data Ent MSB" l="6" /> <Controller name="MainVolume" l="7" /> <Controller name="Balance" l="8" init="63" /> <Controller name="Pan" l="10" init="63" /> <Controller name="Expression" l="11" init="127" /> - <Controller name="BankSelLSB" l="32" /> - <Controller name="DataEntLSB" l="38" /> <Controller name="Sustain" l="64" /> <Controller name="Porta Ped" l="65" /> <Controller name="Sostenuto" l="66" /> @@ -1297,8 +342,6 @@ <Controller name="Portamento Ctrl" l="84" /> <Controller name="Reverb send level" l="91" /> <Controller name="Chorus send level" l="93" /> - <Controller name="RPN LSB" l="100" /> - <Controller name="RPN MSB" l="101" /> <Controller name="AllSndOff" l="120" /> <Controller name="Reset Ctrl" l="121" /> <Controller name="AllNoteOff" l="123" /> @@ -1306,21 +349,23 @@ <Controller name="OmniModeOn" l="125" /> <Controller name="MonoModeOn" l="126" /> <Controller name="PolyModeOn" l="127" /> - <Controller name="Program" type="Program" init="0x0" /> - <SysEx name="GM1 System On"> - <data>7e 7f 09 01</data> - </SysEx> + <Controller name="Pitch Bend Sensitivity" type="RPN" h="0" l="0" max="24" init="2" /> + <Controller name="Fine Tuning" type="RPN" h="0" l="1" min="-64" max="63" init="0" /> + <Controller name="Pitch" type="Pitch" /> + <Controller name="Program" type="Program" /> + <Controller name="Poly Aftertouch" type="PolyAftertouch" /> + <Controller name="Aftertouch" type="Aftertouch" /> <SysEx name="GM2 System On"> <data>7e 7f 09 03</data> </SysEx> - <SysEx name="GM System Off"> - <data>7e 7f 09 02</data> - </SysEx> <Init> + <event tick="0" type="2" datalen="4"> + 7e 7f 09 03 + </event> </Init> <Drummaps> <entry> - <patch_collection prog="0" lbank="0" hbank="120" /> + <patch_collection prog="0-7" lbank="0" hbank="120" /> <drummap> <entry pitch="27"> <name>High Q</name> @@ -1466,7 +511,7 @@ </drummap> </entry> <entry> - <patch_collection prog="8" lbank="0" hbank="120" /> + <patch_collection prog="8-15" lbank="0" hbank="120" /> <drummap> <entry pitch="27"> <name>High Q</name> @@ -1612,7 +657,7 @@ </drummap> </entry> <entry> - <patch_collection prog="16" lbank="0" hbank="120" /> + <patch_collection prog="16-23" lbank="0" hbank="120" /> <drummap> <entry pitch="27"> <name>High Q</name> @@ -1904,7 +949,7 @@ </drummap> </entry> <entry> - <patch_collection prog="25" lbank="0" hbank="120" /> + <patch_collection prog="25-31" lbank="0" hbank="120" /> <drummap> <entry pitch="27"> <name>High Q </name> @@ -2092,7 +1137,7 @@ </drummap> </entry> <entry> - <patch_collection prog="32" lbank="0" hbank="120" /> + <patch_collection prog="32-39" lbank="0" hbank="120" /> <drummap> <entry pitch="27"> <name>High Q</name> @@ -2238,7 +1283,7 @@ </drummap> </entry> <entry> - <patch_collection prog="40" lbank="0" hbank="120" /> + <patch_collection prog="40-47" lbank="0" hbank="120" /> <drummap> <entry pitch="27"> <name>High Q</name> @@ -2387,7 +1432,7 @@ </drummap> </entry> <entry> - <patch_collection prog="48" lbank="0" hbank="120" /> + <patch_collection prog="48-55" lbank="0" hbank="120" /> <drummap> <entry pitch="27"> <name>ClosedHi-hat [EXC 1]</name> @@ -2542,7 +1587,7 @@ </drummap> </entry> <entry> - <patch_collection prog="56" lbank="0" hbank="120" /> + <patch_collection prog="56-127" lbank="0" hbank="120" /> <drummap> <entry pitch="39"> <name>High Q </name> @@ -2684,6 +1729,768 @@ </entry> </drummap> </entry> + </Drummaps> + </MidiInstrument> + <MidiInstrument name="Roland SD-50-nonGM"> + <PatchGroup name="Other Drums"> + <Patch name="Standard 1" hbank="86" lbank="0" prog="0" drum="1" /> + <Patch name="Standard 2" hbank="86" lbank="0" prog="1" drum="1" /> + <Patch name="Standard 3" hbank="86" lbank="0" prog="2" drum="1" /> + <Patch name="Rock Kit" hbank="86" lbank="0" prog="3" drum="1" /> + <Patch name="Jazz Kit" hbank="86" lbank="0" prog="4" drum="1" /> + <Patch name="Brush Kit" hbank="86" lbank="0" prog="5" drum="1" /> + <Patch name="Machine Kit" hbank="86" lbank="0" prog="6" drum="1" /> + <Patch name="R&B T-Analog" hbank="86" lbank="0" prog="7" drum="1" /> + <Patch name="R&B Mini Kit" hbank="86" lbank="0" prog="8" drum="1" /> + <Patch name="HipHop Kit" hbank="86" lbank="0" prog="9" drum="1" /> + <Patch name="R&B Kit" hbank="86" lbank="0" prog="10" drum="1"/> + <Patch name="Dance Kit 1" hbank="86" lbank="0" prog="11" drum="1" /> + <Patch name="Dance Kit 2" hbank="86" lbank="0" prog="12" drum="1" /> + <Patch name="Dance Kit 3" hbank="86" lbank="0" prog="13" drum="1" /> + </PatchGroup> + <PatchGroup name="Piano"> + <Patch name="St.Piano 1" hbank="87" lbank="0" prog="0" /> + <Patch name="St.Piano 2" hbank="87" lbank="0" prog="1" /> + <Patch name="St.Piano 3" hbank="87" lbank="0" prog="2" /> + <Patch name="St.Piano 4" hbank="87" lbank="0" prog="3" /> + <Patch name="St.Piano 5" hbank="87" lbank="0" prog="4" /> + <Patch name="Brite Piano" hbank="87" lbank="0" prog="5" /> + <Patch name="Stage Piano" hbank="87" lbank="0" prog="6" /> + <Patch name="Honky Tonk" hbank="87" lbank="0" prog="7" /> + <Patch name="LoFi Piano" hbank="87" lbank="4" prog="62" /> + <Patch name="Pop Piano 1" hbank="87" lbank="0" prog="8" /> + <Patch name="Pop Piano 2" hbank="87" lbank="0" prog="9" /> + <Patch name="Pop Piano 3" hbank="87" lbank="0" prog="10" /> + </PatchGroup> + <PatchGroup name="E.Piano"> + <Patch name="Stage EP 1" hbank="87" lbank="0" prog="11" /> + <Patch name="Stage EP 2" hbank="87" lbank="0" prog="12" /> + <Patch name="Stage EP Trm" hbank="87" lbank="0" prog="13" /> + <Patch name="Tremolo EP 1" hbank="87" lbank="0" prog="14" /> + <Patch name="E.Piano 3" hbank="87" lbank="0" prog="15" /> + <Patch name="E.Piano 4" hbank="87" lbank="0" prog="16" /> + <Patch name="E.Piano 5" hbank="87" lbank="0" prog="17" /> + <Patch name="E.Piano 6" hbank="87" lbank="0" prog="18" /> + <Patch name="E.Piano 7" hbank="87" lbank="0" prog="19" /> + <Patch name="E.Piano 8" hbank="87" lbank="0" prog="20" /> + <Patch name="Dyno EP" hbank="87" lbank="0" prog="21" /> + <Patch name="Dyno EP Trm" hbank="87" lbank="0" prog="22" /> + <Patch name="Tremolo EP 2" hbank="87" lbank="0" prog="23" /> + <Patch name="Back2the60s" hbank="87" lbank="0" prog="24" /> + <Patch name="Tine EP" hbank="87" lbank="0" prog="25" /> + <Patch name="SA EP 1" hbank="87" lbank="0" prog="26" /> + <Patch name="SA EP 2" hbank="87" lbank="0" prog="27" /> + <Patch name="Psy EP" hbank="87" lbank="0" prog="28" /> + <Patch name="Wurly EP" hbank="87" lbank="0" prog="29" /> + <Patch name="Wurly EP Trm" hbank="87" lbank="0" prog="30" /> + <Patch name="Curly Wurly" hbank="87" lbank="0" prog="31" /> + <Patch name="Super Wurly" hbank="87" lbank="0" prog="32" /> + <Patch name="EP Legend 3" hbank="87" lbank="0" prog="33" /> + <Patch name="EP Belle" hbank="87" lbank="0" prog="34" /> + <Patch name="80\s EP" hbank="87" lbank="0" prog="35" /> + <Patch name="FM EP 1" hbank="87" lbank="0" prog="36" /> + <Patch name="FM EP 2" hbank="87" lbank="0" prog="37" /> + <Patch name="Sinus EP" hbank="87" lbank="0" prog="38" /> + <Patch name="Spirit Tines" hbank="87" lbank="0" prog="39" /> + </PatchGroup> + <PatchGroup name="Organ "> + <Patch name="Rock Organ 1" hbank="87" lbank="0" prog="76" /> + <Patch name="Rock Organ 2" hbank="87" lbank="0" prog="77" /> + <Patch name="Rock Organ 3" hbank="87" lbank="0" prog="78" /> + <Patch name="Rock Organ 4" hbank="87" lbank="0" prog="79" /> + <Patch name="Rock Organ 5" hbank="87" lbank="0" prog="80" /> + <Patch name="RotaryOrgan1" hbank="87" lbank="0" prog="81" /> + <Patch name="RotaryOrgan2" hbank="87" lbank="0" prog="82" /> + <Patch name="Perc.Organ 2" hbank="87" lbank="0" prog="83" /> + <Patch name="Perc.Organ 3" hbank="87" lbank="0" prog="84" /> + <Patch name="Perc.Organ 4" hbank="87" lbank="0" prog="85" /> + <Patch name="E.Organ 1" hbank="87" lbank="0" prog="86" /> + <Patch name="E.Organ 2" hbank="87" lbank="0" prog="87" /> + <Patch name="E.Organ 3" hbank="87" lbank="0" prog="88" /> + <Patch name="E.Organ 4" hbank="87" lbank="0" prog="89" /> + <Patch name="E.Organ 5" hbank="87" lbank="0" prog="90" /> + <Patch name="E.Organ 6" hbank="87" lbank="0" prog="91" /> + <Patch name="E.Organ 7" hbank="87" lbank="0" prog="92" /> + <Patch name="70\s E.Org 1" hbank="87" lbank="0" prog="93" /> + <Patch name="70\s E.Org 2" hbank="87" lbank="0" prog="94" /> + <Patch name="Ana Organ 1" hbank="87" lbank="4" prog="6" /> + <Patch name="Ana Organ 2" hbank="87" lbank="4" prog="7" /> + <Patch name="Ana Organ 3" hbank="87" lbank="4" prog="8" /> + <Patch name="Ana Organ 4" hbank="87" lbank="4" prog="9" /> + <Patch name="Ana Organ 5" hbank="87" lbank="4" prog="10" /> + <Patch name="Grand Pipes" hbank="87" lbank="0" prog="95" /> + </PatchGroup> + <PatchGroup name="Other Keyboards "> + <Patch name="Harpsichord 2" hbank="87" lbank="0" prog="40" /> + <Patch name="Clav 2" hbank="87" lbank="0" prog="41" /> + <Patch name="Pulse Clav 2" hbank="87" lbank="0" prog="42" /> + <Patch name="Sweepin Clav" hbank="87" lbank="0" prog="43" /> + <Patch name="Analog Clav" hbank="87" lbank="0" prog="44" /> + <Patch name="Biting Clav" hbank="87" lbank="0" prog="45" /> + <Patch name="Pulse Clv St" hbank="87" lbank="0" prog="46" /> + </PatchGroup> + <PatchGroup name="Accordion/Harmonica "> + <Patch name="AccordionIt2" hbank="87" lbank="0" prog="96" /> + <Patch name="Musette" hbank="87" lbank="0" prog="97" /> + <Patch name="Vodkakordion" hbank="87" lbank="0" prog="98" /> + <Patch name="Harmonica 2" hbank="87" lbank="0" prog="99" /> + </PatchGroup> + <PatchGroup name="Bell/Mallet "> + <Patch name="FM Sparkles" hbank="87" lbank="0" prog="47" /> + <Patch name="FM Syn Bell" hbank="87" lbank="0" prog="48" /> + <Patch name="FM Heaven" hbank="87" lbank="0" prog="49" /> + <Patch name="Dreaming Bel" hbank="87" lbank="0" prog="52" /> + <Patch name="Analog Bell" hbank="87" lbank="0" prog="53" /> + <Patch name="Music Box 2" hbank="87" lbank="0" prog="54" /> + <Patch name="Music Bell\s" hbank="87" lbank="0" prog="55" /> + <Patch name="Kalimbells" hbank="87" lbank="0" prog="56" /> + <Patch name="Bell 1" hbank="87" lbank="0" prog="57" /> + <Patch name="Bell 2" hbank="87" lbank="0" prog="58" /> + <Patch name="Icy Keys" hbank="87" lbank="0" prog="59" /> + <Patch name="Carillon 2" hbank="87" lbank="0" prog="61" /> + <Patch name="Tower Bell" hbank="87" lbank="0" prog="62" /> + <Patch name="TubularBell2" hbank="87" lbank="0" prog="63" /> + <Patch name="Bell Ring" hbank="87" lbank="0" prog="64" /> + <Patch name="Toy Box" hbank="87" lbank="0" prog="60" /> + <Patch name="Vibraphone 2" hbank="87" lbank="0" prog="67" /> + <Patch name="VibraphoneTr" hbank="87" lbank="0" prog="68" /> + <Patch name="Tremolo Vib" hbank="87" lbank="0" prog="69" /> + <Patch name="Marimba 2" hbank="87" lbank="0" prog="70" /> + <Patch name="Marimba 3" hbank="87" lbank="0" prog="71" /> + <Patch name="Steel Drums2" hbank="87" lbank="0" prog="72" /> + <Patch name="Xylophone 2" hbank="87" lbank="0" prog="73" /> + <Patch name="Xylophone 3" hbank="87" lbank="0" prog="74" /> + <Patch name="Ethno Keys" hbank="87" lbank="0" prog="75" /> + <Patch name="Soft StlDrm" hbank="87" lbank="4" prog="1" /> + <Patch name="Jazz Vib" hbank="87" lbank="4" prog="2" /> + <Patch name="BsMarimba 1" hbank="87" lbank="4" prog="3" /> + <Patch name="BsMarimba 2" hbank="87" lbank="4" prog="4" /> + <Patch name="Sine Mallet" hbank="87" lbank="4" prog="5" /> + <Patch name="D50 Fantasy" hbank="87" lbank="0" prog="50" /> + <Patch name="D50 Bell" hbank="87" lbank="0" prog="51" /> + <Patch name="Dreambell" hbank="87" lbank="0" prog="65" /> + <Patch name="Dreaming Box" hbank="87" lbank="0" prog="66" /> + <Patch name="Air Key 1" hbank="87" lbank="3" prog="16" /> + <Patch name="Sweet Keys" hbank="87" lbank="3" prog="17" /> + <Patch name="Soft Bell" hbank="87" lbank="3" prog="19" /> + <Patch name="Air Key 2" hbank="87" lbank="3" prog="20" /> + <Patch name="Stacc Heaven" hbank="87" lbank="3" prog="22" /> + <Patch name="DigitalDream" hbank="87" lbank="3" prog="23" /> + <Patch name="Analog Dream" hbank="87" lbank="3" prog="24" /> + <Patch name="Harp Pad" hbank="87" lbank="3" prog="25" /> + <Patch name="Org Bell" hbank="87" lbank="4" prog="0" /> + </PatchGroup> + <PatchGroup name="Guitar "> + <Patch name="Nylon Gtr 3" hbank="87" lbank="0" prog="100" /> + <Patch name="Nylon Gtr 4" hbank="87" lbank="0" prog="101" /> + <Patch name="Nylon Gtr 5" hbank="87" lbank="0" prog="102" /> + <Patch name="Nylon Gtr 6" hbank="87" lbank="0" prog="103" /> + <Patch name="Wet Nyln Gtr" hbank="87" lbank="0" prog="104" /> + <Patch name="Ukulele 2" hbank="87" lbank="0" prog="105" /> + <Patch name="Folk Gtr 1" hbank="87" lbank="0" prog="106" /> + <Patch name="Folk Gtr 2" hbank="87" lbank="0" prog="107" /> + <Patch name="Folk Gtr 3" hbank="87" lbank="0" prog="108" /> + <Patch name="Latin Gtr" hbank="87" lbank="0" prog="109" /> + <Patch name="Clean Gtr 1" hbank="87" lbank="0" prog="116" /> + <Patch name="Clean Gtr 2" hbank="87" lbank="0" prog="117" /> + <Patch name="Clean Gtr 3" hbank="87" lbank="0" prog="118" /> + <Patch name="Jazz Guitar2" hbank="87" lbank="0" prog="119" /> + <Patch name="Pick E.Gtr" hbank="87" lbank="0" prog="120" /> + <Patch name="Funk Guitar2" hbank="87" lbank="0" prog="121" /> + <Patch name="Wet E.Gtr" hbank="87" lbank="0" prog="122" /> + <Patch name="Pedal Steel2" hbank="87" lbank="4" prog="11" /> + <Patch name="OverdriveGt2" hbank="87" lbank="0" prog="123" /> + <Patch name="Dist Gtr 1" hbank="87" lbank="0" prog="124" /> + <Patch name="Dist Gtr 2" hbank="87" lbank="0" prog="125" /> + <Patch name="Dist Gtr 3" hbank="87" lbank="0" prog="126" /> + </PatchGroup> + <PatchGroup name="Bass "> + <Patch name="Acoustic Bs2" hbank="87" lbank="0" prog="127" /> + <Patch name="Acoustic Bs3" hbank="87" lbank="1" prog="0" /> + <Patch name="Fingered Bs2" hbank="87" lbank="1" prog="1" /> + <Patch name="Fingered Bs3" hbank="87" lbank="1" prog="2" /> + <Patch name="Fingered Bs4" hbank="87" lbank="1" prog="3" /> + <Patch name="Pick Bass" hbank="87" lbank="1" prog="4" /> + <Patch name="FretlessBs 2" hbank="87" lbank="1" prog="5" /> + <Patch name="FretlessBs 3" hbank="87" lbank="1" prog="6" /> + <Patch name="Finger Slap2" hbank="87" lbank="1" prog="7" /> + <Patch name="Return2Base!" hbank="87" lbank="1" prog="8" /> + <Patch name="MG Bass 1" hbank="87" lbank="1" prog="9" /> + <Patch name="MG Bass 2" hbank="87" lbank="1" prog="10" /> + <Patch name="MG Bass 3" hbank="87" lbank="1" prog="11" /> + <Patch name="Modular Bs 1" hbank="87" lbank="1" prog="12" /> + <Patch name="Modular Bs 2" hbank="87" lbank="1" prog="13" /> + <Patch name="PWM Bass 1" hbank="87" lbank="1" prog="14" /> + <Patch name="PWM Bass 2" hbank="87" lbank="1" prog="15" /> + <Patch name="Big Mini" hbank="87" lbank="1" prog="16" /> + <Patch name="Fat Analog" hbank="87" lbank="1" prog="17" /> + <Patch name="Spike Bass" hbank="87" lbank="1" prog="18" /> + <Patch name="SH Bass" hbank="87" lbank="1" prog="19" /> + <Patch name="Intrusive Bs" hbank="87" lbank="1" prog="20" /> + <Patch name="Synth Bass 3" hbank="87" lbank="1" prog="21" /> + <Patch name="Synth Bass 4" hbank="87" lbank="1" prog="22" /> + <Patch name="Synth Bass 5" hbank="87" lbank="1" prog="23" /> + <Patch name="Synth Bass 6" hbank="87" lbank="1" prog="24" /> + <Patch name="Synth Bass 7" hbank="87" lbank="1" prog="25" /> + <Patch name="Synth Bass 8" hbank="87" lbank="1" prog="26" /> + <Patch name="Synth Bass 9" hbank="87" lbank="1" prog="27" /> + <Patch name="Synth Bass10" hbank="87" lbank="1" prog="28" /> + <Patch name="Synth Bass11" hbank="87" lbank="1" prog="29" /> + <Patch name="Synth Bass12" hbank="87" lbank="1" prog="30" /> + <Patch name="Synth Bass13" hbank="87" lbank="1" prog="31" /> + <Patch name="Synth Bass14" hbank="87" lbank="1" prog="32" /> + <Patch name="Reso Bass 1" hbank="87" lbank="1" prog="33" /> + <Patch name="Reso Bass 2" hbank="87" lbank="1" prog="34" /> + <Patch name="Reso Bass 3" hbank="87" lbank="1" prog="35" /> + <Patch name="Reso Bass 4" hbank="87" lbank="1" prog="36" /> + <Patch name="Reso Bass 5" hbank="87" lbank="1" prog="37" /> + <Patch name="Reso Bass 6" hbank="87" lbank="1" prog="38" /> + <Patch name="Reso Bass 7" hbank="87" lbank="1" prog="39" /> + <Patch name="Reso Bass 8" hbank="87" lbank="1" prog="40" /> + <Patch name="Acid Bass 2" hbank="87" lbank="1" prog="41" /> + <Patch name="Acid Bass 3" hbank="87" lbank="1" prog="42" /> + <Patch name="Acid Bass 4" hbank="87" lbank="1" prog="43" /> + <Patch name="Alpha Bass 1" hbank="87" lbank="1" prog="44" /> + <Patch name="TB Bass 1" hbank="87" lbank="1" prog="45" /> + <Patch name="TB Bass 2" hbank="87" lbank="1" prog="46" /> + <Patch name="Alpha Bass 2" hbank="87" lbank="1" prog="47" /> + <Patch name="Alpha ResoBs" hbank="87" lbank="1" prog="48" /> + <Patch name="Nu Saw Bass" hbank="87" lbank="1" prog="49" /> + <Patch name="Nu RnB SawBs" hbank="87" lbank="1" prog="50" /> + <Patch name="Storm Bass" hbank="87" lbank="1" prog="51" /> + <Patch name="Detune Bass" hbank="87" lbank="1" prog="52" /> + <Patch name="Gashed Bass" hbank="87" lbank="1" prog="53" /> + <Patch name="Hi-Energy Bs" hbank="87" lbank="1" prog="54" /> + <Patch name="Pedal Bass 1" hbank="87" lbank="1" prog="55" /> + <Patch name="Monster Bass" hbank="87" lbank="1" prog="56" /> + <Patch name="JunoSqr Bs 1" hbank="87" lbank="1" prog="57" /> + <Patch name="JunoSqr Bs 2" hbank="87" lbank="1" prog="58" /> + <Patch name="101 Bass" hbank="87" lbank="1" prog="59" /> + <Patch name="106 Bass 1" hbank="87" lbank="1" prog="60" /> + <Patch name="106 Bass 2" hbank="87" lbank="1" prog="61" /> + <Patch name="Compu Bass 1" hbank="87" lbank="1" prog="62" /> + <Patch name="Compu Bass 2" hbank="87" lbank="1" prog="63" /> + <Patch name="Triangle Bs" hbank="87" lbank="1" prog="64" /> + <Patch name="Muffled Bass" hbank="87" lbank="1" prog="65" /> + <Patch name="Garage Bass" hbank="87" lbank="1" prog="66" /> + <Patch name="TransistorBs" hbank="87" lbank="1" prog="67" /> + <Patch name="Fazee Bass" hbank="87" lbank="1" prog="68" /> + <Patch name="TB Bass 3" hbank="87" lbank="4" prog="12" /> + <Patch name="TB Bass 4" hbank="87" lbank="4" prog="13" /> + <Patch name="Acid Bass 5" hbank="87" lbank="4" prog="14" /> + <Patch name="Acid Bass 6" hbank="87" lbank="4" prog="15" /> + <Patch name="Acid Bass 7" hbank="87" lbank="4" prog="16" /> + <Patch name="Brite Bass" hbank="87" lbank="4" prog="17" /> + <Patch name="Pedal Bass 2" hbank="87" lbank="4" prog="18" /> + <Patch name="Saw Bass" hbank="87" lbank="4" prog="19" /> + <Patch name="Reso Bass 9" hbank="87" lbank="4" prog="20" /> + <Patch name="Reso Bass 10" hbank="87" lbank="4" prog="21" /> + <Patch name="Sub Bass" hbank="87" lbank="4" prog="22" /> + <Patch name="Ramp Bass" hbank="87" lbank="4" prog="23" /> + <Patch name="Fat Bass 1" hbank="87" lbank="4" prog="24" /> + <Patch name="Fat Bass 2" hbank="87" lbank="4" prog="25" /> + <Patch name="Fat Bass 3" hbank="87" lbank="4" prog="26" /> + <Patch name="Flat Bass" hbank="87" lbank="4" prog="27" /> + <Patch name="Electro Rubb" hbank="87" lbank="4" prog="28" /> + <Patch name="80s Bass" hbank="87" lbank="4" prog="29" /> + </PatchGroup> + <PatchGroup name="Other Plucked/Stroke"> + <Patch name="Santur 2" hbank="87" lbank="0" prog="110" /> + <Patch name="Santur 3" hbank="87" lbank="0" prog="111" /> + <Patch name="Aerial Harp" hbank="87" lbank="0" prog="112" /> + <Patch name="LostParadise" hbank="87" lbank="0" prog="113" /> + <Patch name="Sitar 3" hbank="87" lbank="0" prog="114" /> + <Patch name="Indian Frtls" hbank="87" lbank="0" prog="115" /> + <Patch name="Sitar Pad" hbank="87" lbank="3" prog="26" /> + </PatchGroup> + <PatchGroup name="Strings "> + <Patch name="Violin 2" hbank="87" lbank="1" prog="84" /> + <Patch name="Bright Vln" hbank="87" lbank="4" prog="30" /> + <Patch name="Bright Vc" hbank="87" lbank="4" prog="31" /> + <Patch name="Mood Strings" hbank="87" lbank="1" prog="69" /> + <Patch name="Strings 2" hbank="87" lbank="1" prog="70" /> + <Patch name="Strings 3" hbank="87" lbank="1" prog="71" /> + <Patch name="Strings 4" hbank="87" lbank="1" prog="72" /> + <Patch name="Strings 5" hbank="87" lbank="1" prog="73" /> + <Patch name="Stage Str 1" hbank="87" lbank="1" prog="74" /> + <Patch name="Stage Str 2" hbank="87" lbank="1" prog="75" /> + <Patch name="Pop Str" hbank="87" lbank="1" prog="76" /> + <Patch name="Marc.Str" hbank="87" lbank="1" prog="77" /> + <Patch name="StringsStacc" hbank="87" lbank="1" prog="78" /> + <Patch name="Pizz 1" hbank="87" lbank="1" prog="79" /> + <Patch name="Pizz 2" hbank="87" lbank="1" prog="80" /> + <Patch name="TapeStrings1" hbank="87" lbank="1" prog="81" /> + <Patch name="TapeStrings2" hbank="87" lbank="1" prog="82" /> + <Patch name="Hybrid Str" hbank="87" lbank="1" prog="83" /> + <Patch name="Strings 6" hbank="87" lbank="4" prog="32" /> + <Patch name="Hall Strings" hbank="87" lbank="4" prog="33" /> + <Patch name="Orc.Unison 1" hbank="87" lbank="1" prog="85" /> + <Patch name="Orc.Unison 2" hbank="87" lbank="1" prog="86" /> + <Patch name="Full Orc" hbank="87" lbank="4" prog="34" /> + </PatchGroup> + <PatchGroup name="Brass"> + <Patch name="Brass 3" hbank="87" lbank="1" prog="95" /> + <Patch name="Brass 4" hbank="87" lbank="1" prog="96" /> + <Patch name="Brass 5" hbank="87" lbank="1" prog="97" /> + <Patch name="Brass 6" hbank="87" lbank="1" prog="98" /> + <Patch name="Trumpet 2" hbank="87" lbank="1" prog="93" /> + <Patch name="Fr.Horn" hbank="87" lbank="1" prog="94" /> + </PatchGroup> + <PatchGroup name="Sax/Wind "> + <Patch name="Bassoon 2" hbank="87" lbank="1" prog="87" /> + <Patch name="Flute 2" hbank="87" lbank="1" prog="88" /> + <Patch name="Pan Flute 2" hbank="87" lbank="1" prog="89" /> + <Patch name="Pan Pipes 1" hbank="87" lbank="1" prog="90" /> + <Patch name="Shakuhachi 2" hbank="87" lbank="1" prog="91" /> + <Patch name="Pan Pipes 2" hbank="87" lbank="4" prog="35" /> + <Patch name="Soprano Sax2" hbank="87" lbank="1" prog="123" /> + <Patch name="BreathyTenor" hbank="87" lbank="1" prog="124" /> + <Patch name="Tenor Sax 2" hbank="87" lbank="1" prog="125" /> + <Patch name="Ocarina 2" hbank="87" lbank="1" prog="92" /> + </PatchGroup> + <PatchGroup name="Vox/Choir "> + <Patch name="Dreamvox 1" hbank="87" lbank="3" prog="13" /> + <Patch name="Dreamvox 2" hbank="87" lbank="3" prog="14" /> + <Patch name="Choir Pad" hbank="87" lbank="3" prog="88" /> + <Patch name="Angels Choir" hbank="87" lbank="3" prog="89" /> + <Patch name="Aerial Choir" hbank="87" lbank="3" prog="90" /> + <Patch name="Doo Pad" hbank="87" lbank="3" prog="91" /> + <Patch name="Humming 2" hbank="87" lbank="3" prog="92" /> + <Patch name="Humming 3" hbank="87" lbank="3" prog="93" /> + <Patch name="Gospel Hum" hbank="87" lbank="3" prog="94" /> + <Patch name="Vox Pad 1" hbank="87" lbank="3" prog="95" /> + <Patch name="Vox Pad 2" hbank="87" lbank="3" prog="96" /> + <Patch name="80s Vox" hbank="87" lbank="3" prog="97" /> + <Patch name="SynVox 2" hbank="87" lbank="3" prog="98" /> + <Patch name="SynVox 3" hbank="87" lbank="3" prog="99" /> + <Patch name="Mini Vox" hbank="87" lbank="3" prog="100" /> + <Patch name="Chipmunk" hbank="87" lbank="3" prog="101" /> + <Patch name="Sample Opera" hbank="87" lbank="3" prog="102" /> + <Patch name="Sad Ceremony" hbank="87" lbank="3" prog="103" /> + <Patch name="5th Voice" hbank="87" lbank="4" prog="51" /> + <Patch name="Sop Vox" hbank="87" lbank="4" prog="93" /> + <Patch name="Jazz Scat 1" hbank="87" lbank="3" prog="86" /> + <Patch name="Jazz Scat 2" hbank="87" lbank="3" prog="87" /> + </PatchGroup> + <PatchGroup name="Synth Lead"> + <Patch name="Saw Lead 1" hbank="87" lbank="1" prog="126" /> + <Patch name="Saw Lead 2" hbank="87" lbank="1" prog="127" /> + <Patch name="Saw Lead 3" hbank="87" lbank="2" prog="0" /> + <Patch name="Saw Lead 4" hbank="87" lbank="2" prog="1" /> + <Patch name="Saw Lead 5" hbank="87" lbank="2" prog="2" /> + <Patch name="Saw Lead 6" hbank="87" lbank="2" prog="3" /> + <Patch name="Saw Lead 7" hbank="87" lbank="2" prog="4" /> + <Patch name="Saw Lead 8" hbank="87" lbank="2" prog="5" /> + <Patch name="Saw Lead 9" hbank="87" lbank="2" prog="6" /> + <Patch name="GR300 Lead 1" hbank="87" lbank="2" prog="7" /> + <Patch name="GR300 Lead 2" hbank="87" lbank="2" prog="8" /> + <Patch name="Classic GR" hbank="87" lbank="2" prog="9" /> + <Patch name="Bright GR" hbank="87" lbank="2" prog="10" /> + <Patch name="Fat GR Lead" hbank="87" lbank="2" prog="11" /> + <Patch name="MODified Ld" hbank="87" lbank="2" prog="12" /> + <Patch name="Syn Lead 1" hbank="87" lbank="2" prog="13" /> + <Patch name="Syn Lead 2" hbank="87" lbank="2" prog="14" /> + <Patch name="Syn Lead 3" hbank="87" lbank="2" prog="15" /> + <Patch name="Syn Lead 4" hbank="87" lbank="2" prog="16" /> + <Patch name="Syn Lead 5" hbank="87" lbank="2" prog="17" /> + <Patch name="Syn Lead 6" hbank="87" lbank="2" prog="18" /> + <Patch name="Syn Lead 7" hbank="87" lbank="2" prog="19" /> + <Patch name="Pro Fat Ld 1" hbank="87" lbank="2" prog="20" /> + <Patch name="JupiterLead1" hbank="87" lbank="2" prog="21" /> + <Patch name="JupiterLead2" hbank="87" lbank="2" prog="22" /> + <Patch name="Porta Lead" hbank="87" lbank="2" prog="23" /> + <Patch name="Classic Lead" hbank="87" lbank="2" prog="24" /> + <Patch name="On Air" hbank="87" lbank="2" prog="25" /> + <Patch name="Pro Fat Ld 2" hbank="87" lbank="2" prog="26" /> + <Patch name="Wormy Lead" hbank="87" lbank="2" prog="27" /> + <Patch name="Waspy Lead" hbank="87" lbank="2" prog="28" /> + <Patch name="Brite ResoLd" hbank="87" lbank="2" prog="29" /> + <Patch name="Brass Lead" hbank="87" lbank="2" prog="30" /> + <Patch name="Legato Tkno" hbank="87" lbank="2" prog="31" /> + <Patch name="Follow Me" hbank="87" lbank="2" prog="32" /> + <Patch name="Octa Juice" hbank="87" lbank="2" prog="33" /> + <Patch name="Juicy Jupe" hbank="87" lbank="2" prog="34" /> + <Patch name="Octa Saw" hbank="87" lbank="2" prog="35" /> + <Patch name="Vintager 1" hbank="87" lbank="2" prog="36" /> + <Patch name="Vintager 2" hbank="87" lbank="2" prog="37" /> + <Patch name="Sync Lead" hbank="87" lbank="2" prog="38" /> + <Patch name="Octa Sync" hbank="87" lbank="2" prog="39" /> + <Patch name="Leading Sync" hbank="87" lbank="2" prog="40" /> + <Patch name="A Leader" hbank="87" lbank="2" prog="41" /> + <Patch name="Hot Coffee" hbank="87" lbank="2" prog="42" /> + <Patch name="Hot Sync" hbank="87" lbank="2" prog="43" /> + <Patch name="Synchro Lead" hbank="87" lbank="2" prog="44" /> + <Patch name="Space Solo" hbank="87" lbank="2" prog="45" /> + <Patch name="Squareheads" hbank="87" lbank="2" prog="46" /> + <Patch name="Mod Lead" hbank="87" lbank="2" prog="47" /> + <Patch name="Alpha Spit" hbank="87" lbank="2" prog="48" /> + <Patch name="Air Lead" hbank="87" lbank="2" prog="49" /> + <Patch name="Pulstar Lead" hbank="87" lbank="2" prog="50" /> + <Patch name="Therasaw" hbank="87" lbank="2" prog="51" /> + <Patch name="Warmy Lead" hbank="87" lbank="2" prog="52" /> + <Patch name="ResoSawLead" hbank="87" lbank="2" prog="53" /> + <Patch name="Soft Reso Ld" hbank="87" lbank="2" prog="54" /> + <Patch name="Reso Lead 1" hbank="87" lbank="2" prog="55" /> + <Patch name="Reso Lead 2" hbank="87" lbank="2" prog="56" /> + <Patch name="Reso Lead 3" hbank="87" lbank="2" prog="57" /> + <Patch name="Reso Lead 4" hbank="87" lbank="2" prog="58" /> + <Patch name="Reso Lead 5" hbank="87" lbank="2" prog="59" /> + <Patch name="Juicy Lead" hbank="87" lbank="2" prog="60" /> + <Patch name="DC Triangle" hbank="87" lbank="2" prog="61" /> + <Patch name="Soft Lead 1" hbank="87" lbank="2" prog="62" /> + <Patch name="Soft Lead 2" hbank="87" lbank="2" prog="63" /> + <Patch name="Soft Lead 3" hbank="87" lbank="2" prog="64" /> + <Patch name="Soft Lead 4" hbank="87" lbank="2" prog="65" /> + <Patch name="Soft Lead 5" hbank="87" lbank="2" prog="66" /> + <Patch name="Soft Lead 6" hbank="87" lbank="2" prog="67" /> + <Patch name="Soft Lead 7" hbank="87" lbank="2" prog="68" /> + <Patch name="Soft Lead 8" hbank="87" lbank="2" prog="69" /> + <Patch name="Soft Lead 9" hbank="87" lbank="2" prog="70" /> + <Patch name="Soft Lead 10" hbank="87" lbank="2" prog="71" /> + <Patch name="Tri Lead" hbank="87" lbank="2" prog="72" /> + <Patch name="Pulse Lead 1" hbank="87" lbank="2" prog="73" /> + <Patch name="Pulse Lead 2" hbank="87" lbank="2" prog="74" /> + <Patch name="Simple Tri" hbank="87" lbank="2" prog="75" /> + <Patch name="Simple Sine" hbank="87" lbank="2" prog="76" /> + <Patch name="Whistle Ld 1" hbank="87" lbank="2" prog="77" /> + <Patch name="Whistle Ld 2" hbank="87" lbank="2" prog="78" /> + <Patch name="Square Pipe" hbank="87" lbank="2" prog="79" /> + <Patch name="CosmicDrops1" hbank="87" lbank="2" prog="80" /> + <Patch name="Spooky Lead" hbank="87" lbank="2" prog="81" /> + <Patch name="Pure Lead" hbank="87" lbank="2" prog="82" /> + <Patch name="303 NRG" hbank="87" lbank="2" prog="83" /> + <Patch name="Round SQR" hbank="87" lbank="2" prog="84" /> + <Patch name="Brite SQR" hbank="87" lbank="2" prog="85" /> + <Patch name="Square SAW" hbank="87" lbank="2" prog="86" /> + <Patch name="Simple SQR" hbank="87" lbank="2" prog="87" /> + <Patch name="Sqr Lead" hbank="87" lbank="2" prog="88" /> + <Patch name="Atk Lead" hbank="87" lbank="2" prog="89" /> + <Patch name="Octa Square" hbank="87" lbank="2" prog="90" /> + <Patch name="CS Lead" hbank="87" lbank="2" prog="91" /> + <Patch name="Mini Growl" hbank="87" lbank="2" prog="92" /> + <Patch name="Hoover Again" hbank="87" lbank="2" prog="93" /> + <Patch name="Tranceformer" hbank="87" lbank="2" prog="94" /> + <Patch name="Juno SQR" hbank="87" lbank="2" prog="120" /> + <Patch name="Pulse Lead 3" hbank="87" lbank="4" prog="41" /> + <Patch name="Pulse Lead 4" hbank="87" lbank="4" prog="42" /> + <Patch name="Ramp Lead 1" hbank="87" lbank="4" prog="43" /> + <Patch name="Ramp Lead 2" hbank="87" lbank="4" prog="44" /> + <Patch name="Saw Lead 10" hbank="87" lbank="4" prog="45" /> + <Patch name="Sine Lead 1" hbank="87" lbank="4" prog="46" /> + <Patch name="Sine Lead 2" hbank="87" lbank="4" prog="47" /> + <Patch name="Dance Saws1" hbank="87" lbank="4" prog="56" /> + <Patch name="Resoform" hbank="87" lbank="4" prog="57" /> + <Patch name="Dance Saws 2" hbank="87" lbank="4" prog="69" /> + </PatchGroup> + <PatchGroup name="Synth Brass"> + <Patch name="80s Brass 1" hbank="87" lbank="1" prog="99" /> + <Patch name="80s Brass 2" hbank="87" lbank="1" prog="100" /> + <Patch name="80s Brass 3" hbank="87" lbank="1" prog="101" /> + <Patch name="80s Brass 4" hbank="87" lbank="1" prog="102" /> + <Patch name="80s Brass 5" hbank="87" lbank="1" prog="103" /> + <Patch name="80s Brass 6" hbank="87" lbank="1" prog="104" /> + <Patch name="80s Brass 7" hbank="87" lbank="1" prog="105" /> + <Patch name="80s Brass 8" hbank="87" lbank="1" prog="106" /> + <Patch name="Soft SynBrs1" hbank="87" lbank="1" prog="107" /> + <Patch name="Warm SynBrs" hbank="87" lbank="1" prog="108" /> + <Patch name="Brite SynBrs" hbank="87" lbank="1" prog="109" /> + <Patch name="Express Brs" hbank="87" lbank="1" prog="110" /> + <Patch name="EuroExpress1" hbank="87" lbank="1" prog="111" /> + <Patch name="JP Brass 1" hbank="87" lbank="1" prog="112" /> + <Patch name="Juno Brass" hbank="87" lbank="1" prog="113" /> + <Patch name="Ox Brass" hbank="87" lbank="1" prog="114" /> + <Patch name="Reso Brass" hbank="87" lbank="1" prog="115" /> + <Patch name="Wide SynBrs" hbank="87" lbank="1" prog="116" /> + <Patch name="Soft SynBrs2" hbank="87" lbank="1" prog="117" /> + <Patch name="JP Brass 2" hbank="87" lbank="1" prog="118" /> + <Patch name="106 Brass" hbank="87" lbank="1" prog="119" /> + <Patch name="Octa Brass" hbank="87" lbank="1" prog="120" /> + <Patch name="Poly Brass 1" hbank="87" lbank="1" prog="121" /> + <Patch name="Dual Saw Brs" hbank="87" lbank="1" prog="122" /> + <Patch name="Jump Poly" hbank="87" lbank="2" prog="108" /> + <Patch name="Reso Key 1" hbank="87" lbank="2" prog="123" /> + <Patch name="EuroExpress2" hbank="87" lbank="2" prog="126" /> + <Patch name="Ox Synth" hbank="87" lbank="3" prog="4" /> + <Patch name="VintageBrs 1" hbank="87" lbank="4" prog="36" /> + <Patch name="VintageBrs 2" hbank="87" lbank="4" prog="37" /> + <Patch name="VintageBrs 3" hbank="87" lbank="4" prog="38" /> + <Patch name="VintageBrs 4" hbank="87" lbank="4" prog="39" /> + <Patch name="Poly Brass 2" hbank="87" lbank="4" prog="40" /> + </PatchGroup> + <PatchGroup name="Synth Pad/Strings"> + <Patch name="Heaven Pad 1" hbank="87" lbank="3" prog="11" /> + <Patch name="Heaven Pad 2" hbank="87" lbank="3" prog="12" /> + <Patch name="Dreamheaven" hbank="87" lbank="3" prog="15" /> + <Patch name="Oct Heaven" hbank="87" lbank="3" prog="21" /> + <Patch name="Soft Pad 1" hbank="87" lbank="3" prog="27" /> + <Patch name="Soft Pad 2" hbank="87" lbank="3" prog="28" /> + <Patch name="Soft Pad 3" hbank="87" lbank="3" prog="29" /> + <Patch name="Soft Pad 4" hbank="87" lbank="3" prog="30" /> + <Patch name="Soft Pad 5" hbank="87" lbank="3" prog="31" /> + <Patch name="Soft Pad 6" hbank="87" lbank="3" prog="32" /> + <Patch name="Soft Pad 7" hbank="87" lbank="3" prog="33" /> + <Patch name="Soft Pad 8" hbank="87" lbank="3" prog="34" /> + <Patch name="Soft Pad 9" hbank="87" lbank="3" prog="35" /> + <Patch name="Soft Pad 10" hbank="87" lbank="3" prog="36" /> + <Patch name="VintageStr 1" hbank="87" lbank="3" prog="37" /> + <Patch name="VintageStr 2" hbank="87" lbank="3" prog="38" /> + <Patch name="VintageStr 3" hbank="87" lbank="3" prog="39" /> + <Patch name="VintageStr 4" hbank="87" lbank="3" prog="40" /> + <Patch name="VintageStr 5" hbank="87" lbank="3" prog="41" /> + <Patch name="VintageStr 6" hbank="87" lbank="3" prog="42" /> + <Patch name="VintageStr 7" hbank="87" lbank="3" prog="43" /> + <Patch name="JX Strings" hbank="87" lbank="3" prog="44" /> + <Patch name="JP Strings 1" hbank="87" lbank="3" prog="45" /> + <Patch name="JP Strings 2" hbank="87" lbank="3" prog="46" /> + <Patch name="106 Strings" hbank="87" lbank="3" prog="47" /> + <Patch name="PWM Str 1" hbank="87" lbank="3" prog="48" /> + <Patch name="PWM Str 2" hbank="87" lbank="3" prog="49" /> + <Patch name="Fading Str" hbank="87" lbank="3" prog="50" /> + <Patch name="ParadisePad" hbank="87" lbank="3" prog="51" /> + <Patch name="80s Strings" hbank="87" lbank="3" prog="52" /> + <Patch name="Stringship" hbank="87" lbank="3" prog="53" /> + <Patch name="Airy Pad" hbank="87" lbank="3" prog="54" /> + <Patch name="Neo RS-202" hbank="87" lbank="3" prog="55" /> + <Patch name="Sawtooth Str" hbank="87" lbank="3" prog="56" /> + <Patch name="Pulse Pad" hbank="87" lbank="3" prog="57" /> + <Patch name="Hollow Pad 1" hbank="87" lbank="3" prog="58" /> + <Patch name="WarmHeaven 1" hbank="87" lbank="3" prog="59" /> + <Patch name="WarmHeaven 2" hbank="87" lbank="3" prog="60" /> + <Patch name="Heaven Pad 3" hbank="87" lbank="3" prog="61" /> + <Patch name="Heaven Pad 4" hbank="87" lbank="3" prog="62" /> + <Patch name="FineWinePad1" hbank="87" lbank="3" prog="63" /> + <Patch name="FineWinePad2" hbank="87" lbank="3" prog="64" /> + <Patch name="5th Pad 1" hbank="87" lbank="3" prog="65" /> + <Patch name="5th Pad 2" hbank="87" lbank="3" prog="66" /> + <Patch name="Nu Epic Pad" hbank="87" lbank="3" prog="67" /> + <Patch name="Angelis Pad" hbank="87" lbank="3" prog="68" /> + <Patch name="TrnsSweepPad" hbank="87" lbank="3" prog="69" /> + <Patch name="Giant Sweep" hbank="87" lbank="3" prog="70" /> + <Patch name="Voyager" hbank="87" lbank="3" prog="71" /> + <Patch name="Digital Pad" hbank="87" lbank="3" prog="72" /> + <Patch name="NuSoundtrack" hbank="87" lbank="3" prog="73" /> + <Patch name="Xadecimal" hbank="87" lbank="3" prog="74" /> + <Patch name="Strobe Pad" hbank="87" lbank="3" prog="78" /> + <Patch name="BUBBLE 2" hbank="87" lbank="4" prog="65" /> + <Patch name="BUBBLE 3" hbank="87" lbank="4" prog="66" /> + <Patch name="Soft PWM Pad" hbank="87" lbank="4" prog="74" /> + <Patch name="Org Pad" hbank="87" lbank="4" prog="75" /> + <Patch name="Hollow Pad 2" hbank="87" lbank="4" prog="76" /> + <Patch name="SavannaPad 1" hbank="87" lbank="4" prog="77" /> + <Patch name="SavannaPad 2" hbank="87" lbank="4" prog="78" /> + <Patch name="SavannaPad 3" hbank="87" lbank="4" prog="79" /> + <Patch name="PWM Str 3" hbank="87" lbank="4" prog="80" /> + <Patch name="PWM Pad 2" hbank="87" lbank="4" prog="81" /> + <Patch name="Str Machine" hbank="87" lbank="4" prog="82" /> + <Patch name="Reso Pad" hbank="87" lbank="4" prog="83" /> + <Patch name="BPF Pad" hbank="87" lbank="4" prog="84" /> + <Patch name="Sweep Pad 2" hbank="87" lbank="4" prog="86" /> + <Patch name="Sweep Pad 3" hbank="87" lbank="4" prog="87" /> + <Patch name="Sweep Pad 4" hbank="87" lbank="4" prog="88" /> + <Patch name="Scoop Pad 1" hbank="87" lbank="4" prog="89" /> + <Patch name="Scoop Pad 2" hbank="87" lbank="4" prog="90" /> + <Patch name="Brite Wine" hbank="87" lbank="4" prog="91" /> + <Patch name="Wine Pad" hbank="87" lbank="4" prog="92" /> + </PatchGroup> + <PatchGroup name="Synth PolyKey"> + <Patch name="Dream Trance" hbank="87" lbank="2" prog="95" /> + <Patch name="Dream Saws" hbank="87" lbank="2" prog="96" /> + <Patch name="Dream Pulse" hbank="87" lbank="2" prog="97" /> + <Patch name="Trance Synth" hbank="87" lbank="2" prog="98" /> + <Patch name="Trancy" hbank="87" lbank="2" prog="99" /> + <Patch name="Trance Keys" hbank="87" lbank="2" prog="100" /> + <Patch name="Trance Saws" hbank="87" lbank="2" prog="101" /> + <Patch name="Auto Trance1" hbank="87" lbank="2" prog="102" /> + <Patch name="Super Saws 1" hbank="87" lbank="2" prog="103" /> + <Patch name="Analog Saws" hbank="87" lbank="2" prog="104" /> + <Patch name="Uni-G" hbank="87" lbank="2" prog="105" /> + <Patch name="Digitaless" hbank="87" lbank="2" prog="106" /> + <Patch name="Bustranza" hbank="87" lbank="2" prog="107" /> + <Patch name="Super Saws 2" hbank="87" lbank="2" prog="109" /> + <Patch name="Poly Synth 2" hbank="87" lbank="2" prog="110" /> + <Patch name="Poly Synth 3" hbank="87" lbank="2" prog="111" /> + <Patch name="Poly Synth 4" hbank="87" lbank="2" prog="112" /> + <Patch name="Poly Synth 5" hbank="87" lbank="2" prog="113" /> + <Patch name="Poly Synth 6" hbank="87" lbank="2" prog="114" /> + <Patch name="Poly Synth 7" hbank="87" lbank="2" prog="115" /> + <Patch name="Juno Saw Key" hbank="87" lbank="2" prog="116" /> + <Patch name="Saw Key 1" hbank="87" lbank="2" prog="117" /> + <Patch name="Saw Key 2" hbank="87" lbank="2" prog="118" /> + <Patch name="Waspy Synth" hbank="87" lbank="2" prog="119" /> + <Patch name="Vintage Key" hbank="87" lbank="2" prog="121" /> + <Patch name="Ju-D Fifths" hbank="87" lbank="2" prog="122" /> + <Patch name="Reso Key 2" hbank="87" lbank="2" prog="124" /> + <Patch name="Fat Synth" hbank="87" lbank="2" prog="125" /> + <Patch name="DOC Stack" hbank="87" lbank="2" prog="127" /> + <Patch name="2 Saws" hbank="87" lbank="3" prog="0" /> + <Patch name="Hi Saw Band" hbank="87" lbank="3" prog="1" /> + <Patch name="Brite Synth" hbank="87" lbank="3" prog="2" /> + <Patch name="PWM Pad 1" hbank="87" lbank="3" prog="3" /> + <Patch name="RAVtune" hbank="87" lbank="3" prog="5" /> + <Patch name="Heaven Key" hbank="87" lbank="3" prog="10" /> + <Patch name="Pipe Key" hbank="87" lbank="3" prog="18" /> + <Patch name="Shroomy" hbank="87" lbank="4" prog="60" /> + <Patch name="AnalogDays 1" hbank="87" lbank="4" prog="68" /> + <Patch name="Sync Key" hbank="87" lbank="4" prog="70" /> + <Patch name="Detune Ramp" hbank="87" lbank="4" prog="71" /> + <Patch name="Reso Saw" hbank="87" lbank="4" prog="72" /> + <Patch name="EuroExpress3" hbank="87" lbank="4" prog="73" /> + <Patch name="Sweep Saw" hbank="87" lbank="4" prog="85" /> + </PatchGroup> + <PatchGroup name="Synth FX"> + <Patch name="Enigmatic" hbank="87" lbank="3" prog="104" /> + <Patch name="Planetz" hbank="87" lbank="3" prog="105" /> + <Patch name="Shimmer Pad" hbank="87" lbank="3" prog="106" /> + <Patch name="Sci-Fi" hbank="87" lbank="3" prog="107" /> + <Patch name="ResoSweep Dn" hbank="87" lbank="3" prog="108" /> + <Patch name="Jet Noise" hbank="87" lbank="3" prog="109" /> + <Patch name="Brandish" hbank="87" lbank="3" prog="110" /> + <Patch name="909 Fx" hbank="87" lbank="3" prog="111" /> + <Patch name="Zap" hbank="87" lbank="3" prog="112" /> + <Patch name="PolySweep Nz" hbank="87" lbank="3" prog="113" /> + <Patch name="Passing By" hbank="87" lbank="3" prog="114" /> + <Patch name="Lazer Points" hbank="87" lbank="3" prog="115" /> + <Patch name="CosmicDrops2" hbank="87" lbank="3" prog="116" /> + <Patch name="Crystal Fx" hbank="87" lbank="3" prog="117" /> + <Patch name="Crystal Ice" hbank="87" lbank="3" prog="118" /> + <Patch name="Mad Noise" hbank="87" lbank="3" prog="119" /> + <Patch name="Robot Sci-Fi" hbank="87" lbank="3" prog="120" /> + <Patch name="Computer 1" hbank="87" lbank="3" prog="121" /> + <Patch name="Computer 2" hbank="87" lbank="3" prog="122" /> + <Patch name="S&H Noise" hbank="87" lbank="3" prog="123" /> + <Patch name="S&H Ramp" hbank="87" lbank="3" prog="124" /> + <Patch name="S&H PWM" hbank="87" lbank="3" prog="125" /> + <Patch name="S&H Saw 1" hbank="87" lbank="3" prog="126" /> + <Patch name="S&H Saw 2" hbank="87" lbank="3" prog="127" /> + <Patch name="Electrostar" hbank="87" lbank="4" prog="55" /> + <Patch name="Alpha Said" hbank="87" lbank="4" prog="59" /> + <Patch name="FX Ramp" hbank="87" lbank="4" prog="63" /> + <Patch name="BUBBLE 1" hbank="87" lbank="4" prog="64" /> + </PatchGroup> + <PatchGroup name="Synth Seq/Pop"> + <Patch name="Analog Seq" hbank="87" lbank="3" prog="6" /> + <Patch name="Seq Pop" hbank="87" lbank="3" prog="7" /> + <Patch name="Periscope" hbank="87" lbank="3" prog="8" /> + <Patch name="Major 7" hbank="87" lbank="3" prog="9" /> + <Patch name="Juno-D Maj7" hbank="87" lbank="4" prog="52" /> + <Patch name="Sweet House" hbank="87" lbank="4" prog="53" /> + <Patch name="Detune Saws" hbank="87" lbank="4" prog="54" /> + <Patch name="Melodic Drum" hbank="87" lbank="4" prog="58" /> + <Patch name="Detune Seq" hbank="87" lbank="4" prog="61" /> + </PatchGroup> + <PatchGroup name="Pulsating"> + <Patch name="PanninFormnt" hbank="87" lbank="3" prog="75" /> + <Patch name="Fairy\s Song" hbank="87" lbank="3" prog="76" /> + <Patch name="Atmospherics" hbank="87" lbank="3" prog="77" /> + <Patch name="StrobeBell 1" hbank="87" lbank="3" prog="79" /> + <Patch name="StrobeBell 2" hbank="87" lbank="3" prog="80" /> + <Patch name="Flying Pad 1" hbank="87" lbank="3" prog="81" /> + <Patch name="Flying Pad 2" hbank="87" lbank="3" prog="82" /> + <Patch name="Flying Pad 3" hbank="87" lbank="3" prog="83" /> + <Patch name="Flying Pad 4" hbank="87" lbank="3" prog="84" /> + <Patch name="Flying Pad 5" hbank="87" lbank="3" prog="85" /> + <Patch name="Sine Magic" hbank="87" lbank="4" prog="94" /> + <Patch name="Pulsatron" hbank="87" lbank="4" prog="95" /> + <Patch name="Motion Bass" hbank="87" lbank="4" prog="96" /> + <Patch name="Trance Splt" hbank="87" lbank="4" prog="97" /> + <Patch name="Rhythmic 5th" hbank="87" lbank="4" prog="98" /> + <Patch name="Rhythmic 1" hbank="87" lbank="4" prog="99" /> + <Patch name="Rhythmic 2" hbank="87" lbank="4" prog="100" /> + <Patch name="Mega Sync 1" hbank="87" lbank="4" prog="101" /> + <Patch name="StrobeBell 3" hbank="87" lbank="4" prog="102" /> + <Patch name="Strobe 1" hbank="87" lbank="4" prog="103" /> + <Patch name="Strobe 2" hbank="87" lbank="4" prog="104" /> + <Patch name="Strobe 3" hbank="87" lbank="4" prog="105" /> + <Patch name="Strobe 4" hbank="87" lbank="4" prog="106" /> + <Patch name="LFO Saw" hbank="87" lbank="4" prog="107" /> + <Patch name="Keep Going" hbank="87" lbank="4" prog="108" /> + <Patch name="Keep Running" hbank="87" lbank="4" prog="109" /> + <Patch name="Electrons" hbank="87" lbank="4" prog="110" /> + <Patch name="BriskVortex" hbank="87" lbank="4" prog="111" /> + <Patch name="LFO Vox" hbank="87" lbank="4" prog="112" /> + <Patch name="Pulsasaw" hbank="87" lbank="4" prog="113" /> + <Patch name="Arposphere" hbank="87" lbank="4" prog="114" /> + <Patch name="Mega Sync 2" hbank="87" lbank="4" prog="115" /> + </PatchGroup> + <PatchGroup name="Beat&Groove"> + <Patch name="Compusonic 1" hbank="87" lbank="4" prog="116" /> + <Patch name="Compusonic 2" hbank="87" lbank="4" prog="117" /> + <Patch name="Compusonic 3" hbank="87" lbank="4" prog="118" /> + <Patch name="Compusonic 4" hbank="87" lbank="4" prog="119" /> + <Patch name="Compusonic 5" hbank="87" lbank="4" prog="120" /> + <Patch name="AnalogDays 2" hbank="87" lbank="4" prog="121" /> + <Patch name="Groove 007" hbank="87" lbank="4" prog="122" /> + <Patch name="Juno Pop" hbank="87" lbank="4" prog="123" /> + <Patch name="Auto Trance2" hbank="87" lbank="4" prog="124" /> + <Patch name="In Da Groove" hbank="87" lbank="4" prog="125" /> + <Patch name="80s Beat" hbank="87" lbank="4" prog="126" /> + </PatchGroup> + <PatchGroup name="Hit"> + <Patch name="Cheezy Movie" hbank="87" lbank="4" prog="48" /> + <Patch name="Mod Chord" hbank="87" lbank="4" prog="49" /> + <Patch name="Housechord" hbank="87" lbank="4" prog="50" /> + </PatchGroup> + <PatchGroup name="Sound FX"> + <Patch name="Scratch 2" hbank="87" lbank="4" prog="67" /> + </PatchGroup> + <PatchGroup name="Percussion"> + <Patch name="Ride Cymbal" hbank="87" lbank="4" prog="127" /> + </PatchGroup> + <PatchGroup name="Solo"> + <Patch name="Violin" hbank="89" lbank="64" prog="40" /> + <Patch name="Trombone" hbank="89" lbank="64" prog="57" /> + <Patch name="Shakuhachi" hbank="89" lbank="64" prog="77" /> + </PatchGroup> + <Controller name="Modulation" l="1" /> + <Controller name="BreathCtrl" l="2" /> + <Controller name="Foot Ctrl" l="4" /> + <Controller name="Porta Time" l="5" /> + <Controller name="MainVolume" l="7" /> + <Controller name="Balance" l="8" init="63" /> + <Controller name="Pan" l="10" init="63" /> + <Controller name="Expression" l="11" init="127" /> + <Controller name="Sustain" l="64" /> + <Controller name="Porta Ped" l="65" /> + <Controller name="Sostenuto" l="66" /> + <Controller name="Soft Pedal" l="67" /> + <Controller name="Legato Foot switch" l="68" /> + <Controller name="Hold 2" l="69" /> + <Controller name="Resonance" l="71" min="-64" max="63" /> + <Controller name="ReleaseTime" l="72" min="-64" max="63" /> + <Controller name="Attack Time" l="73" min="-64" max="63" /> + <Controller name="CutOff" l="74" min="-64" max="63" /> + <Controller name="Decau time" l="75" min="-64" max="63" /> + <Controller name="Vibrato rate" l="76" min="-64" max="63" /> + <Controller name="Vibrato Depth" l="77" min="-64" max="63" /> + <Controller name="Vibrato delay" l="78" min="-64" max="63" /> + <Controller name="Gen.Purp.5" l="80" /> + <Controller name="Gen.Purp.6" l="81" /> + <Controller name="Gen.Purp.7" l="82" /> + <Controller name="Portamento Ctrl" l="84" /> + <Controller name="Reverb send level" l="91" /> + <Controller name="Chorus send level" l="93" /> + <Controller name="AllSndOff" l="120" /> + <Controller name="Reset Ctrl" l="121" /> + <Controller name="AllNoteOff" l="123" /> + <Controller name="OmniModOff" l="124" /> + <Controller name="OmniModeOn" l="125" /> + <Controller name="MonoModeOn" l="126" /> + <Controller name="PolyModeOn" l="127" /> + <Controller name="Pitch Bend Sensitivity" type="RPN" h="0" l="0" max="24" init="2" /> + <Controller name="Fine Tuning" type="RPN" h="0" l="1" min="-64" max="63" init="0" /> + <Controller name="Pitch" type="Pitch" /> + <Controller name="Program" type="Program" /> + <Controller name="Poly Aftertouch" type="PolyAftertouch" /> + <Controller name="Aftertouch" type="Aftertouch" /> + <SysEx name="GM System Off"> + <data>7e 7f 09 02</data> + </SysEx> + <Init> + <event tick="0" type="2" datalen="4"> + 7e 7f 09 02 + </event> + </Init> + <Drummaps> <entry> <patch_collection prog="0" lbank="0" hbank="86" /> <drummap> @@ -5768,7 +5575,7 @@ </drummap> </entry> <entry> - <patch_collection prog="13" lbank="0" hbank="86" /> + <patch_collection prog="13-127" lbank="0" hbank="86" /> <drummap> <entry pitch="22"> <name>MC500 Beep1 </name> diff --git a/muse2/share/instruments/gm2.idf b/muse2/share/instruments/gm2.idf index e35fadd6..3a4c0aee 100644 --- a/muse2/share/instruments/gm2.idf +++ b/muse2/share/instruments/gm2.idf @@ -1,6 +1,6 @@ <?xml version="1.0"?> <muse version="1.0"> - <MidiInstrument name="GM Level 2" nullparam="32639"> + <MidiInstrument name="GM2" nullparam="32639"> <SysEx name="GM2 on"> <comment>Switch General Midi Level 2 mode on</comment> <data>7e 7f 09 03</data> @@ -15,155 +15,155 @@ <Patch name="Acoustic Grand Piano (wide)" hbank="121" lbank="1" prog="0" /> <Patch name="Acoustic Grand Piano (dark)" hbank="121" lbank="2" prog="0" /> <Patch name="Bright Acoustic Piano" hbank="121" lbank="0" prog="1" /> - <Patch name="Bright Acoustic Piano (wide)" hbank="121" lbank="1" prog="0" /> + <Patch name="Bright Acoustic Piano (wide)" hbank="121" lbank="1" prog="1" /> <Patch name="Electric Grand Piano" hbank="121" lbank="0" prog="2" /> - <Patch name="Electric Grand Piano (wide)" hbank="121" lbank="1" prog="0" /> + <Patch name="Electric Grand Piano (wide)" hbank="121" lbank="1" prog="2" /> <Patch name="Honky-tonk Piano" hbank="121" lbank="0" prog="3" /> - <Patch name="Honky-tonk Piano (wide)" hbank="121" lbank="1" prog="0" /> + <Patch name="Honky-tonk Piano (wide)" hbank="121" lbank="1" prog="3" /> <Patch name="Electric Piano 1" hbank="121" lbank="0" prog="4" /> - <Patch name="Detuned Electric Piano 1" hbank="121" lbank="1" prog="0" /> - <Patch name="Electric Piano 1 (velocity mix)" hbank="121" lbank="2" prog="0" /> - <Patch name="60's Electric Piano" hbank="121" lbank="3" prog="0" /> + <Patch name="Detuned Electric Piano 1" hbank="121" lbank="1" prog="4" /> + <Patch name="Electric Piano 1 (velocity mix)" hbank="121" lbank="2" prog="4" /> + <Patch name="60's Electric Piano" hbank="121" lbank="3" prog="4" /> <Patch name="Electric Piano 2" hbank="121" lbank="0" prog="5" /> - <Patch name="Detuned Electric Piano 2" hbank="121" lbank="1" prog="0" /> - <Patch name="Electric Piano 2 (velocity mix)" hbank="121" lbank="2" prog="0" /> - <Patch name="EP Legend" hbank="121" lbank="3" prog="0" /> - <Patch name="EP Phase" hbank="121" lbank="4" prog="0" /> + <Patch name="Detuned Electric Piano 2" hbank="121" lbank="1" prog="5" /> + <Patch name="Electric Piano 2 (velocity mix)" hbank="121" lbank="2" prog="5" /> + <Patch name="EP Legend" hbank="121" lbank="3" prog="5" /> + <Patch name="EP Phase" hbank="121" lbank="4" prog="5" /> <Patch name="Harpsichord" hbank="121" lbank="0" prog="6" /> - <Patch name="Harpsichord (octave mix)" hbank="121" lbank="1" prog="0" /> - <Patch name="Harpsichord (wide)" hbank="121" lbank="2" prog="0" /> - <Patch name="Harpsichord (with key off)" hbank="121" lbank="3" prog="0" /> + <Patch name="Harpsichord (octave mix)" hbank="121" lbank="1" prog="6" /> + <Patch name="Harpsichord (wide)" hbank="121" lbank="2" prog="6" /> + <Patch name="Harpsichord (with key off)" hbank="121" lbank="3" prog="6" /> <Patch name="Clavi" hbank="121" lbank="0" prog="7" /> - <Patch name="Pulse Clavi" hbank="121" lbank="1" prog="0" /> + <Patch name="Pulse Clavi" hbank="121" lbank="1" prog="7" /> </PatchGroup> <PatchGroup name="Chromatic Percussion"> <Patch name="Celesta" hbank="121" lbank="0" prog="8" /> <Patch name="Glockenspiel" hbank="121" lbank="0" prog="9" /> <Patch name="Music Box" hbank="121" lbank="0" prog="10" /> <Patch name="Vibraphone" hbank="121" lbank="0" prog="11" /> - <Patch name="Vibraphone (wide)" hbank="121" lbank="1" prog="0" /> + <Patch name="Vibraphone (wide)" hbank="121" lbank="1" prog="11" /> <Patch name="Marimba" hbank="121" lbank="0" prog="12" /> - <Patch name="Marimba (wide)" hbank="121" lbank="1" prog="0" /> + <Patch name="Marimba (wide)" hbank="121" lbank="1" prog="12" /> <Patch name="Xylophone" hbank="121" lbank="0" prog="13" /> <Patch name="Tubular Bells" hbank="121" lbank="0" prog="14" /> - <Patch name="Church Bell" hbank="121" lbank="1" prog="0" /> - <Patch name="Carillon" hbank="121" lbank="2" prog="0" /> + <Patch name="Church Bell" hbank="121" lbank="1" prog="14" /> + <Patch name="Carillon" hbank="121" lbank="2" prog="14" /> <Patch name="Dulcimer" hbank="121" lbank="0" prog="15" /> </PatchGroup> <PatchGroup name="Organ"> <Patch name="Drawbar Organ" hbank="121" lbank="0" prog="16" /> - <Patch name="Detuned Drawbar Organ" hbank="121" lbank="1" prog="0" /> - <Patch name="Italian 60's Organ" hbank="121" lbank="2" prog="0" /> - <Patch name="Drawbar Organ 2" hbank="121" lbank="3" prog="0" /> + <Patch name="Detuned Drawbar Organ" hbank="121" lbank="1" prog="16" /> + <Patch name="Italian 60's Organ" hbank="121" lbank="2" prog="16" /> + <Patch name="Drawbar Organ 2" hbank="121" lbank="3" prog="16" /> <Patch name="Percussive Organ" hbank="121" lbank="0" prog="17" /> - <Patch name="Detuned Percussive Organ" hbank="121" lbank="1" prog="0" /> - <Patch name="Percussive Organ 2" hbank="121" lbank="2" prog="0" /> + <Patch name="Detuned Percussive Organ" hbank="121" lbank="1" prog="17" /> + <Patch name="Percussive Organ 2" hbank="121" lbank="2" prog="17" /> <Patch name="Rock Organ" hbank="121" lbank="0" prog="18" /> <Patch name="Church Organ" hbank="121" lbank="0" prog="19" /> - <Patch name="Church Organ (octave mix)" hbank="121" lbank="1" prog="0" /> - <Patch name="Detuned Church Organ" hbank="121" lbank="2" prog="0" /> + <Patch name="Church Organ (octave mix)" hbank="121" lbank="1" prog="19" /> + <Patch name="Detuned Church Organ" hbank="121" lbank="2" prog="19" /> <Patch name="Reed Organ" hbank="121" lbank="0" prog="20" /> - <Patch name="Puff Organ" hbank="121" lbank="1" prog="0" /> + <Patch name="Puff Organ" hbank="121" lbank="1" prog="20" /> <Patch name="Accordion" hbank="121" lbank="0" prog="21" /> - <Patch name="Accordion 2" hbank="121" lbank="1" prog="0" /> + <Patch name="Accordion 2" hbank="121" lbank="1" prog="21" /> <Patch name="Harmonica" hbank="121" lbank="0" prog="22" /> <Patch name="Tango Accordion" hbank="121" lbank="0" prog="23" /> </PatchGroup> <PatchGroup name="Guitar"> <Patch name="Acoustic Guitar (nylon)" hbank="121" lbank="0" prog="24" /> - <Patch name="Ukulele" hbank="121" lbank="1" prog="0" /> - <Patch name="Acoustic Guitar (nylon + key off)" hbank="121" lbank="2" prog="0" /> - <Patch name="Acoustic Guitar (nylon 2)" hbank="121" lbank="3" prog="0" /> + <Patch name="Ukulele" hbank="121" lbank="1" prog="24" /> + <Patch name="Acoustic Guitar (nylon + key off)" hbank="121" lbank="2" prog="24" /> + <Patch name="Acoustic Guitar (nylon 2)" hbank="121" lbank="3" prog="24" /> <Patch name="Acoustic Guitar (steel)" hbank="121" lbank="0" prog="25" /> - <Patch name="12-Strings Guitar" hbank="121" lbank="1" prog="0" /> - <Patch name="Mandolin" hbank="121" lbank="2" prog="0" /> - <Patch name="Steel Guitar with Body Sound" hbank="121" lbank="3" prog="0" /> + <Patch name="12-Strings Guitar" hbank="121" lbank="1" prog="25" /> + <Patch name="Mandolin" hbank="121" lbank="2" prog="25" /> + <Patch name="Steel Guitar with Body Sound" hbank="121" lbank="3" prog="25" /> <Patch name="Electric Guitar (jazz)" hbank="121" lbank="0" prog="26" /> - <Patch name="Electric Guitar (pedal steel)" hbank="121" lbank="1" prog="0" /> + <Patch name="Electric Guitar (pedal steel)" hbank="121" lbank="1" prog="26" /> <Patch name="Electric Guitar (clean)" hbank="121" lbank="0" prog="27" /> - <Patch name="Electric Guitar (detuned clean)" hbank="121" lbank="1" prog="0" /> - <Patch name="Mid Tone Guitar" hbank="121" lbank="2" prog="0" /> + <Patch name="Electric Guitar (detuned clean)" hbank="121" lbank="1" prog="27" /> + <Patch name="Mid Tone Guitar" hbank="121" lbank="2" prog="27" /> <Patch name="Electric Guitar (muted)" hbank="121" lbank="0" prog="28" /> - <Patch name="Electric Guitar (funky cutting)" hbank="121" lbank="1" prog="0" /> - <Patch name="Electric Guitar (muted velo-sw)" hbank="121" lbank="2" prog="0" /> - <Patch name="Jazz Man" hbank="121" lbank="3" prog="0" /> + <Patch name="Electric Guitar (funky cutting)" hbank="121" lbank="1" prog="28" /> + <Patch name="Electric Guitar (muted velo-sw)" hbank="121" lbank="2" prog="28" /> + <Patch name="Jazz Man" hbank="121" lbank="3" prog="28" /> <Patch name="Overdriven Guitar" hbank="121" lbank="0" prog="29" /> - <Patch name="Guitar Pinch" hbank="121" lbank="1" prog="0" /> + <Patch name="Guitar Pinch" hbank="121" lbank="1" prog="29" /> <Patch name="Distortion Guitar" hbank="121" lbank="0" prog="30" /> - <Patch name="Distortion Guitar (with feedback)" hbank="121" lbank="1" prog="0" /> - <Patch name="Distorted Rhythm Guitar" hbank="121" lbank="2" prog="0" /> + <Patch name="Distortion Guitar (with feedback)" hbank="121" lbank="1" prog="30" /> + <Patch name="Distorted Rhythm Guitar" hbank="121" lbank="2" prog="30" /> <Patch name="Guitar Harmonics" hbank="121" lbank="0" prog="31" /> - <Patch name="Guitar Feedback" hbank="121" lbank="1" prog="0" /> + <Patch name="Guitar Feedback" hbank="121" lbank="1" prog="31" /> </PatchGroup> <PatchGroup name="Bass"> <Patch name="Acoustic Bass" hbank="121" lbank="0" prog="32" /> <Patch name="Electric Bass (finger)" hbank="121" lbank="0" prog="33" /> - <Patch name="Finger Slap Bass" hbank="121" lbank="1" prog="0" /> + <Patch name="Finger Slap Bass" hbank="121" lbank="1" prog="33" /> <Patch name="Electric Bass (pick)" hbank="121" lbank="0" prog="34" /> <Patch name="Fretless Bass" hbank="121" lbank="0" prog="35" /> <Patch name="Slap Bass 1" hbank="121" lbank="0" prog="36" /> <Patch name="Slap Bass 2" hbank="121" lbank="0" prog="37" /> <Patch name="Synth Bass 1" hbank="121" lbank="0" prog="38" /> - <Patch name="Synth Bass (warm)" hbank="121" lbank="1" prog="0" /> - <Patch name="Synth Bass 3 (resonance)" hbank="121" lbank="2" prog="0" /> - <Patch name="Clavi Bass" hbank="121" lbank="3" prog="0" /> - <Patch name="Hammer" hbank="121" lbank="4" prog="0" /> + <Patch name="Synth Bass (warm)" hbank="121" lbank="1" prog="38" /> + <Patch name="Synth Bass 3 (resonance)" hbank="121" lbank="2" prog="38" /> + <Patch name="Clavi Bass" hbank="121" lbank="3" prog="38" /> + <Patch name="Hammer" hbank="121" lbank="4" prog="38" /> <Patch name="Synth Bass 2" hbank="121" lbank="0" prog="39" /> - <Patch name="Synth Bass 4 (attack)" hbank="121" lbank="1" prog="0" /> - <Patch name="Synth Bass (rubber)" hbank="121" lbank="2" prog="0" /> - <Patch name="Attack Pulse" hbank="121" lbank="3" prog="0" /> + <Patch name="Synth Bass 4 (attack)" hbank="121" lbank="1" prog="39" /> + <Patch name="Synth Bass (rubber)" hbank="121" lbank="2" prog="39" /> + <Patch name="Attack Pulse" hbank="121" lbank="3" prog="39" /> </PatchGroup> <PatchGroup name="Strings & Orchestral"> <Patch name="Violin" hbank="121" lbank="0" prog="40" /> - <Patch name="Violin (slow attack)" hbank="121" lbank="1" prog="0" /> + <Patch name="Violin (slow attack)" hbank="121" lbank="1" prog="40" /> <Patch name="Viola" hbank="121" lbank="0" prog="41" /> <Patch name="Cello" hbank="121" lbank="0" prog="42" /> <Patch name="Contrabass" hbank="121" lbank="0" prog="43" /> <Patch name="Tremolo Strings" hbank="121" lbank="0" prog="44" /> <Patch name="Pizzicato Strings" hbank="121" lbank="0" prog="45" /> <Patch name="Orchestral Harp" hbank="121" lbank="0" prog="46" /> - <Patch name="Yang Chin" hbank="121" lbank="1" prog="0" /> + <Patch name="Yang Chin" hbank="121" lbank="1" prog="46" /> <Patch name="Timpani" hbank="121" lbank="0" prog="47" /> </PatchGroup> <PatchGroup name="Ensemble"> <Patch name="String Ensembles 1" hbank="121" lbank="0" prog="48" /> - <Patch name="Strings and Brass" hbank="121" lbank="1" prog="0" /> - <Patch name="60s Strings" hbank="121" lbank="2" prog="0" /> + <Patch name="Strings and Brass" hbank="121" lbank="1" prog="48" /> + <Patch name="60s Strings" hbank="121" lbank="2" prog="48" /> <Patch name="String Ensembles 2" hbank="121" lbank="0" prog="49" /> <Patch name="SynthStrings 1" hbank="121" lbank="0" prog="50" /> - <Patch name="SynthStrings 3" hbank="121" lbank="1" prog="0" /> + <Patch name="SynthStrings 3" hbank="121" lbank="1" prog="50" /> <Patch name="SynthStrings 2" hbank="121" lbank="0" prog="51" /> <Patch name="Choir Aahs" hbank="121" lbank="0" prog="52" /> - <Patch name="Choir Aahs 2" hbank="121" lbank="1" prog="0" /> + <Patch name="Choir Aahs 2" hbank="121" lbank="1" prog="52" /> <Patch name="Voice Oohs" hbank="121" lbank="0" prog="53" /> - <Patch name="Humming" hbank="121" lbank="1" prog="0" /> + <Patch name="Humming" hbank="121" lbank="1" prog="53" /> <Patch name="Synth Voice" hbank="121" lbank="0" prog="54" /> - <Patch name="Analog Voice" hbank="121" lbank="1" prog="0" /> + <Patch name="Analog Voice" hbank="121" lbank="1" prog="54" /> <Patch name="Orchestra Hit" hbank="121" lbank="0" prog="55" /> - <Patch name="Bass Hit Plus" hbank="121" lbank="1" prog="0" /> - <Patch name="6th Hit" hbank="121" lbank="2" prog="0" /> - <Patch name="Euro Hit" hbank="121" lbank="3" prog="0" /> + <Patch name="Bass Hit Plus" hbank="121" lbank="1" prog="55" /> + <Patch name="6th Hit" hbank="121" lbank="2" prog="55" /> + <Patch name="Euro Hit" hbank="121" lbank="3" prog="55" /> </PatchGroup> <PatchGroup name="Brass"> <Patch name="Trumpet" hbank="121" lbank="0" prog="56" /> - <Patch name="Dark Trumpet Soft" hbank="121" lbank="1" prog="0" /> + <Patch name="Dark Trumpet Soft" hbank="121" lbank="1" prog="56" /> <Patch name="Trombone" hbank="121" lbank="0" prog="57" /> - <Patch name="Trombone 2" hbank="121" lbank="1" prog="0" /> - <Patch name="Bright Trombone" hbank="121" lbank="2" prog="0" /> + <Patch name="Trombone 2" hbank="121" lbank="1" prog="57" /> + <Patch name="Bright Trombone" hbank="121" lbank="2" prog="57" /> <Patch name="Tuba" hbank="121" lbank="0" prog="58" /> <Patch name="Muted Trumpet" hbank="121" lbank="0" prog="59" /> - <Patch name="Muted Trumpet 2" hbank="121" lbank="1" prog="0" /> + <Patch name="Muted Trumpet 2" hbank="121" lbank="1" prog="59" /> <Patch name="French Horn" hbank="121" lbank="0" prog="60" /> - <Patch name="French Horn 2 (warm)" hbank="121" lbank="1" prog="0" /> + <Patch name="French Horn 2 (warm)" hbank="121" lbank="1" prog="60" /> <Patch name="Brass Section" hbank="121" lbank="0" prog="61" /> - <Patch name="Brass Section 2 (octave mix)" hbank="121" lbank="1" prog="0" /> + <Patch name="Brass Section 2 (octave mix)" hbank="121" lbank="1" prog="61" /> <Patch name="Synth Brass 1" hbank="121" lbank="0" prog="62" /> - <Patch name="Synth Brass 3" hbank="121" lbank="1" prog="0" /> - <Patch name="Analog Synth Brass 1" hbank="121" lbank="2" prog="0" /> - <Patch name="Jump Brass" hbank="121" lbank="3" prog="0" /> + <Patch name="Synth Brass 3" hbank="121" lbank="1" prog="62" /> + <Patch name="Analog Synth Brass 1" hbank="121" lbank="2" prog="62" /> + <Patch name="Jump Brass" hbank="121" lbank="3" prog="62" /> <Patch name="Synth Brass 2" hbank="121" lbank="0" prog="63" /> - <Patch name="Synth Brass 4" hbank="121" lbank="1" prog="0" /> - <Patch name="Analog Synth Brass 2" hbank="121" lbank="2" prog="0" /> + <Patch name="Synth Brass 4" hbank="121" lbank="1" prog="63" /> + <Patch name="Analog Synth Brass 2" hbank="121" lbank="2" prog="63" /> </PatchGroup> <PatchGroup name="Reed"> <Patch name="Soprano Sax" hbank="121" lbank="0" prog="64" /> @@ -187,29 +187,29 @@ </PatchGroup> <PatchGroup name="Synth Lead"> <Patch name="Lead 1 (square)" hbank="121" lbank="0" prog="80" /> - <Patch name="Lead 1a (square 2)" hbank="121" lbank="1" prog="0" /> - <Patch name="Lead 1b (sine)" hbank="121" lbank="2" prog="0" /> + <Patch name="Lead 1a (square 2)" hbank="121" lbank="1" prog="80" /> + <Patch name="Lead 1b (sine)" hbank="121" lbank="2" prog="80" /> <Patch name="Lead 2 (sawtooth)" hbank="121" lbank="0" prog="81" /> - <Patch name="Lead 2a (sawtooth 2)" hbank="121" lbank="1" prog="0" /> - <Patch name="Lead 2b (saw + pulse)" hbank="121" lbank="2" prog="0" /> - <Patch name="Lead 2c (double sawtooth)" hbank="121" lbank="3" prog="0" /> - <Patch name="Lead 2d (sequenced analog)" hbank="121" lbank="4" prog="0" /> + <Patch name="Lead 2a (sawtooth 2)" hbank="121" lbank="1" prog="81" /> + <Patch name="Lead 2b (saw + pulse)" hbank="121" lbank="2" prog="81" /> + <Patch name="Lead 2c (double sawtooth)" hbank="121" lbank="3" prog="81" /> + <Patch name="Lead 2d (sequenced analog)" hbank="121" lbank="4" prog="81" /> <Patch name="Lead 3 (calliope)" hbank="121" lbank="0" prog="82" /> <Patch name="Lead 4 (chiff)" hbank="121" lbank="0" prog="83" /> <Patch name="Lead 5 (charang)" hbank="121" lbank="0" prog="84" /> - <Patch name="Lead 5a (wire lead)" hbank="121" lbank="1" prog="0" /> + <Patch name="Lead 5a (wire lead)" hbank="121" lbank="1" prog="84" /> <Patch name="Lead 6 (voice)" hbank="121" lbank="0" prog="85" /> <Patch name="Lead 7 (fifths)" hbank="121" lbank="0" prog="86" /> <Patch name="Lead 8 (bass + lead)" hbank="121" lbank="0" prog="87" /> - <Patch name="Lead 8a (soft wrl)" hbank="121" lbank="1" prog="0" /> + <Patch name="Lead 8a (soft wrl)" hbank="121" lbank="1" prog="87" /> </PatchGroup> <PatchGroup name="Synth Pad"> <Patch name="Pad 1 (new age)" hbank="121" lbank="0" prog="88" /> <Patch name="Pad 2 (warm)" hbank="121" lbank="0" prog="89" /> - <Patch name="Pad 2a (sine pad)" hbank="121" lbank="1" prog="0" /> + <Patch name="Pad 2a (sine pad)" hbank="121" lbank="1" prog="89" /> <Patch name="Pad 3 (polysynth)" hbank="121" lbank="0" prog="90" /> <Patch name="Pad 4 (choir)" hbank="121" lbank="0" prog="91" /> - <Patch name="Pad 4a (itopia)" hbank="121" lbank="1" prog="0" /> + <Patch name="Pad 4a (itopia)" hbank="121" lbank="1" prog="91" /> <Patch name="Pad 5 (bowed)" hbank="121" lbank="0" prog="92" /> <Patch name="Pad 6 (metallic)" hbank="121" lbank="0" prog="93" /> <Patch name="Pad 7 (halo)" hbank="121" lbank="0" prog="94" /> @@ -219,22 +219,22 @@ <Patch name="FX 1 (rain)" hbank="121" lbank="0" prog="96" /> <Patch name="FX 2 (soundtrack)" hbank="121" lbank="0" prog="97" /> <Patch name="FX 3 (crystal)" hbank="121" lbank="0" prog="98" /> - <Patch name="FX 3a (synth mallet)" hbank="121" lbank="1" prog="0" /> + <Patch name="FX 3a (synth mallet)" hbank="121" lbank="1" prog="98" /> <Patch name="FX 4 (atmosphere)" hbank="121" lbank="0" prog="99" /> <Patch name="FX 5 (brightness)" hbank="121" lbank="0" prog="100" /> <Patch name="FX 6 (goblins)" hbank="121" lbank="0" prog="101" /> <Patch name="FX 7 (echoes)" hbank="121" lbank="0" prog="102" /> - <Patch name="FX 7a (echo bell)" hbank="121" lbank="1" prog="0" /> - <Patch name="FX 7b (echo pan)" hbank="121" lbank="2" prog="0" /> + <Patch name="FX 7a (echo bell)" hbank="121" lbank="1" prog="102" /> + <Patch name="FX 7b (echo pan)" hbank="121" lbank="2" prog="102" /> <Patch name="FX 8 (sci-fi)" hbank="121" lbank="0" prog="103" /> </PatchGroup> <PatchGroup name="Ethnic Misc."> <Patch name="Sitar" hbank="121" lbank="0" prog="104" /> - <Patch name="Sitar 2 (bend)" hbank="121" lbank="1" prog="0" /> + <Patch name="Sitar 2 (bend)" hbank="121" lbank="1" prog="104" /> <Patch name="Banjo" hbank="121" lbank="0" prog="105" /> <Patch name="Shamisen" hbank="121" lbank="0" prog="106" /> <Patch name="Koto 55-84" hbank="121" lbank="0" prog="107" /> - <Patch name="Taisho Koto" hbank="121" lbank="1" prog="0" /> + <Patch name="Taisho Koto" hbank="121" lbank="1" prog="107" /> <Patch name="Kalimba" hbank="121" lbank="0" prog="108" /> <Patch name="Bag pipe" hbank="121" lbank="0" prog="109" /> <Patch name="Fiddle" hbank="121" lbank="0" prog="110" /> @@ -245,58 +245,58 @@ <Patch name="Agogo" hbank="121" lbank="0" prog="113" /> <Patch name="Steel Drums" hbank="121" lbank="0" prog="114" /> <Patch name="Woodblock" hbank="121" lbank="0" prog="115" /> - <Patch name="Castanets" hbank="121" lbank="1" prog="0" /> + <Patch name="Castanets" hbank="121" lbank="1" prog="115" /> <Patch name="Taiko Drum" hbank="121" lbank="0" prog="116" /> - <Patch name="Concert Bass Drum" hbank="121" lbank="1" prog="0" /> + <Patch name="Concert Bass Drum" hbank="121" lbank="1" prog="116" /> <Patch name="Melodic Tom" hbank="121" lbank="0" prog="117" /> - <Patch name="Melodic Tom 2 (power)" hbank="121" lbank="1" prog="0" /> + <Patch name="Melodic Tom 2 (power)" hbank="121" lbank="1" prog="117" /> <Patch name="Synth Drum" hbank="121" lbank="0" prog="118" /> - <Patch name="Rhythm Box Tom" hbank="121" lbank="1" prog="0" /> - <Patch name="Electric Drum" hbank="121" lbank="2" prog="0" /> + <Patch name="Rhythm Box Tom" hbank="121" lbank="1" prog="118" /> + <Patch name="Electric Drum" hbank="121" lbank="2" prog="118" /> <Patch name="Reverse Cymbal" hbank="121" lbank="0" prog="119" /> </PatchGroup> <PatchGroup name="SFX"> <Patch name="Guitar Fret Noise" hbank="121" lbank="0" prog="120" /> - <Patch name="Guitar Cutting Noise" hbank="121" lbank="1" prog="0" /> - <Patch name="Acoustic Bass String Slap" hbank="121" lbank="2" prog="0" /> + <Patch name="Guitar Cutting Noise" hbank="121" lbank="1" prog="120" /> + <Patch name="Acoustic Bass String Slap" hbank="121" lbank="2" prog="120" /> <Patch name="Breath Noise" hbank="121" lbank="0" prog="121" /> - <Patch name="Flute Key Click" hbank="121" lbank="1" prog="0" /> + <Patch name="Flute Key Click" hbank="121" lbank="1" prog="121" /> <Patch name="Seashore" hbank="121" lbank="0" prog="122" /> - <Patch name="Rain" hbank="121" lbank="1" prog="0" /> - <Patch name="Thunder" hbank="121" lbank="2" prog="0" /> - <Patch name="Wind" hbank="121" lbank="3" prog="0" /> - <Patch name="Stream" hbank="121" lbank="4" prog="0" /> - <Patch name="Bubble" hbank="121" lbank="5" prog="0" /> + <Patch name="Rain" hbank="121" lbank="1" prog="122" /> + <Patch name="Thunder" hbank="121" lbank="2" prog="122" /> + <Patch name="Wind" hbank="121" lbank="3" prog="122" /> + <Patch name="Stream" hbank="121" lbank="4" prog="122" /> + <Patch name="Bubble" hbank="121" lbank="5" prog="122" /> <Patch name="Bird Tweet" hbank="121" lbank="0" prog="123" /> - <Patch name="Dog" hbank="121" lbank="1" prog="0" /> - <Patch name="Horse Gallop" hbank="121" lbank="2" prog="0" /> - <Patch name="Bird Tweet 2" hbank="121" lbank="3" prog="0" /> + <Patch name="Dog" hbank="121" lbank="1" prog="123" /> + <Patch name="Horse Gallop" hbank="121" lbank="2" prog="123" /> + <Patch name="Bird Tweet 2" hbank="121" lbank="3" prog="123" /> <Patch name="Telephone Ring" hbank="121" lbank="0" prog="124" /> - <Patch name="Telephone Ring 2" hbank="121" lbank="1" prog="0" /> - <Patch name="Door Creaking" hbank="121" lbank="2" prog="0" /> - <Patch name="Door" hbank="121" lbank="3" prog="0" /> - <Patch name="Scratch" hbank="121" lbank="4" prog="0" /> - <Patch name="Wind Chime" hbank="121" lbank="5" prog="0" /> + <Patch name="Telephone Ring 2" hbank="121" lbank="1" prog="124" /> + <Patch name="Door Creaking" hbank="121" lbank="2" prog="124" /> + <Patch name="Door" hbank="121" lbank="3" prog="124" /> + <Patch name="Scratch" hbank="121" lbank="4" prog="124" /> + <Patch name="Wind Chime" hbank="121" lbank="5" prog="124" /> <Patch name="Helicopter" hbank="121" lbank="0" prog="125" /> - <Patch name="Car Engine" hbank="121" lbank="1" prog="0" /> - <Patch name="Car Stop" hbank="121" lbank="2" prog="0" /> - <Patch name="Car Pass" hbank="121" lbank="3" prog="0" /> - <Patch name="Car Crash" hbank="121" lbank="4" prog="0" /> - <Patch name="Siren" hbank="121" lbank="5" prog="0" /> - <Patch name="Train" hbank="121" lbank="6" prog="0" /> - <Patch name="Jetplane" hbank="121" lbank="7" prog="0" /> - <Patch name="Starship" hbank="121" lbank="8" prog="0" /> - <Patch name="Burst Noise" hbank="121" lbank="9" prog="0" /> + <Patch name="Car Engine" hbank="121" lbank="1" prog="125" /> + <Patch name="Car Stop" hbank="121" lbank="2" prog="125" /> + <Patch name="Car Pass" hbank="121" lbank="3" prog="125" /> + <Patch name="Car Crash" hbank="121" lbank="4" prog="125" /> + <Patch name="Siren" hbank="121" lbank="5" prog="125" /> + <Patch name="Train" hbank="121" lbank="6" prog="125" /> + <Patch name="Jetplane" hbank="121" lbank="7" prog="125" /> + <Patch name="Starship" hbank="121" lbank="8" prog="125" /> + <Patch name="Burst Noise" hbank="121" lbank="9" prog="125" /> <Patch name="Applause" hbank="121" lbank="0" prog="126" /> - <Patch name="Laughing" hbank="121" lbank="1" prog="0" /> - <Patch name="Screaming" hbank="121" lbank="2" prog="0" /> - <Patch name="Punch" hbank="121" lbank="3" prog="0" /> - <Patch name="Heart Beat" hbank="121" lbank="4" prog="0" /> - <Patch name="Footsteps" hbank="121" lbank="5" prog="0" /> + <Patch name="Laughing" hbank="121" lbank="1" prog="126" /> + <Patch name="Screaming" hbank="121" lbank="2" prog="126" /> + <Patch name="Punch" hbank="121" lbank="3" prog="126" /> + <Patch name="Heart Beat" hbank="121" lbank="4" prog="126" /> + <Patch name="Footsteps" hbank="121" lbank="5" prog="126" /> <Patch name="Gunshot" hbank="121" lbank="0" prog="127" /> - <Patch name="Machine Gun" hbank="121" lbank="1" prog="0" /> - <Patch name="Lasergun" hbank="121" lbank="2" prog="0" /> - <Patch name="Explosion" hbank="121" lbank="3" prog="0" /> + <Patch name="Machine Gun" hbank="121" lbank="1" prog="127" /> + <Patch name="Lasergun" hbank="121" lbank="2" prog="127" /> + <Patch name="Explosion" hbank="121" lbank="3" prog="127" /> </PatchGroup> <PatchGroup name="GM2 Drums"> <Patch name="Standard" hbank="120" lbank="0" prog="0" drum="1" /> @@ -345,7 +345,7 @@ <Controller name="Aftertouch" type="Aftertouch" /> <Drummaps> <entry> - <patch_collection prog="0-7" hbank="120" /> + <patch_collection prog="0-7" lbank="0" hbank="120" /> <drummap> <entry pitch="27"> <name>High Q</name> </entry> <entry pitch="28"> <name>Slap</name> </entry> @@ -411,7 +411,7 @@ </drummap> </entry> <entry> - <patch_collection prog="8-15" hbank="120" /> + <patch_collection prog="8-15" lbank="0" hbank="120" /> <drummap> <entry pitch="41"> <name>Room Low Tom 2</name> </entry> <entry pitch="43"> <name>Room Low Tom 1</name> </entry> @@ -422,7 +422,7 @@ </drummap> </entry> <entry> - <patch_collection prog="16-23" hbank="120" /> + <patch_collection prog="16-23" lbank="0" hbank="120" /> <drummap> <entry pitch="36"> <name>Power Kick Drum</name> </entry> <entry pitch="38"> <name>Power Snare Drum</name> </entry> @@ -435,7 +435,7 @@ </drummap> </entry> <entry> - <patch_collection prog="24" hbank="120" /> + <patch_collection prog="24" lbank="0" hbank="120" /> <drummap> <entry pitch="36"> <name>Electric Bass Drum</name> </entry> <entry pitch="38"> <name>Electric Snare 1</name> </entry> @@ -450,7 +450,7 @@ </drummap> </entry> <entry> - <patch_collection prog="25-31" hbank="120" /> + <patch_collection prog="25-31" lbank="0" hbank="120" /> <drummap> <entry pitch="36"> <name>Analog Bass Drum</name> </entry> <entry pitch="37"> <name>Analog Rim Shot</name> </entry> @@ -474,14 +474,14 @@ </drummap> </entry> <entry> - <patch_collection prog="32-39" hbank="120" /> + <patch_collection prog="32-39" lbank="0" hbank="120" /> <drummap> <entry pitch="35"> <name>Jazz Kick 2</name> </entry> <entry pitch="36"> <name>Jazz Kick 1</name> </entry> </drummap> </entry> <entry> - <patch_collection prog="40-47" hbank="120" /> + <patch_collection prog="40-47" lbank="0" hbank="120" /> <drummap> <entry pitch="35"> <name>JazzKick 2</name> </entry> <entry pitch="36"> <name>JazzKick 1</name> </entry> @@ -491,7 +491,7 @@ </drummap> </entry> <entry> - <patch_collection prog="48-55" hbank="120" /> + <patch_collection prog="48-55" lbank="0" hbank="120" /> <drummap> <entry pitch="27"> <name>Closed Hi-hat 2 [EXC1]</name> </entry> <entry pitch="28"> <name>Pedal Hi-hat [EXC1]</name> </entry> @@ -521,7 +521,7 @@ </drummap> </entry> <entry> - <patch_collection prog="56-127" hbank="120" /> + <patch_collection prog="56-127" lbank="0" hbank="120" /> <drummap> <entry pitch="39"> <name>High Q</name> </entry> <entry pitch="40"> <name>Slap</name> </entry> |