summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorterminator356 <termtech@rogers.com>2014-01-10 21:16:26 -0500
committerterminator356 <termtech@rogers.com>2014-01-10 21:16:26 -0500
commit0da82e59960c237955e14fa45965ae60b1d181b8 (patch)
tree3c65741b7b5c82d73d01a3cbee7ce480d1ab1956
parent59402f5bcb3804eaa7a2027f2677364c7cca544c (diff)
Added Initialization Sequence editor. Roland SD-50 idf. Modify sysex editor...
-rw-r--r--muse2/ChangeLog9
-rw-r--r--muse2/muse/app.cpp2
-rw-r--r--muse2/muse/app.h5
-rw-r--r--muse2/muse/ctrl/ctrlpanel.cpp4
-rw-r--r--muse2/muse/globaldefs.h7
-rw-r--r--muse2/muse/helper.cpp1
-rw-r--r--muse2/muse/instruments/CMakeLists.txt2
-rw-r--r--muse2/muse/instruments/editinstrument.cpp508
-rw-r--r--muse2/muse/instruments/editinstrument.h25
-rw-r--r--muse2/muse/instruments/editinstrumentbase.ui120
-rw-r--r--muse2/muse/instruments/minstrument.cpp2
-rw-r--r--muse2/muse/liste/CMakeLists.txt23
-rw-r--r--muse2/muse/liste/listedit.cpp109
-rw-r--r--muse2/muse/midi.cpp97
-rw-r--r--muse2/muse/midi.h8
-rw-r--r--muse2/muse/midiedit/drumedit.cpp4
-rw-r--r--muse2/muse/midiedit/pianoroll.cpp5
-rw-r--r--muse2/muse/midifile.cpp4
-rw-r--r--muse2/muse/widgets/CMakeLists.txt7
-rw-r--r--muse2/muse/widgets/editctrlbase.ui (renamed from muse2/muse/liste/editctrlbase.ui)0
-rw-r--r--muse2/muse/widgets/editevent.cpp (renamed from muse2/muse/liste/editevent.cpp)78
-rw-r--r--muse2/muse/widgets/editevent.h (renamed from muse2/muse/liste/editevent.h)11
-rw-r--r--muse2/muse/widgets/editsysexdialogbase.ui43
-rw-r--r--muse2/share/instruments/Roland SD-50.idf1775
-rw-r--r--muse2/share/instruments/gm2.idf272
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>&amp;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>&amp;Add...</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="initChangeButton">
+ <property name="text">
+ <string>&amp;Change...</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="initDeleteButton">
+ <property name="text">
+ <string>&amp;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>&amp;Select...</string>
+ </property>
+ </widget>
+ </item>
+ <item>
<widget class="QPushButton" name="buttonOk">
<property name="text">
- <string>OK</string>
+ <string>&amp;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>&amp;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 &amp; 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&amp;B T-Analog" hbank="86" lbank="0" prog="8" drum="1" />
- <Patch name="R&amp;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&amp;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&amp;H Noise" hbank="87" lbank="3" prog="123" />
- <Patch name="S&amp;H Ramp" hbank="87" lbank="3" prog="124" />
- <Patch name="S&amp;H PWM" hbank="87" lbank="3" prog="125" />
- <Patch name="S&amp;H Saw 1" hbank="87" lbank="3" prog="126" />
- <Patch name="S&amp;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&amp;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&amp;B T-Analog" hbank="86" lbank="0" prog="7" />
- <Patch name="R&amp;B Mini Kit" hbank="86" lbank="0" prog="8" />
- <Patch name="HipHop Kit" hbank="86" lbank="0" prog="9" />
- <Patch name="R&amp;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&amp;B T-Analog" hbank="86" lbank="0" prog="7" drum="1" />
+ <Patch name="R&amp;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&amp;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&amp;H Noise" hbank="87" lbank="3" prog="123" />
+ <Patch name="S&amp;H Ramp" hbank="87" lbank="3" prog="124" />
+ <Patch name="S&amp;H PWM" hbank="87" lbank="3" prog="125" />
+ <Patch name="S&amp;H Saw 1" hbank="87" lbank="3" prog="126" />
+ <Patch name="S&amp;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&amp;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&apos;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&apos;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&apos;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&apos;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 &amp; 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>